ActiveDirectory/Join/Customization

Материал из ALT Linux Wiki

После ввода машины в домен и применения автоматических настроек, остаются дополнительные настройки, которые можно выполнить вручную по желанию.

Настройка окна входа

Настройка LightDM

Автоматически в LightDM отключается отображения списка пользователей и отображение выбора языка, но можно самостоятельно дополнительно настроить окно входа в систему.

Можно воспользоваться графическим инструментом lightdm-gtk-greeter-settings:

# apt-get install lightdm-gtk-greeter-settings

или же вручную править конфигурационные файлы.

  1. Экран приветствия GTK
    Чтобы настроить обои на экране приветствия, необходимо в файле /etc/lightdm/lightdm-gtk-greeter.conf в разделе [greeter] определить переменную background. Например:
    background=/usr/share/design/workstation/backgrounds/xdm.png
    
    Рекомендуется использовать PNG или JPG-файл, так как LightDM нужен доступ на чтение файла обоев рабочего стола.
    Изменения темы происходит с помощью переменной theme-name в секции [greeter]. Тема для значков изменяются аналогично, например:
    theme-name = BlueMenta
    icon-theme-name = menta
    
  2. Изменение отображение индикаторов
    В файле /etc/lightdm/lightdm-gtk-greeter.conf в разделе [greeter] параметр indicators, определяющий, какие индикаторы отображаются в графическом интерфейсе приветствия LightDM, включает в себя элементы:
    • ~host - отображает имя хоста машины (имя компьютера).
    • ~spacer - вставляет пустое пространство между индикаторами для визуального разделения.
    • ~clock - отображает текущее время и/или дату в интерфейсе приветствия.
    • ~layout - позволяет пользователю выбрать раскладку клавиатуры из списка доступных.
    • ~session - позволяет выбрать сессию рабочего стола, которая будет использоваться после входа.
    • ~a11y - предоставляет доступ к параметрам, таким как высокая контрастность или крупный шрифт.
    • ~power - отображает индикаторы управления питанием, такие как кнопки выключения, перезагрузки или приостановки системы.
    Можно изменять состав элементов, менять их порядок или добавлять дополнительные пространства между индикаторами.
  3. Автоматическое заполнение поля «Имя пользователя» именем последнего пользователя входившего в систему (начиная с версии 2.0.7-alt2)
    В файле /etc/lightdm/lightdm-gtk-greeter.conf в разделе [greeter] необходимо указать:
    enter-username = true
    

Управление файловыми ресурсами

Подключение файловых ресурсов

Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).

Подключение через графические файловые менеджеры

Графические файловые менеджеры имеют интерфейс для подключения к файловым ресурсам, поддерживающим протоколы, такие как SMB/CIFS. Подключение происходит через интеграцию с системой GVfs, которая упрощает работу с удалёнными ресурсами. В разделе "Сеть" файлового менеджера отображаются доступные SMB-серверы, которые автоматически обнаруживаются с помощью Avahi. Это позволяет пользователю подключаться к удалённым серверам без необходимости вручную вводить IP-адреса или имена серверов. Разрешение имен в локальной сети обеспечивает mDNS (Multicast DNS), используемый в Avahi.

Пример ресурса, который может быть обнаружен: smb://server.local/ (где server.local — это имя SMB-сервера, разрешаемое через mDNS).

Примечание: mDNS работает только в пределах локальной сети. Если у вас есть несколько подсетей, устройства в других подсетях могут не быть видны, если mDNS не настроен для пересылки пакетов между ними.

Через gio

Недостаток такого способа — подключение происходит "по запросу" (необходимо открыть ресурс в файловом менеджере), а не на этапе аутентификации. Однако можно открывать любые ресурсы на любых серверах, входящие в домен Active Directory.

  1. Установка необходимых пакетов:
    # apt-get install apt-get install fuse-gvfs gvfs-backend-smb libgio
    
  2. Добавление пользователя в группу fuse (с правами root):
    # gpasswd -a <пользователь> fuse
    
  3. Разрешить для всех доступ к fuse под root:
    # control fusermount public
    
  4. Далее необходимо войти под доменным пользователем:
    • Открыть ресурс в файловом менеджере (например, по адресу smb://server/sysvol). Ресурс смонтирован по пути /var/run/<uid_пользователя>/gvfs или /var/run/user/<uid_пользователя>/gvfs/smb-share:server=сервер,share=ресурс.
    • Другой вариант (полезно для скриптов в автозапуске):
      # gio mount smb://server/sysvol/
      
Примечание: Если необходимо открывать что-то с ресурса в WINE, в winecfg добавьте диск с путём /var/run/<uid_пользователя>/gvfs.

С использованием pam_mount

Основной задачей pam_mount является автоматическое монтирование удалённых файловых систем при аутентификации пользователя в системе. Это позволяет пользователям подключаться к сетевым ресурсам, как только они успешно вошли в систему, без необходимости вручную монтировать их или вводить пароль каждый раз.

  1. Установка необходимых пакетов:
    Установка pam_mount:
    # apt-get install pam_mount
    
    При подключении файловых ресурсов по протоколу CIFS (SMB) необходимо установить cifs-utils:
    # apt-get install cifs-utils
    
    Для того, чтобы файловые ресурсы, подключенные с помощью pam_mount, корректно отключались при завершении сеанса, необходимо установить пакет systemd-settings-enable-kill-user-processes и перезагрузить систему:
    # apt-get install systemd-settings-enable-kill-user-processes
    
  2. Добавление pam_mount в схему аутентификации по умолчанию. В конец файла (/etc/pam.d/system-auth) добавьте строки:
    session         [success=1 default=ignore] pam_succeed_if.so  service = systemd-user quiet
    session         optional        pam_mount.so disable_interactive
    
    Параметр disable_interactive нужен для того, чтобы pam_mount не спрашивал пароль. Первая строка предназначена для того, чтобы не монтировать дважды при запуске systemd --user.
    Пример файла /etc/pam.d/system-auth при аутентификации доменного пользователя под SSSD:
    #%PAM-1.0
    
    auth            [success=4 perm_denied=ignore default=die]      pam_localuser.so
    auth            [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
    auth            [default=1]     pam_permit.so
    auth            substack        system-auth-sss-only
    auth            [default=1]     pam_permit.so
    auth            substack        system-auth-local-only
    auth            substack        system-auth-common
    
    account         [success=4 perm_denied=ignore default=die]      pam_localuser.so
    account         [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
    account         [default=1]     pam_permit.so
    account         substack        system-auth-sss-only
    account         [default=1]     pam_permit.so
    account         substack        system-auth-local-only
    account         substack        system-auth-common
    
    password        [success=4 perm_denied=ignore default=die]      pam_localuser.so
    password        [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
    password        [default=1]     pam_permit.so
    password        substack        system-auth-sss-only
    password        [default=1]     pam_permit.so
    password        substack        system-auth-local-only
    password        substack        system-auth-common
    
    session         [success=4 perm_denied=ignore default=die]      pam_localuser.so
    session         [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
    session         [default=1]     pam_permit.so
    session         substack        system-auth-sss-only
    session         [default=1]     pam_permit.so
    session         substack        system-auth-local-only
    session         substack        system-auth-common
    session         [success=1 default=ignore] pam_succeed_if.so  service = systemd-user
    session         optional        pam_mount.so disable_interactive
    
  3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml:
    <volume uid="10000-2000200000"
            fstype="cifs"
            server="c253.test.alt"
            path="sysvol"
            mountpoint="~/share"
            options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>
    
    Где:
    • uid="10000-2000200000" — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD);
    • server="c253.test.alt" — имя сервера с ресурсом;
    • path="sysvol" — имя файлового ресурса;
    • mountpoint="~/share" — путь монтирования в домашней папке пользователя.
    Опционально можно добавить:
    • sgrp="group_name" — имя группы, при членстве пользователя в которой, папка будет примонтирована.
  4. Ссылки:
    • Больше подробностей можно узнать в статье Pam_mount.
    • Статья про подключение сетевых дисков с помощью групповых политик.

Создание ресурсов общего доступа

Возможность публикации и управления собственными ресурсами в сети непривилегированным пользователем называется usershares и предоставляется службой Samba.

С подробностями настройки и управления можно ознакомиться в статье Usershares.

Отображение глобальных групп на локальные

При вводе машины в домен с помощью task-auth-ad-sssd или task-auth-ad-winbind установка модуля ролей и настройка соответствия локальных групп доменным выполняются автоматически.

Установка модуля ролей

# apt-get install libnss-role

Настройка ролей и привилегий

  • Добавление роли локальных администраторов:
    # groupadd -r localadmins
    
    Примечание: Лучше использовать группу localadmins (вместо admins) по избежание конфликта с группой admins во FreeIPA.
  • Создание привилегии на право удалённого доступа (по протоколу ssh):
    # groupadd -r remote
    
  • Включение удалённого доступа только для группы remote:
    # control sshd-allow-groups enabled
    # sed -i 's/AllowGroups.*/AllowGroups = remote/' /etc/openssh/sshd_config
    
  • Настройка списка привилегий:
    • Для пользователей (для роли users):
      # roleadd users cdwriter cdrom audio proc radio camera floppy xgrp scanner uucp fuse
      
    • Для администраторов (для роли admins):
      # roleadd localadmins wheel remote vboxusers
      
  • Настройка отображения локальных привилегий, назначенных локальным ролям, на глобальные группы безопасности:
    • Для пользователей:
      # roleadd 'Domain Users' users
      
      или
      # roleadd 'Пользователи домена' users
      
    • Для администраторов:
      # roleadd 'Domain Admins' localadmins
      
      или
      # roleadd 'Администраторы домена' localadmins
      
  • Просмотр списка назначенных ролей и привилегий:
    # rolelst
    users:vmusers,usershares,cdwriter,cdrom,audio,video,proc,radio,camera,floppy,xgrp,scanner,uucp,vboxusers,fuse,vboxadd
    domain admins:localadmins
    domain users:users
    localadmins:wheel,vboxadd,vboxusers
    powerusers:remote,vboxadd,vboxusers
    vboxadd:vboxsf
    
    # id ivanov
    uid=1880201123(kama) gid=1880200513(domain users) группы=1880200513(domain users),10002(BUILTIN\users),100(users),36(vmusers),449(usershares),80(cdwriter),22(cdrom),81(audio),479(video),19(proc),83(radio),468(camera),71(floppy),498(xgrp),499(scanner),14(uucp),476(vboxusers),471(fuse),490(vboxadd),489(vboxsf)
    

Данная настройка назначает заданный список локальных групп (привилегий) всем пользователям, входящим в заданные локальные группы (роли). А также назначает локальные роли для глобальных групп в домене.