sudo: / etc / sudoers es propiedad de uid 501, debe ser 0

5

Para ejecutar programas como sudo sin contraseña, edité / etc / sudoers con contenido incorrecto.

Luego lo reedité con el editor de texto predeterminado de Mac (el sudo del curso no se puede usar cuando / etc / sudoers es incorrecto).

Intenté ejecutar sudo de nuevo y obtuve este error:

sudo: /etc/sudoers is owned by uid 501, should be 0
sudo: no valid sudoers sources found, quitting

¿Qué debo hacer? No puedo recordar la contraseña de root (tal vez nunca haya configurado la contraseña de root).

    
pregunta kxxoling 23.11.2014 - 10:42

5 respuestas

5

OSX mantiene la información sobre los permisos que deben tener los archivos de sistema (es decir, los archivos que instala el sistema operativo).

Para restaurar este uso Disk Utility.app.
Seleccione el volumen de arranque (llamado por defecto Macintosh HD) en el lado izquierdo.
Haga clic en Verificar o reparar permisos de disco; este último volverá a aplicar los permisos almacenados.

Para editar sudoers en el futuro usaría visudo que verifica que la edición sea válida

re es la contraseña de root que probablemente no la hayas configurado antes - la idea de sudo es que nunca necesitas usarla y Apple desactiva el inicio de sesión de root por defecto

    
respondido por el Mark 23.11.2014 - 13:37
10

Puede iniciar en modo de usuario único presionando Cmd-S al inicio (consulte OS X : Cómo iniciar en modo de usuario único o en modo detallado para más detalles), que debería proporcionarle un shell de root. Luego ejecuta

mount -uw /
chown root:wheel /etc/sudoers
chmod 440 /etc/sudoers
reboot

para solucionar el problema y reiniciar.

    
respondido por el nohillside 23.11.2014 - 11:19
4
  1. Abrir Directory Utility (/ System / Library / CoreServices /).
  2. Haga clic en el ícono de bloqueo para desbloquearlo, luego ingrese su nombre y contraseña de administrador.
  3. Realice una de las siguientes acciones:

    • Selecciona Editar > Habilitar usuario root, luego ingrese una contraseña de usuario root en los campos Contraseña y Verificar.
    • Selecciona Editar > Cambie la contraseña de root, luego ingrese una nueva contraseña de usuario root. No necesitas una contraseña antigua
  4. Iniciar sesión en la raíz
  5. Modifique los sudoers con visudo como se indica en el archivo:

El archivo original se ve así:

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification
Defaults    env_reset
Defaults    env_keep += "BLOCKSIZE"
Defaults    env_keep += "COLORFGBG COLORTERM"
Defaults    env_keep += "__CF_USER_TEXT_ENCODING"
Defaults    env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults    env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults    env_keep += "LINES COLUMNS"
Defaults    env_keep += "LSCOLORS"
Defaults    env_keep += "SSH_AUTH_SOCK"
Defaults    env_keep += "TZ"
Defaults    env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults    env_keep += "EDITOR VISUAL"
Defaults    env_keep += "HOME MAIL"

# Runas alias specification

# User privilege specification
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel    ALL=(ALL) ALL

# Same thing without a password
# %wheel    ALL=(ALL) NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

Información:

machine:~ user$ ls /private/etc/sudoers 
-r--r-----  1 root  wheel  1275 13 Jun  2012 /private/etc/sudoers
    
respondido por el klanomath 23.11.2014 - 13:06
2

Genial y simplemente para High Sierra- no SUDO, sin recuperación, solo (permisos de verificación / reparación)

  1. primer paso
diskutil resetUserPermissions / 'id -u'
  1. segundo elemento Elegir carpeta a través del buscador - > Información - > desbloquee y elija la rueda de configuración en la parte inferior - > Aplicar a artículos adjuntos

hecho!

enlace

    
respondido por el Kallados 17.06.2018 - 20:59
1

En la Terminal:

  1. Escriba sh o sudo sh (mi caso accidentalmente configuré chown -R / , así que sudo soy yo, ya no necesito sudo, usando sh )
  2. En sh , escriba cd /var/db/sudo/ , luego ls -ln para verificar si es lo mismo que estos:

    total 0
    drwxr-xr-x  2 501  0   68 Oct 23 23:56 yourusername
    drwx------  3 501  0  102 Nov 24 00:57 ts
    
  3. luego escribe ls -la y obtendrás estos:

    total 0
    drwx--x--x   4 yourusername   wheel   136 Oct 23 23:56 .
    drwxr-xr-x  80 yourusername   wheel  2720 Nov 24 01:55 ..
    drwxr-xr-x   2 root  wheel    68 Oct 23 23:56 yourusername
    drwx------   3 root  wheel   102 Nov 24 00:57 ts
    

Los resultados anteriores muestran que yourusername se establece en wheel , lo que no se supone. Normalmente debería tener el siguiente aspecto:

total 0
drwx--x--x   4 root  wheel   136 Oct 23 23:56 .
drwxr-xr-x  80 root  wheel  2720 Nov 24 01:55 ..
drwxr-xr-x   2 root  wheel    68 Oct 23 23:56 yourusername
drwx------   3 root  wheel   102 Nov 24 00:57 ts

¿Ves la diferencia?

Ahora, queremos arreglarlo. Esto es lo que hice:

  1. Aún en sh , escribí chown -R root:wheel /var/db/sudo/yourusername para cambiarlo a UID 0 en lugar de UID 501 como en el caso anterior
  2. Haz lo mismo para ts, chown -R root:wheel /var/db/sudo/ts/ Ahora vuelva a verificar el permiso con ls -ln y debería verse así:

    total 0
    drwxr-xr-x  2 0  0   68 Oct 23 23:56 dan
    drwx------  3 0  0  102 Nov 24 00:57 ts
    UID is now set to 0 and not 501.
    
  3. Ahora hacemos lo mismo para .. y . ejecutando chown -R root:wheel /var/db/sudo/./ y luego chown -R root:wheel /var/db/sudo/../ , y obtendrás resultados como No. 4 arriba.

Ahora queremos arreglar /etc/sudoers propiedad de UID 501.

  1. Aún en sh , primero verifique el permiso ejecutando ls -ln /private/etc/sudoers y debería obtener esto:

    -r--r-----  1 501  0  1563 Nov 14 17:53 /private/etc/sudoers
    

¿Se nota el UID 501? Queremos que se convierta en UID 0 .

  1. Entonces, ejecute este comando chown -R root:wheel /private/etc/sudoers y luego ls -ln /private/etc/sudoers nuevamente para verificar si el permiso cambia a esto:

    -r--r-----  1 0  0  1563 Nov 14 17:53 /private/etc/sudoers
    

Entonces, intente sudo como lo haría de nuevo y vea si eso funciona.

Con todo eso, debo recordarte que no soy responsable de tu máquina después de seguir estos pasos, pero al menos esto es lo que funciona para mí.

    
respondido por el Dan 23.11.2018 - 19:48

Lea otras preguntas en las etiquetas