getent和ldapsearch结果关于loginShell不一致

我有一个用/ bin / bash在LDAP中创build用户的testing,然后将ldap属性修改为/ bin / noshell,但getent和ldapsearch的结果与shell不一致。 该用户在/ etc / passwd中不存在。

当我做一个“getent check72 passwd”时,我得到:

check72:*:6072:6072:Johnny Appleseed:/home/check72:/bin/bash 

但是当我做一个ldapsearch命令时,我得到:

 # check72, people, wh.local dn: uid=check72,ou=people,dc=wh,dc=local uid: check72 cn: Johnny Appleseed objectClass: account objectClass: posixAccount objectClass: top objectClass: shadowAccount userPassword:: e1NTSEF9OWVHdTdPVHIwVE15ajNQNEphdG9GR1cwZnQxa2Ftb3k= shadowLastChange: 15140 shadowMax: 99999 shadowWarning: 7 uidNumber: 6072 gidNumber: 6072 homeDirectory: /home/check72 loginShell: /bin/noshell # check72, group, wh.local dn: cn=check72,ou=group,dc=wh,dc=local objectClass: posixGroup objectClass: top cn: check72 gidNumber: 6072 userPassword:: e0NSWVBUfXg= 

我已经重新启动slapd和nscd,任何线索? 提前致谢。

我的nsswitch.conf如下所示:

 passwd: files sss ldap shadow: files sss ldap group: files sss 

这里是我安装了与nss相关的软件包

 nss.x86_64 3.13.6-2.el6_3 @updates nss-pam-ldapd.x86_64 0.7.5-15.el6_3.2 nss-softokn.x86_64 3.12.9-11.el6 @anaconda-CentOS-201207061011.x86_64/6.3 nss-softokn-freebl.x86_64 nss-sysinit.x86_64 3.13.6-2.el6_3 @updates nss-tools.x86_64 3.13.6-2.el6_3 @updates nss-util.x86_64 3.13.6-1.el6_3 @updates 

任何帮助将不胜感激。

nss-pam-ldapd软件包允许将LDAP目录服务器用作名称服务信息的主要来源。 当我运行“getent passwd”时,我只能看到/etc/passwd文件中的用户。 当我启动/etc/init.d/nslcd服务,然后发出“getent passwd”命令时,我看到所有的LDAP用户和系统用户和shell都被同步了。

当我安装nss-pam-ldapd软件包时,服务没有启动,我手动启动了它,现在一切都像一个魅力一样。

另外/etc/nsswitch.conf的顺序非常重要:

  passwd: files ldap sss shadow: files ldap sss group: files sss