С настроенным pam_usb и выполнение, когда флеш-карта соединена, когда я ввожу пароль в SDDM, после того, как Плазма запустила, я вижу, что kwallet не разблокирован. Этого не происходит, когда флеш-карта вставляется после того, как я вошел в систему. Когда проблема появляется, я вижу подвергнутое сообщение в журнале:
18 00:05:01 rocket sddm-helper[3172]: pam_kwallet(sddm:session): (null): pam_sm_open_session
18 00:05:01 rocket sddm-helper[3172]: pam_kwallet(sddm:session): pam_kwallet: open_session called without kwallet_key
18 00:05:01 rocket sddm-helper[3172]: pam_kwallet5(sddm:session): (null): pam_sm_open_session
18 00:05:01 rocket sddm-helper[3172]: pam_kwallet5(sddm:session): pam_kwallet5: open_session called without kwallet5_key
Вот связанные pam-файлы:
cat /etc/pam.d/common-auth|grep -v "^#"
auth sufficient pam_usb.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
cat /etc/pam.d/sddm|grep -v "^#"
auth requisite pam_nologin.so
auth required pam_succeed_if.so user != root quiet_success
@include common-auth
-auth optional pam_gnome_keyring.so
-auth optional pam_kwallet.so
-auth optional pam_kwallet5.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_limits.so
session required pam_loginuid.so
session required pam_systemd.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet.so auto_start
-session optional pam_kwallet5.so auto_start
@include common-password
session required pam_env.so
session required pam_env.so envfile=/etc/default/locale
Как я могу настроить pam_usb и pam_kwallet (5) для совместного проживания?
Я ничего не нашел лучше, чем:
cat /etc/pam.d/common-auth
auth sufficient pam_usb.so
@include common-auth-nousb
cat /etc/pam.d/common-auth-nousb
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
head /etc/pam.d/sddm
#%PAM-1.0
# Block login if they are globally disabled
auth requisite pam_nologin.so
auth required pam_succeed_if.so user != root quiet_success
# auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
@include common-auth-nousb
# gnome_keyring breaks QProcess
-auth optional pam_gnome_keyring.so
Это делает pam-auth-update
бесполезный, но достигает цели: теперь я могу загрузиться с ключевым флеш-накопителем, вставленным без потребности разблокировать kwallet вручную.