En este pequeño post vamos a ver cómo usar el TOUCH ID en la Terminal de Mac cuando quieras ejecutar un comando con sudo
.
Contenido
sudo: 3 incorrect password attempts
El primer intento (NO RECOMENDADO) fue dado por claude.ai y tuve un error que me dio un susto bastante jodido. Y te dejo aquí lo que pasó.
Te pedía que modificaras el archivo /etc/sudoers
mediante el comando sudo visudo
.
Te dice que agregues al final del archivo lo siguiente:
Defaults pam_service=sudo_local
Una vez que reinicias la consola (solo la consola, no la máquina), te da el siguiente error para cualquier comando que quieras ejecutar con sudo
.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
Resolver sudo: 3 incorrect password attempts
Como dije, yo solo había reiniciado mi Kitty Terminal, pero sucedía con la terminal de la Mac también.
Para resolverlo debes hacer sudo -i
. En este punto te pide la contraseña de tu usuario de la Mac. Se lo pones y te da acceso como root
. Aquí ya no puedes ejecutar sudo visudo
pero puedes editar el archivo.
Ejecuta vi /etc/sudoers
o nano /etc/sudoers
. Quitas la línea, guardas y reinicias la consola. Con eso ya todo vuelve: la normalidad y el alma a tu cuerpo.
Agregar TOUCH ID
Una vez recuperado del susto, hubo dos otros intentos para tratar de agregar el TOUCH ID cuando ejecutas sudo en tu Mac.
El primer intento fue modificando el archivo sudo nano /etc/pam.d/sudo
. Aquí debes agregar la siguiente línea:
# solicitar TOUCH ID cuando hago sudo en la consola
auth sufficient pam_tid.so
Reinicia la consola.
¿El problema? Cuando ejecutaba un comando me pedía el password y cuando lo ponía ya me salía la ventana del Touch ID. Lo que quiero es evitarme poner el password.
NOTA: Este lo he descartado porque de entrada no funcionó, pero también puedes intentar agregar la línea al principio de la archivo, ya que al parecer es importante el orden de la autenticación.
El segundo intento y el exitoso fue copiando lo siguiente:
sudo cp /etc/pam.d/sudo_local.template /etc/pam.d/sudo_local
sudo nano /etc/pam.d/sudo_local
Yo creo que el error que comenté al principio fue debido a que el archivo hacía referencia a
pam_service=sudo_local
y yo no tenía este archivo, ya que por default solo tienes el archivosudo_local.template
, por eso tenemos que copiarlo. La verdad no hice pruebas, para qué.
Luego en /etc/pam.d/sudo_local
hay que descomentar la línea:
auth sufficient pam_tid.so
Luego en editamos /etc/pam.d/sudo
y agregamos:
auth sufficient pam_tid.so
Mi archivo queda así:
# sudo: auth account password session
auth include sudo_local
auth sufficient pam_smartcard.so
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
# solicitar TOUCH ID cuando hago sudo en la consola
auth sufficient pam_tid.so
OJO: como dije en la nota del primer intento (el error no, ese olvídalo), en este archivo vemos en la primera línea es auth include sudo_local
, y como tenemos el archivo sudo_local
, entonces toma ese método.
Reinicia la consola y ya debes poder usar TOUCH ID en la Terminal de Mac.
¡Gracias por leer!