一次使用多种 PAM 登录方法?

一次使用多种 PAM 登录方法?

我使用 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, ...}

当前版本中,您可以在提示“将手指放在指纹识别器上”后直接输入密码。在 中sudopam_fprintd.so按 Enter 后将自动失败并将密码传递给下一个 pam。另外,您可以直接按 Enter 跳过指纹。

在此输入图像描述 (忽略我的路径,这是为了测试)

答案3

将 'pam_fprint' 设置为 'sufficient' 并确保 'pam_unix' 设置为 'sufficient',同时将 'pam_deny' 设置为 'required'

的文档pam_fprint有一个很好的例子PAM 系统管理指南有很好的复杂配置示例。

相关内容