我如何要求某一组用户通过 LDAP 登录,同时让其他用户使用 LDAP 或本地登录?

我如何要求某一组用户通过 LDAP 登录,同时让其他用户使用 LDAP 或本地登录?

我已经将系统设置为允许使用 LDAP 或本地密码登录。我通过向 PAM 添加“password adequate pam_ldap.so”并随后调用“pam_unix2.so”来实现此目的。

但是我想要求特定组用户仅通过 LDAP 进行身份验证,不允许 pam_unix2.so 的回退。有办法吗?

答案1

创建一个名为的组ldaponly,并将所有仅使用 LDAP 的用户放入其中。然后,在 PAM 配置中使用pam_succeed_if模块pam_unix2当用户在组中时跳过该模块ldaponly

答案2

嗯...也许这太简单了,但是把用户放在 LDAP 中并且不要把他们放在本地密码文件中?

在我的环境中,只有 root 和服务/守护进程帐户位于本地密码文件中,并且只有用户登录帐户位于 LDAP 中 - 运行良好。

答案3

我之前在设置 LDAP 服务器时遇到过这种情况。

我能给出的最好建议是提供对我有用的方法。即 /etc/security/access.conf只允许特定用户和组访问。

例如,access.conf当尝试使用 127.0.0.1 环回接口本地登录时,这里有一个条目用于拒绝除 root 和属于 Group1 和 Group2 的用户之外的所有人访问:

- : ALL EXCEPT root Group1 Group2: 127.0.0.1

您可能还需要pam_access.so在 PAM 文件中启用该模块。

答案4

我现在能想到的最简单的方法是将“仅 LDAP”用户的本地密码设置为完全奇怪的值,并且不告诉他们。但是,一旦他们登录,他们就可以更改密码(如果您的 PAM 设置允许他们这样做)。

一个更复杂的方法是编写自己的 PAM 插件(这显然并不难),它可以查找“仅 LDAP”列表,然后返回 true 或 false。然后可以在 PAM 配置文件中使用它来决定下一步,即允许登录或不允许登录。

相关内容