Instalación de homebrew después de actualizar a MacOS High Sierra

3

Recientemente actualicé a MacOS High Sierra (10.13.4). Después de actualizar mi homebrew parece haber dejado de funcionar. Así que desinstalé Homebrew ejecutando el siguiente comando

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Intenté instalar Homebrew nuevamente ejecutando el siguiente comando

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Pero la instalación falló con el error como se explicó aquí .

Luego intenté ejecutar el comando como se sugiere en el problema anterior.

sudo chown -R $USER:admin /usr/local

Pero no funcionó debido al problema discutido aquí .

Ejecuté el siguiente comando como se sugirió anteriormente

sudo chown -R $(whoami) $(brew --prefix)/*

Me dio algunas advertencias Operation not permitted .

Luego intenté de nuevo instalar Homebrew. Ahora me está mostrando los siguientes registros en la consola

...
==> Installation successful!

==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics.html

==> Next steps:
- Run 'brew help' to get started
- Further documentation:
    https://docs.brew.sh
sudo: /etc/sudoers is owned by uid 504, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin 

¿Puede alguien decirme qué indican los últimos avisos / errores? ¿Se pueden ignorar?

    
pregunta tuk 15.05.2018 - 13:58

1 respuesta

1

La advertencia al final le indica que el usuario root (indicado de forma predeterminada con el uid 0 ) ya no es dueño del archivo /etc/sudoers . Esto es malo. En algún momento, es posible que haya cambiado esto accidentalmente, tal vez al escribir mal un comando. El archivo sudoers denota qué usuarios y grupos pueden escalar a un conjunto de privilegios raíz introduciendo un comando con sudo y escribiendo su contraseña de inicio de sesión.

El comando chown que ha estado usando anteriormente cambia la propiedad de los archivos de un usuario y / o grupo a otro. Debido a que ha cambiado la propiedad del archivo sudoers , probablemente no podrá usted mismo sudo sin problemas, ya que el comando sudo no se ejecutará por razones de seguridad si el archivo sudoers del que se basa su configuración es propiedad de un usuario que no sea root (esta es la razón por la cual Homebrew está escupiendo el último mensaje de error anterior).

Sugeriría lo siguiente:

  1. Habilite el usuario root utilizando las instrucciones de Apple aquí (en la sección 'Habilitar o deshabilitar el usuario root') .
  2. Abra el Terminal y cambie al usuario root escribiendo su - e ingresando la contraseña que asignó a su cuenta de usuario root en el paso 1.
  3. Como usuario root, cambie la propiedad del archivo sudoers a la raíz y al grupo de ruedas con lo siguiente:

    chown root:wheel /etc/passwd
    
  4. Vuelve a seguir las instrucciones del paso 1, pero esta vez deshabilita al usuario root nuevamente.

Ahora debería poder usar el comando sudo nuevamente con su usuario administrador habitual. Puede ejecutar sudo ls por ejemplo en un nuevo shell; Si el contenido del directorio actual aparece en la lista y no ve el error de propiedad anterior, todo está bien.

Aunque esto está fuera de los límites de su pregunta, me preocupa que si, sin saberlo, ha cambiado la propiedad del archivo sudoers al intentar cambiar la propiedad de /usr/local/ , es posible que haya hecho esto en otros archivos importantes como bien. Ejecute ls -l /etc/ y examine la salida de ese comando. La tercera columna desde la izquierda muestra al usuario que posee un archivo determinado. Por defecto, casi todos los archivos en el directorio /etc/ están destinados a ser propiedad de root (uno obvio es /etc/passwd ). Si ve que la mayoría son propiedad de otro usuario (su propio nombre de usuario, por ejemplo), el problema es mucho más extenso que su archivo sudoers .

Como punto general, debe tener mucho cuidado al ejecutar cualquier comando precedido por sudo . Solo ejecute los comandos en su terminal si entiende el comando y sabe exactamente lo que hará cuando se pasa un conjunto dado de opciones / argumentos. Los sistemas operativos más recientes de Mac ofrecen algunas medidas de seguridad con Protección de integridad del sistema (SIP) , pero aún puede hacer una pausa. un montón de estragos en su sistema.

Si desea saber qué hace un comando en particular y sus diversos argumentos, intente consultar el manual primero escribiendo man + el comando sobre el que desea obtener información (por ejemplo, man sudo o man chown ).

    
respondido por el py4on 16.05.2018 - 02:09

Lea otras preguntas en las etiquetas