fprint (Español)

From ArchWiki

Esta traducción de fprint fue revisada el 2024-03-08. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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

Nota: La lista de dispositivos compatibles no se actualiza regularmente y no está completa. Merece la pena probar su dispositivo siguiendo las instrucciones de esta página aunque no aparezca en esa lista, antes de recurrir a los paquetes de AUR.

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.
https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod || libfprint-tod-gitAUR
  • libfprint-elanmoc2 — Para ELAN 04f3:0c4c. Esperando merge.
https://gitlab.freedesktop.org/Depau/libfprint/-/tree/elanmoc2 || libfprint-elanmoc2-gitAUR
  • libfprint-elanmoc2-newdrvsExperimental para 04f3:0c4c o un 04f3:0c00. Esperando merge.
https://gitlab.freedesktop.org/geodic/libfprint/-/tree/elanmoc2 || libfprint-elanmoc2-newdrvs-gitAUR

Configuración

Configuración de inicio de sesión

Nota:

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/
Nota: No deberías modificar los archivos bajo /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