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

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

我有一台服务器,我正在其中运行 nslcd 来查询 AD 服务器,并将其用于授权,并且一切正常。现在,我引入了 nscd 来减少 AD 服务器上的负载。结果有点奇怪。如果我正常运行 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

附言:我也问过同样的问题堆栈溢出我也不知道该问哪里。如果有人能指出哪个是相关的,我会删除不相关的。

编辑:在调试模式下运行 nslcd 表明,除非对 nscd 进行 strace,否则守护进程甚至不会使用 nslcd 进行查询。简而言之,除非使用 strace,否则根本不会触发查询。

答案1

SELinux 或许是 nslcd_selinux(8) —— 这将有助于解释在 strace 下运行时行为的差异(就像预期被 setuid 的进程一样)

相关内容