希望每个人都一切顺利。
让我指出一点,我已经设置了 LDAP 服务器和客户端机器
服务器运行正常,从客户端机器进行搜索时,它也会从 LDAP 服务器获取查询,但当我切换用户时,它说用户不存在
[root@ldapc ~]# su - babin
su: user babin does not exist
我已经在客户端机器上尝试过这个,并得到了以下答复
# ldapsearch -x -b dc=tecmintlocal,dc=com -h ldap.tecmintlocal.com
# extended LDIF
#
# LDAPv3
# base <dc=tecmintlocal,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# tecmintlocal.com
dn: dc=tecmintlocal,dc=com
dc: tecmintlocal
objectClass: top
objectClass: domain
# People, tecmintlocal.com
dn: ou=People,dc=tecmintlocal,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
# Group, tecmintlocal.com
dn: ou=Group,dc=tecmintlocal,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
# tecmint_gp1, Group, tecmintlocal.com
dn: cn=tecmint_gp1,ou=Group,dc=tecmintlocal,dc=com
objectClass: posixGroup
objectClass: top
cn: tecmint_gp1
userPassword:: YWRtaW4xMjMk
gidNumber: 20000
# babin, People, tecmintlocal.com
dn: uid=babin,ou=People,dc=tecmintlocal,dc=com
uid: babin
cn: babin babin
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: YWRtaW4xMjMk
shadowLastChange: 16120
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 20000
homeDirectory: /home/babin
# tecmintclient, People, tecmintlocal.com
dn: uid=tecmintclient,ou=People,dc=tecmintlocal,dc=com
uid: tecmintclient
cn: tecmintclient tecmintclient
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: YWRtaW4xMjMk
shadowLastChange: 16120
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 20000
homeDirectory: /home/tecmintclient
# search result
search: 2
result: 0 Success
# numResponses: 7
# numEntries: 6
答案1
你真的配置系统如何从 LDAP 检索用户帐户?
为此,您通常需要安装一个 LDAP 客户端nslcd
(又名 nss-pam-ldapd),它将附带一个要添加的 NSS 模块/etc/nsswitch.conf
(告诉系统使用 LDAP 客户端获取用户信息)。
(您还需要添加一个 PAM 模块,用于在登录时检查用户密码;它pam_ldap
也可以,或者更安全的东西,例如pam_krb5
。)
如果您已经安装了 LDAP 客户端,请首先确保它配置了正确的“基本 DN”(搜索位置),并查找各种日志记录/调试选项。
还可以使用 Wireshark 检查 LDAP 流量以查看实际正在进行的搜索:
tshark -n -Y ldap -VO ldap
。