Cómo activar "sudo" en OSX 10.12 Sierra

Cuando escribo "sudo some_command", la terminal muestra:

sudo: unable to stat /etc/sudoers: Permission denied
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

mi cuenta es una cuenta de administrador y /etc/sudoers contiene:

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

¿Cómo arreglar esto?

Agregue la salida dels -l /etc/sudoers
@patrix la salida es-r--r-----+ 1 root wheel 1563 Jan 11 10:42 /etc/sudoers
Uhh, ls -le /etc/sudoersy ls -led /etctambién entonces, por favor
@patrix -rw-rw-r--+ 1 root wheel 1563 Jan 11 10:42 /etc/sudoers 0: group:admin allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurityylrwxr-xr-x@ 1 root wheel 11 Dec 10 21:13 /etc -> private/etc
¿Funcionó alguna vez? La ACL parece un poco extraña (no tengo una en este archivo), pero no estoy seguro de si esto causa algún problema (y me resisto a probarlo aquí).
@patrix Después de reinstalar OSX Sierra, finalmente funciona. Realmente no sé qué tiene de malo sudo.
Consejo 2c: utilícelo visudopara editar sudoers.

Respuestas (2)

Abra la Terminal y habilite la raíz con:

dsenableroot -u <your_admin_username> -p <your_password> -r <root_password> #choose some root password here 

Si el sudoer está dañado, aún no podrá hacerlo sudo, pero podrá sureparar los permisos en consecuencia:

su #when asked afterwards enter the above <root_password>
chown root:wheel /etc/sudoers
chmod 440 /etc/sudoers
chmod -a "admin allow read,write,append,readattr,writeattr,readextattr,writeextatt‌​r,readsecurity" /etc/sudoers
exit

De vuelta en su cuenta de administrador, deshabilite la raíz:

dsenableroot -d -u <your_admin_username> -p <your_password>

En caso de que lo anterior no ayude, vuelva a habilitar la cuenta raíz haciendo lo mismo que arriba, cierre sesión en su cuenta, inicie sesión como root(sí, en serio):

Abra la terminal y escriba chmod g+x /, cierre el término, cierre la sesión y tada, Sudo está funcionando nuevamente :) Este problema ocurre principalmente cuando monta su /Linux en modo rw (para hfsplusel modo r/w use fuse y bindfs)


Por cierto, la ACL del administrador del grupo no parece dañar el archivo sudoers.

Mejor arranque en modo de usuario único para esto, no es necesario habilitar la raíz
¿Y qué desde el inicio de sesión de usuario único exactamente? Necesitas saber cómo moverte por launchctl/diskarbitrioned (ya que estás en romount) y hacer mount -rw /y luego visudono resolverá esto.
@mark Podría valer otra respuesta entonces
@PJJ OK, modifiqué mucho su respuesta ;-), pero después de la segunda línea dsenableroot, no debería poder iniciar sesión como root. Tienes que ejecutar chmod g+x /en modo su o tienes que mover tu última oración al frente de la segunda línea dsenableroot. Además: ¡esto no debería ser necesario en Sierra!
Cierto, cierto, supervisé eso, modificado con suerte, eso no será demasiado confuso;) - la mayoría de las veces es chmod g+x /porque h4x0rs confunde a darwin con linux y mapea felizmente sus guids sobre darwins dándose cuenta más tarde de que en darwin guids comienzan desde 500 en lugar de 1000 ;)
Pero la sección de comentarios de la pregunta es algo dudosa: el comentario de Desmond Chen el 11 de enero a las 15:40 muestra otra salida de ls para el archivo sudoers que el comentario de Desmond Chen el 12 de enero a las 1:29. El "primer" archivo sudoers debería funcionar.
sí, el que figura en el 12 está mal, debería ser chmod 440y es 644 oO en su lugar
Tipo de permiso no válido 'writeextatt​r', al intentar usar chmod -a "admin allow read...etc etc etc :(

Aquí hay unos pasos de alto nivel:

$ dsenableroot -u <user-username> -p <your-user-password> -r <new-password-for-root>

Luego crea una copia de seguridad del archivo sudoers y edítalo.

$ su
Password:<your-new-root-password>
sh-3.2# cp /etc/sudoers /etc/sudoers.bak
sh-3.2# vi /etc/sudoers.bak
sh-3.2# cp /etc/sudoers.bak /etc/sudoers
sh-3.2# exit

Último deshabilitar el acceso a la raíz:

$ dsenableroot -d -u abdi -p <root-password>
dsenableroot:: ***Successfully disabled root user.