Guida verificata con Ubuntu: 22.04 24.04 26.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
In questa guida viene spiegato come installare e configurare l'interfaccia di un lettore biometrico di impronte digitali per effettuare l'autenticazione login/logout tramite Ubuntu o permettere di accedere a siti o applicazioni (anche da riga di comando) che richiedono privilegi di amministrazione e avviare il blocca schermo.
A partire da Ubuntu 20.04, il supporto per i lettori di impronte digitali è diventato nativo nel sistema tramite il software fprintd che rende il servizio gestibile dalle impostazioni di sistema e il gestore di login GDM.
Preparativi
Il riconoscimento e l'attivazione su Ubuntu dipendono dal tipo di hardware utilizzato del lettore impronte digitali, pertanto prima di procedere, è necessario rilevare i sensori del proprio computer.
Sensori Usb
Verificare che sia riconosciuto il lettore di impronte dal sistema operativo, digitando nel terminale il comando:
lsusb | grep -i fingerprint
l'output dovrebbe mostrare l'ID del produttore e del dispositivo (ad esempio ID 138a:0011).
Poiché non sempre compare la dicitura «fingerprint», cercare nomi di produttori comuni come: Validity Sensors, AuthenTec, SGS Thomson, Broadcom Corp., Shenzhen Goodix o Elan Microelectronics
- Annotare l'ID numerico.
È possibile consultare l'elenco dei dispositivi supportati dal driver principale (libfprint) alla pagina ufficiale del progetto.
Sensori SPI
I sensori di impronta digitale basati su interfaccia SPI (molto comuni nei portatili ASUS, Huawei e Lenovo più recenti, o su moduli per schede come Raspberry Pi) non compaiono usando il comando lsusb.
Se il sensore è integrato in un computer portatile moderno, i sensori SPI (spesso prodotti da Elantech, Goodix o Focaltech) sono mappati tramite il firmware ACPI del sistema.
Verificare la presenza del chip SPI leggendo i messaggi del kernel all'avvio o controllando i dispositivi ACPI registrati, digitando nel terminale il comando:
sudo dmesg | grep -iE "spi|fingerprint|elan|goodix"
In alternativa, cercare nella directory dei dispositivi SPI del kernel per trovare l'ID ACPI (ad esempio ELAN7001 e ELAN70A1):
ls /sys/bus/spi/devices/
Se si tratta di un modulo sensore esterno SPI standalone (es. Raspberry Pi o prototipazione, come i moduli Synochip o simili) ai pin GPIO di una scheda con Ubuntu, assicurarsi che la porta spidev sia visibile, digitando nel terminale il comando:
ls -l /dev/spidev*
Installazione
Nella maggior parte delle installazioni di Ubuntu, i pacchetti necessari sono già presenti.
In caso contrario installare i pacchetti necessari, digitando nel terminale il seguente comando:
sudo apt install fprintd libpam-fprintd
Configurazione
Abilitazione dell'autenticazione (PAM)
Per utilizzare l'impronta digitale per il login o con il comando di amministrazione sudo, è necessario che il profilo PAM (Pluggable Authentication Modules) sia attivo in modo sicuro.
Per motivi di sicurezza, PAM non permette l'inserimento simultaneo. Se il lettore è attivo, il sistema attenderà la scansione. Se si desidera usare la password, basterà attendere il timeout del sensore (solitamente 10-20 secondi) o premere Invio a vuoto nel terminale per forzare la richiesta della password.
Digitare in un terminale il seguente comando:
sudo pam-auth-update
Utilizzare i tasti freccia e la barra spaziatrice per assicurarsi che la voce Fingerprint authentication sia selezionata e sia marcata con un asterisco [*].
Selezionare OK e premere Invio.
Per resettare il proprio PAM ai valori predefiniti di sistema digitare nel terminale il comando:
sudo pam-auth-update --force
Accesso
Da interfaccia grafica
In Ubuntu l'ambiente grafico GNOME offre una configurazione nativa.
Avviare le Impostazioni e selezionare Sistema → Utenti.
Selezionare l'utente e fare clic su Accesso con impronta digitale.
- Seguire le istruzioni per registrare le dita desiderate (si consiglia di registrarne più di una).
Da terminale
Se si utilizza un ambiente desktop diverso (es. XFCE, Mate ecc.) o si preferisce la riga di comando, è possibile registrare l'impronta con il comando:
fprintd-enroll
Verrà chiesto di passare il dito sul sensore ripetutamente (solitamente 5-10 volte) finché la registrazione non sarà completata o non compare il messaggio «Enroll complete».
Risoluzione problemi
Conflitto con Fingerprint GUI
Se in precedenza era stato installato manualmente Fingerprint GUI tramite PPA, è fondamentale rimuoverlo per evitare conflitti con il nuovo sistema. Rimuovere tutti i file binari, le librerie condivise, altri file.
Rimuovere software in conflitto:
sudo apt purge fingerprint-gui thinkfinger-tools fprint-demo
Assicurarsi che non siano rimaste configurazioni residue, quindi annullare tutte le modifiche apportate ai file di configurazione del sistema che vanno rimosse (in particolare per i file contenuti nella cartella /etc/pam.d/).
Sensore non rilevato
Alcuni sensori moderni (specialmente quelli montati su laptop HP, Dell o Lenovo recenti) richiedono driver proprietari o firmware specifici non inclusi in libfprint. In questi casi verificare se il produttore fornisce driver per Linux o consultare il forum di comunità del laptop.
I lettori di impronte digitali SPI per hobbistica non vengono quasi mai gestiti direttamente da libfprint. Comunicano tramite comandi seriali incapsulati in pacchetti SPI su registri specifici. Per riconoscerli e usarli affidarsi a script o librerie specifiche per il modello di chip (ad esempio librerie Python basate su spidev o i driver forniti dal produttore del modulo hardware).
È possibile verificare la presenza di questi sensori controllando i log di sistema, digitando nel terminale il seguente comando:
dmesg | grep -i finger
Se non si riesce a identificare il dispositivo, è possibile interrogare direttamente il servizio di gestione delle impronte, digitando nel terminale il comando:
fprintd-list $USER
Se il servizio risponde con «Found device: ...», il lettore è correttamente riconosciuto e pronto all'uso.
