Bug 54753

Summary: При 2ФА kscreenlocker не работает с sssd и токенами
Product: Sisyphus Reporter: Белаш Константин <bk>
Component: kscreenlockerAssignee: Олег Соловьев <mcpain>
Status: UNCONFIRMED --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: boot.efi, cas, eltsovga, manowar, mcpain, rider, shevchenkodyu, yarra, zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Белаш Константин 2025-06-09 18:51:47 MSK
Модуль pam для kscreenlocker (/etc/pam.d/kde) из коробки настроен на работу с system-auth-multi:
# cat /etc/pam.d/kde
#%PAM-1.0
auth        sufficient    pam_succeed_if.so user ingroup nopasswdlogin
auth        include        system-auth-multi

system-auth-multi не пересекается с sssd:
# cat /etc/pam.d/system-auth-multi | rg ^-?auth
auth        [success=4 default=ignore]    pam_tcb.so shadow fork nullok
auth        requisite    pam_succeed_if.so uid >= 500 quiet
-auth        [success=2 default=ignore]    pam_krb5.so use_first_pass
-auth        [success=1 default=ignore]    pam_ldap.so use_first_pass
auth        required    pam_deny.so
auth        required    pam_permit.so

Следовательно, настройки доменной 2ФА, которые сделаны в sssd.conf для pam_sss (/etc/pam.d/system-auth), kscreenlocker не видит и работать с токенами не может.
Воркэраунд:
заменить в /etc/pam.d/kde
auth        include        system-auth-multi
на
auth        include        system-auth

Более подробно - https://my.basealt.space/issues/180768.
Comment 1 Sergey V Turchin 2025-06-10 11:02:56 MSK
В kscreenlocker /etc/pam.d/kde-smartcard работает с токенами.
Получается, только sss не рабочий?
Comment 2 Белаш Константин 2025-06-10 11:58:08 MSK
(Ответ для Sergey V Turchin на комментарий #1)
> В kscreenlocker /etc/pam.d/kde-smartcard работает с токенами.
> Получается, только sss не рабочий?

На мой взгляд проблема не касается конкретно sss. Основной файл аутентификации у нас это /etc/pam.d/system-auth, который отражает текущие настройки для аутентификации в системе в целом. А /etc/pam.d/system-auth-multi это какая-то отдельная подсистема, которая не привязана к системным настройкам и пытается лихорадочно хоть где-нибудь проскочить (pam_tcb.so, pam_krb5.so, pam_ldap.so). И если pam_tcb.so отработает успешно, по причине настройки на этапе установки ОС, то krb5 и ldap никак не настроены и смысла в них нет.
Comment 3 Sergey V Turchin 2025-07-20 15:14:00 MSK
Кажется, system-auth-multi был выбран нарочно.
Comment 4 Sergey V Turchin 2025-10-15 12:27:43 MSK
(Ответ для Sergey V Turchin на комментарий #3)
> Кажется, system-auth-multi был выбран нарочно.
Возможно, это обсуждали mcpain@ и rider@ .
Comment 5 Anton Farygin 2025-10-15 12:32:55 MSK
у kscreenlocker другая схема работы, надо просто посмотреть Олегу что там не так.

Простая замена system-auth-multi на system-auth может сломать что-то другое
Comment 6 Sergey V Turchin 2025-10-15 13:24:19 MSK
(Ответ для Anton Farygin на комментарий #5)
> у kscreenlocker другая схема работы
AFAIR вы обсуждали, что её надо похерить, что и было сделано
https://git.altlinux.org/gears/k/kscreenlocker.git?p=kscreenlocker.git;a=blob;f=alt-disable-noninteractive.patch
, т.е. теперь он использует один pam-файл для всего.
Comment 7 Олег Соловьев 2026-01-19 14:12:05 MSK
(In reply to Sergey V Turchin from comment #6)
> (Ответ для Anton Farygin на комментарий #5)
> > у kscreenlocker другая схема работы
> AFAIR вы обсуждали, что её надо похерить, что и было сделано
> https://git.altlinux.org/gears/k/kscreenlocker.git?p=kscreenlocker.git;
> a=blob;f=alt-disable-noninteractive.patch
> , т.е. теперь он использует один pam-файл для всего.

Этот патч оторван:
https://git.altlinux.org/gears/k/kscreenlocker.git?p=kscreenlocker.git;a=blob;f=kscreenlocker.spec;h=902535603ca381d48c4ab8438442c13b6bfa44f0;hb=61aa1c60d4ead7c196a2a9c49b301fb1af4817b1#l100
Comment 8 Олег Соловьев 2026-01-19 14:46:18 MSK
(In reply to Anton Farygin from comment #5)
> у kscreenlocker другая схема работы, надо просто посмотреть Олегу что там не
> так.
> 
> Простая замена system-auth-multi на system-auth может сломать что-то другое

1) kde-smartcard и kde-fingerprint вынесены в отдельные сервисы, чтобы kscreenlocker обрабатывал их независимо друг от друга и они оба неинтерактивные.
2) system-auth может быть изменён через control(1)
Насколько я помню, kscreenlocker ломается, если в system-auth попадает что-то неинтерактивное, поэтому используется system-auth-multi, включающий в себя pam_krb5 и pam_ldap.

Здесь явно указано, почему не стоит использовать system-auth:
https://git.altlinux.org/gears/k/kscreenlocker.git?p=kscreenlocker.git;a=commit;h=c1e936777ceffe1f7a905363da64faa66132da6f

Дальнейшие коммиты показывают замену system-auth-common на system-auth-multi и я могу только предположить: чтобы сохранить возможность входа по паролю для доменного пользователя.
Comment 9 Anton Farygin 2026-01-19 15:00:43 MSK
ну вот у меня сейчас в kscreenlocker отпечаток пальца работает через раз.
Comment 10 Sergey V Turchin 2026-01-25 17:30:15 MSK
*** Bug 57640 has been marked as a duplicate of this bug. ***
Comment 11 Алексей 2026-01-25 18:22:25 MSK
У меня после установки Альт Рабочая Станция К 11.2 не работает авторизация для LDAP-пользователя через kscreenlocker, но работает через lightdm.

По совету отсюда через control поменял system-auth с sss на multi.
После этого перестала работать авторизация доменного пользователя в lightdm и через ssh.