Сегодня я запустил brew update
и после переноса хранилища сообщил, что он больше не нуждается в владении /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
Это изменение кажется немного сомнительным. Как brew выполняет это новое поведение, по-видимому, обходя контроль безопасности?
macos
homebrew
permission
Джейсон Р. Кумбс
источник
источник
/usr/local
Не входит в SIP. См. Раздел « Защита целостности системы на вашем Mac» в разделе «Пути и приложения, которые сторонние приложения и установщики могут написать для включения:»/usr/local
./usr/local
и его дочерние элементы принадлежатroot:admin
илиroot:wheel
не являются доступными для записи в группе, то у меня нет доступа для записи в эти каталоги (и ни один из них не является доморощенным, предположительно), но если это так, как Homebrew может управлять установкой и удаление приложений из этих мест?/usr/local
а не его потомки. И, глядя на то, что делает совершенно новая установка homebrew, он устанавливает все подкаталоги, которые будут принадлежать $ USER и группе с возможностью записи.Ответы:
Согласно этому сценарию ruby: update-report.rb , они только что переместили материал в / usr / local / Homebrew, который все еще принадлежит вам.
источник
Теперь мы создаем все корневые каталоги,
/usr/local
которые вам нужны, и проверяем владение ими, а не запрашиваем их/usr/local
сами.источник