LDAP не будет обновляться, если кэшированные данные существуют - PullRequest
1 голос
/ 12 января 2009

У нас есть клиент SELinux, который аутентифицирует пользователей сети, используя LDAP-соединение с сервером Active Directory. Поскольку наши машины должны работать «без привязки», мы должны использовать nscd для кэширования информации о группе и passwd.

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

Значительная часть /etc/nsswitch.conf:

    passwd: file ldap cache
    group:  file ldap cache
    shadow: file ldap cache

Спасибо.

Обновление: Выяснилось, что при запуске strace getent passwd проверяется, что кэш nscd проверяется до чтения /etc/nsswitch.conf, поэтому настройка nss не имеет значения.

Обновление 2: Игра с nss_updatedb сегодня, чтобы увидеть, будет ли он работать. Пока что нет радости, хотя это руководство выглядит именно так, как нам нужно.

Ответы [ 3 ]

1 голос
/ 13 января 2009

Если вы не хотите кэшировать результаты из активной директории, вам нужно либо отключить nscd, либо установить время жизни его кэша в несколько минут (edit /etc/nscd.conf). Я считаю, что время жизни по умолчанию составляет 10 минут для passwd и час для группы.

0 голосов
/ 10 декабря 2015

Вы можете легко очистить кэш nscd с помощью следующих команд:

sudo nscd -i passwd
sudo nscd -i group

После очистки кэша nscd с данными командами вы увидите измененные данные LDAP.

Для получения дополнительной информации см .: http://sysadmin -notepad.blogspot.rs / 2013/05 / how-to-flush-nscd-cache-in-linux.html

0 голосов
/ 05 февраля 2009

Мы наконец решили эту проблему с помощью nss_updatedb для локального кэширования баз данных группы и passwd. Затем мы выключили NSCD.

Мы добавили модуль pam_exec в список pam.d и используем его для запуска nss_updatedb перед аутентификацией, чтобы убедиться, что локальный кеш обновлен.

...