如何配置 pam 以使用两个不同的密码?

如何配置 pam 以使用两个不同的密码?

目标:我想要配置 pam 以使用常规用户密码(pam_unix.so)和额外密码。(只有当我正确输入两个密码时才会成功并在我只输入一个密码或没有正确输入任何密码的情况下拒绝(pam_deny.so)。我该如何实现?(我不想使用 GA 或第三方方法,我知道它们,但我仍然需要第二个密码,请不要告诉我它们)。另外,我想知道如何添加第二个字段,或者在 lightdm 和 gnome-screensaver 中的同一个字段中实现第二个密码的另一种类型。我在 github 上浏览了所有 pam 插件,也许我可以以某种方式修改或配置 pam-dotfile 来实现这一点。

答案1

编辑: 正如 @grawity 所述,兼容的应用程序可以优雅地处理此类身份验证方案。通过分两个连续步骤询问两个密码可以避免图形问题(不是我在使用 RSA SecureID 的特定应用程序中遇到的三个字段“login / pass1 / pass2”,而是通常的登录名/密码屏幕,然后在第一次输入后出现第二个密码屏幕)

就 PAM 而言,所有内容均为:

  • 安装或创建适当的 PAM 模块它将处理第二个密码(RFID 提供商可能已经提供了一个密码,或者如果它足够标准,可能已经存在于其他地方),
  • 配置 PAM 以接受多因素身份验证,通常是通过添加第二个“auth required new_module_name_here.so”,但这在很大程度上取决于所使用的 Linux 发行版。一些关于“pam multi-factor”的研究可能会有用。PAM 配置允许很多微妙之处,例如请求密码的顺序,是否应仅在第一个密码有效时请求第二个密码或始终请求第二个密码等。
  • 配置应用程序如果需要的话,可以适当地使用它,但这取决于您的需求和现有的情况,您可能会很幸运,它可以开箱即用。

原始帖子: 与其从 shell 登录、lightdm 登录和屏幕保护程序登录更新 UI(即,创建所有这些的分支,并且必须随时间进行维护),也许更好的选择是将两个密码合并为一个(例如,定义为您自己的策略,您必须输入用破折号分隔的每个密码:“password1-password2”),然后创建您自己的特定 PAM 模块来对此进行身份验证。

通过这种方式,您将保持与所有当前现有的应用程序的兼容。

相关内容