我使用 pam-fprintd 作为登录方法。目前它可以完美地登录到 cinnamon 屏幕保护程序和 sudo。不幸的是,您必须在指纹登录失败一定次数后才允许密码登录。
我希望两种登录方法同时可用,这样您就可以使用指纹或密码登录,而不必失败一定次数。这可能吗?
我/etc/pam.d/system-auth
的如下:
#%PAM-1.0
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so try_first_pass nullok
#auth optional pam_permit.so
auth required pam_env.so
account required pam_unix.so
account optional pam_permit.so
account required pam_time.so
password required pam_unix.so try_first_pass nullok sha512 shadow
password optional pam_permit.so
session required pam_limits.so
session required pam_unix.so
session optional pam_permit.so
这是带有调试选项的日志输出:
Jun 18 09:50:34 Archenemy dbus[261]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service'
Jun 18 09:50:34 Archenemy systemd[1]: Starting Fingerprint Authentication Daemon...
Jun 18 09:50:34 Archenemy dbus[261]: [system] Successfully activated service 'net.reactivated.Fprint'
Jun 18 09:50:34 Archenemy systemd[1]: Started Fingerprint Authentication Daemon.
Jun 18 09:50:34 Archenemy sudo[3356]: pam_fprintd(sudo): Using device /net/reactivated/Fprint/Device/0
Jun 18 09:50:34 Archenemy fprintd[3357]: ** Message: user 'yau' claiming the device: 0
Jun 18 09:50:35 Archenemy fprintd[3357]: ** Message: now monitoring fd 15
Jun 18 09:50:35 Archenemy fprintd[3357]: ** Message: device 0 claim status 0
Jun 18 09:50:35 Archenemy fprintd[3357]: ** Message: start verification device 0 finger 6
Jun 18 09:50:35 Archenemy sudo[3356]: pam_fprintd(sudo): verify_finger_selected Swipe your right thumb across the fingerprint reader
Jun 18 09:50:37 Archenemy fprintd[3357]: ** Message: verify_cb: result verify-match (1)
Jun 18 09:50:37 Archenemy sudo[3356]: pam_fprintd(sudo): Verify result: verify-match
Jun 18 09:50:37 Archenemy fprintd[3357]: ** Message: no longer monitoring fd 15
Jun 18 09:50:37 Archenemy fprintd[3357]: ** Message: released device 0
Jun 18 09:50:37 Archenemy sudo[3356]: yau : TTY=pts/2 ; PWD=/home/yau ; USER=root ; COMMAND=/bin/bash
Jun 18 09:50:37 Archenemy sudo[3356]: pam_unix(sudo:session): session opened for user root by yau(uid=0)
答案1
来自 /usr/share/doc/fprintd-pam-0.5.0/README
- pam_fprintd 不支持输入密码或指纹,就像 pam_thinkfinger 一样,因为这是一个严重的黑客行为,并且可以通过让登录管理器运行 2 个单独的 PAM 堆栈来修复
答案2
我分叉了 libfprint-fprintd,现在指纹和密码可以一起使用: https://github.com/zsxsoft/libfprint-fprintd
只需像往常一样编译它,然后添加auth sufficient pam_fprintd.so
到/etc/pam.d/{sudo, ...}
当前版本中,您可以在提示“将手指放在指纹识别器上”后直接输入密码。在 中sudo
, pam_fprintd.so
按 Enter 后将自动失败并将密码传递给下一个 pam。另外,您可以直接按 Enter 跳过指纹。
答案3
将 'pam_fprint' 设置为 'sufficient' 并确保 'pam_unix' 设置为 'sufficient',同时将 'pam_deny' 设置为 'required'
的文档pam_fprint有一个很好的例子PAM 系统管理指南有很好的复杂配置示例。