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

Конфигурация LDAP для наших пользователей и групп работает.

Наш сервер использует LDAP для хранения пользователей и групп.

# /etc/nsswitch.conf :
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

Но сегодня мы добавили новую группу в LDAP с тремя пользователями, а затем , добавлены другие пользователи. 3 пользователя находятся в группе, но не остальные.

Мы можем увидеть это, используя «группы»: точнее, «getent group GROUPNAME» показывает пользователя в группе, а «groups» не показывает группу для этот пользователь ...?!

Поэтому я пытаюсь понять:

  • Есть ли какой-то кеш для групп - список LDAP?
  • Или возможна ошибка синхронизации, если да, то как вручную перезапустить?

Извините, что не буду точнее в моем вопросе, но я действительно не вижу, с чего начать ...

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
6
задан 2 February 2017 в 13:43
2 ответа

pam_ldap и nsswitch не имеют механизмов кеширования, но в вашей системе могут присутствовать nscd или sssd , которые реализовать кеш.

Чтобы сделать недействительным / очистить nscd кэш групп, используйте:

sudo nscd --invalidate=group

Чтобы сделать недействительным / очистить sssd кеш групп, используйте:

sudo sss_cache -G
16
ответ дан 3 December 2019 в 00:01

комментарий jopasserat приводит к другому возможному ответу.

Команда groups не работает. Не сообщают о членстве пользователя в группах. Он сообщает о привилегиях идентификатора группы текущего процесса. Он использует NSS только для преобразования числовых идентификаторов групп в имена.

Когда пользователь входит в систему, членство в группах получается из NSS, и используются системные вызовы setgid и setgroups чтобы предоставить правильные привилегии начальному процессу пользователя. Все процессы, производные оттуда, наследуют одни и те же привилегии (кроме случаев, когда выполняется программа с установленным идентификатором).

Если сконфигурированные привилегии меняются, когда пользователь находится в системе, существующие процессы не затрагиваются. Вы должны выйти и снова войти в систему, чтобы получить привилегии, и если вы пытаетесь отозвать привилегии, вы должны убить все процессы пользователя, чтобы завершить работу.

nscd и это может добавить дополнительные уровни кеш, о котором стоит беспокоиться, но уже существующие пользовательские процессы фактически являются кешем привилегий, который присутствует во всех конфигурациях.

2
ответ дан 3 December 2019 в 00:01

Теги

Похожие вопросы