Bug 54470 - Не обновляется кэш групповой политики при изменении/удалении машинного logon-скрипта на DC
Summary: Не обновляется кэш групповой политики при изменении/удалении машинного logon-...
Status: NEW
Alias: None
Product: Branch p11
Classification: Unclassified
Component: samba-gpupdate (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-p11@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-05-26 21:25 MSK by KALIBR-10
Modified: 2025-05-27 17:59 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description KALIBR-10 2025-05-26 21:25:32 MSK
alt linux p11 starterkit на двух виртуальных машинах. Одна в роли DC вторая член домена.
Системы обновлены.

На клиенте домена:
samba-4.20.8-alt1
gpupdate-0.13.2-alt1.noarch
alterator-gpupdate-1.3-alt1.x86_64
oddjob-gpupdate-0.2.3-alt1.x86_64

Регистрация в домене AD осуществлялась с помощью ЦУС: SSSD + Групповые политики

gpupdate-scripts-run.service
gpupdate.service
gpupdate.timer
В состоянии enabled. Отрабатывают без ошибок.

На клиенте в ADMC - GPUI создал политику:
Административные шаблоны - Система ALT - Групповые политики:
Экспериментальные ГП: Включено
Административные шаблоны - Система ALT - Групповые политики - Механизмы GPUpdate:
Модули выполнения сценариев для пользователя и компьютера: Включено

Добавил машинный Startup logon-скрипт, после перезагрузки он выполняется.
Внёс изменения в скрипт. Выполнил gpupdate -t ALL и перезагрузил клиента.
Ожидание: Отработка скрипта с исправлениями
Результат: Отработал скрипт до исправления

Удалил машинный Startup logon-скрипт, выполнил gpupdate -t ALL и перезагрузил клиента.
Ожидание: Не отрабатывание скрипта
Результат: Отработал скрипт до исправления

Выполнил rm -rf /var/cache/samba/gpo_cache/*
Перезагрузил клиента.
Ожидание: Не отрабатывание скрипта
Результат: Не отрабатывание скрипта

Добавил ещё раз машинный Startup logon-скрипт
Перезагрузил клиента.
Ожидание: Отработка скрипта с исправлениями
Результат: Не отрабатывание скрипта

Выполнил rm -rf /var/cache/samba/gpo_cache/*
Перезагрузил клиента.
Ожидание: Отработка скрипта с исправлениями
Результат: Отработка скрипта с исправлениями
Comment 1 Valery Sinelnikov 2025-05-27 14:21:23 MSK
Возникающая проблема может быть связана с особенностями обработки изменений в групповых политиках. Когда вы вносите изменения в GPO (например, изменяете скрипт Startup), система должна автоматически увеличивать версию этой политики.

Если по какой-то причине инкремент версии не происходит, клиентские машины могут продолжать использовать кэшированную версию политики. В этом случае рекомендуется принудительно обновить политики с помощью команды:
gpupdate --force

Основная гипотеза: при изменении скрипта версия GPO не обновляется корректно, что приводит к использованию устаревших данных из кэша.
Comment 2 Dmitry Maksimenkov 2025-05-27 17:59:45 MSK
Версии:
samba-4.20.8-alt1
gpupdate-0.13.2-alt1
alterator-gpupdate-1.3-alt1
oddjob-gpupdate-0.2.3-alt1

Системы:
ALT Server 11.0 (контроллер домена)
ALT Workstation 11.0 (клиент)
ALT Workstation K 11.0 (клиент)

Шаги воспроизведения:
# Установить пакеты на контроллере домена
    # apt-get install -y admc gpui admx-basealt
# Установить на клиентах необходимые пакеты и убедиться что работает сервис gpupdate-scripts-run.service:
    # apt-get install -y gpupdate gpui admc && systemctl status gpupdate-scripts-run.service
# На контроллере домена открыть ADMC ($ kinit administrator && admc) -> Объекты групповой политики -> <имя домена> -> ПКМ по Default Domain Policy -> Изменить.
# Включить экспериментальные групповые политики:
    * Выбрать в разделе Компьютер -> Административные шаблоны -> Система ALT -> Групповые политики пункт Экспериментальные групповые политики и установить в открывшемся окне отметку в поле Включено.
    * Включить политики Модуль выполнения сценариев для компьютеров и Модуль выполнения сценариев для пользователей (Компьютер -> Административные шаблоны -> Система ALT -> Групповые политики -> Механизмы GPUpdate)
# На клиентах создать скрипты:
    # echo '#!/usr/bin/env bash' > /usr/bin/startup-log && \
echo '#!/usr/bin/env bash' > /usr/bin/shutdown-log && \
echo 'echo [/usr/bin/startup-log] $(date): ${@} >> /var/log/date.log' >> /usr/bin/startup-log && \
echo 'echo [/usr/bin/shutdown-log] $(date): ${@} >> /var/log/date.log' >> /usr/bin/shutdown-log && \
echo '#!/usr/bin/env bash' > /usr/bin/login-log && \
echo '#!/usr/bin/env bash' > /usr/bin/logoff-log && \
echo 'echo [/usr/bin/login-log as $USER] $(date): ${@} >> ~/date.log' >> /usr/bin/login-log  && \
echo 'echo [/usr/bin/logoff-log as $USER] $(date): ${@} >> ~/date.log' >> /usr/bin/logoff-log && \
chmod +x /usr/bin/{startup-log,shutdown-log,login-log,logoff-log}
# На контроллере домена открыть ADMC ($ kinit administrator && admc) -> Объекты групповой политики -> <имя домена> -> ПКМ по Default Domain Policy -> Изменить -> Компьютер -> Настройки системы -> Скрипты.
# Запуск -> Добавить -> Имя скрипта: startup.sh -> Аргументы: hello startup -> OK -> Применить, OK
# Завершение работы -> Добавить -> Имя скрипта: shutdown.sh -> Аргументы: hello shutdown -> OK -> Применить, 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
# Перезапустить систему клиента:
    # reboot
#  Проверить применение политик:
    # cat /var/log/date.log
# Изменить содержимое скрипта на контроллере домена:
    #uuid_policy="$(samba-tool gpo listall | grep -B1 'Default Domain Policy' | head -1 | cut -f '2' -d ':' | xargs)" && sed -i 's/\[STARTUP\]/\[STARTUP NEW\]/g' MACHINE/Scripts/Startup/startup.sh && sed -i 's/\[SHUTDOWN\]/\[SHUTDOWN NEW\]/g' MACHINE/Scripts/Shutdown/shutdown.sh
# Применить групповые политики на клиентах и перезагрузиться:
    # gpupdate -t ALL && reboot
# Проверить наличие изменений:
    # cat /var/log/date.log

Реальный результат: Отработал скрипт до изменений

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

Дополнительно: Не проверялось на Sisyphus