Конфигурация LDAP наших пользователей и групп работает.
Наш сервер использует LDAP для хранения пользователей и групп.
# /etc/nsswitch.conf :
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Но сегодня мы добавили новую группу в LDAP с тремя пользователями, а затем добавили других пользователей. В группе находятся 3 пользователя, но нет остальных.
Мы можем увидеть это, используя «группы»: точнее, «getent group GROUPNAME» показывает пользователя в группе, а «groups» не показывает группу для этого пользователя ...?!
Поэтому я пытаюсь понять:
Извините, что не могу быть более точным в моем вопросе, но я действительно не вижу, с чего начать ...
P. S. Файлы конфигурации
# /etc/ldap/ldap.conf
URI ldap://172.16.1.232
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
# /etc/pam_ldap.conf
base dc=ourdomain,dc=ch
uri ldap://172.16.1.232/
ldap_version 3
rootbinddn cn=admin,dc=ourdomain,dc=ch
pam_password crypt
pam_ldap
и nsswitch
не имеют механизмов кеширования, но nscd
или sssd
могут присутствовать в вашей системе, которые реализуют кеш.
Чтобы аннулировать / очистить nscd
использование кеша групп:
sudo nscd --invalidate=group
Чтобы аннулировать / очистить sssd
использование кеша групп:
sudo sss_cache -G
Комментарий jopasserat приводит к другому возможному ответу.
В groups
команда не сообщает о членстве пользователя в группах. Он сообщает о привилегиях идентификатора группы текущего процесса. Он использует NSS только для преобразования числовых идентификаторов групп в имена.
Когда пользователь входит в систему, членство в группах получается из NSS, а setgid
и setgroups
системные вызовы используются для предоставления правильных привилегий начальному процессу пользователя. Все процессы, происходящие оттуда, наследуют одни и те же привилегии (кроме случаев, когда выполняется программа с установленным идентификатором).
Если настроенные привилегии меняются, когда пользователь находится в системе, существующие процессы не затрагиваются. Вы должны выйти и снова войти в систему, чтобы получить привилегии, и если вы пытаетесь отозвать привилегии, вы должны убить все процессы пользователя, чтобы завершить работу.
nscd
и это может добавить дополнительные уровни кеша, о которых нужно беспокоиться, но уже существующие пользовательские процессы фактически являются кешем привилегий, который присутствует в все конфигурации.