Конфигурация LDAP для наших пользователей и групп работает.
Наш сервер использует LDAP для хранения пользователей и групп.
# /etc/nsswitch.conf :
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Но сегодня мы добавили новую группу в LDAP с тремя пользователями, а затем , добавлены другие пользователи. 3 пользователя находятся в группе, но не остальные.
Мы можем увидеть это, используя «группы»: точнее, «getent group GROUPNAME» показывает пользователя в группе, а «groups» не показывает группу для этот пользователь ...?!
Поэтому я пытаюсь понять:
Извините, что не буду точнее в моем вопросе, но я действительно не вижу, с чего начать ...
PS Файлы конфигурации
# /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
и это может добавить дополнительные уровни кеш, о котором стоит беспокоиться, но уже существующие пользовательские процессы фактически являются кешем привилегий, который присутствует во всех конфигурациях.