- Registriert
- Mai 2010
- Beiträge
- 2.815
Fedora 44 KDE: SDDM/Breeze nach Update defekt
– zweiter Benutzer wird beim Login nicht mehr korrekt ausgewählt!Ich hatte auf einem Fedora-44-KDE-System ein ziemlich merkwürdiges Loginproblem, das sich nach längerer Fehlersuche letztlich auf den SDDM/Breeze-Greeter bzw. dessen Benutzerverwaltung eingrenzen ließ.
Ausgangssituation
System:Fedora 44 KDE Plasma
Wayland
SDDM mit Breeze-Theme
zwei normale lokale Benutzerkonten
ein Benutzer mit Zeitbegrenzung über Timekpr-nExT
Intel HD 620 + NVIDIA 930MX
Am 17.08. funktionierte der Login beider Benutzer noch normal.
Am 22.08. wurde über Discover ein großes reguläres Fedora-Update installiert. Laut DNF-History wurden dabei 726 Pakete verändert.
Unter anderem:
KDE Frameworks 6.28 → 6.29
KWin 6.7.4-1 → 6.7.4-2
Mesa 26.1.6 → 26.1.7
Kernel 7.1.7 → 7.1.9
zahlreiche KDE Gear Pakete → 26.08.0
plasma-workspace, plasma-desktop und sddm-breeze selbst wurden bei dieser Transaktion dagegen offenbar nicht aktualisiert.
Das eigentliche Problem
Nach diesem Update funktionierte der grafische Login für den zweiten Benutzer nicht mehr.Der erste Benutzer konnte weiterhin über SDDM starten.
Im Journal erschien beim SDDM-Breeze-Greeter immer wieder:
qrc:/qt/qml/org/kde/breeze/components/UserList.qml:32:
TypeError: Cannot read property 'userName' of null
Teilweise stürzte der Greeter sogar komplett ab:
sddm-helper ... --start /usr/bin/sddm-greeter-qt6 ...
crashed (exit code 1)
Das Interessanteste zeigte sich aber erst bei einer gezielten Auswertung der PAM-/SDDM-Logs.
Obwohl im Greeter der zweite Benutzer ausgewählt wurde, gingen sämtliche Authentifizierungsversuche an den ersten Benutzer:
pam_unix(sddm:auth): authentication failure; ... user=<erster Benutzer>
Im gesamten untersuchten Zeitraum gab es keinen entsprechenden grafischen SDDM-Authentifizierungsversuch für den zweiten Benutzer.
Das sieht also danach aus, dass der Breeze-Greeter den ausgewählten Benutzer gar nicht korrekt an SDDM übergeben hat.
Vereinfacht:
Breeze UserList
↓
ausgewähltes Benutzerobjekt teilweise null
↓
UserList.qml kann userName nicht lesen
↓
SDDM bekommt weiterhin/fälschlich den vorherigen Benutzer
↓
PAM authentifiziert den falschen Account
Was ausgeschlossen werden konnte
Der Benutzer selbst war vollkommen in Ordnung:
UID > 1000 und im normalen SDDM-Bereich
/etc/passwd korrekt
normale Shell
Home-Verzeichnis korrekt
AccountsService erkannte den Benutzer:
/org/freedesktop/Accounts/User1001
SystemAccount=false
Anmeldung per Terminal funktionierte
PAM konnte Sitzungen für den Benutzer öffnen
Passwortänderung änderte nichts
Auch Timekpr war nicht die Ursache. Es wurde während der Fehlersuche komplett entfernt und das Problem bestand trotzdem weiter.
Ein Zurücksetzen von:
~/.config
~/.local
~/.cache
des betroffenen Benutzers brachte ebenfalls keine Änderung.
Paketquellen überprüft
Discover/PackageKit wurde ebenfalls überprüft.
Aktiv waren nur reguläre Quellen:
Fedora
Fedora Updates
RPM Fusion Free/Nonfree
RPM Fusion Updates
RPM Fusion NVIDIA
Fedora OpenH264
Timekpr COPR
Wichtig:
Fedora updates-testing: AUS
RPM Fusion testing: AUS
Auch Flatpak und Firmwarequellen waren normal.
Das Update kam also aus den regulären Fedora-44-Updates, nicht aus Testing oder einem KDE-COPR.
Reparatur
Während der Fehlersuche wurden unter anderem SDDM und PAM neu installiert, ohne Erfolg.
Erst später wurde der Plasma-/KWin-Bereich neu installiert:
dnf reinstall plasma-workspace \
plasma-workspace-libs \
plasma-workspace-common \
kwin
Anschließend wurde noch:
restorecon -RFv /home/<betroffener Benutzer>
ausgeführt und neu gestartet.
Danach funktionierte der grafische Login wieder normal.
Weil UserList.qml aus plasma-workspace stammt, passt die erfolgreiche Neuinstallation sehr gut zu dem beobachteten Fehler. Allerdings kann ich nicht zu 100 % beweisen, ob allein die Neuinstallation oder die Kombination mit restorecon den endgültigen Ausschlag gegeben hat.
Meine derzeitige Einschätzung
Ich halte einen Regressions- oder Inkonsistenzfehler im SDDM/Breeze/KDE-QML-Unterbau nach dem heutigen Update sehr wahrscheinlich.Bemerkenswert ist, dass die eigentliche UserList.qml offenbar nicht in genau diesem Update ersetzt wurde. Geändert wurde aber praktisch der komplette KDE-Framework-Unterbau von 6.28 auf 6.29 sowie KWin und Mesa.
Daher könnte UserList.qml lediglich die Stelle gewesen sein, an der sichtbar wurde, dass ihr Benutzerobjekt plötzlich null war.
Der entscheidende Befund ist für mich:
Benutzer 2 wird im Greeter ausgewählt
↓
UserList.qml meldet userName von null
↓
SDDM/PAM authentifiziert trotzdem Benutzer 1
↓
für Benutzer 2 existiert überhaupt kein SDDM-PAM-Versuch
Das ist deutlich etwas anderes als ein falsches Passwort oder ein kaputtes Benutzerkonto.
Falls jemand mit Fedora 44 + Plasma 6.7.4 + Frameworks 6.29 etwas Vergleichbares gesehen hat, insbesondere mit mehreren Benutzerkonten, würde mich interessieren, ob sich das reproduzieren lässt.