0 votos

He roto sudo - ¿cómo lo arreglo?

Al parecer ya no puedo hacer sudo en mi Mac.

Piers-MacBook-Air:~ piersb$ sudo ls
Contraseña:
Lo siento, el usuario piersb no tiene permitido ejecutar '/bin/ls' como root en Piers-MacBook-Air.local.
Piers-MacBook-Air:~ piersb$ 

Funcionaba antes de la última actualización de El Capitan (la actualización a 10.11.4), y estoy en un MacBook Air de mediados de 2013. La cuenta es una cuenta de administrador, y podía hacer sudo antes. Mi primera idea fue agregarme a mí mismo en /etc/sudoers pero, jaja, por supuesto que necesitas sudo para eso.

Piers-MacBook-Air:~ piersb$ ls -al /etc/sudoers
-r--r-----  1 root  wheel  272  5 Abr 11:15 /etc/sudoers
Piers-MacBook-Air:~ piersb$ groups
staff com.apple.sharepoint.group.1 everyone localaccounts _appserverusr admin _appserveradm _lpadmin _appstore _lpoperator _developer com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh

Puedo crear un nuevo usuario administrador, pero ese usuario tiene el mismo problema.

Piers-MacBook-Air:~ testuser$ sudo ls

Confiamos en que haya recibido la charla habitual del Administrador del Sistema local. Por lo general, se reduce a estas tres cosas:

#1) Respeta la privacidad de los demás.
#2) Piensa antes de escribir.
#3) Con gran poder viene gran responsabilidad.

Contraseña:
Lo siento, el usuario testuser no tiene permitido ejecutar '/bin/ls' como root en 
Piers-MacBook-Air.local.

Entonces. ¿Cómo puedo darme acceso a sudo nuevamente? ¿Y es este un problema común?

0 votos

Continúa con apple.stackexchange.com/questions/229701/…. Buena suerte.

0voto

Chunky Milk Puntos 11

Parece que solo apareció por coincidencia en la actualización 10.11.4; el problema fue en realidad cuando instalé vagrant. En algún momento, ya sea yo o algún script que utilicé sobrescribió /etc/sudoers con lo siguiente en lugar de agregarlo:

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

Así que /etc/sudoers estaba dañado. Aquí está cómo solucionarlo si te sucede a ti.

  • Ve a Preferencias del Sistema
  • Ve a Usuarios y Grupos
  • Haz clic en el candado
  • Autentica con una cuenta de administrador
  • Elige Servidor de Cuenta de Red: Unirse...
  • Haz clic en Utilidad de Directorio Abierto
  • Haz clic en el candado
  • Autentica con una cuenta de administrador
  • Elige Editar / Habilitar Usuario Root
  • Elige una contraseña de root
  • Abre un Terminal
  • Escribe su
  • Escribe tu contraseña de root y presiona enter
  • Escribe visudo

Ahora deberías poder editar /etc/sudoers de forma segura. O al menos tan seguro como puedas hacer cualquier cosa mientras estás conectado como root.

Reemplaza cualquier tontería que tengas ahí con un archivo seguro. Aquí está el que usé:

#
# Este archivo DEBE ser editado con el comando 'visudo' como root.
# No usar 'visudo' puede resultar en errores de sintaxis o permisos de archivo
# que impiden que sudo se ejecute.
#
# Consulta la página del manual de sudoers para ver los detalles sobre cómo escribir un archivo sudoers.
#

# Especificación de alias de host

# Especificación de alias de usuario

# Especificación de alias de comando

# Especificación de valores predeterminados
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"

# Especificación de privilegios de usuario
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

# Descomenta para permitir que las personas del grupo wheel ejecuten todos los comandos
# %wheel    ALL=(ALL) ALL

# Lo mismo sin contraseña
# %wheel    ALL=(ALL) NOPASSWD: ALL

# Ejemplos
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
  • Pulsa ESC, luego escribe :wq! para guardar y salir del archivo
  • escribe salir para salir del shell de root
  • Vuelve a Utilidad de Directorio
  • Elige Editar/Deshabilitar Usuario Root

¡Y - ¡aleluya! - tu comando sudo debería estar funcionando de nuevo.

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