Управление групповыми политиками для запуска скриптов

Назначение групповых политик для запуска скриптов — настройка запуска заданий с помощью планировщика cron на клиентских машинах под управлением ОС Linux. Данные политики не загружают скрипты в виде файлов в SysVol — они обеспечиваются только настройку их запуска. Для загрузки скриптов на клиентские машины могут использоваться групповые политики для работы с файлами.

Настройки, применяемые в рамках данных политик, хранятся в файлах MACHINE/Registry.pol и USER/Registry.pol в подкаталоге соответствующего объекта GPO в SysVol в формате записей реестра (см. подраздел «Изменение настроек групповых политик в GPO (через Registry.pol)»).

Серверное расширение (SSE) для политик для запуска скриптов распространяется в виде административного шаблона в формате ADMX (см. подраздел «Установка административных шаблонов на контроллере домена»).

Клиентское расширение (CSE) создает задания в планировщике cron на клиентской машине. Для политик Machine задания добавляются в файл в каталогах /etc/cron.daily, /etc/cron.monthly, /etc/cron.weekly и /etc/cron.hourly. Для политик User — изменяется непосредственно файл crontab пользователя.

Команда samba-tool gpo manage не предоставляет отдельные подкоманды для работы с объектами GPO с настройками групповых политик для запуска скриптов. Для этой цели может использоваться редактор групповых политик (Group Policy Management Editor, GPME) в составе RSAT на участнике домена под управлением ОС Windows.

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

  1. Выполните вход на компьютер — участник домена под управлением ОС Windows с установленным набором инструментов RSAT и административными шаблонами Samba, используя учетную запись с правами на редактирование групповых политик, и откройте консоль Group Policy Management (gpmc.msc).

  2. Правой кнопкой щелкните на имени домена и выберите Create a GPO in this domain, and Link it here (Создать объект групповой политики в этом домене и связать его).

  3. Укажите имя для объекта GPO и нажмите OK.

  4. Правой кнопкой щелкните на имени созданного объекта GPO в списке в области просмотра и выберите Edit.

  5. В области навигации редактора в левой панели раскройте Computer configuration → Policies → Administrative templates → Samba → Unix Settings → Scripts (Конфигурация компьютера → Политики → Административные шаблоны → Samba → Unix Settings → Scripts).

  6. В панели справа выберите политику Daily.

  7. В диалоговом окне Daily выберите опцию Enabled (Включено) и в области Options (Параметры) нажмите Show…​ (Показать).

  8. В диалоговом окне Show Contents (Вывод содержания) введите в поле Value (Значение) простейший скрипт. Например:

    echo hello world
  9. Нажмите ОК, чтобы закрыть диалоговое окно Show Contents (Вывод содержания), и затем еще раз нажмите ОК, чтобы закрыть диалоговое окно Daily.

  10. Для проверки доступности политики на клиентской машине с ОС Linux — участнике домена выполните:

    sudo /app/inno-samba/sbin/samba-gpupdate --rsop
    Resultant Set of Policy
    Computer Policy
    
    GPO: Default Domain Policy
    =================================================================
      CSE: gp_scripts_ext
      -----------------------------------------------------------
        Policy Type: Daily Scripts
        -----------------------------------------------------------
        [ echo hello world ]
        -----------------------------------------------------------
      -----------------------------------------------------------
    =================================================================
  11. Обновите политики на клиентской машине:

    sudo /app/inno-samba/sbin/samba-gpupdate --force
  12. В результате применения политики в каталоге /etc/cron.daily/ создается скрипт:

    sudo cat /etc/cron.daily/gp_m95kdru6
    #!/bin/sh
    
    ### autogenerated by samba
    #
    # This file is generated by the gp_scripts_ext Group Policy
    # Client Side Extension. To modify the contents of this file,
    # modify the appropriate Group Policy objects which apply
    # to this machine. DO NOT MODIFY THIS FILE DIRECTLY.
    #
    
    echo hello world