在 Pop! OS 22.04 上使用指纹扫描器
注意:这篇文章发布已有两年多时间,因此其中包含的信息可能已过时。如果您发现有问题,请留下评论,我公司会尽力更正。
2023 年 4 月 30 日 - 阅读时长 11 分钟
我在办公时使用几台联想 ThinkPad 笔记本电脑(T490 和 P14s),虽说它们都配备了指纹扫描器,但我以前从未真正想过使用这一功能。我曾试过在一台旧的惠普笔记本电脑的 Linux 系统上让指纹扫描器正常运行,不过那次经历让我没了再次尝试的想法。
后来我尝试在安装了 Pop! OS 的 ThinkPad 上让指纹扫描器工作,结果却挺简单的。因为驱动程序早已存在,所以只需安装正确的软件并添加相应设置就行。
本文假设您的机器配备了与 Linux 兼容的指纹扫描器,并且已经为该扫描器安装了驱动程序。
一、安装软件
在将设置添加到系统之前,您需要安装一些软件。
- fprintd - 用于访问指纹读取器的 D - Bus 守护进程。它主要是从硬件读取指纹数据,并将这些数据提供给其他软件包。
- libpam - fprintd - 通过 fprintd 实现指纹认证的 PAM 模块(可插拔认证模块)。它能让您使用 fprintd 软件包中的数据进行身份验证。
这些软件包可以通过 apt 轻松安装。
sudo apt-get install fprintd libpam-fprintd
安装好这些软件包后,我们就可以配置 PAM 系统,让它接受指纹作为一种认证机制。为此,我们以 root 用户身份运行 pam - auth - update 命令。
sudo pam-auth-update
根据您安装的认证系统的不同,这应该会显示类似以下的内容。
使用方向键突出显示“Fingerprint authentication”(指纹认证)选项,然后使用空格键选择它。接着,使用制表键选择“OK”(确定),再按一次空格键。
这将在 PAM 系统中启用指纹认证模块。
或者,您也可以运行以下命令,一次性完成此操作。
sudo pam-auth-update --enable fprintd
完成上述操作后,您就可以将指纹添加到认证系统中了。
二、添加指纹
向 fprintd 系统添加指纹有两种方法,您可以使用命令行,也可以使用设置菜单。我们先来看命令行的方法。
命令行方法
要在 PAM 系统中注册指纹,请运行以下命令(“enroll” 拼写中有两个 “l”)。
fprintd-enroll
请注意,这里我们不使用 sudo。这一点很关键,因为我们希望为当前用户进行认证,而不是为 root 用户。
通过正常认证后,您应该会看到一个提示,要求您注册指纹。只需将手指放在读取器上,它应该会启动并推进提示。您需要重复此操作几次,以便正确注册您的手指。此操作将生成以下输出。
fprintd-enroll
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed
默认情况下,这会注册您的右手食指。例如,您只需传递 --finger 标志来指定另一个手指进行扫描。
fprintd-enroll --finger left-index-finger
您可以使用不同的手指定义添加任意数量的指纹。
要查看您已经注册了哪些指纹,您可以使用 fprintd - list 命令,后跟您要查询的用户。
fprintd-list $USER
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user philipnorton42 on Synaptics Sensors (press):
- #0: right-index-finger
- #1: left-index-finger
我们可以使用环境变量 $USER 作为当前登录用户的快捷方式。在系统中访问其他用户的指纹需要 sudo 权限。
如果您想验证您的指纹是否能正常工作,您可以使用 fprintd - verify 命令。在不使用任何标志的情况下,此命令可用于验证您的默认指纹。
fprintd-verify
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
- #0: right-index-finger
- #1: left-index-finger
Verify started!
Verifying: right-index-finger
Verify result: verify-match (done)
您也可以传递 --finger 标志来指定要测试的手指。
fprintd-verify --finger left-index-finger
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
- #0: right-index-finger
- #1: left-index-finger
Verify started!
Verifying: left-index-finger
Verify result: verify-match (done)
最后,您还可以使用 fprintd - delete 命令删除指纹,只需传入您要删除指纹的用户,或者使用 - f 标志删除单个指纹。
fprintd-delete $USER -f left-index-finger
如果您想重置指纹并同时重新注册所有手指,您可以使用以下 bash 脚本来实现。
fprintd-delete "$USER"
for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f "$finger" "$USER"; done
这将为您的所有手指建立索引,但这意味着如果所有手指都已注册,您就无需担心之前注册了哪些手指。
设置菜单方法
打开设置菜单,然后打开“用户”选项卡。在这个屏幕上,您应该会看到一个“Fingerprint Login”(指纹登录)选项。点击此选项将显示以下对话框(假设您已经按照上述说明注册了左手和右手食指)。
您可以通过此界面管理您的指纹。
如果您没有看到此选项,请重启您的机器,以便让 Gnome 识别系统中指纹读取器软件的存在。
三、结论
将指纹添加到系统后,您现在可以使用指纹扫描器进行身份验证。由于 Pop! OS 使用 Gnome,因此使用指纹进行管理和认证的功能已经内置。
此外,当您运行 sudo 命令或其他需要认证且支持 PAM 的操作时,您也可以使用指纹进行身份验证。
要让这一切正常工作,主要的难点在于您的机器上安装了正确的设备。值得庆幸的是,联想在他们的 ThinkPad 笔记本电脑中使用了兼容的设备,但在其他机型上可能会有所不同。如果您想了解您的驱动程序是否受支持,请查看 fprintd 网站上的支持硬件列表。
如今,Drupal 开发在互联网领域也占据着重要地位,像 Drupal 模块开发、Drupal 升级等工作,对于网站的功能拓展和性能提升至关重要。特别是 Drupal11,它可能会带来更多新的特性和优化,值得开发者们关注。


