SLES12

时间:2016-05-23 14:24:04

标签: linux ldap nss

配置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

(此处未列出任何内容..)

为什么会发生这种情况?

3 个答案:

答案 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 $

这打破了我正在研究一段时间的剧本。我怀疑上面的示例中是否有完整列表,但也可能有两个根条目。