Terminal: usar TouchID para validar sudo

Si tienes un MacBook Pro con TouchID, puedes realizar esta modificación del sistema para poder utilizar TouchID en lugar de tener que teclear cada vez la contraseña[note]Lo que es muy práctico y si me permitís, un ¡WOHOOO! en toda regla[/note].

Hay que tener en cuenta que aunque la modificación que vamos a hacer el sistema es muy sencilla, sin embargo, es crítica, por lo que puedes cargarte el sistema así que vamos a ir con cuidado.

Para empezar tienes que editar con derechos de root, así que para evitar problemas vamos a hacerlo fácil. Como Textwrangler ya no está en el mercado, puedes descargar BBedit que te permitirá hacer esta tarea más fácil. Este poderoso editor de textos tiene una licencia de 30 días, y luego recorta sus capacidades PRO para dejarte una versión limitada, pero suficiente para ésta y otras tareas con texto puro. Es un editor muy competente, pensado para código o en estos casos, para trabajar con archivos del sistema, ya que la aplicación se encarga de gestionar los permisos de los archivos cuando es necesario para su edición.

Así que vamos a editar el correspondiente archivo para activar sudo con TouchID:

  1. Pincha en el Finder y usa el atajo de teclado ⌘⇧G
  2. Introduce la ruta /etc/pam.d/sudo
  3. Arrastra el archivo sudo encima del icono de BBedit
  4. Cuando se abra y quieras editarlo, se abrirá un cuadro de diálogo solicitando permiso para editar y te pedirá tu contraseña de administrador
  5. Introduce la línea que te permitirá usar TouchID con sudo después de la primera línea comentada:
    auth sufficient pam_tid.so
    
  6. Guarda cambios, te volverá a pedir la contraseña del administrador

Ahora, cada vez que vayas a usar sudo, te aparecerá un cuadro de diálogo en el que el sistema te solicitará la entrada de tu huella o que introduzcas tu contraseña de administrador.

Los “peros”

Este sistema tiene un problema: no puedes utilizarlo cuando utilizas sudo para, por ejemplo, conexiones remotas con SSH o cualquier tipo de identificación que esté fuera del entorno local del propio Mac porque la identificación con TouchID no se transmite a través de la red. Es necesario, entonces, introducir la contraseña de administrador.

Un poco de background

Este truco lleva un par de días rulando pero creo que es necesario acompañarlo con un poco de teoría para saber qué estamos haciendo.

En Linux, y por extensión en macOS, nos podemos encontrar con un archivo de configuración PAM que se ubica en:

/etc/pam.conf

o un directorio, que es el caso de macOS[note]la presencia de este directorio ignora la existencia del archivo de configuración .conf[/note]:

/etc/pam.d/

En el que se guardan una serie de archivos que definen las políticas a seguir para autenticación usando diferentes métodos y su nivel de acceso. Evidentemente, tocar en esta carpeta y sus archivos a lo loco puede causar más de un problema, así que hay que saber muy bien qué estás haciendo, y sobre todo, por qué.

En nuestro caso, hemos usado esta línea:

auth sufficient pam_tid.so

Voy a explicar qué es cada uno de los elementos.

auth: este tipo de módulo proporciona dos aspectos de autenticación del usuario. En primer lugar, establece que el usuario es quien dice ser, instruyendo a la aplicación para que solicite al usuario una contraseña u otro medio de identificación. En segundo lugar, el módulo puede otorgar la membresía de grupo u otros privilegios a través de sus propiedades de concesión de credenciales. Si te fijas en el pantallazo de autorización, ésta se puede producir por otros métodos, como una tarjeta de identificación o el uso de un directorio externo.

sufficient: el éxito de tal módulo es suficiente para satisfacer los requisitos de autenticación de la pila de módulos[note]si un módulo requerido previo ha fallado se ignora el éxito de éste[/note]. Un fallo de este módulo no se considera fatal para satisfacer la aplicación que este tipo ha tenido éxito. Si el módulo tiene éxito, el framework PAM a través de una API devuelve el éxito a la aplicación inmediatamente sin intentar otros módulos.

pam_tid.so se encarga de gestionar TouchID que devolverá el sí o no para seguir adelante.

¿Por qué sufficient como política y no una más restrictiva como required requisite que también están disponibles para hacer una autenticación vía la API de PAM? Dos razones: sufficient permite que si la autenticación no es correcta en un primer intento se repita y adicionalmente, el nivel de seguridad de respuesta ante la identificación de TouchID es lo suficientemente alto[note]Es decir, está bastante claro quién se está identificando por la singularidad de nuestra huella[/note] que se devuelve el estado OK sin la necesidad de ejecutar ningún otro módulo adicional.

0 0 votos
Article Rating
Subscribe
Notify of
3 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
Fe Ro
Fe Ro
6 years ago

Me acuerdo del libro de MS-DOS que venia con los PCs , hay algo parecido a UNIX para conocer los nombres de los comandos en iMac, por que estoy perdido cuando uso el terminal solo lo que nos cuentas.

Wynztech
Wynztech
Responder a  Fe Ro
6 years ago
Fe Ro
Fe Ro
Responder a  Wynztech
6 years ago

Gracias por el aporte, pero está en ingles y no tengo ni idea.

3
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x