启用 kerberos 时在本地锁定用户帐户

Ste*_*n C 5 linux kerberos pam

我正在尝试为一组具有以下特征的机器设置 Chef 管理的帐户:

  • 如果没有本地帐户,则登录被阻止。
  • 如果有一个带有 SSH 密钥的本地帐户,则可以使用这些密钥进行身份验证。
  • 如果存在具有本地密码的本地帐户,则使用该密码进行身份验证。
  • 如果有没有本地密码的本地帐户,则使用 Kerberos。

我有那么多工作。

但我最不想做的就是通过本地锁定密码(例如使用usermod -L)来禁用帐户登录。问题是当本地密码被锁定时,PAM 会回退到 Kerberos ......并允许访问。

有没有办法配置 PAM,以便在本地密码存在但它被锁定时不会尝试 Kerberos?

到目前为止,我能想到的最好的方法是通过使用不可猜测的东西破坏本地密码来锁定帐户。但这有点粗糙,如果有人不“遵循程序”,则效果不佳......

Jen*_*y D 5

我同意 Michael Hampton 的评论——你可以而且应该使用 Kerberos 来做到这一点。但是,如果您确实想通过更改本地机器上的内容来做到这一点,那么这里有一个应该可行的解决方案。

在您的 中sshd_config,添加行

DenyGroups blocked
Run Code Online (Sandbox Code Playgroud)

创建一个名为“blocked”的组。锁定用户的本地密码时,还将其添加到“已阻止”组中。

警告!这是一个可怕的丑陋混杂,不应该存在于一个理智的世界中。然而,它可能在我们生活的地方有用。