Назад | Перейти на главную страницу

nscd работает, когда strace подключается к процессу

У меня есть сервер, на котором я запускаю 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. В это время,

[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: Я спросил то же самое на Переполнение стека также, поскольку я не уверен, где спросить. Я удалю ненужный, если кто-то может указать, какой из них.

EDIT :: Запуск nslcd в режиме отладки показал, что, если не использовать nscd, демон даже не использует nslcd для запроса. Короче говоря, запрос вообще не запускается, если не используется strace.

Возможно, SELinux - nslcd_selinux (8) - поможет объяснить разницу в поведении при работе под strace (как и процесс, который ожидал, что будет установлен setuid)