我如何要求某个用户组通过LDAPlogin,同时让他人使用LDAP或本地login?

我已经build立了我的系统,允许LDAP或本地密码login。 我通过向PAM添加“密码足够的pam_ldap.so”并在之后调用“pam_unix2.so”来完成此操作。

不过,我想要求某个用户组仅针对LDAP进行身份validation,而不允许使用pam_unix2.so。 有没有办法做到这一点?

创build一个名为ldaponly的组,并将所有仅限LDAP的用户join其中。 然后,在PAMconfiguration中,当用户处于ldaponly组中时,使用pam_succeed_if模块跳过pam_unix2模块。

呃…也许这太简单了,但把用户放在LDAP中,不要把它们放在你的本地密码文件中?

在我的环境中,只有root和service / daemon帐户在本地passwd文件中,只有用户login帐户在LDAP中 – 工作得很好。

我之前用我设置的LDAP服务器运行了这个场景。

我能给的最好的build议是提供对我有用的东西。 这将是使用/etc/security/access.conf只允许某些用户和组访问。

例如,当尝试使用127.0.0.1回送接口在本地login时,以下是一个access.conf条目,用于拒绝除root和属于Group1和Group2的所有用户的访问:

 - : ALL EXCEPT root Group1 Group2: 127.0.0.1 

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

现在我能想到的最简单的方法是将“仅LDAP”用户的本地密码设置为完全奇怪的东西,而不是告诉他们。 但是,一旦他们login,他们将能够改变它(如果你的PAM设置允许他们这样做)。

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