Я унаследовал несколько серверов RHEL5, которые были настроены для аутентификации пользователей в их учетных записях AD через winbind. Все работает нормально, пока я не обновлю членство в группе в AD. Для некоторых пользователей изменения никогда не попадают в вывод команды "groups", хотя они отражаются в выводе "getent group <groupname>".
Например, рассмотрим следующее:
[root @ hcc1pl1 ~] # группы plubans
plubans: развитие инфраструктуры систем доменных пользователей
[root @ hcc1pl1 ~] # getent group q1esb
q1esb: *: 23136: q1qai, q1prodi
Если я добавлю себя в q1esb на контроллере домена, который использует winbind, вы увидите, что членство обновлено:
[root @ hcc1pl1 ~] # lsof -i | grep winbind
winbindd 31339 root 17u IPv4 63817934 TCP hcc1pl1: 56541-> hcnas01: microsoft-ds (УСТАНОВЛЕНО)
winbindd 31339 root 21u IPv4 63817970 TCP hcc1pl1: 53622-> hcnas01: ldap (УСТАНОВЛЕН)
[root @ hcc1pl1 ~] # ldapsearch -u -x -LLL -h hcnas01 -D "plubans@XXX.XXX" -W -b "CN = Peter Lubans, OU = Standard User Accounts, OU = Users, OU = XXX, DC = XXX, DC = XXX "" (sAMAccountName = *) "memberOf
Введите пароль LDAP:
...
memberOf: CN = q1esb, OU = Группы безопасности, OU = Группы, OU = XXX, DC = XXX, DC = XXX
...
Обратите внимание, что winbind работает без кеширования (флаг -n):
[root @ hcc1pl1 ~] # ps -ef | grep winbind
корень 31339 1 0 13:50? 00:00:00 winbindd -n
корень 31340 31339 0 13:50? 00:00:00 winbindd -n
корень 31351 31339 0 13:50? 00:00:00 winbindd -n
корень 31352 31339 0 13:50? 00:00:00 winbindd -n
корень 31353 31339 0 13:50? 00:00:00 winbindd -n
Теперь getent показывает, что в этой группе есть правильные участники:
[root @ hcc1pl1 ~] # getent group q1esb
q1esb: *: 23136: q1qai, plubans, q1prodi
Но обновленное членство не отражено в моей учетной записи:
[root @ hcc1pl1 ~] # группы plubans
plubans: развитие инфраструктуры систем доменных пользователей
[root @ hcc1pl1 ~] #
Поистине неприятная часть этой проблемы заключается в том, что она отлично работает для других учетных записей на этом компьютере и для моей учетной записи на машинах, которые я настроил с нуля.
Любые идеи?
Похоже, это было вызвано тем, что информация о группе кэшируется во время входа в систему в /var/cache/samba/netsamlogon_cache.tdb. Я предполагаю, что, хотя '-n' инструктировал winbind не кэшировать запросы к LDAP, наличия информации о членстве в этом файле TDB было достаточно, чтобы все испортить.
Моя единственная мысль, и она очень расплывчатая, заключается в том, что это может иметь какое-то отношение к общению с вашим хозяином инфраструктуры (который отвечает за обновление членства в группах по доменам).
У меня был подобный опыт работы со стандартными пакетами samba / winbind RHEL. По моему опыту, winbind RHEL немного схематичен. Я заметил, что после аутентификации пользователя его членство в группе будет точно обновляться, но, кроме этого, никаких изменений в членстве в группе никогда не будет отображаться. Это не оптимальное решение, особенно если вы удалите пользователя из группы, которая предоставит ему доступ к машине, так как это фактически дает им последний вход в систему, которого они не должны получать. Это может или не может точно отражать вашу ситуацию, потому что я также страдал от того, что не видел членов группы группы AD при запуске getent group
(это будет выглядеть как группа без участников, даже если groups username
показал их как участника группы), но похоже, что это работает на вас.
Для меня проблему решила установка "проверенного" дистрибутива RPM от enterprisesamba.org. Изменения членства в группах проявлялись немедленно, независимо от настроек кеша winbind. Не требуется никаких изменений конфигурации, НО если вы сопоставляете пользователей и группы AD с локальной таблицей idmap, установка новой RPMS будет более чем вероятно полностью переназначить вашу числовую группу и идентификаторы пользователей, так что будьте готовы к этому (выкиньте getent group
и гetent passwd
вывод в файл перед обновлением, чтобы у вас была ссылка для исправления владения файлом с помощью.
У меня было нечто подобное. Чтобы решить эту проблему, я запустил authconfig --disablecache --update. Конечно, это замедляло вход в систему.