Fingerprint and biometrics setup
This guide uses a USB fingerprint reader with the fprintd service. The HID DigitalPersona 4500 reader (ID 05ba:000a) is reported to work. The Arch Wiki fprint page covers the base setup. The steps below add PAM changes so that a fingerprint or password works at login.
-
Install the fingerprint daemon. The Garuda
input-devices-supportpackage depends onfprintd.Terminal window sudo pacman -S --needed fprintd -
Enroll your fingerprints in the terminal. The Arch Wiki fprint page has the full enrollment and verification steps.
Terminal window fprintd-enroll -
Back up both PAM files before you edit them.
Terminal window sudo cp /etc/pam.d/system-local-login /etc/pam.d/system-local-login.baksudo cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak -
Open
/etc/pam.d/system-local-loginand add the lineauth sufficient pam_fprintd.soabove the block. The new file should look like this.%PAM-1.0 auth sufficient pam_fprintd.soauth include system-loginaccount include system-loginpassword include system-loginsession include system-loginThis tells the system that an authentication via the fingerprint is a sufficient login method, and not strictly a password.
-
Open
/etc/pam.d/system-auth. The original guide changes more lines than the Arch Wiki example. Compare the result with your backup before you save. The complete file looks like this.Terminal window sudo micro /etc/pam.d/system-auth%PAM-1.0 auth required pam_faillock.so preauth# Optionally use requisite above if you do not want to prompt for the password# on locked accounts.-auth [success=4 default=ignore] pam_systemd_home.soauth [success=1 default=ignore] pam_succeed_if.so service = plasmaloginauth [success=2 default=ignore] pam_fprintd.soauth [success=1 default=bad] pam_unix.so try_first_pass nullokauth [default=die] pam_faillock.so authfailauth optional pam_permit.soauth required pam_env.soauth required pam_faillock.so authsucc# If you drop the above call to pam_faillock.so the lock will be done also# on non-consecutive authentication failures.-account [success=1 default=ignore] pam_systemd_home.soaccount required pam_unix.soaccount optional pam_permit.soaccount required pam_time.so-password [success=1 default=ignore] pam_systemd_home.sopassword required pam_unix.so try_first_pass nullok shadowpassword optional pam_permit.so-session optional pam_systemd_home.sosession required pam_limits.sosession required pam_unix.sosession optional pam_permit.soThe line
auth [success=1 default=ignore] pam_succeed_if.so service = plasmaloginlets the Plasma Login Manager login accept a fingerprint or a password, but not both. Plasma Login Manager uses the PAM serviceplasmalogin. -
Reboot and test the login with your fingerprint. Then test
sudoin a terminal.
After this, sudo asks for a fingerprint first. After a timeout it asks for your password. Polkit dialogs do not use the fingerprint with this setup. The Arch Wiki Fprint page states that fingerprint recognition only works for the login manager and sudo, not polkit, unless you add a polkit rule.
The original guide also mentions a GUI option. Open KDE Settings > Users > [Select User Account] > Configure Fingerprint Authentication to add or delete fingerprints.