
У меня есть сервер, на котором я запускаю nslcd для запроса сервера AD и использую его для авторизации, и это работает так, как и ожидалось. Теперь я ввел nscd, чтобы снизить нагрузку на серверы AD. Результаты немного странные. Если я запускаю процесс nscd обычным образом (как пользователь nscd или даже пользователь root), демон не возвращает никакого результата.
[root@ldap-auth-test ~]# id testuser1
id: testuser: No such user
Теперь, чтобы понять, почему это не работает, я попытался проследить процесс.
strace -p 8327 -f -s 1000
и одновременно я снова сделал id на 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 в режиме отладки показал, что, если только не strace на nscd, демон даже не использует nslcd для запроса. Короче говоря, запрос вообще не запускается, если только не используется strace.
решение1
Возможно, SELinux — nslcd_selinux(8) — поможет объяснить разницу в поведении при запуске под управлением strace (как и процесс, ожидающий setuid)