Несколько лет назад вы могли избежать brew
проблем brew
с правами администратора, просто подав их, но они убрали эту функцию. Так что в Homebrew 1.1.6 я использовал правку, /usr/local/Homebrew/Library/Homebrew/brew.sh
чтобы убрать проверку root (ту, которая говорила, что она «чрезвычайно опасна»), чтобы я мог работать brew
от имени root.
Более новая версия Homebrew по-прежнему работает с этим, но продолжает возвращать brew.sh
файл обратно каждый раз после запуска brew
, даже если я chmod 500
это сделаю . Я мог бы написать сценарий, чтобы изменить его, затем запустить brew
автоматически, но я не уверен, что это всегда будет работать, и не хочу рисковать. Кто-нибудь нашел другой способ запустить Homebrew от имени root?
brew
от имени root? Кроме того,sudo
не достаточно для ваших целей?sudo
запускает его как root, и он выдает мне ту же «чрезвычайно опасную» ошибку. Я хочу работать с правами root, поскольку в противном случае возникают проблемы с установкой определенных пакетов, особенно если что-то было установлено не через Homebrew (например, черезpip
). Я ходил по этому пути много раз. Кроме того, он не работает должным образом для нескольких пользователей без странных обходных путей, если я не установлю все как root.root
же рискованна. Даже построение пакета без менеджера пакетов, вы бы построить пакет как пользователь без привилегий (самостоятельно) , а затем установить пакет , какroot
сsudo
. Менеджеры пакетов, такие как Fink и MacPorts, создают свои собственные непривилегированные пользователи, а затем устанавливают какroot
. Доморощенный не имеет такого механизма.brew.sh
файл возвращается после изменения и запускаbrew
команды. Так что я могу бегатьsudo brew whatever
иbrew whatever
в тандеме просто отлично.brew --version
Таким образом, мой вывод: кHomebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
вашему сведению, я изменил свойbrew.sh
файл, чтобы закомментировать все строки вcheck-run-command-as-root
функции, иreturn
вместо этого поместил один оператор в верхней части функции.Ответы:
После внесения изменений в скрипт попробуйте установить флаг неизменяемости на brew.sh.
Я не проверял. Как правило, я не даю рут приложениям, разработчики которых просят не делать этого.
источник
sudo brew install
запускается как обычно.Обычные пользователи не должны этого делать, но вы не типичны, не так ли?
Два вопроса:
Вы не можете остановить root. Если вы настаиваете на использовании root, то root может перезаписать
brew.sh
несмотря ни на что.Вы не можете остановиться
brew
, в конце концов, вы говорите о бегеbrew
.Так что мы будем работать с этим. Давайте настроим псевдоним для копирования и
brew.sh
запускаbrew
.(Исправьте пути, чтобы соответствовать вашей системе).
Теперь все, что вам нужно сделать, это:
(Он станет root, скопируйте
brew.sh
, затем запуститеbrew
как root с аргументами, после чегоbrew
перезапишите,brew.sh
и вы будете готовы сделать это снова)Примечание. Вы также можете указать
sudo
псевдоним, но этот способ удобнее, потому что вам будет каждый раз запрашиваться пароль.Как правило, вы не можете использовать
setuid
(chmod u+s
), чтобы получить root права на скрипты оболочки, для безопасности. В Perl есть отдельная программа,suidperl
которая может быть установлена и может повысить привилегии пользователя, но такие решения немного глубоки для быстрого ответа.источник