![LDAP 用户没有名称](https://linux22.com/image/721341/LDAP%20%E7%94%A8%E6%88%B7%E6%B2%A1%E6%9C%89%E5%90%8D%E7%A7%B0.png)
我们的 Opensuse 12.1 服务器上的一名用户尝试挂载 NFS 目录,然后告诉我他没有用户名。他的用户配置与系统上的其他所有用户相同,因此我怀疑 LDAP 完全失败了,但事实并非如此。事实上,他可以在其他系统上以他的 LDAP 用户身份登录,并且它们成功检测到他的名字(即 whoami 没有失败)。对服务器上的每个用户运行 whoami 返回(未截断的输出):
$ for i in $(ldapsearch -LLL -x -H ldap://localhost uid | grep "^uid" | cut -d' ' -f 2); do [[ $(su $i -c whoami) == "$i" ]] || echo $i; done
whoami: cannot find name for user ID 1497
hisusername
同样,如果我在 LDAP 服务器上对他运行组:
$ groups hisusername
hisusername : users faculty
$ su hisusername
[hisusername@server root]$ groups
users groups: cannot find name for group ID 1000
1000
这完全让我困惑。我也重启了 slapd,但不幸的是,什么问题也没有解决。
服务器正在运行 sssd 进行名称缓存,但问题仍然存在
systemctl stop sssd
rm -rf /var/lib/sss/db/**
systemctl restart sssd
这意味着名称缓存可能不是问题
工作用户帐户的 LDAP 条目:
# hisusername-temp, people, linuxlab.<domain>.<tld>
dn: uid=hisusername-temp,ou=people,dc=linuxlab,dc=<domain>,dc=<tld>
cn: hisusername-temp
gidNumber: 100
homeDirectory: /home/hisusername-temp
loginShell: /usr/local/bin/redirsh
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
sn: hisusername-temp
uid: hisusername-temp
uidNumber: 1540
错误帐户:
# hisusername, people, linuxlab.<domain>.<tld>
dn: uid=hisusername,ou=people,dc=linuxlab,dc=<domain>,dc=<tld>
cn: His Name
gidNumber: 100
homeDirectory: /home/hisusername
loginShell: /usr/local/bin/redirsh
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
sn: hisusername
uid: hisusername
uidNumber: 1497