配置LDAP身份验证时,我遇到了以下问题。
我在nsswitch.conf文件中配置了nss,如下所示:
passwd:ldap files
组:文件
shadow:files
当我发出以下命令时: 密码传递 列出了所有用户,包括本地用户和ldap用户:
getent passwd
usr_admin:x:1191:205:usr_admin:/ home / usr_admin:/ usr / bin / tcsh(LDAP用户)
user_sec:x:1192:205:user_sec:/ home / user_sec:/ usr / bin / tcsh(LDAP用户)
root:x:0:0:root:/ root:/ bin / bash(本地用户)
bin:x:1:1:bin:/ bin:/ bin / bash(本地用户)
然而,当我给getent一把钥匙时:
getent passwd root
根:X:0:0:根:/根:/斌/庆典
它仅适用于本地用户。这意味着当我给ldap服务器的user_id时,没有列出任何内容: 密码passwd usr_admin
(此处未列出任何内容..)
为什么会发生这种情况?
答案 0 :(得分:1)
我设法解决了这个问题。是nscd服务创造了这个问题。通过关闭nscd或重新启动它,我现在能够正确地擦除gent passwd ldapuser。
答案 1 :(得分:0)
我的ldap服务器设置在centos 7上,我可以在服务器和客户端上获得“getent passwd lapduser”,但现在我只能在ldap客户端上获取它。我设置第二个客户端有相同的问题,但ldapsearch工作并返回用户的信息。服务器配置端重置了一些东西!
答案 2 :(得分:0)
我在Solaris上发现了类似的问题,这也可能适用于此。
检查以下差异:
abss70:etc $ getent group sysadmin
系统管理员:: 14:
abss70:etc $ getent group | grep ^ sysadmin
系统管理员:: 14:
系统管理员:: 14:根,用户1,用户2
abss70:etc $
这打破了我正在研究一段时间的剧本。我怀疑上面的示例中是否有完整列表,但也可能有两个根条目。