nscd는 strace가 프로세스에 연결될 때 작동합니다.

nscd는 strace가 프로세스에 연결될 때 작동합니다.

AD 서버에 쿼리하고 이를 인증에 사용하기 위해 nslcd를 실행하는 서버가 있는데 이는 예상대로 작동합니다. 이제 AD 서버의 부하를 줄이기 위해 nscd를 도입했습니다. 결과가 좀 이상하네요. nscd 프로세스를 정상적으로(nscd 사용자 또는 루트 사용자로) 실행하는 경우 데몬은 어떤 결과도 반환하지 않습니다.

[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를 추적하지 않는 한 데몬이 nslcd를 사용하여 쿼리하지 않는 것으로 나타났습니다. 즉, strace를 사용하지 않으면 쿼리가 전혀 실행되지 않습니다.

답변1

SELinux -- nslcd_selinux(8) -- strace에서 실행될 때 동작의 차이를 설명하는 데 도움이 될 것입니다(setuid가 될 것으로 예상되는 프로세스와 마찬가지로).

관련 정보