Bug 50667 - Не отрабатывает групповая политика logon-скриптов при первой аутентификации доменного пользователя на клиентском узле введенным в домен Samba DC
Summary: Не отрабатывает групповая политика logon-скриптов при первой аутентификации д...
Status: REOPENED
Alias: None
Product: Branch p10
Classification: Unclassified
Component: gpupdate (show other bugs)
Version: не указана
Hardware: all Linux
: P5 normal
Assignee: Valery Sinelnikov
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-17 11:56 MSK by paulina.poidenko
Modified: 2024-06-26 08:47 MSK (History)
3 users (show)

See Also:


Attachments
Предполагаемое решение проблемы - редактирование службы gpupdate-scripts-run-user.service (4.04 KB, patch)
2024-06-17 12:06 MSK, paulina.poidenko
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description paulina.poidenko 2024-06-17 11:56:09 MSK
ИНФОРМАЦИЯ О ДОМЕНЕ И О СОЗДАНИИ ГРУППОВОЙ ПОЛИТИКИ Logon

Общая информация о домене: домен test.alt развернут на ALT Server 10.2
Имя КД: dc1.test.alt
Уровень домена и леса: 2008 R2
Версия samba: samba-4.19.6-alt2
[root@dc1 ~]# samba-tool domain level show
Domain and forest function level for domain 'DC=test,DC=alt'

Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2

Информация о подразделениях,групповых политиках и клиентских узлах:
[root@dc1 Logon]# samba-tool computer list
ALTWKS1$
DC1$
[root@dc1 ~]# samba-tool ou list
OU=OUTest1
OU=OUTest2
OU=OUTest3_computers
OU=Domain Controllers
[root@dc1 ~]# samba-tool ou listobjects 'OU=OUTest1'
CN=sambauser1,OU=OUTest1
CN=sambauser2,OU=OUTest1
CN=sambauser3,OU=OUTest1
CN=sambauser4,OU=OUTest1
[root@dc1 ~]# samba-tool gpo listall
GPO          : {6AC1786C-016F-11D2-945F-00C04FB984F9}
display name : Default Domain Controllers Policy
path         : \\\\test.alt\\sysvol\\test.alt\\Policies\\{6AC1786C-016F-11D2-945F-00C04FB984F9}
dn           : CN={6AC1786C-016F-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=test,DC=alt
version      : 0
flags        : NONE

GPO          : {31B2F340-016D-11D2-945F-00C04FB984F9}
display name : Default Domain Policy
path         : \\\\test.alt\\sysvol\\test.alt\\Policies\\{31B2F340-016D-11D2-945F-00C04FB984F9}
dn           : CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=test,DC=alt
version      : 65537
flags        : NONE

GPO          : {C338FC89-1366-411B-B0D9-C879916912E8}
display name : pol_1_logon
path         : \\\\test.alt\\sysvol\\test.alt\\Policies\\{C338FC89-1366-411B-B0D9-C879916912E8}
dn           : CN={C338FC89-1366-411B-B0D9-C879916912E8},CN=Policies,CN=System,DC=test,DC=alt
version      : 65537
flags        : NONE

[root@dc1 ~]# 
[root@dc1 ~]# cd /var/lib/samba/sysvol/test.alt/Policies/\\{C338FC89-1366-411B-B0D9-C879916912E8\\}/User/Scripts/Logon/
[root@dc1 Logon]# ls -l
итого 8
-rw-rw----+ 1 root root 51 июн 14 16:44 date.sh
[root@dc1 Logon]# cat date.sh 
#!/usr/bin/env bash
#
date >> $HOME/file_date.txt
[root@dc1 ~]# 
Была создана групповая политика pol_1_logon, которую привязала к подразделению OUTest1. Добавила logon-скрипт date.sh в «Пользователь» -> «Настройки системы» -> «Скрипты» -> «Вход в систему».
Дополнительно включила “Экспериментальные групповые политики” и включила механизм групповых политик управления logon-скриптами через «Модуль выполнения сценариев для компьютеров» и «Модуль выполнения сценариев для пользователей».

ИНФОРМАЦИЯ О КЛИЕНТЕ И ПРИМЕНЕНИИ ПОЛЬЗОВАТЕЛЬСКОЙ ПОЛИТИКИ

Клиент: altwks1.test.alt
ОС: ALT Workstation 10.2
Пакеты gpupdate-*: oddjob-gpupdate-0.2.2-alt1.x86_64; gpupdate-0.10.0-alt1.noarch; alterator-gpupdate-1.3-alt1.x86_64
Включено применение групповых политик через команду gpupdate-setup enable и перезагружен клиентский узел.
[root@altwks1 ~]# gpupdate-setup enable
workstation
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.
[root@altwks1 ~]# reboot

Выполним вход под доменным пользователем sambauser1.
Из нижеуказанного вывода видно, что каталог со скриптом создается позже чем запускается служба gpupdate-scripts-run-user.service, в связи с чем скрипт date.sh не запускается и политика Logon в целом не отрабатывает.

[sambauser1@altwks1 ~]$ systemctl --user status gpupdate-scripts-run-user.service
● gpupdate-scripts-run-user.service - Run Group Policy scripts for a user
     Loaded: loaded (/usr/lib/systemd/user/gpupdate-scripts-run-user.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2024-06-17 02:48:29 MSK; 25s ago
    Process: 3393 ExecStart=/usr/libexec/gpupdate/scripts_runner --mode USER --action LOGON --user sambauser1 (code=exited, status=0/SUCCESS)
   Main PID: 3393 (code=exited, status=0/SUCCESS)
        CPU: 24ms

июн 17 02:48:28 altwks1.test.alt systemd[3384]: Starting Run Group Policy scripts for a user...
июн 17 02:48:29 altwks1.test.alt scripts_runner[3393]: [Errno 2] No such file or directory: '/var/cache/gpupdate_scripts_cache/users/sambauser1'
июн 17 02:48:29 altwks1.test.alt systemd[3384]: Finished Run Group Policy scripts for a user.
[sambauser1@altwks1 ~]$ ls -l --full-time /var/cache/gpupdate_scripts_cache/users/sambauser1
итого 8
drwxr-xr-x 2 root root 4096 2024-06-17 02:48:30.165798462 +0300 LOGOFF
drwxr-xr-x 2 root root 4096 2024-06-17 02:48:30.165798462 +0300 LOGON
[sambauser1@altwks1 ~]$ ls -l /var/cache/gpupdate_scripts_cache/users/sambauser1/LOGON/00000_DATE.SH 
-rwxr-xr-x 1 root root 51 июн 17 02:48 /var/cache/gpupdate_scripts_cache/users/sambauser1/LOGON/00000_DATE.SH
[sambauser1@altwks1 ~]$ cat /var/cache/gpupdate_scripts_cache/users/sambauser1/LOGON/00000_DATE.SH 
#!/usr/bin/env bash
#

date >> $HOME/file_date.txt

Перезойдем повторно под пользователем sambauser1.
При повторной аутентификации политика применилась, так как уже был создан ранее каталог со скриптом, который смогла найти служба gpupdate-scripts-run-user.service, после чего данный каталог /var/cache/gpupdate_scripts_cache/users/sambauser1 вновь был пересоздан.

[sambauser1@altwks1 ~]$ systemctl --user status gpupdate-scripts-run-user.service
● gpupdate-scripts-run-user.service - Run Group Policy scripts for a user
     Loaded: loaded (/usr/lib/systemd/user/gpupdate-scripts-run-user.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2024-06-17 02:54:13 MSK; 1min 29s ago
    Process: 4069 ExecStart=/usr/libexec/gpupdate/scripts_runner --mode USER --action LOGON --user sambauser1 (code=exited, status=0/SUCCESS)
   Main PID: 4069 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 1125)
     Memory: 0B
        CPU: 30ms
     CGroup: /user.slice/user-821801104.slice/user@821801104.service/app.slice/gpupdate-scripts-run-user.service

июн 17 02:54:13 altwks1.test.alt systemd[4061]: Starting Run Group Policy scripts for a user...
июн 17 02:54:13 altwks1.test.alt scripts_runner[4069]: Script run: ['/var/cache/gpupdate_scripts_cache/users/sambauser1/LOGON/00000_DATE.SH']
июн 17 02:54:13 altwks1.test.alt systemd[4061]: Finished Run Group Policy scripts for a user.
[sambauser1@altwks1 ~]$ ls -l --full-time /var/cache/gpupdate_scripts_cache/users/
итого 4
drwxr-xr-x 4 root root 4096 2024-06-17 02:54:14.107534575 +0300 sambauser1
[sambauser1@altwks1 ~]$ ls -l
итого 36
-rw-r--r-- 1 sambauser1 domain users   33 июн 17 02:54  file_date.txt
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Видео
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Документы
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Загрузки
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Изображения
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Музыка
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Общедоступные
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48 'Рабочий стол'
drwxr-xr-x 2 sambauser1 domain users 4096 июн 17 02:48  Шаблоны
[sambauser1@altwks1 ~]$ 

Проведя повторное тестирование, было выявлено, что данная ситуация наблюдается и на других доменных УЗ.

Ожидаемый результат: политика Logon применилась и запустился скрипт date.sh при первой аутентификации доменного пользователя в системе.

Реальный результат: каталог /var/cache/gpupdate_scripts_cache/users/sambauser1 создается позже чем запускается служба gpupdate-scripts-run-user.service, в связи с чем она не может найти необходимый каталог, в котором хранится пользовательский скрипт, и запустить его. И по итогу скрипт отрабатывает только при повторной аутентификации.
Comment 1 paulina.poidenko 2024-06-17 12:06:07 MSK
Created attachment 16278 [details]
Предполагаемое решение проблемы - редактирование службы gpupdate-scripts-run-user.service
Comment 2 Антон Мидюков 2024-06-17 23:42:51 MSK
Резюмирую проблему.
gpupdate-scripts-run-user.service запускается до gpupdate-user.service, который запускается только по таймеру. В результате на момент запуска сеанса в каталоге скрипты не в актуальном состоянии.
Нужно исправить gpupdate-scripts-run-user.service, как предлагает рапортер бага:

--- gpupdate-scripts-run-user.service.orig
+++ gpupdate-scripts-run-user.service
@@ -1,5 +1,7 @@
 [Unit]
 Description=Run Group Policy scripts for a user
+After=gpupdate-user.service
+Requires=gpupdate-user.service
 
 [Service]
 Type=oneshot
Comment 3 Repository Robot 2024-06-19 14:01:28 MSK
gpupdate-0.10.3-alt1 -> sisyphus:

 Wed Jun 19 2024 Valery Sinelnikov <greh@altlinux> 0.10.3-alt1
 - Added autocompletion for gpoa, gpupdate, gpupdate-setup
 - Added correct work with json data in keys for the Firefox browser
 - Polkit_appliers changed to non-experimental
 - Fixed bug of not clearing kde applier settings (closes: 50336)
 - Fixed registry key reading (closes: 50553)
 - Added waiting for data generation for scripts (closes: 50667)
Comment 4 Антон Мидюков 2024-06-19 15:10:09 MSK
(Ответ для Repository Robot на комментарий #3)
> gpupdate-0.10.3-alt1 -> sisyphus:
> 
>  Wed Jun 19 2024 Valery Sinelnikov <greh@altlinux> 0.10.3-alt1
>  - Added autocompletion for gpoa, gpupdate, gpupdate-setup
>  - Added correct work with json data in keys for the Firefox browser
>  - Polkit_appliers changed to non-experimental
>  - Fixed bug of not clearing kde applier settings (closes: 50336)
>  - Fixed registry key reading (closes: 50553)
>  - Added waiting for data generation for scripts (closes: 50667)

Бага на p10, поэтому переоткрываю и ждём таска для p10.
Comment 5 Антон Мидюков 2024-06-19 15:21:37 MSK
Вижу задание для p10
https://git.altlinux.org/tasks/351174/
Comment 6 Сергей Сысоев 2024-06-26 08:43:01 MSK
Добрый день.

Подскажите, пожалуйста, когда обновление в p10 появится?

Спасибо.
Comment 7 Антон Мидюков 2024-06-26 08:47:44 MSK
(Ответ для Сергей Сысоев на комментарий #6)
> Добрый день.
> 
> Подскажите, пожалуйста, когда обновление в p10 появится?
> 
> Спасибо.

Вы можете обновиться из задания командой:
apt-repo upgrade 351174