现在指纹可堪使用了,但 Linux 下的设计让我觉得并不好用。最终反而是输密码更加直接和高效。
使用 CachyOS 已经有一段时间了,我对 Linux 总体还是比较满意的。别的不说,至少续航这一块完爆 Windows。
不过近期有一点尴尬的是,Linux 没有原生支持指纹识别,使得这部机自带的指纹识别器毫无用武之地。
所以今天我就要来配置这部笔记本的指纹识别。
先决条件
使用 lsusb
查看指纹设备信息:
1 | $ lsusb |
这里的 06cb:00be
就是我的指纹识别器的 USB ID。
虽然我没有在 libfprint 的兼容设备清单上找到它,但不兼容设备清单给出了可用的其他驱动:synaTudor
克隆该项目,按照 README 的说明安装驱动,接下来就可以参考 Wiki 的说明了。
安装
安装 fprintd
和 libfprint-tod-git
。以防万一我还安装了 imagemagick
。
配置
登录配置
为了同时使用密码或指纹解锁,在 /etc/pam.d/sddm
的顶部添加:
1 | auth [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so try_first_pass likeauth nullok |
在 /etc/pam.d
目录下的其他文件中(如 kde
和 system-local-login
),也可以配置使用指纹,只需要添加:
1 | auth sufficient pam_unix.so try_first_pass likeauth nullok |
这将先提示输入密码,然后在空白密码字段上按 Enter 将进行指纹认证。
以上配置同时支持密码和指纹认证。如果只允许指纹认证,只需要添加:
1 | auth sufficient pam_fprintd.so |
此设置对 su
和 sudo
是一个安全漏洞,因为它允许后台进程在不提示用户的情况下获取权限。参见:CVE-2024-37408
如果想同时提示指纹和密码输入,可以安装 pam-fprint-grosshack
。要使用此软件包,请将以下行添加到所需文件的顶部:
1 | auth sufficient pam_fprintd_grosshack.so |
创建指纹
对于 KDE,安装 polkit-kde-agent
身份认证组件。
在 KDE 的 “配置指纹身份验证”(系统设置 > 用户)中处理指纹。这是 GUI 界面。
如果你更喜欢命令行,在终端运行 fprintd-enroll
命令录入指纹。
默认认证右手食指。用右手食指在指纹传感器上 “滑动”,直到提示成功。
创建的指纹数据存放在 var/lib/fprint/
中。
可以使用 fprintd-verify
命令验证录入的指纹。
1 | $ fprintd-delete "$USER" |