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

Хранит ли Linux кеш-память членов групп, если на LDAP? (Разница между группами по сравнению с группой getent))

Конфигурация 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 и это может добавить дополнительные уровни кеша, о которых нужно беспокоиться, но уже существующие пользовательские процессы фактически являются кешем привилегий, который присутствует в все конфигурации.