Ошибка в работе samba в домене AD - id: username: No such user

Столкнулся на днях с неожиданной ошибкой в samba, на которую потратил пару часов, пока не разобрался, в чем дело. Проблема возникла на файловом сервере linux, включенном в домен Windows. Использовал свою стандартную конфигурацию, но тут она почему-то подвела.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

В этот раз все то же самое было. У меня имелась система CentOS 6. Добавил ее в домен, как описано в статье, заменив некоторые команды, так как они отличаются в 6-й и 7-й версии. Прошел все проверки, все было на первый взгляд нормально.

Проверка samba на ошибки

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

receive_smb_raw_talloc failed for client 10.1.4.189 read error = NT_STATUS_CONNECTION_RESET

kerberos_kinit_password SRV-FILES$@DOMAIN.LOCAL failed: Preauthentication failed

При этом все проверки wbinfo возвращают пользователей, группы, доверительные отношения и прочее. Билетик керберос нормально получается. Файл nsswitch.conf был правильно отредактирован, все как полагается. Не проходила следующая проверка:

# id domainuser
id: domainuser: No such user

и getent:

# getent passwd

выводил только локальных пользователей, а должен и доменных.

При этом, если сделать тоже самое с пользователем, под которым я заводил машину в домен, то команда возвращает верные данные о пользователе. Я хорошенько проверил все конфиги, сравнил их с другими серверами. Все как везде, но почему-то не работает. Перезапуски служб и перезагрузка не помогала.

Ответ нашел в интернете, хотя и не разу. Некоторые советы по решению схожих ошибок мне не помогли. А помогло вот что. У меня в конфмге самбы есть такие строки:

idmap config * : range = 10000-20000
idmap config * : backend = tdb

После того, как я их заменил на:

idmap config * : backend = rid
idmap config * : range = 5000-10000000
idmap config * : base_rid = 0

Все заработало. Простая смена backend с tdb на rid не помогала, необходимы были дополнительные параметры. Я до конца не стал вникать, что это такое и в чем принципиальная разница. Понял только, что через этот инструмент winbind взаимодействует с утилитами AD. После замены бэкенда все заработало как и должно.

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

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

4 комментария

  1. При всем при этом надо отредактировать файл nsswitch.conf
    В итоге файл должен будет содержать следующие строки:
    group: files winbind
    hosts: files dns nis winbind
    networks: files winbind
    passwd: files winbind
    shadow: files winbind
    shells: files winbind
    И не забыть установить пакет libnss-winbind, ибо настройки в файле nsswitch.conf не будут применятся к winbind без этого пакета.

  2. Сергей

    Прошу обратить внимание, если у вас появилась данная ошибка на рабочей хранилке, не спишите менять конфиг в самбе, в противном случае слетят права ACL на папках.

  3. Долго бился с подобной проблемой. Помогло это решение: https://superuser.com/questions/1512438/winbind-id-command-doesnt-show-user-info

  4. И какие это "дополнительные параметры"?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar