Bug 51246 - При принудительном запуске gpupdate не выполняются startup скрипты
Summary: При принудительном запуске gpupdate не выполняются startup скрипты
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: gpui (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: august@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-08-22 15:24 MSK by Anton Shevtsov
Modified: 2024-09-04 21:38 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Shevtsov 2024-08-22 15:24:29 MSK
При принудительном запуске из консоли gpupdate (в частности gpupdate -t COMPUTER) не выполняются startup скрипты
Comment 1 Osmolovskaya Anastasia 2024-08-28 14:14:03 MSK
Версии пакетов:
oddjob-gpupdate-0.2.3-alt1.x86_64
gpupdate-0.11.1-alt1.noarch
gpui-0.2.48-alt1.x86_64

Тестовые стенды:
Alt Workstation K 10.3 x86-64 (обновлённый до Sisyphus)
Alt Workstation 10.2 x86-64 (обновлённый до Sisyphus)
Alt Education/Education-kde 10.2 x86-64 (обновлённый до Sisyphus)

Шаги для воспроизведения:
1. 1. Установить пакеты на клиентской машине, введённой в домен:
# apt-get install -y gpupdate gpui

2. На клиентской машине, введённой в домен, получить билет администратора и открыть gpui-main: 
$ kinit Administrator
$ gpui-main -p "smb://<dc.name>/sysvol/samba.testdomain/Policies/{***}"

3. Изменить состояние политики "Компьютер -> Административные шаблоны -> Система ALT -> Групповые политики  -> Экспериментальные групповые политики" -> Включено

4. Изменить состояние политики "Компьютер → Административные шаблоны → Система ALT → Групповые политики → Механизмы GPUpdate → Модуль выполнения сценариев для компьютера" -> Включено

5. Открыть раздел "Компьютер → Настройки системы → Скрипты → Запуск" -> Добавить сценарий для запуска ПК -> Ок и применить политики на клиенте: # gpupdate -t COMPUTER или # gpoa --loglevel 0

6. Проверить содержимое каталога /var/cache/gpupdate_scripts_cache/machine/STARTUP/: 
# ls /var/cache/gpupdate_scripts_cache/machine/STARTUP/

Ожидаемый результат: появление созданного скрипта в каталоге STARTUP/

Реальный результат: скрипты не добавляются ни после выполнения указанных команд, ни после перезагрузки системы.
Comment 2 Danila Skachedubov 2024-08-29 14:14:24 MSK
(Ответ для Anton Shevtsov на комментарий #0)
> При принудительном запуске из консоли gpupdate (в частности gpupdate -t
> COMPUTER) не выполняются startup скрипты

Добрый день, что подразумевается под не выполняется? Startup скрипты запускаются только при запуске компьютера. Принудительно запущенный Gpupdate, не подразумевает запуска Startup/Shutdown, Logon/Logoff скриптов.Если подразумевается что-то иное, то прошу уточнить.
Comment 3 Anton Shevtsov 2024-08-29 14:20:48 MSK
(Ответ для Danila Skachedubov на комментарий #2)
> (Ответ для Anton Shevtsov на комментарий #0)
> > При принудительном запуске из консоли gpupdate (в частности gpupdate -t
> > COMPUTER) не выполняются startup скрипты
> 
> Добрый день, что подразумевается под не выполняется? Startup скрипты
> запускаются только при запуске компьютера. Принудительно запущенный
> Gpupdate, не подразумевает запуска Startup/Shutdown, Logon/Logoff
> скриптов.Если подразумевается что-то иное, то прошу уточнить.

Нет, именно это и подразумевалось. По сути, все машинные политики запускаются при запуске ПК. А т.к. gpupdate является принудительной "дергалкой" применения политики, то ожидалось, что применятся все составляющие политики.
Comment 4 Danila Skachedubov 2024-08-29 14:27:31 MSK
(Ответ для Osmolovskaya Anastasia на комментарий #1)
> Версии пакетов:
> oddjob-gpupdate-0.2.3-alt1.x86_64
> gpupdate-0.11.1-alt1.noarch
> gpui-0.2.48-alt1.x86_64
> 
> Тестовые стенды:
> Alt Workstation K 10.3 x86-64 (обновлённый до Sisyphus)
> Alt Workstation 10.2 x86-64 (обновлённый до Sisyphus)
> Alt Education/Education-kde 10.2 x86-64 (обновлённый до Sisyphus)
> 
> Шаги для воспроизведения:
> 1. 1. Установить пакеты на клиентской машине, введённой в домен:
> # apt-get install -y gpupdate gpui
> 
> 2. На клиентской машине, введённой в домен, получить билет администратора и
> открыть gpui-main: 
> $ kinit Administrator
> $ gpui-main -p "smb://<dc.name>/sysvol/samba.testdomain/Policies/{***}"
> 
> 3. Изменить состояние политики "Компьютер -> Административные шаблоны ->
> Система ALT -> Групповые политики  -> Экспериментальные групповые политики"
> -> Включено
> 
> 4. Изменить состояние политики "Компьютер → Административные шаблоны →
> Система ALT → Групповые политики → Механизмы GPUpdate → Модуль выполнения
> сценариев для компьютера" -> Включено
> 
> 5. Открыть раздел "Компьютер → Настройки системы → Скрипты → Запуск" ->
> Добавить сценарий для запуска ПК -> Ок и применить политики на клиенте: #
> gpupdate -t COMPUTER или # gpoa --loglevel 0
> 
> 6. Проверить содержимое каталога
> /var/cache/gpupdate_scripts_cache/machine/STARTUP/: 
> # ls /var/cache/gpupdate_scripts_cache/machine/STARTUP/
> 
> Ожидаемый результат: появление созданного скрипта в каталоге STARTUP/
> 
> Реальный результат: скрипты не добавляются ни после выполнения указанных
> команд, ни после перезагрузки системы.

В шагах воспроизведения не увидел пункта о копировании в GPT на sysvol скриптов,которые Вы затем добавляете. Еще, предполагаю, что это может быть вызвано отсутствием корректной версии в GPC в AD, на что можно попробовать использовать ключ --force.
Comment 5 Evgeny Shesteperov 2024-09-04 21:38:58 MSK
Настроил согласно https://www.altlinux.org/Групповые_политики/Управление_logon-скриптами

Выполнил данные условия для корректной работы:

* Убедиться, что скрипт расположен в каталоге (GPT) применяемого объекта групповой политики (GPO);
* Выбрать в разделе Компьютер → Административные шаблоны → Система ALT → Групповые политики пункт Экспериментальные групповые политики и установить в открывшемся окне отметку в поле Включено.
* Включить политики Модуль выполнения сценариев для компьютеров и Модуль выполнения сценариев для пользователей (Компьютер → Административные шаблоны → Система ALT → Групповые политики → Механизмы GPUpdate)


Шаги:

На контроллере домена открыть ADMC ($ kinit administrator && admc) → Объекты групповой политики → <имя домена> → ПКМ по Default Domain Policy → Изменить.

Перейти в Компьютер → Настройки системы → Скрипты.

Щёлкнуть левой кнопкой мыши на политике Запуск.

Нажать Добавить.

Указать Имя скрипта как startup.sh

Аргументы скрипта указать как hello startup

Нажать ОК.

Нажать Применить, затем OK.

Щёлкнуть левой кнопкой мыши на политике Завершение работы.

Нажать Добавить.

Указать Имя скрипта как shutdown.sh

Аргументы скрипта указать как hello shutdown

Нажать ОК.

Нажать Применить, затем OK.

Создать скрипты на сервере:

# uuid_policy="$(samba-tool gpo listall | grep -B1 'Default Domain Policy' | head -1 | cut -f '2' -d ':' | xargs)"
cd /var/lib/samba/sysvol/samba.testdomain/Policies/${uuid_policy} && \
echo '#!/usr/bin/env bash' > MACHINE/Scripts/Startup/startup.sh && \
echo '#!/usr/bin/env bash' > MACHINE/Scripts/Shutdown/shutdown.sh && \
echo 'echo [STARTUP] $(date): ${@} >> /var/log/date.log' >> MACHINE/Scripts/Startup/startup.sh && \
echo 'echo [SHUTDOWN] $(date): ${@} >> /var/log/date.log' >> MACHINE/Scripts/Shutdown/shutdown.sh

Применить политики на клиенте:

# gpupdate &> gpupdate.log && gpoa --loglevel 0 &> gpoa.log

Проверить, что скрипты прилетели на клиент:

# ls /var/cache/gpupdate_scripts_cache/machine/{SHUTDOWN,STARTUP}

Результат:

/var/cache/gpupdate_scripts_cache/machine/SHUTDOWN:
00000_SHUTDOWN.SH  00000_SHUTDOWN.SH.arg

/var/cache/gpupdate_scripts_cache/machine/STARTUP:
00000_STARTUP.SH  00000_STARTUP.SH.arg

Согласно статье на Wiki за работу данных скриптов отвечает сервис gpupdate-scripts-run.service, нужно быть уверенным, что у вас данный сервис стартует вместе с системой.