Менеджер пакетов Домашнее пиво (Я использую OS X, но мне любопытно узнать о безопасности на основе Unix в целом, поскольку это относится к разрешениям каталогов) установить владельца /usr/local/bin
моему пользователю (это root
по умолчанию, не так ли?), что означает, что теперь я могу устанавливать исполняемые файлы, просто перемещая их в /usr/local/bin
(нет sudo
обязательный).
/usr/local/bin
принадлежит root
?/usr/local/bin
с вашим обычным пользователем - огромная проблема безопасности, потому что теперь любое программное обеспечение, которое я запускаю, может устанавливать программы от моего имени без необходимости моего пароля?Из их Вопросы-Ответы, это делается для того, чтобы избежать опасной практики запуска произвольного кода из Интернета от имени пользователя root при установке пакетов. Это разумный компромисс для большинства пользователей - Homebrew обычно используется на машине разработки одного человека, а не на производственных многопользовательских серверах.
Homebrew разработан для работы без использования sudo. Вы можете решить использовать его, но мы настоятельно не рекомендуем этого делать. Если вы использовали sudo и столкнулись с ошибкой, скорее всего, это была причина. Не отправляйте отчет об ошибке, если вы не сможете воспроизвести его после переустановки Homebrew с нуля без использования sudo.
Вы должны использовать sudo только тот инструмент, которому доверяете. Конечно, вы можете доверять Homebrew;) Но доверяете ли вы многомегабайтному Makefile, который запускает Homebrew? Разработчики часто понимают C ++ намного лучше, чем синтаксис make. Выполнить sudo такие вещи слишком велик. Это может сломать вашу базовую систему или незначительно изменить ее.
И действительно, мы видели, как некоторые скрипты сборки пытались изменить
/usr
даже когда префикс был указан как нечто совершенно иное.Вы корень поели?
/Applications/TextMate.app
? Возможно нет. Так ли это важноchown root wget
?Если вам нужно запустить Homebrew в многопользовательской среде, подумайте о создании отдельной учетной записи пользователя, особенно для использования Homebrew.
Почему он просто не устанавливается в вашем ~
см. предыдущий вопрос FAQ "Почему Homebrew предпочитает, чтобы я установил /usr/local
? ".