在Archlinux上为联想小新Air14配置指纹

834 字
4 分钟
在Archlinux上为联想小新Air14配置指纹
Update

现在指纹可堪使用了,但 Linux 下的设计让我觉得并不好用。最终反而是输密码更加直接和高效。 不好用的表现:登录时允许指纹识别的时间太短,短到我都来不及将手指放到笔记本的指纹识别模块上;可用场景太少,例如进行双因素认证 (F2A) 时浏览器有提示,但指纹识别无效。

使用 CachyOS 已经有一段时间了,我对 Linux 总体还是比较满意的。别的不说,至少续航这一块完爆 Windows。

不过近期有一点尴尬的是,Linux 没有原生支持指纹识别,使得这部机自带的指纹识别器毫无用武之地。

所以今天我就要来配置这部笔记本的指纹识别。

本文参考 fprint - Arch Linux 中文维基

先决条件#

Wiki

首先需要您的设备上有兼容的指纹识别设备。可以查看兼容设备清单和不兼容设备清单来确定是否支持您的指纹识别设备。

使用 lsusb 查看指纹设备信息:

Terminal window
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 3151:3020 YICHIP Wireless Device
Bus 001 Device 003: ID 28bd:0937 XP-Pen UGEE S640
Bus 001 Device 004: ID 174f:2426 Syntek Integrated Camera
Bus 001 Device 005: ID 06cb:00be Synaptics, Inc.
Bus 001 Device 006: ID 8087:0032 Intel Corp. AX210 Bluetooth
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

这里的 06cb:00be 就是我的指纹识别器的 USB ID。

虽然我没有在 libfprint 的兼容设备清单上找到它,但不兼容设备清单给出了可用的其他驱动:synaTudor

克隆该项目,按照 README 的说明安装驱动,接下来就可以参考 Wiki 的说明了。

安装#

安装 fprintd 和 libfprint-tod-git。以防万一我还安装了 imagemagick。

配置#

登录配置#

为了同时使用密码或指纹解锁,在 /etc/pam.d/sddm 的顶部添加:

Terminal window
auth [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_fprintd.so

在 /etc/pam.d 目录下的其他文件中(如 kde 和 system-local-login),也可以配置使用指纹,只需要添加:

Terminal window
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_fprintd.so

这将先提示输入密码,然后在空白密码字段上按 Enter 将进行指纹认证。

Tip

以上配置同时支持密码和指纹认证。如果只允许指纹认证,只需要添加:

Terminal window
auth sufficient pam_fprintd.so
Warning

此设置对 su 和 sudo 是一个安全漏洞,因为它允许后台进程在不提示用户的情况下获取权限。参见:CVE-2024-37408

如果想同时提示指纹和密码输入,可以安装 pam-fprint-grosshack。要使用此软件包,请将以下行添加到所需文件的顶部:

Terminal window
auth sufficient pam_fprintd_grosshack.so
auth sufficient pam_unix.so try_first_pass nullok

创建指纹#

对于 KDE,安装 polkit-kde-agent 身份认证组件。

如果你更需要 GUI 界面,在 KDE 的“配置指纹身份验证”(系统设置 > 用户)中可以处理指纹。

如果你更喜欢命令行,在终端运行 fprintd-enroll 命令录入指纹。

默认认证右手食指。用右手食指在指纹传感器上“滑动”,直到提示成功。

创建的指纹数据存放在 var/lib/fprint/ 中。

可以使用 fprintd-verify 命令验证录入的指纹。

为所有手指录入指纹
Terminal window
$ fprintd-delete "$USER"
$ for finger in {left,right}thumb,{index,middle,ring,littlefinger}; do fprintd-enroll -f "$finger" "$USER"; done

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

在Archlinux上为联想小新Air14配置指纹
https://blog.watermelonabc.top/p/170bf07d/
作者
Watermelonabc
发布于
2025-04-09
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Watermelonabc
追寻各色世界
🎉 抓到你啦
欢迎来到 Watermelonabc 的 Blog!这个博客主要是技术向的内容,现在也有生活元素了 OwO
分类
文章目录