Вопрос или проблема
У меня есть пара серверов Linux, один настроен как SAMBA AD (ubuntu 18.04), другой как сервер-член (ubuntu 16.04), настроенный как файловый сервер.
Он работал некоторое время, но теперь новые пользователи, созданные (успешно) на сервере AD через пользователи и компьютеры (на машине Windows), не могут использовать свои учетные данные на сервере-члене. Существующие пользователи могут использовать свои данные нормально, и это также синхронизирует обновления пароля и т. д.
Эти пользователи могут использовать свои учетные данные непосредственно против AD, например, при входе на машину домена, но не могут подключиться к файловому серверу.
Чтобы полностью продемонстрировать проблему, я могу использовать ‘getent passwd’ на сервере-члене, и он дает мне список пользователей, но не полный список пользователей из AD. Любой недавно созданный пользователь отсутствует.
Как я могу диагностировать проблему?
Примечание 1 – Это не сервер, который я настроил или конфигурировал, я унаследовал ответственность за него от уходящего члена персонала.
Примечание 2 – Я провел обычный поиск и в основном нашел схожие проблемы, которые связаны с тем, что getent показывает только локальных пользователей, что не является моим случаем. (например, LDAP: getent passwd не показывает недавнее добавление пользователя)
Я проверил атрибуты Active Directory пользователя, который отображался, и другого, который не отображался.
Я обнаружил, что у пользователей, которые не отображались, отсутствовали gid, uid и uidNumber.
Ввод этих значений и ожидание нескольких мгновений, пока пользователь не будет отображен, показывает пользователя при использовании команды ‘getent passwd’ на сервере-члене.
Ответ или решение
Для решения проблемы с отображением пользователей LDAP через команду getent passwd
на сервере-члене, необходимо провести детальное диагностирование конфигурации. Данная ситуация может возникнуть по нескольким причинам, и понимание того, как работают компоненты системы в связке, поможет эффективно устранить неполадки.
Факторы, на которые стоит обратить внимание:
-
Проверка настроек Kerberos:
Убедитесь, что настройки Kerberos на сервере-члене корректны и согласованы с настройками контроллера домена. Kerberos отвечает за аутентификацию пользователей, и неправильно настроенные параметры могут влиять на синхронизацию данных. -
Корректность конфигурации /etc/nsswitch.conf и /etc/ldap.conf:
Проверьте файл/etc/nsswitch.conf
, чтобы убедиться, что служба LDAP указана правильным образом, например,passwd: files ldap
. Также проверьте/etc/ldap.conf
или/etc/sssd/sssd.conf
, чтобы убедиться, что они содержат актуальные и корректные введенные параметры для доступа к LDAP. -
Проверка атрибутов Active Directory:
Как вы уже обнаружили, отсутствие атрибутов gid, uid и uidNumber у пользователей может привести к тому, что они не будут отображаться. Подтвердите, что у всех недавно добавленных пользователей установлены эти атрибуты. -
Кэширование SSSD или nscd:
Если используется SSSD (System Security Services Daemon) для управления кэшированием и доступом к LDAP, убедитесь, что кэш правильно обновляется. Для этого можно использовать командыsss_cache
для сброса кэша илиsystemctl restart sssd
для перезапуска службы. -
Журналирование и диагностика:
Проверьте журналы безопасности и диагностики (/var/log/auth.log
,/var/log/sssd/sssd.log
) на предмет ошибок или предупреждений, которые могут указывать на проблемы с подключением к LDAP или неправильные настройки. -
Проверка совместимости между версиями ОС:
Поскольку сервер-член работает на Ubuntu 16.04, а AD-сервер на Ubuntu 18.04, убедитесь в совместимости используемых пакетов и протоколов между разными версиями ОС. Неподдерживаемые функции могут быть причиной проблем.
Выполнив перечисленные выше шаги, вы сможете выявить и исправить проблемы, связанные с отображением пользователей LDAP на сервере-члене. Важно регулярно обновлять конфигурации и проводить аудит настроек после обновлений системы или миграции пользователей.