Active Directory (AD) — службы каталогов корпорации Microsoft для операционных систем семейства Windows Server. На данный момент это самый популярный инструмент организации доменной структуры в компаниях и организациях.
Данная статья не будет заострять внимание на особенностях разворачивания и настройки Active Directory, предполагается, что домен у вас уже настроен.
Windows Server 2019 с ролями:
В качестве DHCP-сервера выступает сетевой шлюз (роутер).
Для того, чтобы иметь возможность предоставлять права доменным пользователям на управление ПК с операционной системой Uncom OS, вам необходимо скачать с сайта sudo.ws последнюю версию пакета sudo, распаковать архив, в папке /docs найти файл schema.ActiveDirectory и переместить его на ваш сервер.
Схема импортируется в AD с помощью Powershell (запустить от имени администратора из каталога, в котором лежит файл схемы), командой
ldifde -i -f schema.ActiveDirectory -c dc=X dc=unc,dc=tst
Не забудьте заменить имя домена на своё.
После этого вам необходимо в корне домена создать подразделение sudoers. По умолчанию именно в этом подразделении демон sssd производит поиск sudoRole объектов.

Далее, открываем adsiedit.msc и подключаемся к контексту по умолчанию:

В подразделении sudoers создаем объект, принадлежащий классу sudoRole:


Имя может быть выбрано произвольно, так как служит только для удобной идентификации
Из атрибутов объектов типа sudoRole нас интересуют следующие:



ВАЖНО! Настоятельно не рекомендуется использовать в наименовании домена суффикс
.local. Он зарезервирован для Multicast-DNS и его сервисов, таких, как zeroconf, avahi и Bonjour. В случае, если имя вашего домена имеет суффикс.local, вам придётся отключить использование mDNS через редактирование файла конфигурации/etc/nsswitch.conf
Установите необходимые пакеты с помощью команды
sudo apt -y install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit libsss-sudo
Проверим, что наш хост может обнаружить домен AD с помощью команды
sudo realm discover -v unc.tst

Упомянутые в требованиях пакеты мы установили на предыдущем шаге, все требования выполнены, можно присоединять хост к домену.
Если вы хотите сменить имя хоста перед присоединением к домену, это можно сделать с помощью команды
sudo hostnamectl set-hostname "имя-хоста"
Для присоединения нашего ПК к домену воспользуемся командой:
sudo realm join -U "имя_пользователя_с_правами_на присоединение_к_домену" "имя_домена"
Если вы хотите увидеть детали процесса присоединения, добавьте опцию -v или --verbose
Система запросит пароль учётной записи с правми на присоединение к домену. После успешного присоединения вы увидите следующий текст:

Проверим, что наш хост действительно присоединен к домену командой
sudo realm list

В каталоге Active Directory также появилась запись с введённым в домен хостом:

Для того, чтобы Uncom OS могла использовать настройки прав пользователей, произведённых в Active Directory, необходимо внести правки в файлы конфигурации службы sssd:
/etc/nsswitch.conf добавляем в конец файла строку:
/etc/sssd/sssd.conf в секции [sssd] в сервисы добавляем sudo
Вход под доменными учетными записями осуществляется в формате имени пользователя UPN (имя@доменное.имя). Для входа под домённой учетной записью нужно нажать на "Нет в списке?"

Проверим вход под двумя пользователями, один из них состоит в группе безопасности sudo_root, второй нет.
Начнём с учётной записи суперпользователя:



Теперь проверим учётную запись с ограниченными правами:



Для отсоединения ПК под управлением Uncom OS от домена, необходимо зайти под учётной записью локального суперпользователя и воспользоваться командой
sudo realm leave -v "имя_домена"

Проверим список доменов, в которых состоит наш ПК:

Вывод команды sudo realm list является пустым, ПК успешно отсоединён от домена.
При этом домашние папки доменных пользователей остались доступными для локальных суперпользователей:
