fprint (Español)
Desde la página web de fprint:
- El proyecto fprint pretende llenar un vacío en el escritorio Linux: soporte para dispositivos lectores de huellas dactilares de uso doméstico.
La idea es utilizar el lector de huellas dactilares integrado en algunos portátiles para iniciar sesión utilizando PAM. Este artículo también explicará cómo usar una contraseña normal como método de respaldo para iniciar sesión (no se recomienda usar únicamente el lector de huellas dactilares debido a numerosas razones).
Prerrequisitos
Puedes comprobar si tu dispositivo es compatible consultando la lista de dispositivos compatibles o la lista de dispositivos no compatibles. Para comprobar cuál tienes, escribe:
$ lsusb
La herramienta lsusb está disponible dentro del paquete usbutils.
Installation
Instale el paquete fprintd. imagemagick también puede ser necesario.
Algunos dispositivos requieren un "fork" diferente de libfprint, los cuales no han sido combinados (¿todavía?) con el paquete principal libfprint:
- libfprint-tod — Para sensores táctiles.
- libfprint-elanmoc2 — Para ELAN
04f3:0c4c
. Esperando merge.
- libfprint-elanmoc2-newdrvs — Experimental para
04f3:0c4c
o un04f3:0c00
. Esperando merge.
- https://gitlab.freedesktop.org/geodic/libfprint/-/tree/elanmoc2 || libfprint-elanmoc2-newdrvs-gitAUR
Configuración
Configuración de inicio de sesión
- Si usas GDM, la opción de huella digital ya está disponible en el menú de inicio de sesión (si no, añádase al grupo de usuario
input
). ¡Puedes saltarte esta sección! - Si utiliza SDDM, consulte SDDM#Using a fingerprint reader.
Añade pam_fprintd.so
como sufficient al principio de la sección auth de /etc/pam.d/system-local-login
:
/etc/pam.d/system-local-login
auth sufficient pam_fprintd.so auth include system-login ...
Esto intentara utilizar el inicio de sesión mediante huella dactilar y, si falla o no encuentra ninguna firma de huella dactilar en el directorio personal del usuario, procede al inicio de sesión mediante contraseña.
También puede modificar otros archivos en /etc/pam.d/{login,su,sudo,gdm,lightdm}
de la misma manera. Por ejemplo /etc/pam.d/polkit-1
para la autenticación basada en polkit (GNOME y muchos otros entornos de escritorio) o /etc/pam.d/kde
para desbloquear la pantalla de bloqueo de KDE.
Añadiendo pam_fprintd.so
como sufficient a cualquier fichero de configuración en /etc/pam.d/
cuando una firma de huella dactilar está presente sólo preguntará por la autenticación de huella dactilar. Esto evita el uso de una contraseña si no puedes utilizar Ctrl+c
en el escaneo de la huella digital (debido a la falta de un shell). Para utilizar tanto una contraseña como una huella digital en una interfaz gráfica, añada la siguiente línea al principio de cualquier archivo necesario:
auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient pam_fprintd.so ...
Esto solicitará una contraseña; si se pulsa Enter
en un campo en blanco, se procederá a la autenticación de la huella dactilar.
Si desea solicitar la huella dactilar y la contraseña al mismo tiempo, puede utilizar pam-fprint-grosshackAUR. Esto puede ser necesario para algunos programas gráficos que no permiten la introducción de contraseñas en blanco, como el agente polkit integrado de Gnome. Para utilizar este paquete, añada las siguientes líneas al principio de cualquier archivo necesario:
auth sufficient pam_fprintd_grosshack.so auth sufficient pam_unix.so try_first_pass nullok ...
Crear firma de huella digital
Necesitará tener un agente de autenticación en ejecución antes de poder enrolar.
Para añadir una firma para un dedo, ejecute:
$ fprintd-enroll
o crear una nueva firma para todos los dedos:
$ fprintd-delete "$USER" $ for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f "$finger" "$USER"; done
Se le pedirá que escanee el dedo indicado. Pase el dedo índice derecho cinco veces. Después de eso, la firma se crea dentro de /var/lib/fprint/
.
También puede enrolar sin un agente de autenticación:
# fprintd-enroll user
Para verificar la huella digital recién creada, utilice:
$ fprintd-verify
Para obtener más información, consulte fprintd(1).
Restringir el enrolamiento
De forma predeterminada, todos los usuarios pueden registrar nuevas huellas dactilares sin que se les solicite la contraseña o la huella digital. Puede cambiar este comportamiento mediante reglas polkit.
Hay dos ubicaciones que contienen los archivos de configuración de polkit:
/etc/polkit-1/rules.d/
/usr/share/polkit-1/rules.d/
/usr/share/polkit-1/rules.d/
porque serán sobreescritos en la actualización. Cópialos primero dentro de /etc/polkit-1/rules.d/
.En el siguiente ejemplo, sólo root puede registrar huellas digitales:
/etc/polkit-1/rules.d/50-net.reactivated.fprint.device.enroll.rules
polkit.addRule(function (action, subject) { if (action.id == "net.reactivated.fprint.device.enroll") { return subject.user == "root" ? polkit.Result.YES : polkit.Result.NO } })
Solución de problemas
No devices available (No hay dispositivos disponibles)
Si su dispositivo compatible no se encuentra o se afirma que ya está abierto (en uso), compruebe los registros fprintd.service
en el journalctl.
Puede encontrar entradas de registro como:
fprintd[2936592]: Corrupted message received fprintd[2936592]: Ignoring device due to initialization error: unsupported firmware version
Asegúrate de que el firmware de tu dispositivo está actualizado con Fwupd.
gdm se bloquea al mostrar el prompt de login después de suspender
Este problema se describe en en el repositorio de libfprint. La respuesta de los desarrolladores es:
- Mi conjetura ahora mismo es que estamos desconectando el dongle BT (Bluetooth) USB mientras se está inicializando. Entonces todo se atasca mientras btusb está tratando de cargar el firmware (esto tiene un tiempo de espera de 10s, explicando el bloqueo de poco menos de 10s que estamos viendo). Desconectar el dongle bluetooth de esta manera se espera que suceda cuando el interruptor rfkill se activa, por lo que es normal. Sólo parece que el caso en que el dispositivo se desconecta de repente no se maneja correctamente y los tiempos de espera. Traducido del Ingles
La solución propuesta es crear:
/etc/modprobe.d/bluetooth-blacklist.conf
blacklist btusb
O ejecutar directamente:
# rmmod btusb
Entonces no debería intentar inicializar el dispositivo.
Error inesperado al suspender el dispositivo
Este problema está descrito en el repositorio libfprint:
- Necesitas configurar tu laptop para que no suspenda a RAM sino que haga s2idle. Puede que necesites cambiar la BIOS a "modo Windows".
La autenticación por huella dactilar no está surtiendo efecto en el agente Polkit.
After adding fingerprint rules to Linux PAM, fingerprint recognition only works for SDDM and sudo, but not for polkit.
Copie el archivo 50-default.rules
en /etc/
y cambie el nombre del grupo wheel
por su grupo de usuario.
# cp /usr/share/polkit-1/rules.d/50-default.rules /etc/polkit-1/rules.d/
/etc/polkit-1/rules.d/50-default.rules
polkit.addAdminRule(function(action, subject) { return ["unix-group:wheel"]; });
Depuración
Utilice la siguiente variable de entorno y bandera de línea de comandos:
# G_MESSAGES_DEBUG=all /usr/lib/fprintd -t