Hace años, podías salirte con la tuya ejecutando brew
como root simplemente haciendo brew
root, pero eliminaron esa función. Entonces, en Homebrew 1.1.6, solía editar /usr/local/Homebrew/Library/Homebrew/brew.sh
para eliminar la verificación de raíz (la que decía que era "extremadamente peligrosa") para poder ejecutar brew
como raíz.
La versión más nueva de Homebrew todavía funciona con eso, pero sigue revirtiendo el brew.sh
archivo cada vez que lo ejecuto brew
, incluso si lo ejecuto chmod 500
. Podría escribir un script para cambiarlo y luego ejecutarlo brew
automáticamente, pero no estoy seguro de si esto siempre funcionará y no quiero correr riesgos. ¿Alguien ha encontrado un método diferente para ejecutar Homebrew como root?
Después de realizar su cambio en el script, intente configurar el indicador inmutable en brew.sh.
chflags uchg /usr/local/Homebrew/Library/Homebrew/brew.sh
no he probado Como regla general, no doy root a las aplicaciones cuyos desarrolladores me ruegan que no lo haga.
sudo brew install
ejecuta normalmente.Los usuarios típicos no deberían hacer esto, pero usted no es típico, ¿verdad?
Dos problemas:
No puedes dejar de rootear. Si insiste en usar la raíz, la raíz puede sobrescribir brew.sh
sin importar qué.
No puedes parar brew
, después de todo, estás hablando de correr brew
.
Así que trabajaremos con eso. Configuremos un alias para copiar y brew.sh
luego ejecutar brew
.
alias brew='cp /<modified>/brew.sh /<actuall>/brew.sh; /usr/local/bin/brew'
(Fije las rutas para que coincidan con su sistema).
Ahora todo lo que necesitas hacer es:
sudo brew <arguments>
(Se convertirá en root, copiará brew.sh
, luego se ejecutará brew
como root con argumentos, luego brew
se sobrescribirá brew.sh
y estará listo para hacerlo todo de nuevo)
Nota: sudo
también puede ingresar el alias, pero de esta manera se siente mejor porque se le pedirá una contraseña cada vez.
Por lo general, no puede usar setuid
( chmod u+s
) para rootear en scripts de shell, por seguridad. Perl tiene un programa separado suidperl
que podría instalarse y podría escalar los privilegios del usuario, pero tales soluciones son un poco profundas para una respuesta rápida.
Alano
brew
como root? Además, ¿sudo
no es suficiente para sus propósitos?sudo
sudo
lo ejecuta como root y me da el mismo error "extremadamente peligroso". Quiero ejecutar como root porque, de lo contrario, tiene problemas para instalar ciertos paquetes, especialmente si algo no se instaló a través de Homebrew (por ejemplo, a través depip
). He ido por ese camino muchas veces. Además, no funciona correctamente para múltiples usuarios sin soluciones extrañas a menos que instale todo como root.PajaHara
fd0
root
es arriesgado. Incluso al compilar un paquete sin un administrador de paquetes, compilaría el paquete como un usuario sin privilegios (usted mismo) y luego instalaría el paquete comoroot
consudo
. Los administradores de paquetes, como Fink y MacPorts, se compilan con sus propios usuarios sin privilegios y luego se instalan comoroot
. Homebrew no tiene tal mecanismo.sudo
sudo
PIB2
brew.sh
archivo se revierte después de modificarlo y luego ejecutar unbrew
comando. Entonces puedo corrersudo brew whatever
ybrew whatever
en tándem muy bien. Mibrew --version
salida es así:Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
FYI, modifiqué mibrew.sh
archivo para comentar todas las líneas en lacheck-run-command-as-root
función y coloqué una solareturn
declaración en la parte superior de la función.sudo
sudo brew ...
varias veces, pero "actualiza" homebrew si yosudo brew install ...
y sobrescribe el truco, por lo que vuelve al viejo problema.sudo
PIB2
brew install
y continuó sin problemas, es decir, no sebrew.sh
modificó y se instaló bien (nota al margen posiblemente no relacionada: primero tuve queexport HOMEBREW_NO_SANDBOX=true
hacerlo para que la instalación se completara correctamente). Antes de proteger el archivo con SIP, puede probarsudo chflags schg /usr/local/Homebrew/Library/Homebrew/brew.sh
con lochmod 500
que hizo. Eso, segúnman chflags
, "establecerá el indicador inmutable del sistema (solo superusuario)".PIB2
brew install
bajosudo -s
y continuó sin problemas.dennis
sudo
dennis