12 votos

¿Cómo puedo ejecutar Homebrew como Root?

Hace años, podías salirte con la tuya corriendo brew como Root sólo con chowning brew a Root, pero han eliminado esa función. Así que en Homebrew 1.1.6, solía editar /usr/local/Homebrew/Library/Homebrew/brew.sh para eliminar la comprobación de root (la que dice que es "extremadamente peligrosa") para poder ejecutar brew como root.

La nueva versión de Homebrew todavía funciona con eso pero sigue revirtiendo el brew.sh cada vez que ejecute brew Aunque yo chmod 500 lo Podría escribir un script para cambiarlo y luego ejecutar brew automáticamente, pero no estoy seguro de que esto funcione siempre y no quiero correr riesgos. ¿Alguien ha encontrado un método diferente para ejecutar Homebrew como Root?

4 votos

Por curiosidad, ¿por qué quieres dirigir brew ¿como root? Además, ¿es sudo ¿no es suficiente para sus propósitos?

2 votos

@Allan sudo lo ejecuta como Root, y me da el mismo error de "extremadamente peligroso". Quiero ejecutarlo como Root porque de lo contrario tiene problemas para instalar ciertos paquetes, especialmente si algo fue instalado no a través de Homebrew (por ejemplo, a través de pip ). He seguido ese camino muchas veces. Además, no funciona correctamente para múltiples usuarios sin soluciones extrañas a menos que instale todo como Root.

0 votos

$ su -> $ brew whateverywant ?

2voto

Jason Puntos 31

Después de hacer su cambio en el script, intente establecer la bandera inmutable en brew.sh.

chflags uchg /usr/local/Homebrew/Library/Homebrew/brew.sh

No lo he probado. Por regla general, no doy Root a aplicaciones cuyos desarrolladores me ruegan que no lo haga.

0 votos

También estoy de acuerdo con Jason. Hay una razón por la que se dice que no hay que correr la cerveza como Root. Sobre todo porque son los desarrolladores y voy a confiar en ellos con su software. Además, a diferencia de macports, que la última vez que lo comprobé aún lo requería, brew no necesita ni quiere permisos Root, así que si metes la pata lo más probable es que no se estropee todo el sistema. Todo está contenido en su cuenta de usuario y no hay necesidad de estar jugando con sudo.

1 votos

Se ha confirmado que funciona, gracias. Tarda un poco en intentar actualizarse la primera vez, pero después sudo brew install s se ejecutan con normalidad.

1 votos

No hay mucho que estropear y dejar un sistema inutilizable con los paquetes que instalaría en un Mac. De todos modos, puedo restaurar mi sistema en 30 minutos. Limpiar mi usuario es mucho más difícil, y muchas cosas directamente no funcionan a menos que se instalen en todo el sistema, como explico en los comentarios anteriores.

1voto

Able Mac Puntos 111

Los usuarios típicos no deberían hacer esto, pero tú no eres típico, ¿verdad?

Dos cuestiones:

  1. No puedes detener a Root. Si insistes en usar Root, entonces Root puede sobrescribir brew.sh no importa qué.

  2. No puedes parar brew Después de todo, estás hablando de correr brew .

Así que trabajaremos con eso. Vamos a configurar un alias para copiar brew.sh y luego ejecuta brew .

alias brew='cp /<modified>/brew.sh /<actuall>/brew.sh; /usr/local/bin/brew'

(Arregla las rutas para que coincidan con tu sistema).

Ahora todo lo que tienes que hacer es:

sudo brew <arguments>

(Se convertirá en Root, copia sobre brew.sh y, a continuación, ejecute brew como Root con argumentos, después brew sobrescribirá brew.sh y estarás listo para hacerlo todo de nuevo)

Nota: Se puede poner sudo en el alias también, pero esta manera se siente mejor porque se le pedirá una contraseña cada vez.

Normalmente no se puede utilizar setuid ( chmod u+s ) a Root en shell scripts, por seguridad. Perl tiene un programa separado suidperl que podrían ser instalados y podrían escalar los privilegios del usuario, pero tales soluciones son un poco profundas para una respuesta rápida.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X