libpam-ldapd 未寻找次要组

libpam-ldapd 未寻找次要组

我正在从libpam-ldaplibpam-ldapd。我从 LDAP 收集次要组时遇到了一些麻烦。

libpam-ldap,我的文件上有这个/etc/ldap.conf

nss_schema rfc2307bis
nss_base_passwd ou=人员,ou=CITIUS,dc=inv,dc=usc,dc=es
nss_base_shadow ou=人员,ou=CITIUS,dc=inv,dc=usc,dc=es
nss_base_group ou=组,ou=CITIUS,dc=inv,dc=usc,dc=es
nss_map_attribute uniqueMember 成员

存在映射是因为我使用的groupOfNames是 而不是groupOfUniqueNamesLDAP 类来表示组,所以命名成员的属性是用member而不是 命名的uniqueMember

现在,我想使用libpam-ldapd但我无法让它工作。这是我的相关部分/etc/nslcd.conf

基本密码 ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es
基本影子 ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es
基础组 ou=Groups,ou=CITIUS,dc=inv,dc=usc,dc=es
映射组 uniqueMember 成员

当用户通过身份验证时,这是来自 nslcd 的调试输出:

nslcd:[8b4567]调试:来自 pid=12090 uid=0 gid=0 的连接
nslcd:[8b4567]调试:nslcd_passwd_byuid(4004)
nslcd:[8b4567] 调试:myldap_search(base="ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es", filter="(&(objectClass=posixAccount)(uidNumber=4004))")
nslcd:[8b4567]调试:ldap_initialize(ldap://172.16.54.31/)
nslcd:[8b4567]调试:ldap_set_rebind_proc()
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_DEREF,0)
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_TIMELIMIT,10)
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_TIMEOUT,10)
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,10)
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd:[8b4567]调试:ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd:[8b4567]调试:ldap_simple_bind_s(“uid=ubuntu,ou=Applications,ou=CITIUS,dc=inv,dc=usc,dc=es”,“*****”)(uri=“ldap://172.16.54.31/”)
nslcd:[8b4567] 连接到 LDAP 服务器 ldap://172.16.54.31/
nslcd:[8b4567] DEBUG:ldap_result():结果结束
nslcd:[7b23c6]调试:来自 pid=15906 uid=0 gid=2000 的连接
nslcd:[7b23c6]调试:nslcd_pam_authc(“jorge.suarez”,“”,“su”,“***”)
nslcd:[7b23c6] 调试:myldap_search(base="ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es", filter="(&(objectClass=posixAccount)(uid=jorge.suarez))")
nslcd:[7b23c6]调试:ldap_initialize(ldap://172.16.54.31/)
nslcd:[7b23c6]调试:ldap_set_rebind_proc()
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_DEREF,0)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_TIMELIMIT,10)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_TIMEOUT,10)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,10)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd:[7b23c6] 调试:ldap_simple_bind_s(“uid=ubuntu,ou=Applications,ou=CITIUS,dc=inv,dc=usc,dc=es”,“*****”)(uri=“ldap://172.16.54.31/”)
nslcd:[7b23c6] 连接到 LDAP 服务器 ldap://172.16.54.31/
nslcd:[7b23c6]调试:ldap_initialize(ldap://172.16.54.31/)
nslcd:[7b23c6]调试:ldap_set_rebind_proc()
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_PROTOCOL_VERSION,3)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_DEREF,0)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_TIMELIMIT,10)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_TIMEOUT,10)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_NETWORK_TIMEOUT,10)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_REFERRALS,LDAP_OPT_ON)
nslcd:[7b23c6]调试:ldap_set_option(LDAP_OPT_RESTART,LDAP_OPT_ON)
nslcd:[7b23c6] 调试:ldap_simple_bind_s(“uid=jorge.suarez,ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es”,“*****”)(uri=“ldap://172.16.54.31/”)
nslcd:[7b23c6] 连接到 LDAP 服务器 ldap://172.16.54.31/
nslcd:[7b23c6] 调试:myldap_search(base="uid=jorge.suarez,ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es",filter="(objectClass=posixAccount)")
nslcd:[7b23c6]调试:ldap_unbind()
nslcd:[3c9869] 调试:来自 pid=15906 uid=0 gid=2000 的连接
nslcd:[3c9869]调试:nslcd_pam_sess_o(“jorge.suarez”,“uid=jorge.suarez,ou=People,ou=CITIUS,dc=inv,dc=usc,dc=es”,“su”,“/dev/pts/7”,“”,“jorge.suarez”)

在我看来,它甚至不会尝试寻找群组。我做错了什么?我看不到任何与我的问题相关的信息文档。我可能不明白该map选项是如何工作的。

答案1

我认为该map group参数需要与相应的参数相关联filter group。以下是我使用它连接到 Active Directory 的方法:

filter passwd (&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=Linux-SA,OU=Groups,DC=global,DC=example,DC=com)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
map    passwd uid              sAMAccountName
map    passwd homeDirectory    unixHomeDirectory
map    passwd gecos            displayName
map    passwd loginShell       "/bin/bash"
filter shadow (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
map    shadow uid              sAMAccountName
map    shadow shadowLastChange pwdLastSet
filter group  (&(objectClass=group)(gidNumber=*))
map    group  uniqueMember        member

相关内容