2012-06-02 27 views
6

Tôi đã cài đặt homebrew và đang cố gắng thay đổi giấy phép ghi cho thư mục/usr/local/include.Thay đổi quyền sở hữu một thư mục trong OS X

Khi tôi chạy 'brew bác sĩ', tôi nhận được thông báo lỗi này:

Error: The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Some versions of the "InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local back to your user account.

Tôi đã cố gắng làm điều đó với chown, nhưng tôi khá mới tại đây và không nghĩ rằng tôi đang chạy một cách chính xác . Tôi chạy:

chown myusername /usr/local/include 

Tôi không nhận được bất kỳ thông báo lỗi nào, nhưng khi tôi chạy bác sĩ pha chế, tôi cho biết tôi vẫn không được phép viết thư cho/usr/local/include.

Bất kỳ trợ giúp nào sẽ được đánh giá rất nhiều!

Edit:

tôi nhận được một "hoạt động không được phép" lỗi.

cd /usr

chown myusername local

chown: địa phương: Hoạt động không được phép

Trả lời

7

Trên hệ thống của tôi, /usr/local được sở hữu bởi root:admin và là rwxrwxr-x. Người dùng của tôi là thành viên của nhóm admin, do đó có quyền ghi. Tôi đã không sai lầm với quyền sở hữu và quyền ở đó, và cài đặt Homebrew của tôi không phàn nàn, vì vậy tôi cho rằng thiết lập của tôi phù hợp với yêu cầu của nó.

Kiểm tra quyền sở hữu số /usr/local của bạn; nếu nó thuộc sở hữu của nhóm admin, hãy kiểm tra xem tài khoản không phải quản trị viên của bạn có phải là thành viên của nhóm đó hay không.

+1

Tên người dùng của tôi là quản trị viên./usr/local được sở hữu bởi root: wheel. Không chăc chăn đo la cai gi. Tôi đã sử dụng cờ -R và sudo để cấp cho tôi quyền ghi tên người dùng trên tất cả các thư mục trong/usr/local. Đối với một số lý do nó sẽ không chấp nhận 'admin' như một đối số khi tôi đã cố gắng đó. – Graeme

+0

Hi Graeme. Tôi đã gặp lỗi chính xác tương tự (OS X Mavericks). Có lẽ điều này cũng phù hợp với bạn: 'sudo chown \' whoami \ '\' brew --prefix \ '&& brew doctor'. Hi vọng điêu nay co ich! (Lưu ý: 'echo \' whoami \ '' >> tên của bạn và 'echo \' brew --prefix \ '' >>/usr/local) –

0

Bạn có thể thử sử dụng lệnh ls -l. Với lệnh này, bạn sẽ thấy danh sách các tập tin trong thư mục hiện tại với một số thông tin hữu ích, như ai là chủ sở hữu của tập tin này. Vì vậy, bạn sẽ thấy nếu chown hoạt động. Tôi tin rằng chown là một lệnh phù hợp để thay đổi quyền sở hữu.

+0

tôi nhận được một "hoạt động không được phép" lỗi. 'cd/usr' ' chown myusername local' chown: local: Operation không được phép – Graeme

+0

trong trường hợp đó tôi nghĩ bạn nên xem, nếu bạn là quản trị viên của máy tính, vì ls -l là lệnh khá cơ bản và bạn không cần quyền root cho nó. –

+0

xin lỗi, nhận xét của tôi không rõ ràng. Tôi có thể làm ls -l. Đó là khi tôi chạy chown mà tôi đã nhận được sự cho phép bị từ chối lỗi. Tôi chỉ chạy nó với sudo, đã làm điều đó. Tôi đã cấp quyền cho người dùng của mình. Tôi tự hỏi nếu tôi đã cho * quá * nhiều sự cho phép mặc dù. Tôi đã sử dụng cờ -R trên địa phương, vì vậy bây giờ tên người dùng của tôi có quyền cho tất cả các thư mục trong/usr/local. Có một nơi tốt để bắt đầu hiểu sâu hơn về các quyền và bảo mật thư mục unix không? Tôi chỉ ở google -> tìm câu trả lời -> sao chép dán giai đoạn, có thể nguy hiểm. – Graeme

20

giải pháp đơn giản mà làm việc cho tôi:

  1. nhấp chuột trên nền của bạn để đi đến Finder
  2. nhấp chuột trên đường đi và đi đến thư mục/usr
  3. nhấp chuột phải vào địa phương và không nhận được thông tin
  4. mở khóa khóa ở dưới cùng
  5. nhấp vào + đăng nhập và thêm người dùng của bạn vào danh sách và cung cấp đặc quyền đọc/ghi
  6. nhấp vào ký hiệu bánh răng t dưới cùng và chọn áp dụng cho các mục đính kèm để recurse theo thư mục đó và gán đặc quyền quá tất cả các thư mục bên dưới nó.

loại brew doctor từ dấu nhắc lệnh để kiểm tra.Kết quả của tôi:

Your system is ready to brew.

+0

Tôi thích điều này bởi vì nó không * thay đổi * những gì đã có, chỉ cần thêm vào quyền đọc/ghi mà người dùng của bạn cần. –

+0

Nó cũng làm việc cho tôi quá – adrian7

2

Bạn nên sử dụng: sudo chown username folder

+2

Hãy giải thích tại sao OP nên thực hiện điều này. – dg99