Здравствуйте.
Пишу небольшую статью-заметку по решению конкретной ситуации, сложившейся в процессе переведения компьютеров одной конторы на Linux, введении их в домен AD и организации работы с терминальными серверами на этих рабочих местах.
Водные данные следующие. Основная работа пользователей происходит на терминальной ферме RDS, соответственно домен у нас от Microsoft. Можно было бы остановится на решении типа WTware, но подразумевается, что пользователи изредка или в экстренных случаях могут работать локально. Поэтому выбран стандартный дистрибутив Ubuntu 20.04 LTS + некоторый набор стандартного ПО. В качестве клиента rdp используем remmina.
Итак ввели мы компьютер в домен, аутентификация пользователей работает, сетевые папки монтируются, rdp работает, а компьютер регистрируется в доменной DNS и обновляет свою запись. Однако принтеры подключенные к компьютеру в терминальную сессию не пробрасываются. В частности у нас это этикеточные принтеры. После недолгих раздумий выяснили причину подобного поведения системы. Дело в том, что перед вводом компьютера в домен ему назначается FQDN имя, командой вида:
sudo hostnamectl set-hostname ws01.mydomen.com
Как результат это имя прописывается в файл /etc/hostname. Это нарушение рекомендаций, которые приведены в инструкциях Debian. В них настаивают, что в этом файле должно содержатся short имя. Применительно к нашему примеру, это ws01.
Изменили процедуру настройки компьютера и перед вводом в домен задали short имя. Проверили, вроде все нормально, аутентификация, сетевые папки, rdp и даже проброс принтеров заработал. И тут сюрприз компьютер перестал регистрироваться в DNS и обновлять свою запись.
Повезло нашли две проблемы, и для каждой из этих проблем есть решение.
Хочешь проброс принтера в терминальную сессию - задай компьютеру short имя.
Хочешь корректную работу DNS внутри домена - задай компьютеру FQDN имя.
Решение одной проблемы исключает решение другой. Поискали решение в интернете, не нашли. Попытались выбрать что нам важнее, не решили. И наконец сделали то, с чего надо было начинать, почитали man на конфиг файл службы sssd.
И вот решение, ради которого и затевалась вся статья.
# Задаем FQDN имя компьютеру
sudo hostnamectl set-hostname ws01.mydomen.com
# Вводим компьютер в домен
realm join mydomen.com
# Меняем имя компьютера на short
sudo hostnamectl set-hostname ws01
# Добавляем в /etc/sssd/sssd.conf в раздел [domain/mydomen.com] строку
# ad_hostname = ws01.mydomen.com
Теперь работают обе службы.
Вся эта ситуация это следствие различие подходов конфигурации компьютера в дистрибутивах групп DEB и RPM. Поскольку настройка у нас автоматизирована через Ansible, то костыль виде дополнительного переименования компьютера особо на трудоемкость процесса перехода не влияет. Пара строк в плейбуке и проблема решена.
Кстати заранее прописать ad_hostname не получится, поскольку файл конфигурации создается как раз во время ввода компьютера в домен.
Надеюсь я не утомил читателей своим словоблудием, будет приятно, если моя статья поможет кому разрубить "Гордиев узел" и не выбирать что ему важнее.