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

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

Настройки, применяемые в рамках данных политик, хранятся в файле MACHINE/VGP/VTLA/Unix/Scripts/Startup/manifest.xml в подкаталоге соответствующего объекта GPO в SysVol. При необходимости они могут быть отредактированы в любом текстовом редакторе.

Серверное расширение (SSE) для работы с данными политиками в GPME отсутствует. Для их администрирования может использоваться только подкоманда samba-tool gpo manage scripts startup.

Клиентское расширение (CSE) создает на клиентских машинах задания в планировщике cron с переменной @reboot. Настройки политики применяются только к целевому объекту Machine.

Добавление групповой политики для запуска скриптов при входе в систему

Для задания настроек запуска скрипта при входе в систему с помощью групповой политики используется следующий формат вызова:

samba-tool gpo manage scripts startup add <gpo> <script> [args] [run_as] [options]

В качестве значения gpo ожидается GUID требуемого объекта групповой политики. Для получения GUID может использоваться подкоманда samba-tool gpo listall. Второй обязательный аргумент — относительный путь и имя файла скрипта (script), который должен быть создан заранее.

При необходимости также могут быть заданы:

  • аргументы (args) для передачи скрипту при запуске;

    Аргументы заключаются в кавычки. Символы '-' должны быть экранированы. Например: '\\-n \\-p all'.

  • пользователь (run_as), от имени которого должен запускаться скрипт.

    По умолчанию скрипт запускается от имени пользователя root.

Если скрипт необходимо выполнить только один раз (при следующем входе в систему), должен быть передан параметр --run-once.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --run-once — выполнить скрипт один раз при следующем входе в систему.

Примеры

Пример добавления скрипта для запуска при входе в систему на клиентской машине:

  1. Создайте скрипт. Например:

    cat test_script.sh
    #!/bin/sh
    
    echo Something is happening here at startup
  2. Выполните подкоманду:

    samba-tool gpo manage scripts startup add \
        {31B2F340-016D-11D2-945F-00C04FB984F9} \
        test_script.sh \
        -U Administrator
  3. Для проверки доступности политики на клиентской машине с ОС Linux — участнике домена выполните:

    sudo /app/inno-samba/sbin/samba-gpupdate --rsop
    Resultant Set of Policy
    Computer Policy
    
    GPO: Default Domain Policy
    =================================================================
      CSE: vgp_startup_scripts_ext
      -----------------------------------------------------------
        Policy Type: VGP/Unix Settings/Startup Scripts
        -----------------------------------------------------------
        [ @reboot root /app/inno-samba/var/cache/gpo_cache/ELLES.INNO.TECH/
                       POLICIES/{31B2F340-016D-11D2-945F-00C04FB984F9}/
               MACHINE/VGP/VTLA/UNIX/SCRIPTS/STARTUP/
               TEST_SCRIPT.SH  ]
        -----------------------------------------------------------
      -----------------------------------------------------------
    =================================================================
  4. Обновите политики на клиентской машине:

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

    sudo cat /etc/cron.d/gp_vzldfcii
    
    ### autogenerated by samba
    #
    # This file is generated by the vgp_startup_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.
    #
    
    @reboot root /app/inno-samba/var/cache/gpo_cache/ELLES.INNO.TECH/POLICIES/
     {31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/VGP/VTLA/UNIX/
     SCRIPTS/STARTUP/TEST_SCRIPT.SH
  6. Для просмотра содержимого скрипта выполните:

    sudo cat /app/inno-samba/var/cache/gpo_cache/ELLES.INNO.TECH/POLICIES/
     {31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/VGP/VTLA/UNIX/
     SCRIPTS/STARTUP/TEST_SCRIPT.SH
    #!/bin/sh
    
    echo Something is happening here at startup

Получение информации о групповой политике для запуска скриптов при входе в систему

Для получения информации о настройках групповой политики, обеспечивающей запуск скрипта при входе в систему на клиентских машинах, в SysVol используется следующий формат вызова:

samba-tool gpo manage scripts startup list <gpo> [options]

В качестве значения gpo ожидается GUID требуемого объекта групповой политики. Для получения GUID может использоваться подкоманда samba-tool gpo listall.

Подкоманда выводит:

  • параметры запуска скрипта;

  • пользователя, от имени которого запускается скрипт;

  • путь к скрипту и имя скрипта в SysVol.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.

Примеры

Пример получения настроек, применяемых в рамках групповой политики для запуска скрипта при входе в систему:

samba-tool gpo manage scripts startup list \
    {31B2F340-016D-11D2-945F-00C04FB984F9} \
    @reboot root \\elles.inno.tech\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\VGP\VTLA\Unix\Scripts\Startup\test_script.sh \
    -U Administrator

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

Для удаления настроек групповой политики для запуска скрипта при входе в систему из SysVol используется следующий формат вызова:

samba-tool gpo manage scripts startup remove <gpo> <script> [options]

В качестве значения gpo ожидается GUID требуемого объекта групповой политики. Для получения GUID может использоваться подкоманда samba-tool gpo listall. Также указывается имя скрипта (script), выполнение которого обеспечивает политика.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.

Примеры

Пример удаления настроек групповой политики для запуска скрипта при входе в систему:

samba-tool gpo manage scripts startup remove \
    {31B2F340-016D-11D2-945F-00C04FB984F9} \
    test_script.sh \
    -U Administrator