4 votos

¿La contraseña de administrador no funciona para sudo?

He intentado ejecutar este comando en la terminal:

$  sudo rm -ri ~/.Trash

Sin embargo, después de que se me pida que escriba mi contraseña (que creo que tiene que ser la del administrador) y después de escribirla, sólo dice: "Lo siento, inténtelo de nuevo".

Estoy conectado a la única cuenta de usuario que tiene este Mac, que tiene privilegios de administrador. He intentado reparar los permisos del disco, así como reinstalar el sistema operativo (Mojave), pero sin éxito.

Ya no sé qué hacer. ¿Puede alguien ayudarme con esto?

UDPATE #1

Cuando corro $ sudo -l Lo entiendo:

Matching Defaults entries for diogopires on MacBook-Pro-DI:
    env_reset, env_keep+=BLOCKSIZE, env_keep+="COLORFGBG COLORTERM",
    env_keep+=__CF_USER_TEXT_ENCODING, env_keep+="CHARSET LANG LANGUAGE LC_ALL
    LC_COLLATE LC_CTYPE", env_keep+="LC_MESSAGES LC_MONETARY LC_NUMERIC
    LC_TIME", env_keep+="LINES COLUMNS", env_keep+=LSCOLORS,
    env_keep+=SSH_AUTH_SOCK, env_keep+=TZ, env_keep+="DISPLAY XAUTHORIZATION
    XAUTHORITY", env_keep+="EDITOR VISUAL", env_keep+="HOME MAIL",
    lecture_file=/etc/sudo_lecture, targetpw

User diogopires may run the following commands on MacBook-Pro-DI:
    (ALL) ALL
    (ALL) ALL

Y si trato de correr visudo o sudo -u diogopires visudo me sale:

visudo: /etc/sudoers.tmp: Permission denied

UDPATE #2

Además, para comprobar la pertenencia al grupo, tengo:

$ id -a | grep -o '[0-9]\+(admin)'
80(admin)

UDPATE #3

Al ejecutar set -x corrí y lo conseguí:

$ sudo -l
+ sudo -l
Password:
Matching Defaults entries for diogopires on MacBook-Pro-DI:
    env_reset, env_keep+=BLOCKSIZE, env_keep+="COLORFGBG COLORTERM",
    env_keep+=__CF_USER_TEXT_ENCODING, env_keep+="CHARSET LANG LANGUAGE LC_ALL
    LC_COLLATE LC_CTYPE", env_keep+="LC_MESSAGES LC_MONETARY LC_NUMERIC
    LC_TIME", env_keep+="LINES COLUMNS", env_keep+=LSCOLORS,
    env_keep+=SSH_AUTH_SOCK, env_keep+=TZ, env_keep+="DISPLAY XAUTHORIZATION
    XAUTHORITY", env_keep+="EDITOR VISUAL", env_keep+="HOME MAIL",
    lecture_file=/etc/sudo_lecture, targetpw

User diogopires may run the following commands on MacBook-Pro-DI:
    (ALL) ALL
    (ALL) ALL
++ update_terminal_cwd
++ local url_path=
++ local i ch hexch LC_CTYPE=C LC_ALL=
++ (( i = 0 ))
++ (( i < 17 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 17 ))
++ ch=U
++ [[ U =~ [/._~A-Za-z0-9-] ]]
++ url_path+=U
++ (( ++i ))
++ (( i < 17 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 17 ))
++ ch=e
++ [[ e =~ [/._~A-Za-z0-9-] ]]
++ url_path+=e
++ (( ++i ))
++ (( i < 17 ))
++ ch=r
++ [[ r =~ [/._~A-Za-z0-9-] ]]
++ url_path+=r
++ (( ++i ))
++ (( i < 17 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 17 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 17 ))
++ ch=d
++ [[ d =~ [/._~A-Za-z0-9-] ]]
++ url_path+=d
++ (( ++i ))
++ (( i < 17 ))
++ ch=i
++ [[ i =~ [/._~A-Za-z0-9-] ]]
++ url_path+=i
++ (( ++i ))
++ (( i < 17 ))
++ ch=o
++ [[ o =~ [/._~A-Za-z0-9-] ]]
++ url_path+=o
++ (( ++i ))
++ (( i < 17 ))
++ ch=g
++ [[ g =~ [/._~A-Za-z0-9-] ]]
++ url_path+=g
++ (( ++i ))
++ (( i < 17 ))
++ ch=o
++ [[ o =~ [/._~A-Za-z0-9-] ]]
++ url_path+=o
++ (( ++i ))
++ (( i < 17 ))
++ ch=p
++ [[ p =~ [/._~A-Za-z0-9-] ]]
++ url_path+=p
++ (( ++i ))
++ (( i < 17 ))
++ ch=i
++ [[ i =~ [/._~A-Za-z0-9-] ]]
++ url_path+=i
++ (( ++i ))
++ (( i < 17 ))
++ ch=r
++ [[ r =~ [/._~A-Za-z0-9-] ]]
++ url_path+=r
++ (( ++i ))
++ (( i < 17 ))
++ ch=e
++ [[ e =~ [/._~A-Za-z0-9-] ]]
++ url_path+=e
++ (( ++i ))
++ (( i < 17 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 17 ))
++ printf '\e]7;%s\a' file://MacBook-Pro-DI.local/Users/diogopires

Y después, corrí y conseguí:

$ sudo ls
+ sudo ls
Password:
Sorry, try again.
Password:
Sorry, try again.
Password:
sudo: 3 incorrect password attempts
++ update_terminal_cwd
++ local url_path=
++ local i ch hexch LC_CTYPE=C LC_ALL=
++ (( i = 0 ))
++ (( i < 17 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 17 ))
++ ch=U
++ [[ U =~ [/._~A-Za-z0-9-] ]]
++ url_path+=U
++ (( ++i ))
++ (( i < 17 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 17 ))
++ ch=e
++ [[ e =~ [/._~A-Za-z0-9-] ]]
++ url_path+=e
++ (( ++i ))
++ (( i < 17 ))
++ ch=r
++ [[ r =~ [/._~A-Za-z0-9-] ]]
++ url_path+=r
++ (( ++i ))
++ (( i < 17 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 17 ))
++ ch=/
++ [[ / =~ [/._~A-Za-z0-9-] ]]
++ url_path+=/
++ (( ++i ))
++ (( i < 17 ))
++ ch=d
++ [[ d =~ [/._~A-Za-z0-9-] ]]
++ url_path+=d
++ (( ++i ))
++ (( i < 17 ))
++ ch=i
++ [[ i =~ [/._~A-Za-z0-9-] ]]
++ url_path+=i
++ (( ++i ))
++ (( i < 17 ))
++ ch=o
++ [[ o =~ [/._~A-Za-z0-9-] ]]
++ url_path+=o
++ (( ++i ))
++ (( i < 17 ))
++ ch=g
++ [[ g =~ [/._~A-Za-z0-9-] ]]
++ url_path+=g
++ (( ++i ))
++ (( i < 17 ))
++ ch=o
++ [[ o =~ [/._~A-Za-z0-9-] ]]
++ url_path+=o
++ (( ++i ))
++ (( i < 17 ))
++ ch=p
++ [[ p =~ [/._~A-Za-z0-9-] ]]
++ url_path+=p
++ (( ++i ))
++ (( i < 17 ))
++ ch=i
++ [[ i =~ [/._~A-Za-z0-9-] ]]
++ url_path+=i
++ (( ++i ))
++ (( i < 17 ))
++ ch=r
++ [[ r =~ [/._~A-Za-z0-9-] ]]
++ url_path+=r
++ (( ++i ))
++ (( i < 17 ))
++ ch=e
++ [[ e =~ [/._~A-Za-z0-9-] ]]
++ url_path+=e
++ (( ++i ))
++ (( i < 17 ))
++ ch=s
++ [[ s =~ [/._~A-Za-z0-9-] ]]
++ url_path+=s
++ (( ++i ))
++ (( i < 17 ))
++ printf '\e]7;%s\a' file://MacBook-Pro-DI.local/Users/diogopires

4voto

slm Puntos 118

Idea nº 1 - Utilizar su contraseña

Todo el propósito de sudo es conceder a los usuarios o grupos de usuarios acceso a funciones elevadas sin tener que revelar las credenciales del administrador. Por lo tanto, la contraseña que querrá usar cuando le pida el sudo es, de hecho, la contraseña de su usuario.

Además, puede utilizar el interruptor -l a sudo para ver qué permisos específicos se le han concedido a su ID de usuario.

Por ejemplo:

$ sudo -l
Password:
Matching Defaults entries for joeuser on unagi:
    env_reset, env_keep+=BLOCKSIZE, env_keep+="COLORFGBG COLORTERM", env_keep+=__CF_USER_TEXT_ENCODING, env_keep+="CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE", env_keep+="LC_MESSAGES LC_MONETARY
    LC_NUMERIC LC_TIME", env_keep+="LINES COLUMNS", env_keep+=LSCOLORS, env_keep+=SSH_AUTH_SOCK, env_keep+=TZ, env_keep+="DISPLAY XAUTHORIZATION XAUTHORITY", env_keep+="EDITOR VISUAL", env_keep+="HOME
    MAIL", lecture_file=/etc/sudo_lecture

User joeuser may run the following commands on unagi:
    (ALL) ALL

Lo anterior está indicando que el usuario joeuser tiene todos los permisos, (ALL) ALL en el sistema.

Idea #2 - Falta de permisos sudo

Si encuentra que su contraseña es correcta, entonces es probable que su cuenta simplemente no tenga una entrada en los archivos de configuración de Sudo que le dé al usuario algún permiso de uso. Para confirmar esto puede intentar ejecutar el comando visudo para ver el archivo de configuración de Sudo:

$ visudo
...
##
# Cmnd alias specification
##
# Cmnd_Alias    PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less

##
# User specification
##

# root and users in group wheel can run anything on any machine as any user
root        ALL = (ALL) ALL
%admin      ALL = (ALL) ALL

## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d

NOTA: visudo es simplemente abrir el archivo /etc/sudoers en vi de forma protegida para que no puedan pisar dos usuarios al mismo tiempo.

Idea #3 - Afiliación al grupo

Por lo general, los usuarios tienen acceso a sudo se añadirán a un grupo especial de UNIX llamado admin . Puedes confirmar si tu cuenta es miembro de este grupo así:

$ id -a | grep -o '[0-9]\+(admin)'
80(admin)

Este grupo es especial ya que es el que suele aparecer en el sistema de /etc/sudoers que otorga a los usuarios acceso de administrador a través de sudo a través de esta línea:

$ cat /etc/sudoers
...
...
%admin      ALL = (ALL) ALL
...
...

Idea #4 - TextExpander

He podido encontrar hilos en los que otras personas informaban de que TextExpander ponía automáticamente en mayúsculas la primera palabra de una frase, lo que hacía que la primera letra de su contraseña estuviera en mayúsculas cuando la escribían. Usted puede desactivar TextExpander para ver si esta es la causa de sus problemas de contraseña con sudo .

Idea #5 - Cuenta o contraseña corrupta

Existe una pequeña posibilidad de que la contraseña de su usuario se haya corrompido de alguna manera, lo que hace que sudo no puede utilizarlo. Para ayudar a eliminar esto como una posible causa puede intentar restablecer/cambiar la contraseña de su usuario. Para ello, acceda a las Preferencias del Sistema y luego abra Usuarios y Grupos, seleccione su usuario y haga clic en el botón Cambiar Contraseña.

Además, es posible que tenga algún éxito si intenta seguir algunos de los pasos de esta guía titulada: Cómo arreglar cuentas de usuario corruptas en MacOS si sospecha que su cuenta de usuario de MacOS se ha corrompido.

NOTA: Yo guardaría esta última sugerencia como algo a probar una vez que hayas eliminado completamente todo lo demás.

Idea #6 - Crear otra cuenta

Para eliminar cualquier problema con el propio sistema, puede intentar crear otra cuenta de usuario de MacOS y conceder a este usuario sudo acceso también. Una vez que haya creado esta cuenta, intente utilizar sudo -l y verifique que funciona. Si no lo hace, es probable que su problema sea que el sistema esté mal configurado o que algunos archivos/bibliotecas sean críticos para sudo se han corrompido.

Idea #7 - Un problema con ciertos comandos

He visto que alguien te ha preguntado en los comentarios cómo has podido ejecutar el comando sudo -l y proporcionar su contraseña, pero en comandos posteriores como sudo ls falló.

Esto me hizo pensar que tal vez su problema tiene algo que ver con un alias, función de shell, o shell script que está siendo recogido cuando se ejecuta sudo ls .

Para investigar un poco más esta idea puedes hacer lo siguiente:

$ set -x; sudo -l; sudo ls; set +x 

Esto permitirá una salida más verbosa de los comandos. El set -x es lo que permite esto. El set +x al final desactivará esto.

Entre tanto, ejecutaremos el sudo -l y el sudo ls para que podamos ver qué comandos se ejecutan realmente cuando estos se ejecutan.

Por ejemplo:

$ set -x; sudo -l; sudo ls; set +x
+ sudo -l
...
...
+ sudo ls
...
...
+ set +x

Su salida debería ser la misma, si ve algo distinto a sudo ls entonces es posible que tengas un alias o una función del shell que esté inhibiendo tu capacidad de ejecutar sudo ls .

2voto

Por la razón que sea, usted parece tener la targetpw opción establecida. En man sudoers :

targetpw   If set, sudo will prompt for the password of the user specified by the -u
           option (defaults to root) instead of the password of the invoking user when
           running a command or editing a file.  Note that this flag precludes the use
           of a uid not listed in the passwd database as an argument to the -u option.
           This flag is off by default.

Así que puedes hacer cosas como sudo -u diogopires ls introduciendo su propia contraseña, pero no puede ejecutar sudo -u diogopires visudo ya que esto se ejecutaría visudo como diogopires (y no como root como debería).

Así que, para arreglar esto

  • Arranque en modo de usuario único pulsando Cmd-S en el arranque
  • Ejecutar mount -uw /
  • Utilice visudo (sin sudo ) para eliminar la opción
  • Tipo Ctrl-D o correr reboot para reiniciar

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