我有一个服务器,我正在运行nslcd查询AD服务器,并将其用于授权,这是按预期工作。 现在,我引入了nscd来减lessAD服务器上的负载。 结果有点奇怪。 如果我正常运行nscd进程(作为nscd用户甚至root用户),守护进程不会返回任何结果。
[root@ldap-auth-test ~]# id testuser1 id: testuser: No such user
现在,看看为什么它不起作用,我试图把这个过程搞定。
strace -p 8327 -f -s 1000
同时,我又在testuser1上做了一个id。 这次,
[root@ldap-auth-test ~]# id testuser1 uid=10004(testuser1) gid=10046(A-TESTGROUP1) groups=10046(A-TESTGROUP1) context=root:system_r:unconfined_t:SystemLow-SystemHigh
我多次尝试,看看这是否是巧合,并观察到它不是。 我试图不附加到线程,并可以看到,nscd不工作时,我不附加到线程。 任何帮助是极大的赞赏。
[root@ldap-auth-test ~]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: CentOS Description: CentOS release 5.5 (Final) Release: 5.5 Codename: Final
PS:我也问过Stackoverflow ,因为我不知道在哪里问。 如果有人能指出哪一个是我的,我会删除不相关的。
编辑::在debugging模式下运行nslcd表明,除非在nscd上进行保护,否则守护进程甚至不使用nslcd进行查询。 简而言之,除非使用strace,否则查询不会被触发。
SELinux也许 – nslcd_selinux(8) – 这将有助于解释在strace下运行时的行为差异(正如一个预期为setuid的进程)