Bug 55324 - samba + gpoa(gpupdate): Стал требовать авторизации, которая ему не нужна
Summary: samba + gpoa(gpupdate): Стал требовать авторизации, которая ему не нужна
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: samba (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 55111
  Show dependency tree
 
Reported: 2025-07-23 15:54 MSK by Artem Varaksa
Modified: 2025-07-28 20:18 MSK (History)
1 user (show)

See Also:


Attachments
Вывод при нажатии Ctrl+D на запрос пароля (22.54 KB, text/plain)
2025-07-23 17:35 MSK, Artem Varaksa
no flags Details
Видео входа на Workstation (804.00 KB, video/mp4)
2025-07-23 17:43 MSK, Artem Varaksa
no flags Details
Fixed machine account credentials initialization (1.38 KB, patch)
2025-07-26 00:12 MSK, Evgeny Sinelnikov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2025-07-23 15:54:00 MSK
Исправление ошибки https://bugzilla.altlinux.org/55238, по всей вероятности, сломало это.


Шаги
====

1. Развернуть Samba DC (ALT Server 11.0 x86_64) и реплику и ввести клиентов (ALT Workstation, Workstation K, Education (KDE), Education (XFCE) 11.0 x86_64).

2. Выполнить `# kinit testuser` для тестового пользователя.

3. # gpoa --loglevel 0


Фактический результат
=====================

3. Запрашивается пароль, хотя пользователь авторизован через kinit:

> 2025-07-23 15:37:39.765|[D00061]| Процесс GPOA запущен для компьютера|{'username': 'S-EDU-KDE$', 'is_machine': True, > 'process_username': 'root', 'process_uid': 0}
> 2025-07-23 15:37:39.766|[D00060]| Запуск GPOA от root для пользователя|{'username': 'S-EDU-KDE$'}
> 2025-07-23 15:37:39.766|[D00003]| Инициализация плагинов|{}
> 2025-07-23 15:37:39.767|[D00004]| Инициализирован плагин ADP|{}
> 2025-07-23 15:37:39.853|[D00018]| Имя домена Active Directory успешно определено при запросе к LDAP|{'domain': > 'samba.testdomain'}
> 2025-07-23 15:37:39.854|[D00009]| Инициализация бэкэнда Samba|{'domain': 'samba.testdomain', 'username': 'S-EDU-KDE$', > 'is_machine': True}
> 2025-07-23 15:37:39.882|[D00017]| Проверка билета Kerberos прошла успешно|{'output': 'Ticket cache: > FILE:/var/cache/gpupdate/creds/krb5cc_2354\nDefault principal: S-EDU-KDE$@SAMBA.TESTDOMAIN\n\nValid starting       > Expires              Service principal\n23.07.2025 15:37:39  24.07.2025 01:37:39  krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN> \n\trenew until 30.07.2025 15:37:39\n'}
> 2025-07-23 15:37:39.883|[D00021]| Установка рабочего SID|{'sid': 'S-1-5-21-2683076439-4171479240-4005529867-1106'}
> 2025-07-23 15:37:39.883|[D00007]| Определена директория кэша Samba|{'cachedir': '/var/cache/samba'}
> 2025-07-23 15:37:39.884|[D00045]| Начато обновление GPO|{'username': 'S-EDU-KDE$', 'sid': > 'S-1-5-21-2683076439-4171479240-4005529867-1106'}
> 2025-07-23 15:37:39.887|[D00048]| Установка соединения с контроллером домена AD|{}
> 2025-07-23 15:37:39.913|[D00047]| Получение списка GPO для репликации с контроллера домена AD|{}
> 2025-07-23 15:37:39.938|[I00001]| Получен список GPO для пользователя|{'username': 'S-EDU-KDE$'}
> 2025-07-23 15:37:39.939|[I00002]| Получен объект групповой политики|{'gpo_name': 'Local Policy', 'gpo_uuid': 'Local > Policy', 'file_sys_path': None}
> 2025-07-23 15:37:39.939|[I00002]| Получен объект групповой политики|{'gpo_name': 'Default Domain Policy', 'gpo_uuid': '> {31B2F340-016D-11D2-945F-00C04FB984F9}', 'file_sys_path': '\\\\samba.testdomain\\sysvol\\samba.testdomain\\Policies\\> {31B2F340-016D-11D2-945F-00C04FB984F9}'}
> 2025-07-23 15:37:39.939|[D00049]| Начата репликация GPO от контроллера домена AD|{'username': 'S-EDU-KDE$', 'dc': > 'dc.samba.testdomain'}
> Password for [testuser@SAMBA.TESTDOMAIN]:


Ожидаемый результат
===================

3. Нет запроса пароля.


Дополнительно
=============

# cat /etc/samba/smb.conf

На клиенте:

> # See smb.conf.example for a more detailed config file or
> # read the smb.conf manpage.
> # Run 'testparm' to verify the config is correct after
> # you modified it.
> #
> # Note:
> # SMB1 is disabled by default. This means clients without support for SMB2 or
> # SMB3 are no longer able to connect to smbd (by default).
>
> [global]
> 	security = ads
> 	realm = SAMBA.TESTDOMAIN
> 	workgroup = SAMBA
> 	netbios name = S-EDU-KDE
> 	template shell = /bin/bash
> 	kerberos method = system keytab
> 	wins support = no
> 	winbind use default domain = yes
> 	winbind enum users = no
> 	winbind enum groups = no
> 	template homedir = /home/SAMBA.TESTDOMAIN/%U
>         idmap config * : range = 200000-2000200000
>         idmap config * : backend = sss
>
> 	machine password timeout = 0
> ;	encrypt passwords = true
> ;	dns proxy = no
> ;	socket options = TCP_NODELAY
> ;	domain master = no
> ;	local master = no
> ;	preferred master = no
> ;	os level = 0
> ;	domain logons = no
> ;	load printers = no
> ;	show add printer wizard = no
> ;	printcap name = /dev/null
> ;	disable spoolss = yes
> [homes]
> 	comment = Home Directories
> 	valid users = %S, %D%w%S
> 	browseable = no
> 	read only = no
> 	inherit acls = yes
>
> [printers]
> 	comment = All Printers
> 	path = /var/tmp
> 	printable = yes
> 	create mask = 0600
> 	browseable = no
>
> [print$]
> 	comment = Printer Drivers
> 	path = /var/lib/samba/drivers
> 	write list = @printadmin root
> 	force group = @printadmin
> 	create mask = 0664
> 	directory mask = 0775


На сервере:

> [global]
>     dns forwarder =  <dns-ipv4>
>     netbios name = DC
>     realm = SAMBA.TESTDOMAIN
>     server role = active directory domain controller
>     workgroup = SAMBA
>     idmap_ldb:use rfc2307 = yes
>     printcap name = cups
>     load printers = yes
>     cups server = "localhost"
>     printing = cups
>     log file = /var/log/samba/log.%m
>     max log size = 50
>     interfaces = <self-ipv4> 127.0.0.1
>     bind interfaces only = yes
>
> [printers]
>     comment = All Printers
>     path = /var/spool/samba
>     browseable = no
>     guest ok = yes
>     writable = yes
>     printable = yes
>
> [media]
>     comment = media
>     browseable = yes
>     path = /media
>     read only = no
>     guest ok = yes
>
> [sysvol]
>     path = /var/lib/samba/sysvol
>     read only = No
>
> [netlogon]
>     path = /var/lib/samba/sysvol/samba.testdomain/scripts
>     read only = No
>
> [SHARE]
>     comment = Share directory for AD users
>     path = /var/share
>     public = no
>     writable = yes
>     read only = no
>     guest ok = no
>     valid users = "@samba\Domain Users" "@samba\Domain Admins"
>     create mask = 0666
>     directory mask = 0777
>     force create mode = 0666
>     force directory mode = 0777
>     inherit owner = yes

На реплике:

> # Global parameters
> [global]
> 	bind interfaces only = Yes
> 	dns forwarder = <dns-ipv4>
> 	interfaces = <self-ipv4> 127.0.0.1
> 	netbios name = DC2
> 	realm = SAMBA.TESTDOMAIN
> 	server role = active directory domain controller
> 	workgroup = SAMBA
>
> [sysvol]
> 	path = /var/lib/samba/sysvol
> 	read only = No
>
> [netlogon]
> 	path = /var/lib/samba/sysvol/samba.testdomain/scripts
> 	read only = No

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus]
samba-4.21.7-alt2.x86_64
sssd-2.9.7-alt3.x86_64
gpupdate-0.13.2-alt1.noarch

[p11+387440.5]
samba-4.21.7-alt2.x86_64
sssd-2.9.7-alt3.x86_64
gpupdate-0.13.2-alt1.noarch


Не воспроизводится на виртуальных машинах:

[p11+387440.4]
samba-4.21.7-alt1.x86_64
sssd-2.9.7-alt2.x86_64
gpupdate-0.13.2-alt1.noarch

[p11]
samba-4.20.8-alt2.x86_64
sssd-2.9.7-alt1.x86_64
gpupdate-0.13.2-alt1.noarch
Comment 1 Artem Varaksa 2025-07-23 17:35:27 MSK
Created attachment 19173 [details]
Вывод при нажатии Ctrl+D на запрос пароля

При этом выше:

> 2025-07-23 15:37:39.882|[D00017]| Проверка билета Kerberos прошла успешно|{'output': 'Ticket cache: > FILE:/var/cache/gpupdate/creds/krb5cc_2354\nDefault principal: S-EDU-KDE$@SAMBA.TESTDOMAIN\n\nValid starting       > Expires              Service principal\n23.07.2025 15:37:39  24.07.2025 01:37:39  krbtgt/SAMBA.TESTDOMAIN@SAMBA.TESTDOMAIN> \n\trenew until 30.07.2025 15:37:39\n'}

Заметил, что если на запрос пароля нажать Ctrl+D, процесс продолжается (прикрепляю полный вывод в таком случае).
Comment 2 Artem Varaksa 2025-07-23 17:43:20 MSK
Created attachment 19174 [details]
Видео входа на Workstation

> полный вывод в таком случае

(это вывод команды `kinit testuser && gpoa --loglevel 0`, первый запрос пароля в выводе ожидаем)

---

Также, вероятно из-за данной ошибки возникают сообщения о gpoa / LDAP / SAMBA\root на экране входа Workstation. При этом вход выполняется успешно. Прикладываю видео.
Comment 3 Evgeny Sinelnikov 2025-07-26 00:12:37 MSK
Created attachment 19197 [details]
Fixed machine account credentials initialization

Внёс поправки в инициализацию учётных данных машины:
https://github.com/altlinux/gpupdate/tree/machine_account_creds

Нужно проверить - не приводит ли это к другим регрессиям:
#390826 AWAITING #1 [test-only] sisyphus gpupdate.git=0.13.3-alt1
Comment 4 Repository Robot 2025-07-27 22:45:34 MSK
gpupdate-0.13.3-alt1 -> sisyphus:

Sat Jul 26 2025 Evgeny Sinelnikov <sin@altlinux> 0.13.3-alt1
- Fixed machine account credentials initialization (closes: 55324)
Comment 5 Artem Varaksa 2025-07-28 18:07:40 MSK
Ошибка с запросом пароля и при входе на Workstation исправлена в [p11+387440.6] [sisyphus] samba-4.21.7-alt3.x86_64, gpupdate-0.13.3-alt1.

Также заметил, что пароль пользователя в целом не требуется для `gpoa` (т. е. работает `kdestroy && gpoa --loglevel 0` без запроса пароля) - но, в отличие от https://bugzilla.altlinux.org/show_bug.cgi?id=55111#c8, это поведение такое же, как сейчас в p11.

Если возникнут другие регрессы или ошибки, напишу дополнительно.
Comment 6 Evgeny Sinelnikov 2025-07-28 20:18:41 MSK
Для gpoa пароль не нужен. Он отрабатывать должен из-под учетки машины. В том числе и для пользовательских политик.