Product SiteDocumentation Site

Глава 8. Модуль клиентской машины для применения конфигурации

8.1. Утилиты модуля
8.2. Локальная политика
8.3. Модули клиентской стороны (Applier)
8.4. Периодичность запуска групповых политик
8.5. Ключи реестра
Модуль клиентской машины для применения конфигурации (далее — gpupdate) отвечает за применение заданных администратором системы настроек конфигурации к клиентской машине и/или пользователю машины.
ПО состоит из компонента, который авторизуется в домене и выполняет скачивание файлов настроек на клиентскую машину. Далее происходит разбор файлов настроек и складывание полученных данных в хранилище именуемое также «реестр». Это позволяет развязать методы доставки и применения настроек.
При успешной репликации настроек запускается часть системы называемая «фронтенд». Она отвечает за запуск различных модулей (appliers), каждый из которых отвечает за свою логическую функцию. Например, модуль firefox отвечает за вычитывание настроек для браузера Mozilla Firefox и создание файла политик для него, а модуль ntp отвечает за чтение настроек, касающихся NTP-сервера и создании подходящей конфигурации. Количество и функционал модулей может меняться по мере развития и актуализации продукта и компонентов системы, с которыми они работают.
Групповые политики обрабатываются в следующем порядке:
  • объект локальной групповой политики;
  • объекты групповой политики, связанные с доменом (в рамках возможностей и ограничений поддержки леса доменов в Samba, как наборе клиентских компонент);
  • объекты групповой политики, связанные с OU: сначала обрабатываются объекты групповой политики связанные с OU, находящейся на самом высоком уровне в иерархии Active Directory, затем объекты групповой политики, связанные с дочерним подразделением и т. д. Последними обрабатываются объекты групповой политики, связанные с OU, в которой находится пользователь или компьютер.
Процесс применения настроек:
  • настройки для машины реплицируются при запуске компьютера и далее обновляются раз в час;
  • настройки для пользователя реплицируются при входе пользователя в систему и далее обновляются раз в час.
Для работы механизмов применения пользовательских настроек задействовано множество компонентов ОС таких, как systemd, D-Bus, PAM.
Механизм применения групповых политик
Часть проекта, отвечающая за получение и применение групповых политик, внутри использует базу данных («реестр»), для хранения настроек полученных из различных источников.

8.1. Утилиты модуля

Модуль состоит из трёх утилит:
  • gpoa — системная утилита, осуществляющая применение групповых политик для компьютера или пользователя (gpoa без параметра отрабатывает только для машины, для пользователя нужно указывать username);
  • gpupdate — утилита, осуществляющая запрос на применение групповых политик. При запуске с привилегиями администратора может непосредственно выполнить применение групповых политик минуя необходимость повышения привилегий;
  • gpupdate-setup — инструмент администрирования механизмов применения групповых политик. Позволяет включать и отключать применение групповых политик, а также задавать шаблон политики по умолчанию («Рабочая станция», «Сервер», «Контроллер домена»).
Синтаксис команды gpoa:
gpoa [-h] [--dc DC] [--nodomain] [--noupdate] [--noplugins] [--list-backends] [--loglevel LOGLEVEL] [пользователь]

Таблица 8.1. Опции команды gpoa

Ключ
Описание
-h, --help
Вывести справку о команде
--dc DC
Указать полное имя (FQDN) контроллера домена для реплицирования SYSVOL
--nodomain
Работать без домена (применить политику по умолчанию)
--noupdate
Не пытаться обновить хранилище, только запустить appliers
--noplugins
Не запускать плагины
--list-backends
Показать список доступных бэкэндов
--loglevel LOGLEVEL
Установить уровень журналирования
пользователь
Имя пользователя домена
Примеры работы с командой gpoa:
  • получить и применить настройки для текущей машины:
    # gpoa --loglevel 0
    
  • применить закешированные настройки для текущей машины:
    # gpoa --noupdate
    
  • получить и применить настройки с контроллера домена dc1.test.alt для пользователя ivanov:
    # gpoa --dc dc1.test.alt --loglevel 3 ivanov
    
  • применить политику по умолчанию:
    # gpoa --nodomain --loglevel 0
    
Синтаксис команды gpupdate:
gpupdate [-h] [-u USER] [-t {ALL,USER,COMPUTER}] [-l LOGLEVEL] [-s]

Таблица 8.2. Опции команды gpupdate

Ключ
Описание
-h, --help
Вывести справку о команде
-u USER, --user USER
Имя пользователя для обновления GPO
--target TARGET
Указать политики, которые нужно обновить (пользователя или компьютера). Возможные значения: All (по умолчанию), Computer, User
--loglevel LOGLEVEL
Установить уровень журналирования
-s, --system
Запустить gpupdate в системном режиме
Только root может указать любое имя пользователя для обновления. Пользователь может выполнять gpupdate только для машины или самого себя.
Примеры работы с командой gpupdate:
  • получить и применить настройки для текущей машины:
    $ gpupdate --target Computer
    Apply group policies for computer.
    
  • получить и применить настройки для текущего пользователя:
    $ gpupdate --target User
    Apply group policies for kudrin.
    
  • получить и применить настройки для текущего пользователя и машины:
    $ gpupdate
    Apply group policies for kudrin.
    
  • попытаться получить настройки для пользователя ivanov (с правами пользователя kudrin):
    $ gpupdate -u ivanov --target User --loglevel 0
    2024-06-10 17:17:18.113|[D00010]| Групповые политики будут обновлены для указанной цели|{'target': 'USER'}
    2024-06-10 17:17:18.113|[W00002]| Текущий уровень привилегий не позволяет выполнить gpupdate для указанного пользователя. Будут обновлены настройки текущего пользователя.|{'username': 'kudrin'}
    2024-06-10 17:17:18.118|[D00013]| Запускается GPOA обращением к oddjobd через D-Bus|{}
    2024-06-10 17:17:18.119|[D00900]| Неизвестный отладочный код|{'bus_name': 'ru.basealt.oddjob_gpupdate'}
    2024-06-10 17:17:18.119|[D00006]| Запускается GPOA для пользователя обращением к oddjobd через D-Bus|{'username': 'kudrin'}
    2024-06-10 17:17:37.972|[D00012]| Получен код возврата из утилиты|{'retcode': dbus.Int32(0)}
    Apply group policies for kudrin.
    
    
  • попытаться получить настройки для пользователя ivanov (с правами суперпользователя):
    # gpupdate -u ivanov --target User --loglevel 0
    2024-06-10 17:19:53.960|[D00010]| Групповые политики будут обновлены для указанной цели|{'target': 'USER'}
    2024-06-10 17:19:53.978|[D00013]| Запускается GPOA обращением к oddjobd через D-Bus|{}
    2024-06-10 17:19:53.979|[D00900]| Неизвестный отладочный код|{'bus_name': 'ru.basealt.oddjob_gpupdate'}
    2024-06-10 17:19:53.979|[D00006]| Запускается GPOA для пользователя обращением к oddjobd через D-Bus|{'username': 'ivanov'}
    2024-06-10 17:20:13.852|[D00012]| Получен код возврата из утилиты|{'retcode': dbus.Int32(0)}
    Apply group policies for ivanov.
    
Синтаксис команды gpupdate-setup:
gpupdate-setup [-h] действие …

Таблица 8.3. Опции команды gpupdate-setup

Ключ
Описание
list
Показать список доступных типов локальной политики
list-backends
Показать список доступных бэкэндов
status
Показать текущий статус групповой политики (действие по умолчанию)
enable
Включить подсистему групповой политики
disable
Отключить подсистему групповой политики
update
Обновить состояние. Проверяет в каком состоянии находилась служба gpupdate. В случае если служба gpupdate запущена, gpupdate-setup также запустит весь перечень необходимых служб (например, gpupdate-run-scripts)
write
Операции с групповыми политиками (включить, отключить, указать тип политики по умолчанию)
set-backend
Установить или изменить активную в данный момент серверную часть (бэкэнд)
default-policy
Показать название политики по умолчанию
active-policy
Показать название текущего профиля политики
active-backend
Показать текущий настроенный бэкэнд
Примеры работы с командой gpupdate-setup:
  • просмотр текущего состояния подсистемы групповых политик:
    # gpupdate-setup
    disabled
    
  • включение групповых политик (для включения через ЦУС доступен соответствующий графический модуль управления, а также отметка во время введения машины в домен см. раздел Модуль панели управления операционной системы для включения механизма применения конфигурации на клиентских машинах):
    # gpupdate-setup enable
    workstation
    Created symlink /etc/systemd/user/default.target.wants/gpupdate-user.service → /usr/lib/systemd/user/gpupdate-user.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/gpupdate-scripts-run.service → /lib/systemd/system/gpupdate-scripts-run.service.
    Created symlink /etc/systemd/user/default.target.wants/gpupdate-scripts-run-user.service → /usr/lib/systemd/user/gpupdate-scripts-run-user.service.
    Created symlink /etc/systemd/system/timers.target.wants/gpupdate.timer → /lib/systemd/system/gpupdate.timer.
    Created symlink /etc/systemd/user/timers.target.wants/gpupdate-user.timer → /usr/lib/systemd/user/gpupdate-user.timer.
    # control system-policy
    gpupdate
    
  • выключение групповых политик:
    # gpupdate-setup disable
    Removed /etc/systemd/system/multi-user.target.wants/gpupdate.service.
    Removed /etc/systemd/user/default.target.wants/gpupdate-user.service.
    Removed /etc/systemd/system/timers.target.wants/gpupdate.timer.
    Removed /etc/systemd/user/timers.target.wants/gpupdate-user.timer.
    Removed /etc/systemd/system/multi-user.target.wants/gpupdate-scripts-run.service.
    Removed /etc/systemd/user/default.target.wants/gpupdate-scripts-run-user.service.
    
  • вывести список доступных бэкендов:
    # gpupdate-setup list-backends
    local
    samba
    
  • включить групповые политики и установить профиль политики по умолчанию server:
    # gpupdate-setup write enable server
    
По умолчанию, нет необходимости конфигурировать gpupdate. Однако в файле /etc/gpupdate/gpupdate.ini можно указать в явном виде следующие опции:
  • раздел [gpoa]:
    • backend — способ получения настроек;
    • local-policy — профиль политики по умолчанию, который будет применен сразу после загрузки ОС (ad-domain-controller, workstation, server, default);
  • раздел [samba]:
    • dc — контроллер домена, с которого нужно обновлять групповые политики.
Пример, файла /etc/gpupdate/gpupdate.ini на контроллере домена:
[gpoa]
backend = samba
local-policy = ad-domain-controller
Пример, файла /etc/gpupdate/gpupdate.ini на рабочей станции:
[gpoa]
backend = samba
local-policy = workstation
В следующем примере указан пустой профиль локальной политики. Указать пустой профиль бывает необходимо для тестирования групповых политик, чтобы они не наслаивались на локальные политики:
[gpoa]
backend = samba
local-policy = /usr/share/local-policy/default

[samba]
dc = dc1.test.alt