Файловый сервер Samba с авторизацией по AD (Active Directory) вдруг перестал пускать пользователей.
Забегая вперёд — оказалось, что он был выброшен из домена, хотя в списке AD он присутствовал!
Пришлось его оттуда удалить (а заодно и на резервном сервере AD) и завести в домен заново.
Так что, не всегда верьте глазам своим, когда смотрите на присутствие объекта в AD.
Команды на стороне сервера (командная строка):
net ads testjoin — проверка членства в домене (эта команда и помогла понять в чём дело)
Ну и дальше вводим заново в домен (предварительно удалив эту запись на сервере):
net ads join -U administrator -D DOMAIN_NAME
(DOMAIN_NAME вводим без .RU)
хотя можно было просто
net ads join -U administrator
(имя домена взялось бы из самбы)
Прочие команды, которые помогали понять что произошло.
Проверяем синхронизацию времени с контроллером домена (допустимо расхождение не более 5 минут, иначе kerberos не сможет получить тикет). Если надо — синхронизируем, например вручную:
#ntpdate pool.ntp.org
Проверка smb.conf:
#testparm
Проверка kerberos:
получить тикет для пользователя user через kerberos:
#kinit user@DOMAIN_NAME.RU
(в данном случае тикеты получались исправно)
посмотреть список тикетов:
#klist
удалить все тикеты:
#kdestroy
Проверка, что у Winbind есть доверительные отношения с AD:
#wbinfo -t
(в данном случае выдало, что всё успешно)
Ну и проверяем доступность списков пользователей и групп домена:
#wbinfo -u
должен был быть список, но выдало пустоту.
#wbinfo -g
тоже должен был быть список, но тоже выдало пустоту.
Проверка запроса Ubuntu данных о пользователях и группах через Winbind тоже не выдала ожидаемые списки:
#getent passwd
#getent group
Вот эти последние четыре команды и натолкнули на мысль проверить регистрацию этого сервера в домене…