Setting up fprintd for swaylock: Difference between revisions

From Alpine Linux
No edit summary
(added redirect link)
Tag: New redirect
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
= Fingerprint Authentication with swaylock =
#REDIRECT [[Fingerprint Authentication with swaylock]]
 
This guide shows how to configure fingerprint authentication for swaylock on Alpine Linux, allowing you to unlock using either:
* <code>&lt;enter password&gt;</code> → <code>&lt;hit enter&gt;</code>
* <code>&lt;hit enter&gt;</code> → <code>&lt;touch fingerprint sensor&gt;</code>
 
== Installation ==
 
Install the fprintd package:
 
doas apk add fprintd
 
== Configure PolicyKit Permissions ==
 
Upon installation, standard users are not authorized to enroll fingerprints. Create a PolicyKit rule to allow members of the <code>input</code> group to manage fingerprints:
 
doas tee /etc/polkit-1/rules.d/50-fingerprint.rules << 'EOF'
polkit.addRule(function (action, subject) {
    if (action.id.indexOf("net.reactivated.fprint.") == 0) {
        if (subject.isInGroup("input")) {
            return polkit.Result.YES;
        }
    }
});
EOF
 
Add your user to the <code>input</code> group:
 
doas adduser $USER input
 
'''Note:''' You must log out and back in (or reboot) for the group membership to take effect.
 
== Enroll Fingerprints ==
 
If you previously enrolled fingerprints as root (or want to start fresh), delete existing enrollments:
 
# Delete fingerprints for current user
fprintd-delete $(whoami)
# If you accidentally enrolled as root, delete those too
doas fprintd-delete root
 
Enroll your fingerprint(s):
 
fprintd-enroll
 
Verify the enrollment works:
 
fprintd-verify
 
== Configure PAM for swaylock ==
 
Create the PAM configuration for swaylock:
 
doas tee /etc/pam.d/swaylock << 'EOF'
# Try password authentication first
auth sufficient pam_unix.so nullok
# If no password provided, try fingerprint
auth sufficient pam_fprintd.so ignore-empty-password
auth required pam_deny.so
# KWallet integration (optional)
-auth    optional        pam_kwallet.so
-auth    optional        pam_kwallet5.so
-session optional        pam_kwallet.so auto_start
-session optional        pam_kwallet5.so auto_start
EOF
 
== Usage ==
 
Once configured, swaylock will accept both authentication methods:
 
* '''Password authentication:''' Type your password and press Enter
* '''Fingerprint authentication:''' Press Enter without typing anything, then touch the fingerprint sensor
 
== Troubleshooting ==
 
* '''Permission denied during enrollment:''' Ensure you're in the <code>input</code> group and have logged out/in after adding the group
* '''Fingerprint recognized but doesn't unlock:''' Check that fingerprints are enrolled for the correct user (not root)
* '''No fallback to password:''' Verify the PAM configuration has <code>pam_unix.so</code> before <code>pam_fprintd.so</code>
 
== Extending to Other Services ==
 
You can apply similar fingerprint authentication to other services by adding the same PAM configuration pattern to files in <code>/etc/pam.d/</code> such as:
* <code>sudo</code> or <code>doas</code>
* <code>polkit-1</code>
* <code>login</code>
* <code>su</code>

Latest revision as of 03:52, 2 September 2025