我设法安装了 SSH + LDAP,此外我通过 pam_groupdn 对用户进行身份验证 - 如果用户属于适当的组,则允许他登录服务器。
这是我的 pam.d 的一部分
account sufficient pam_ldap.so
account sufficient pam_unix.so
pam_ldap.conf 的一部分
# Group to enforce membership of
pam_groupdn cn=ldapclient,ou=group,dc=aaaa,dc=zzzz
# Group member attribute
pam_member_attribute memberUid
如果我禁用 pam_unix.so,一切都会正常。如果用户不在该组中,则会被拒绝。但我无法禁用 pam_unix.so,因为如果 LDAP 服务器处于离线状态,我将面临严重的登录问题,即使是本地登录。
如果启用了 pam_unix.so:
gigi@0's password:
You must be a memberUid of cn=ldapclient,ou=group,dc=aaaa,dc=zzzz to login.
Linux testing 2.6.26-2-686 #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686
....
并且允许用户登录,即使他不在该组中。
我找到了一些使用 /etc/security/access.conf 的解决方案,但我想避免这种情况。有什么帮助吗?
谢谢你,马丁
答案1
我解决了。问题是由该死的 nscd 缓存守护进程引起的!!!!我强烈建议在测试时将其卸载。
答案2
我遇到了同样的问题。我解决了在“objectClass”属性上添加“shadowAccount”值的问题。
现在用户在 objectClass 中拥有以下值:inetOrgPerson、posixAccount、shadowAccount
我这样留下了我的 commom_account:
帐户足够 pam_ldap.so 帐户需要 pam_unix.so
一切顺利!
达尼洛。