我正在尝试为一组具有以下特征的机器设置 Chef 管理的帐户:
- 如果没有本地帐户,则登录被阻止。
- 如果有一个带有 SSH 密钥的本地帐户,则可以使用它们进行身份验证。
- 如果存在具有本地密码的本地帐户,则该密码用于身份验证。
- 如果存在没有本地密码的本地帐户,则使用 Kerberos。
我有那么多工作要做。
但我最不想做的是通过在本地锁定密码(例如使用usermod -L
)来禁用帐户登录。问题是,当本地密码被锁定时,PAM 正在退回到 Kerberos ......并允许访问。
有没有一种方法可以配置 PAM,以便在存在本地密码但被锁定时不会尝试 Kerberos?
到目前为止我能想到的最好的方法是通过用一些不可猜测的东西破坏本地密码来锁定帐户。但这有点粗糙,如果有人不“按程序办事”,那就玩不好了……