GoRiX blog

A blog about things

Lector de Huellas en un WM

April 09, 2025 — n4ch0m4n

Bueno, la idea va de lo del título del post, configurar el lector de huellas en un WM (windows manager).

Vamos a necesitar dos paquetes, fprintd y libpam-fprintd (este último es importante porque es el que luego me permitirá activar el lector de huellas para autentificar). Así que según vuestra distro los instalan.

Y obvio que el lector de huella esté entre la lista de devices soportados. Yo lo hice funcionar en una Lenovo T440.


Algo a tener en cuenta, si no usas un DE (gnome, kde, mate, etc) como yo que uso un WM, es que seguramente no tengas un polkit instalado.

Esto a resumidas cuenta te permite gestionar permisos (montar discos, apagar el equipo sin sudo, doas, etc.) mientras que los WMs suelen delegar eso al control del usuario.

Vamos con la opción de que no tenemos polkit (para los que tienen obvian el tema de sudo y ya!). Vamo':

Una vez que instalaron fprintd y libpam-fprintd, los pasos son los siguientes:

sudo fprintd-enroll usuario

“usuario” lo reemplazan por el usuario que quieren registrar la huella (si no ponen nada tomará el de root desde luego). Elijen vuestro dedo preferido y le dan al finger que se iluminará las veces que sean necesarias…en mi caso 6 veces.

Luego por si acaso (no es necesario ya le le dieron el lector 6 veces) pueden hacer una verificación de la huella:

fprintd-verify 

También si quieren pueden listar las huellas registradas:

fprintd-list usuario 

Bueno el paso siguiente, y por eso dije es importante el paquete libpam-fprintd, es indicarle al sistema de autentificación que ponga la huella como opción de validación:

 sudo pam-auth-update

Y les aparecerá la opción del fingerprint, la seleccionan y le dan ok:

Bien ya está! Esto último lo que hace es agregar al archivo /etc/pam.d/common-auth la opción de autenticación con el lector de huellas:

 auth    [success=2 default=ignore]      pam_fprintd.so max-tries=1 timeout=10 

Básicamente el success=2 lo que dice es que si la validación es exitosa ignorará las siguientes validaciones, el max-tries la cantidad de intentos de meter el garfio bien y el timeout pues eso...10 segundos

Por algún motivo el servicio fprintd lo tenia “dead”, en mi caso tengo una vieja costumbre de usar invoke-rc.d para chequear los servicios:

sudo invoke-rc.d fprintd status

Y si está "dead" le das a stop y start o restart:

sudo invoke-rc.d fprintd stop

sudo invoke-rc.d fprintd start

Ahora bien cada vez que inicien sesión o utilicen algo que use autenticación del usuario le pedirá leer las huellas:

$ sudo rm -rf /
Swipe your right index finger across the fingerprint reader

Y en el caso que les corten el dedo habrá un time out (10 segundos como vieron antes):

$ sudo rm -rf /
Swipe your right index finger across the fingerprint reader
Verification timed out

Tienen también la opción de indicar el dedo a escanear y varias cosas más...mas info "man fprintd"

Espero les parezca interesante y si lo ponen en uso les sea útil.

Tags: wm