Hôm nay tôi chạy brew update
và sau khi di chuyển kho lưu trữ, nó báo cáo rằng nó không còn cần quyền sở hữu /usr/local
:
$ brew update
Updated Homebrew from 5371359 to 13f08a2.
...
==> Migrating HOMEBREW_REPOSITORY (please wait)...
==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
sudo chown root:wheel /usr/local
Sự thay đổi này có vẻ hơi mơ hồ. Làm thế nào để brew thực hiện hành vi mới này, dường như bỏ qua kiểm soát an ninh?
Điều đó nói rằng, không phải là người dùng Homebrew, vì tôi biên dịch trực tiếp từ mã nguồn các tiện ích tôi muốn không bao gồm n OS X, dù sao tôi cũng cho rằng Homebrew đã được viết lại khi cần / cần thiết để hoạt động bình thường như các ứng dụng khác đã làm trong quá khứ. IMO Homebrew nên được viết từ lúc khởi hành để không phải chiếm quyền sở hữu gốc để bắt đầu!
—
user3439894
Ý tôi là, nếu
—
Jason R. Coombs
/usr/local
và con của nó được sở hữu bởi root:admin
hoặc là root:wheel
và không thể ghi nhóm, sau đó tôi không có quyền truy cập để ghi vào các thư mục đó (và cũng không phải là homebrew), nhưng nếu đó là trường hợp, Homebrew có thể quản lý cài đặt và xóa ứng dụng khỏi các vị trí đó như thế nào?
Tôi chỉ nhận thấy rằng tin nhắn chỉ tham khảo
—
Jason R. Coombs
/usr/local
và không phải là những người phụ thuộc của nó. Và nhìn vào những gì một cài đặt homebrew hoàn toàn mới làm, nó đặt tất cả các thư mục con được sở hữu bởi $ USER và nhóm có thể ghi.
/usr/local
không được bao gồm trong SIP. Xem Giới thiệu về Bảo vệ toàn vẹn hệ thống trên máy Mac của bạn trong "Đường dẫn và ứng dụng mà ứng dụng và trình cài đặt của bên thứ ba có thể viết để bao gồm:"/usr/local
đã được liệt kê.