Bug 54366

Summary: Не работает смена пароля с samba доменом
Product: Sisyphus Reporter: Владислав Елисеев <eliseevva>
Component: userpasswdAssignee: alxvmr <alxvmr>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: george
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Окно информации none

Description Владислав Елисеев 2025-05-19 16:17:44 MSK
Created attachment 18501 [details]
Окно информации

Версия пакета: userpasswd-1.0.0-alt1

Платформы, обновленные до Sisyphus:
ALT Workstation K 11.0-x86_64
ALT Workstation 11.0-x86_64

Шаги к воспроизведению:
1) Развернуть сервер Samba
2) На клиенте выполнить:
    # apt-get install -y task-auth-ad-sssd task-auth-ad-winbind pwgen alterator-gpupdate && DOMAINNAME="samba.testdomain" && SERVERIP=<SERVER_IP> && hostname=$(pwgen -1 -A) && hostnamectl set-hostname $hostname.$DOMAINNAME && echo -e "name_servers=$SERVERIP\nsearch_domains=$DOMAINNAME" >> /etc/resolvconf.conf && reboot

В качестве <SERVER_IP> указать адрес сервера домена.

3) Запуск модуля на клиенте:
    Открыть ЦУС (или в терминале # acc) → вкладка Пользователи → Аутентификация.

    * Выбрать тип домена Домен Active Directory.
    * Ввести имя домена (samba.testdomain) и имя компьютера.
    * Отметить радиокнопку Winbind (в сложных доменах).
    * Включить чекбокс Восстановить файлы конфигурации по умолчанию.
    * Нажать Применить.
    * Нажать Да, чтобы восстановить файлы конфигурации по умолчанию.
    * Ввести логин и пароль администратора сервера, включить чекбокс Включить групповые политики.
    * Нажать OK

4) Перезагрузить систему и после перезагрузки войти в систему доменным пользователем

5) $ userpasswd

Ожидаемый результат: Открывается окно приложения. С возможность ввода старого пароля, для изменения на новый.
Реальный результат: Открывается окно приложения. На месте ввода пароля написано "Ошибка". В окне информации ошибки (см. скриншот "Окно информации")

Дополнительная информация: Воспроизводится в p11. 

В исходнике https://github.com/alxvmr/userpasswd/blob/master/src/pam_helper/source/pam_helper.c нет нужной строки для сравнения с запрашиваемой строкой от passwd.

В строках:
17 - !strcmp(msg, "Current Kerberos password:") || !strcmp(msg, "(current) NT password:"))
21 - !strcmp(msg, "Enter new NT password:"))
25 - !strcmp(msg, "Retype new NT password:"))
Не хватает пробелов
Comment 1 Владислав Елисеев 2025-05-20 09:45:32 MSK
Ошибка воспроизводится только с winbind. С sssd все работает