A user-friendly Bash utility to easily manage fingerprint authentication on Ubuntu and Debian-based Linux systems.
This tool is designed to simplify checking hardware status, enrolling fingerprints, testing scanner verification, and safely managing PAM (Pluggable Authentication Modules) configurations. It is particularly optimized for EgisTec and LighTuning devices (such as USB ID 1c7a:0570 commonly found in Acer Swift series laptops) which require specific troubleshooting steps under Linux.
- 💻 Supported Operating Systems:
- Debian / Ubuntu and derivatives (Linux Mint, Pop!_OS, Zorin OS, etc.): Fully supported out-of-the-box, including automated PAM enablement/disablement.
- Other Distributions (Arch Linux, Fedora, RHEL, openSUSE, etc.): Commands like
status,enroll,test, andclearwill work. However,enableanddisablecommands will not work because these distributions do not use Debian'spam-auth-updatemanager. PAM must be configured manually or viaauthselecton those systems.
- 🔌 Supported Hardware:
- Works with any fingerprint scanner supported by the upstream libfprint project (including models from Elan, Synaptics, Goodix, Broadcom, and EgisTec).
- 🔍 Status Diagnostics: Check if your fingerprint hardware is recognized, if the
fprintdsystem service is running, which fingers are enrolled, and if PAM integration is enabled. - ✋ Interactive Enrollment: Choose which finger to enroll with guided terminal prompts.
- 🧪 Verification Test: Test the reader to see if it successfully matches your print without triggering lockouts.
- 🔐 PAM Configuration Integration: Safe, automated enablement/disablement of fingerprint login for
sudocommands and lock screens. - ⚡ Attempts Optimization: Configures the system to give you 3 attempts before falling back to your password prompt (overriding Ubuntu's default of 1).
-
Clone the repository:
git clone https://github.com/<your-username>/<repo-name>.git cd <repo-name>
-
Make the script executable:
chmod +x fingerprint-tool.sh
-
Check device status:
./fingerprint-tool.sh status
Run the script with one of the following commands:
./fingerprint-tool.sh [command]| Command | Description |
|---|---|
status |
Displays device detection, enrolled fingerprints, and PAM status. |
enroll |
Initiates fingerprint enrollment for a selected finger. |
test |
Tests the scanner to verify if your swipe matches the enrolled fingerprint. |
enable |
Enables fingerprint unlock system-wide (requires sudo). |
disable |
Disables fingerprint unlock system-wide (requires sudo). |
clear |
Deletes all enrolled fingerprints for the current user. |
help |
Shows the help menu. |
Fingerprint sensors generate significant heat when scanning repeatedly. If the sensor disconnects during enrollment:
- Wait 2–3 minutes for the physical reader to cool down.
- Wipe the scanner with a clean, dry microfiber cloth.
- Pace your swipes: When enrolling, pause 2 to 3 seconds between each touch/swipe.
- Some fingerprint readers (like the
1c7a:0570) are registered as swipe devices in Linux even if they look like touch sensors. Ensure you are doing a slow, firm downward swipe (from joint to tip) rather than a simple tap.
If the lock screen does not unlock but the terminal test works, it means another process is holding a claim on the scanner:
- Ensure the GNOME Settings (Users/Fingerprint panel) app is closed.
- Close any terminal running a test/enrollment script.
- If needed, reboot the system to force-release all USB claims.
This project is open-source and available under the MIT License.