当strace附加到进程时,nscd工作

我有一个服务器,我正在运行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的进程)