¿Cómo soluciono este problema de permiso sudo - UID 503, debería ser 0 - El Capitán?

4

Siempre que intento cualquier comando sudo en la terminal, aparece el siguiente mensaje de error:

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

He intentado iniciar sesión en el modo de usuario único y escribir los siguientes comandos:

mount -uw

chown /private/etc/sudoers 0

Después de escribir en la línea de propiedad de Chown, aparece un mensaje de error que dice "nombre de usuario ilegal".

Otras cosas que he intentado:

  • Reinstalando el OS X (El Capitán)
  • Deshabilitar la protección de integridad del sistema (SIP).
  • Llamando a Apple Care que dice que los comandos sudo se han deshabilitado en El Capitán.
  • Iniciar sesión en el modo de usuario único y escribir el siguiente código:
    chown root:wheel /private/etc/sudoers Esto produjo el mensaje de error "Operación no permitida" en mis cuentas estándar, de administrador y raíz. El mensaje de error "Sistema de archivos de solo lectura" apareció cuando inicié sesión en Modo de usuario único.

FYI

Cuando ejecuto ls -la /private/etc/sudoers en la Terminal, obtengo lo siguiente:

-rw-r-----@ 1 MY-ADMIN-USERNAME staff 67 18 Feb 14:03 /private/etc/sudoers

Nota: He reemplazado mi nombre de usuario de administrador real con "MY-ADMIN-USERNAME" solo para que sepa lo que se muestra.

Necesito los comandos sudo para funcionar por una variedad de razones, una de las cuales es hacer que CrashPlan funcione.

Mi hardware es un iMac 2010, 3.2GHZ, 16GB Ram y 500GB SSD que se instaló hace aproximadamente un año.

Estos problemas solo han surgido con El Capitán. No los tuve con Yosemite en el pasado.

Mirando alrededor en línea, puedo ver que muchas personas han tenido problemas similares, pero lamentablemente las resoluciones no me han funcionado.

    
pregunta W.Sun 03.03.2016 - 22:06

1 respuesta

2

Intenta reparar el archivo de sudoers desde el Modo de recuperación:

  • Arranque en modo de recuperación presionando cmd R mientras se inicia.
  • Abrir Terminal desde la barra de menú - > Utilidades
  • Introduce cd "/Volumes/main_volume_name/private/etc" . Reemplace main_volume_name por el nombre del volumen principal real (marque diskutil list ), mantenga los espacios y los caracteres en mayúsculas / minúsculas como están. Si usa comillas como en el comando aquí, no tiene que escapar de los espacios con un \
  • introduce chmod 440 sudoers
  • introduce chown root:wheel sudoers
  • Comprueba el archivo con cat sudoers . El archivo predeterminado sudoers debería tener este aspecto:

    ## 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
    ##
    ## Groups of machines. These may include host names (optionally with wildcards),
    ## IP addresses, network numbers or netgroups.
    # Host_Alias    WEBSERVERS = www1, www2, www3
    
    ##
    ## User alias specification
    ##
    ## Groups of users.  These may consist of user names, uids, Unix groups,
    ## or netgroups.
    # User_Alias    ADMINS = millert, dowdy, mikef
    
    ##
    ## Cmnd alias specification
    ##
    ## Groups of commands.  Often used to group related commands together.
    # Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
    #               /usr/bin/pkill, /usr/bin/top
    
    ##
    ## 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"
    
    Defaults    lecture_file = "/etc/sudo_lecture"
    
    ##
    ## Runas alias specification
    ##
    
    ##
    ## User privilege specification
    ##
    root ALL=(ALL) ALL
    %admin  ALL=(ALL) ALL
    
    ## Uncomment to allow members of group wheel to execute any command
    # %wheel ALL=(ALL) ALL
    
    ## Same thing without a password
    # %wheel ALL=(ALL) NOPASSWD: ALL
    
    ## Uncomment to allow members of group sudo to execute any command
    # %sudo ALL=(ALL) ALL
    
    ## Uncomment to allow any user to run sudo if they know the password
    ## of the user they are running the command as (root by default).
    # Defaults targetpw  # Ask for the password of the target user
    # ALL ALL=(ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'
    
    ## Read drop-in files from /private/etc/sudoers.d
    ## (the '#' here does not indicate a comment)
    #includedir /private/etc/sudoers.d
    

    Debido a que su archivo sudoers es muy pequeño (67 bytes), es probable que falte algo o todo el contenido. Es posible que tenga que agregar / reemplazar al menos las líneas sin un "#": #

    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"
    
    Defaults    lecture_file = "/etc/sudo_lecture"
    

    y

    root ALL=(ALL) ALL
    %admin  ALL=(ALL) ALL
    

    con:

    /Volumes/main_volume_name/usr/bin/nano /Volumes/main_volume_name/private/etc/sudoers
    

    El archivo finalmente debe contener al menos el siguiente contenido:

    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"
    
    Defaults    lecture_file = "/etc/sudo_lecture"
    
    root ALL=(ALL) ALL
    %admin  ALL=(ALL) ALL
    ​
    

    ¡El archivo requiere una línea vacía al final! (Por favor, no copie simplemente lo anterior porque la última línea aquí no contiene una nueva línea sino un espacio de ancho cero)

  • Arranque desde su volumen principal e inicie sesión como administrador

  • Ingrese sudo xattr -c /etc/sudoers para eliminar los atributos (falsos).
  • Restaure el archivo completo de sudoers con sudo visudo /etc/sudoers editando el contenido por defecto de sudoers '
  • Finalmente, la información del archivo debe revelar lo siguiente:

    host:~ adminuser$ ls -laO /etc/sudoers
    -r--r-----  1 root  wheel  compressed 2299 31 Jul  2015 /etc/sudoers
    

    Sin embargo, no se debe comprimir y la fecha obviamente será diferente.

respondido por el klanomath 03.03.2016 - 23:03

Lea otras preguntas en las etiquetas