概述
本文以Fedora 34 workstation为例,适用于绝大部分Red Hat发行版。指纹识别硬件为Lenovo ThinkPad P1 Gen 3自带的指纹识别模块。
启用指纹识别
启用方法很简单,在Settings中的Users选项卡上选择Fingerprint Login,并按照界面提示录入指纹并将其激活即可。
激活指纹登陆后,在进入桌面前,gnome会提示你可以通过指纹登陆,当然你也可以直接输入密码。
关于sudo的指纹识别
默认开启指纹认证后,系统会在方方面面启动指纹识别的支持,这对于sudo来说并不一定是好事。默认情况下我们需要刷错3次指纹或者等待30秒超时后才能进行密码认证,这就非常的不方便了。 所以这里的方法给大家参考,当然如果有更好的方法请留言交流。
缩短认证超时时间
在文件/etc/pam.d/system-auth 中找到auth sufficient pam_fprintd.so 这行,在这行的末尾追加timeout=3 。这样做之后,sudo 的指纹认证时间会从30秒缩短到8秒左右。
建议通过grep system-auth /etc/pam.d/* 命令了解一下原理。
另外,如果直接用# 注释掉auth sufficient pam_fprintd.so 这行的话,系统将彻底禁用指纹识别。
延长sudo超时时间
通过sudo visudo 命令,编辑/etc/sudoers 文件,在Defaults env_reset 后添加timestamp_timeout 参数,单位为分钟。例如下面的配置可以使认证状态保持至少两个小时:
$ grep timestamp_timeout /etc/sudoers
Defaults env_reset,timestamp_timeout=120
更好的解决方案
可能的更好的解决方案包括基于/etc/pam.d/system-auth 修订出不带指纹认证的system-auth-no-fingerprint 文件,并用它来替换掉/etc/pam.d/su* 中相应的引用……
参考资料
- Disable Fingerprint Reader when using sudo?
- Escape or cancel timeout for sudo fingerprint authentication and type to password in terminal.
- https://wiki.archlinux.org/title/Fprint#Login_configuration
- For background information why fingerprint and password does not work in parallel see: https://launchpad.net/~fingerprint/+archive/ubuntu/fprint in section Known (minor) issues - 1. No fingerprint and password at the same time
|