• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] KDE5 KWallet/NetworkManager: Immer wieder neue Abfrage nach WLAN-Passwort

Hazel

Hacker
Hallo,

dieses Thema hat einen gewissen Zusammenhang mit einem früheren Thema. Da sich damals aber mehrere Effekte überlagert haben, möchte ich lieber einen Neueinstieg versuchen.

Auf meiner SUSE-42.1 Leap habe ich einige Monate lang als einziger Benutzer ohne nennenswerte Probleme gearbeitet. Nun möchte ich für weitere Familienmitglieder eigene accounts einrichten, stoße aber schon im ersten Fall auf Unregelmäßigkeiten.

In meinem Fall verbindet sich der NetworkManager nach dem Anmelden jeweils ohne irgendwelche weiteren Aktionen mit dem häuslichen WLAN-Router. Eine Inspektion mit dem Verbindungseditor zeigt nichts Überraschendes: Unter 'WiFi-Sicherheit' steht im Feld 'Passwort:' eine Punktkette, die ich als das vor langer Zeit eingegebene Passwort interpretiere.

Bei dem neu angelegten Benutzer ist es dagegen nicht möglich, eine immer wieder neue Passwort-Abfrage nach dem Anmelden zu vermeiden. Typischerweise erscheint direkt nach Sitzungsstart ein "Passwort-Dialog -- KDE-Daemon", der nach dem Router-Passwort fragt.

An dieser Stelle gibt es zwei Möglichkeiten, die WLAN-Verbindung herzustellen:
  1. dem KDE-Daemon das Passwort verraten, oder
  2. den KDE-Daemon wegklicken und stattdessen das Passwort im NetworkManager | Verbindungseditor | WiFi-Sicherheit eingeben.
In beiden Fällen steht nachher die WLAN-Verbindung. Nach dem nächsten Ab- und Anmelden fängt allerdings die ganze Prozedur wieder von vorne an. Insbesondere ist dann unter 'WiFi-Sicherheit' jeweils das Passwortfeld leer.

Für beide Benutzer ist im Verbindungseditor unter den allgemeinen Einstellungen identisch konfiguriert:
[X] Automatisch mit diesem Netzwerk verbinden, wenn es verfügbar ist
[_] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden

Wie kann ich nun diese lästige, immer wieder neu hochkommende Netzwerk-Passwortabfrage für den zweiten Benutzer loswerden?

Viele Grüße
Hazel
 

Sauerland

Ultimate Guru
Für beide Benutzer ist im Verbindungseditor unter den allgemeinen Einstellungen identisch konfiguriert:
[X] Automatisch mit diesem Netzwerk verbinden, wenn es verfügbar ist
[_] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden
Wenn du in dem unteren Feld auch noch einen Haken machst, sollte das Netzwerk für alle User automatisch nach dem Hochfahren vorhanden sein.
Allerdings kannst du dann nur als root Änderungen daran vornehmen und die Root Passwortabfrage ist auch oft im Hintergrund geöffnet, daher genau schauen.
 
OP
H

Hazel

Hacker
Hallo Sauerland

Danke für deinen Tipp. Wenn ich den zweiten Haken setze, dann brauche ich in der Tat das root-Passwort, um die Änderung wirksam zu machen.

Für den zweiten Benutzer (UID=1001) ändert sich dadurch aber nur eine Sache: Sie/er erlebt nun den Start in eine neue Sitzung mit der Meldung:
Code:
Die Systemrichtlinien verhindern das Bearbeiten von Netzwerkeinstellungen für alle Benutzer.
Eine Anwendung versucht, eine Aktion auszuführen, die erweiterte Rechte benötigt. Für diese Aktion müssen Sie sich berechtigen.
Passwort für root:
Wird nun hier das korrekte root-Passwort eingegeben, dann landen wir wieder bei dem bereits eingangs erwähnten KDE-Daemon, der das WLAN-Passwort haben will.

Nach einem reboot des gesamten Systems werde dann auch ich (UID=1000) mit demselben Popup wie oben nach dem root-Passwort gefragt.

In diesem Zustand mit dem System weiter zu experimentieren, dazu fehlt mir der Mut. Bis auf weiteres habe ich alle Änderungen wieder zurückgenommen.

Grüße
Hazel
 
OP
H

Hazel

Hacker
Hallo,

ich habe das angesprochene Problem nun lösen können.

Was ich dabei verstanden habe:
  1. Lange Zeit war ich der einzige Benutzer unter meiner 42.1 Leap. Die Netzwerkverbindung über WLAN war eingerichtet, alles lief stabil.
  2. Beim Einrichten des zweiten Benutzers wurden Anmeldeparameter des ersten Benutzers für die WLAN-Verbindung stillschweigend übernommen. Mit einer Ausnahme: Es war nicht möglich, das Anmeldekennwort zu speichern, sondern dieses musste durch den Neubenutzer bei jeder Sitzung immer wieder neu eingegeben werden. Das war der Grund für die Eröffnung dieses Themas.
  3. Sauerlands Rat, im NetworkManager einzustellen
    [X] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden
    hat für mich die Situation verkompliziert, weil dann für beide Benutzer sporadisch (d.h. nach für mich unverstandenen Regeln) auch noch das root-Passwort abgefragt wurde.
  4. Die zusätzliche Einrichtung eines dummy-Benutzers hat mich dann auf die richtige Spur gebracht. Auch hier waren Anmeldedaten des WLAN-Netzes sofort vorhanden. Nach Löschen dieses Datensatzes und Neukonfiguration der WLAN-Verbindung lief dann alles, wie es sollte, d.h. ohne pausenlose nervige Passwort-Abfragen.
Es hat einige Zeit gedauert, bis ich auf diese eigentlich ganz einfache Abhilfe kam. Aber immerhin, nun ist ein äußerst lästiges Problem endlich vom Tisch.

Grüße aus Franken
Hazel
 
OP
H

Hazel

Hacker
Hallo,

ich lasse das Etikett "Gelöst" an seinem Platz, aber einige Phänomene warten immer noch auf eine Erkärung.

Vor einigen Tagen habe ich hier beschrieben, wie ich für den Benutzer UID=1001 den NetworkManager dazu bringen konnte, sich das WLAN-Passwort zu merken und jeweils direkt nach Benutzeranmeldung die Verbindung herzustellen.

Nun habe ich den Benutzer UID=1002 angelegt. Bereits nach dem ersten Anmelden, bevor überhaupt nur eine einzige Konfigurationseinstellung getroffen oder ein Passwort eingegeben werden konnte, stand die WLAN-Verbindung. Das war schon mal eine dicke Überraschung.

Nach Ab- und Neuanmelden des 1002 war die WLAN-Verbindung dann allerdings wieder weg, und ich geriet in dasselbe Fahrwasser, das ich von der NetworkManager-Konfiguration des 1001 bereits kannte. D.h. es war nicht möglich
  1. das unter 'WiFi-Sicherheit | Passwort:' eingegebene Passwort, üblicherweise durch eine Punktkette dargestellt, in die nächste Sitzung hinüberzuretten, und
  2. die KWallet-Passwortanforderung zum Schweigen zu bringen.
Den Effekt unter 1. konnte ich durch mehrmaliges (ca. 5 Anläufe) Löschen der Verbindung und Neuanlegen inzwischen beheben. Hoffentlich bleibt es dabei, denn ich habe nicht die geringste Ahnung, was ich beim 5. Versuch anders gemacht haben könnte als viermal vorher.

Den Effekt unter 2. konnte ich durch standhaftes Wegklicken der KWallet-Passwortanforderung inzwischen auch loswerden. So richtig wohl ist mir dabei aber nicht. Denn in den KDE-Systemeinstellungen hat der Benutzer 1000 bei den Benutzerkontodetails stehen:
[X] KDE-Passwortspeicher-System aktivieren
während alle anderen Benutzer vor sich sehen:
[_] KDE-Passwortspeicher-System aktivieren.

Jeder Benutzer, der an dieser Stelle den Haken wegnimmt oder einsetzt, hat sofort wieder die KWallet-Passwortanforderung vor der Nase.

Ob diese Beobachtungen jemand bei der Lösung eigener Probleme helfen, weiß ich nicht. Aber ich wollte diese Erfahrungen einfach mal schildern.

Bleibt tapfer
Hazel
 
A

Anonymous

Gast
Hazel schrieb:
Nach Ab- und Neuanmelden des 1002 war die WLAN-Verbindung dann allerdings wieder weg, und ich geriet in dasselbe Fahrwasser, das ich von der NetworkManager-Konfiguration des 1001 bereits kannte. D.h. es war nicht möglich
  1. das unter 'WiFi-Sicherheit | Passwort:' eingegebene Passwort, üblicherweise durch eine Punktkette dargestellt, in die nächste Sitzung hinüberzuretten, und
  2. die KWallet-Passwortanforderung zum Schweigen zu bringen.
Den Effekt unter 1. konnte ich durch mehrmaliges (ca. 5 Anläufe) Löschen der Verbindung und Neuanlegen inzwischen beheben. Hoffentlich bleibt es dabei, denn ich habe nicht die geringste Ahnung, was ich beim 5. Versuch anders gemacht haben könnte als viermal vorher.

Den Effekt unter 2. konnte ich durch standhaftes Wegklicken der KWallet-Passwortanforderung inzwischen auch loswerden. So richtig wohl ist mir dabei aber nicht. Denn in den KDE-Systemeinstellungen hat der Benutzer 1000 bei den Benutzerkontodetails stehen:
[X] KDE-Passwortspeicher-System aktivieren
während alle anderen Benutzer vor sich sehen:
[_] KDE-Passwortspeicher-System aktivieren.

Jeder Benutzer, der an dieser Stelle den Haken wegnimmt oder einsetzt, hat sofort wieder die KWallet-Passwortanforderung vor der Nase.
Hi Hazel,
das kann ich original so bestätigen.

Bei mir läuft Leap 42.1 zwar nur in einer Virtuellen Maschine. Aber ich habe das letzte Woche, nach deinem Post, mit meiner Intel Wireless-N 7260 Karte (durchgereicht) und dann mit NetworkManager auch probiert. Es ist ein Chaos mit KWallet KDE5!
Man merkt, dass die Anwendungen in Leap 42.1 aus openSUSE Tumbleweed stammen. Vielleicht ist der Programmierfehler auch im NetworkManager-Paket plasma-nm5. Ich habe Leap 42.1 mit LXDE auf einem Notebook installiert. Mit dem Gnome-Applet gibts keine Probleme. In LXDE gibts aber auch kein KWallet.

Unter openSUSE 13.2 (KDE4) läuft der NetworkManager mit dem eigenen Passwortspeicher tadellos.

Ändere doch ganz oben deine Überschrift ab: KDE5 KWallet/NetworkManager: Immer wieder neue Abfrage nach WLAN-Passwort.
Vllt kommen dann echte Tipps dazu.
 

susejunky

Moderator
Teammitglied
Hallo Hazel,

Hazel schrieb:
Hallo,

ich lasse das Etikett "Gelöst" an seinem Platz, aber einige Phänomene warten immer noch auf eine Erkärung.

Vor einigen Tagen habe ich hier beschrieben, wie ich für den Benutzer UID=1001 den NetworkManager dazu bringen konnte, sich das WLAN-Passwort zu merken und jeweils direkt nach Benutzeranmeldung die Verbindung herzustellen.

Nun habe ich den Benutzer UID=1002 angelegt. Bereits nach dem ersten Anmelden, bevor überhaupt nur eine einzige Konfigurationseinstellung getroffen oder ein Passwort eingegeben werden konnte, stand die WLAN-Verbindung. Das war schon mal eine dicke Überraschung.

Nach Ab- und Neuanmelden des 1002 war die WLAN-Verbindung dann allerdings wieder weg, ...
Networkmanager legt die Verbindungsparameter der ihm bekannten Netzwerkverbindungen in Dateien ab. Diese sind unter "/etc/Networkmanager/system-connections" zu finden. Sie gelten systemweit und können nur von "root" gelesen und bearbeitet werden. Der Inhalt einer solchen Datei sieht ungefähr so aus:
Code:
[connection]
id=Name der Verbindung, so wie er von plasma5-nm angezeigt wird
uuid=12345678-1234-1234-1234-12345678
type=802-11-wireless
permissions=user:xxx:;user:yyy:;
autoconnect=false

[802-11-wireless]
ssid=NETZWERKNAME
mode=infrastructure
security=802-11-wireless-security

[802-11-wireless-security]
key-mgmt=wpa-psk
psk-flags=1

[ipv4]
method=auto
may-fail=false

[ipv6]
method=ignore

Bezüglich Deines Problems wäre es interessant zu wissen, wie bei der fraglichen Verbindung der Inhalt der Zeile "permissions=" aussieht.

Viele Grüße

susejunky
 
OP
H

Hazel

Hacker
Hallo susejunky,

hier kommen die gewünschten Detailinformationen:
Code:
terra:/etc/NetworkManager/system-connections # ls -laF
insgesamt 32
drwxr-xr-x 2 root root 4096  3. Sep 10:40 ./
drwxr-xr-x 5 root root 4096 31. Jul 14:57 ../
-rw------- 1 root root  370 27. Aug 16:26 EasyBox-EC2005
-rw------- 1 root root  380 28. Aug 21:46 EasyBox-EC2005-83643d65-037b-4cc1-8c03-162cba8ccfb3
-rw------- 1 root root  385  3. Sep 10:40 EasyBox-EC2005-901e3073-27de-4571-92ac-af5bffa78053
-rw------- 1 root root  369 28. Aug 21:41 EasyBox-EC2005-a08559eb-98e8-4a41-8e60-d9bfd56e8e4a
terra:/etc/NetworkManager/system-connections #
terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005 | grep permissions
permissions=user:xxx0:;
terra:/etc/NetworkManager/system-connections #
terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005-a08559eb-98e8-4a41-8e60-d9bfd56e8e4a | grep permissions
permissions=user:xxx1:;
terra:/etc/NetworkManager/system-connections #
terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005-83643d65-037b-4cc1-8c03-162cba8ccfb3 | grep permissions
permissions=user:xxx2:;
terra:/etc/NetworkManager/system-connections #
terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005-901e3073-27de-4571-92ac-af5bffa78053 | grep permissions
permissions=user:xxx3:;
terra:/etc/NetworkManager/system-connections #
Die Zeichenketten xxx0 bis xxx3 sind Platzhalter für die im Lauf der Zeit angelegten Benutzer. Die Angaben über die letzten Änderungen an den Konfigurationsdateien sind wenig aussagekräftig, da ich immer die Verbindung herausgelöscht und neu angelegt habe,

Siehst du darin irgendetwas Beunruhigendes?

Viele Grüße
Hazel
 

susejunky

Moderator
Teammitglied
Hallo Hazel,

Hazel schrieb:
Code:
terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005 | grep permissions
permissions=user:xxx0:;

terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005-a08559eb-98e8-4a41-8e60-d9bfd56e8e4a | grep permissions
permissions=user:xxx1:;

terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005-83643d65-037b-4cc1-8c03-162cba8ccfb3 | grep permissions
permissions=user:xxx2:;

terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005-901e3073-27de-4571-92ac-af5bffa78053 | grep permissions
permissions=user:xxx3:;
Siehst du darin irgendetwas Beunruhigendes?
Nein, aber ich hatte einst (bei 13.2 und 42.1) ein ähnliches Problem wie Du:

Immer wenn ich eine Netzwerkverbindung (mit plasma-nm) herstellen wollte, wurde das Administrator-Kennwort abgefragt. Aber eigentlich war die Abfrage bedeutungslos, ich konnte sie einfach abbrechen und die Verbindung wurde trotzdem hergestellt.

In meiner Verbindungsdatei stand:
Code:
permissions=user:xxx:;user:root:;
als ich das dann änderte in
Code:
permissions=user:xxx:;
war ich die Kennwortabfrage los.

Hast Du vier Verbindungsdateien, weil Du vier verschiedene Netze (d.h. vier SSIDs) hast?

Wenn Du nur eine Verbindung (= nur eine SSID) hast, die von allen Benutzer verwendet wird, dann könntest Du doch eigentlich eine Verbindungsdatei mit
Code:
permissions=user:xxx0:;user:xxx1:;user:xx2:;user:xx3:;
einsetzen oder bereitet das dann auch Probleme?

Viele Grüße

susejunky
 
OP
H

Hazel

Hacker
Hallo susejunky
susejunky schrieb:
In meiner Verbindungsdatei stand:
Code:
permissions=user:xxx:;user:root:;
als ich das dann änderte in
Code:
permissions=user:xxx:;
war ich die Kennwortabfrage los.
OK, das entspricht dann dem Zustand auf meinem System: Eine eigene Konfigurationsdatei für jeden einzelnen Benutzer.

Etwas irritierend ist es allerdings, dass auch der Dummy-Nutzer, den ich zu Testzwecken angelegt und später wieder gelöscht habe, hier immer noch auftaucht.

susejunky schrieb:
Hast Du vier Verbindungsdateien, weil Du vier verschiedene Netze (d.h. vier SSIDs) hast?
Nein, es gibt nur ein einziges Netz. Offensichtlich gibt es vier Konfigurationsdateien für vier Nutzer, siehe oben.

susejunky schrieb:
Wenn Du nur eine Verbindung (= nur eine SSID) hast, die von allen Benutzer verwendet wird, dann könntest Du doch eigentlich eine Verbindungsdatei mit
Code:
permissions=user:xxx0:;user:xxx1:;user:xx2:;user:xx3:;
einsetzen oder bereitet das dann auch Probleme?
Werde ich gerne ausprobieren. Danke für den Tipp! Aber welche der vier heute vorhandenen Konfigurationsdateien soll ich entsprechend erweitern? Die älteste...?

Grüße aus Franken
Hazel
 

susejunky

Moderator
Teammitglied
Hallo Hazel,

Hazel schrieb:
... Aber welche der vier heute vorhandenen Konfigurationsdateien soll ich entsprechend erweitern? Die älteste...?
zunächst erst einmal vielen Dank für Deine Rückmeldung.

Leider kann ich Dir im Moment keine Antwort auf Deine Frage geben, denn ich befürchte, dass ich bei der Betrachtung meines Problems bislang einen "kleinen Denkfehler" gemacht habe. Das muss ich erst einmal etwas näher untersuchen.

Sobald ich neue Erkenntnisse habe, werde ich mich wieder melden.

Viele Grüße

susejunky
 
A

Anonymous

Gast
Hazel schrieb:
Aber welche der vier heute vorhandenen Konfigurationsdateien soll ich entsprechend erweitern?
Ich kann dir zumindest sagen wie es bei mir unter openSUSE 13.2 (ohne Probleme mit KWallet) läuft:
NM: Verbindungs-Editor schrieb:
[✓] Automatisch mit diesem Netzwerk verbinden, wenn es verfügbar ist
[✓] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden
Hazel schrieb:
Code:
terra:/etc/NetworkManager/system-connections # ls -laF
insgesamt 32
drwxr-xr-x 2 root root 4096  3. Sep 10:40 ./
drwxr-xr-x 5 root root 4096 31. Jul 14:57 ../
-rw------- 1 root root  370 27. Aug 16:26 EasyBox-EC2005
-rw------- 1 root root  380 28. Aug 21:46 EasyBox-EC2005-83643d65-037b-4cc1-8c03-162cba8ccfb3
-rw------- 1 root root  385  3. Sep 10:40 EasyBox-EC2005-901e3073-27de-4571-92ac-af5bffa78053
-rw------- 1 root root  369 28. Aug 21:41 EasyBox-EC2005-a08559eb-98e8-4a41-8e60-d9bfd56e8e4a
terra:/etc/NetworkManager/system-connections #
terra:/etc/NetworkManager/system-connections # cat EasyBox-EC2005 | grep permissions
permissions=user:xxx0:;
terra:/etc/NetworkManager/system-connections #
In der Datei "EasyBox-EC2005" die Zeile "permissions=user:xxx0:;" löschen.
Alle anderen Dateien "EasyBox-EC2005-*" löschen.

Dann verwaltet ausschließlich root die NM-Verbindungsdaten für alle Benutzer.


In einer Virtuellen Maschine (QEMU) mit openSUSE 13.2 habe ich noch den umgekehrten Fall eingerichtet:
QEMU — NM: Verbindungs-Editor schrieb:
[✓] Automatisch mit diesem Netzwerk verbinden, wenn es verfügbar ist
[  ] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden
Dann steht in der Datei "/etc/NetworkManager/system-connections/EasyBox-XXXX" die Zeile "permissions=user:xxx0:;" und es macht auch keine Probleme mit KWallet. Deswegen tippe ich bei openSUSE Leap 42.1 auf einen Programmierfehler.
Ansonsten müsste susejunky nochmal einen Tipp geben wenn KWallet bei dir weiter Spuk macht.
 
OP
H

Hazel

Hacker
Hallo LUH 3417

Danke für deinen Beitrag, insbesondere für den Vergleich mit der Konfiguration in deiner openSUSE 13.2.

Allerdings möchte ich den Vorschlag
Code:
  [X] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden
ohne direkten Anlass nicht umsetzen, da ich damit bereits früher (siehe meinen Beitrag vom 21. August 2016) vom Regen in die Traufe gekommen bin.

Überhaupt denke ich, dass der NetworkManager der Hauptverursacher der bei mir beobachteten Phänomene ist. Beim Nutzer UID=1000 hatte er nicht die geringsten Probleme, sich das WLAN-Passwort über Sitzungsgrenzen hinweg zu merken. Bei den später eingerichteten Nutzern 1001 und 1002 musste ich lange herumbasteln, bis auch dort derselbe Zustand erreicht war. Und habe weder eine Ahnung, weshalb das Herumbasteln überhaupt notwendig war, noch, warum es am Ende dann doch zum Erfolg geführt hat.

M.a.W.: So sehr ich gelegentlich von diesem KWallet genervt war, vermute ich doch, dass die Problemursachen beim NetworkManager und seiner Berechtigungs- und/oder Passwortverwaltung liegen. Das ist auch der Grund dafür, dass ich deinen Vorschlag
LUH 341 schrieb:
Ändere doch ganz oben deine Überschrift ab: KDE5 KWallet/NetworkManager: Immer wieder neue Abfrage nach WLAN-Passwort.
bisher nicht umgesetzt habe.

Danke und Gruß
Hazel
 

susejunky

Moderator
Teammitglied
Hallo Hazel,

bitte entschuldige, dass meine Antwort etwas länger gebraucht hat, aber ich wollte das Thema "Netzwerkverbindungen mit Networkmanager" erst noch einmal etwas systematischer untersuchen, bevor ich mich weiter äußere:

Mein Systemumfeld: openSUSE 42.1 mit KDE-Plasma 5.7.4, KDE-Frameworks 5.25.0, QT 5.7.0 und Kernel 4.7.2-2.

Zunächst habe ich die Verzeichnisse "/etc/NetworkManager/system-connections" und "/var/lib/NetworkManager" gesichert und dann gelöscht. Anschließend habe ich noch drei Test-Benutzer angelegt (und natürlich gibt es einen Benutzer "root") und bei allen Benutzern unter "Systemeinstellungen -> Benutzerkontodetails -> KDE-Passwortspeicher" die Option "KDE-Passwortspeicher-System aktivieren" NICHT angekreuzt; d.h. kwallet wird bei allen Benutzern NICHT verwendet. Das ergab dann folgendes Bild:

  • Sind noch keine Verbindungen im System definiert, so zeigt plasma-nm bei allen Benutzern die SSIDs an, die empfangen werden.
  • Jeder Benutzer kann eine SSID auswählen und versuchen sich mit dieser zu verbinden. plasma-nm fragt nach dem Netzwerk-Zugangskennwort und falls der Benutzer dieses kennt, wird eine Verbindung hergestellt. Für diese Verbindung wird unter "/etc/NetworkManager/system-connections/" eine Verbindungsdatei erzeugt, die in der Regel den SSID als Dateinamen trägt (z.B.: EasyBox-EC2005). Ist dieser Dateiname bereits vergeben (z.B. weil ein anderer Benutzer bereits eine Verbindung für diese SSID erstellt hat), so wird die SSID um eine eindeutige Kennung ergänzt und dies dann als Name für die Verbindungsdatei verwendet (z.B.: EasyBox-EC2005-83643d65-037b-4cc1-8c03-162cba8ccfb3). Da kwallet NICHT aktiviert ist, wird das Netzwerk-Zugangskennwort mit dem Eintrag "psk=GEHEIMES_NETZWERK_ZUGANGSKENNWORT"im Abschnitt "[wifi-security]" in der Verbindungsdatei gespeichert.
  • Jeder Benutzer kann auch eine Verbindung anlegen, indem er den Verbindungseditor von plasma-nm öffnet und eine Verbindung hinzufügt. Dabei kann er unter anderem den Verbindungstyp (Kabel, WiFi, ...) bestimmen, der Verbindung einen individuellen Namen geben und anderen/allen Benutzern die Nutzung dieser Verbindung erlauben. Wird anderen/allen Benutzern die Nutzung der Verbindung erlaubt, so ist für das erfolgreiche Anlegen der Verbindung jedoch das Administratorkennwort erforderlich.
  • Da "automatisch verbinden" die Standardeinstellung ist, wird es nicht in der Verbindungsdatei vermerkt. Nur wenn der Benutzer explizit "nicht automatisch verbinden" einstellt, wird "autoconnect=false" im Abschnitt "[connection]" der Verbindungsdatei vermerkt.
  • Welcher Benutzer, welche Verbindung nutzen und/oder bearbeiten darf, wird über den Eintrag "permissions=" im Abschnitt "[connection]" der Verbindungsdatei gesteuert:
    • Erstellt ein "normaler" Benutzer (z.B.: Benutzer01) eine Verbindung (OHNE sie explizit für weitere/alle Benutzer freizugeben), so wird "permissions=user:BENUTZER01:;" in der Verbindungsdatei eingetragen. BENUTZER01 kann diese Verbindung jederzeit, OHNE Angabe eines Kennworts ändern oder löschen.
    • Erstellt ein "normaler" Benutzer (z.B.: Benutzer01) eine Verbindung und gibt diese für einen weiteren Benutzer frei (nur mit Verbindungs-Editor möglich), so wird "permissions=user:BENUTZER01:;user:BENUTZER02:;" in der Verbindungsdatei eingetragen. BENUTZER01 kann diese Verbindung nur mit Eingabe des korrekten Administratorkennworts anlegen, bearbeiten oder löschen. Nutzen kann er sie ohne Kennworteingabe. BENUTZER02 kann diese Verbindung auch ohne Kennworteingabe nutzen aber sie auch nur mit Eingabe des korrekten Administratorkennworts bearbeiten oder löschen.
    • Erstellt ein "normaler" Benutzer (z.B.: Benutzer01) eine Verbindung und gibt diese für alle Benutzer frei (nur mit Verbindungs-Editor möglich), so wird "permissions=" in der Verbindungsdatei eingetragen. BENUTZER01 kann diese Verbindung nur mit Eingabe des korrekten Administratorkennworts anlegen, bearbeiten oder löschen. Nutzen kann er sie ohne Kennworteingabe. Alle anderen Benutzer können diese Verbindung auch ohne Kennworteingabe nutzen aber sie auch nur mit Eingabe des korrekten Administratorkennworts bearbeiten oder löschen.
    • Der Administrator (root) kann immer (ohne zusätzliche Kennwortabfragen beantworten zu müssen) Verbindungen anlegen und jederzeit alle im System definierten Verbindungen nutzen, ändern oder löschen.
    • Erstellt der Administrator (root) eine Verbindung (OHNE sie explizit für weitere/alle Benutzer freizugeben), so wird "permissions=user:root:;" in der Verbindungsdatei eingetragen.
    • Erstellt der Administrator (root) eine Verbindung und gibt diese für alle Benutzer frei (nur mit Verbindungs-Editor möglich), so wird "permissions=" in der Verbindungsdatei eingetragen. Alle Benutzer können diese Verbindung ohne Kennworteingabe nutzen. Um sie zu ändern oder zu löschen ist jedoch die Eingabe des korrekten Administratorkennworts erforderlich.
    • Fügt der Administrator einer Verbindung weitere Benutzer hinzu (nur mit Verbindungs-Editor möglich), wie z.B. "permissions=user:root:;user:BENUTZER01:;", dann tritt bei meinem Benutzer BENUTZER01 folgendes Verhalten auf, wenn er die Verbindung nutzen will: Zunächst wird das Administratorkennwort abgefragt. Unabhängig davon ob diese Abfrage korrekt beantwortet oder einfach abgebrochen wird, erfolgt als nächstes die Frage nach dem Netzwerk-Zugangskennwort und nur wenn dieses korrekt angegeben wird, erfolgt der Verbindungsaufbau. Es wird aber keine neue Verbindungsdatei unter "/etc/NetworkManager/system-connections" erstellt.
Einiges von dem oben beschriebenen scheint sich mit Deinen und LUH 341s Erkenntnissen zu decken. Aber es wäre schön, wenn Du die Zeit hättest, das nochmals im Detail zu prüfen und hier zu bestätigen ODER zu korrigieren.

Sollte sich bei Dir ein identisches Verhalten zeigen, dann wäre zu untersuchen/hinterfragen, ob die Handhabung des Anwendungsfalls "permissions=user:root:;user:BENUTZER01:;" korrekt ist oder ein Fehler darstellt.

Ich werde mich jetzt daran machen das Szenario "alle Benutzer verwenden kwallet" zu untersuchen, um festzustellen, ob sich da ein abweichendes Verhalten zeigt.

Viele Grüße

susejunky
 

Bequimão

Member
Eigentlich sollte KWallet nach dem SSO-Prinzip (Single Sign On) funktionieren, so wie es bei gnome-keyring seit Jahren geht. Dazu gibt es kwallet-pam. User-Passwort und KWallet-Passwort sind gleich, und der Anmeldeprozeß öffnet mit dem Passwort-Hash gleichzeitig KWallet. Aus welchen Gründen auch immer ist kwallet-pam in openSUSE Leap nicht in den offiziellen Repos enthalten.

Ich habe einen anderen Ansatz gewählt: /home verschlüsselt, Autologin aktiviert und die KWallet-Passwörter leer gelassen. Das betraf dann kwallet und kwallet5. So muß ich dann nur noch das Verschlüsselungs-Passwort beim Boot eingeben. Das taugt natürlich nichts, wenn im System noch andere User als man selbst unterwegs sind. Zusätzlich sollten dann auch Backups verschlüsselt sein.

Grüße
Bequimão
 

susejunky

Moderator
Teammitglied
Hallo Hazel,

Hier nun das Ergebnis für das Szenario "alle Benutzer verwenden kwallet":

Mein Systemumfeld: openSUSE 42.1 mit KDE-Plasma 5.7.4, KDE-Frameworks 5.25.0, QT 5.7.0 und Kernel 4.7.2-2.

Zunächst habe ich die Verzeichnisse "/etc/NetworkManager/system-connections" und "/var/lib/NetworkManager" wieder gelöscht. Anschließend habe ich bei allen Benutzern unter "Systemeinstellungen -> Benutzerkontodetails -> KDE-Passwortspeicher" die Option "KDE-Passwortspeicher-System aktivieren" angekreuzt, sodass kwallet verwendet wird. Das ergab dann folgendes Bild:

  • Sind noch keine Verbindungen im System definiert, so zeigt plasma-nm bei allen Benutzern die SSIDs an, die empfangen werden.
  • Jeder Benutzer kann eine SSID auswählen und versuchen sich mit dieser zu verbinden. plasma-nm fragt das Netzwerk-Zugangskennwort ab und aktiviert dann kwallet. Besitzt der Benutzer noch keine Brieftasche, so läuft der Assistent zum Erstellen einer Brieftasche an und zum Abschluss wird das Netzwerk-Zugangskennwort in dieser abgelegt. Verfügt der Benutzer bereits über eine Brieftasche, dann wird das Kennwort zum Öffnen der Brieftasche (oder zur Nutzung des GPG-Schlüssels, falls die Brieftasche mit GPG verschlüsselt ist) abgefragt, die Brieftasche geöffnet und das Netzwerk-Zugangskennwort in der Brieftasche abgelegt. Verfügt der Benutzer bereits über eine Brieftasche und diese ist auch bereits geöffnet, so wird das Netzwerk-Zugangskennwort in der Brieftasche abgelegt. Dann wird die Verbindung hergestellt. Für diese Verbindung wird unter "/etc/NetworkManager/system-connections/" eine Verbindungsdatei erzeugt, die in der Regel den SSID als Dateinamen trägt (z.B.: EasyBox-EC2005). Ist dieser Dateiname bereits vergeben (z.B. weil ein anderer Benutzer bereits eine Verbindung für diese SSID erstellt hat), so wird die SSID um eine eindeutige Kennung ergänzt und dies dann als Name für die Verbindungsdatei verwendet (z.B.: EasyBox-EC2005-83643d65-037b-4cc1-8c03-162cba8ccfb3). In der Verbindungsdatei wird im Abschnitt "[wifi-security]" mit dem Eintrag "psk-flags=1" angezeigt, dass das Netzwerk-Zugangskennwort in der Brieftasche abgelegt ist. Und im Abschnitt "[connection]" wird eine eindeutige Kennung für diese Verbindung "uuid=8182ac94-db8f-46b3-8540-a324ab546640" eingetragen, mit deren Hilfe die Zuordnung des Netzwerk-Zugangskennwort aus in der Brieftasche erfolgt.
  • Jeder Benutzer kann auch eine Verbindung anlegen, indem er den Verbindungseditor von plasma-nm öffnet und eine Verbindung hinzufügt. Dabei kann er unter anderem den Verbindungstyp (Kabel, WiFi, ...) bestimmen, der Verbindung einen individuellen Namen geben und anderen/allen Benutzern die Nutzung dieser Verbindung erlauben. Wird anderen/allen Benutzern die Nutzung der Verbindung erlaubt, so ist für das erfolgreiche Anlegen der Verbindung jedoch das Administratorkennwort erforderlich. Ist die Brieftasche des Benutzers noch nicht geöffnet, so muss auch noch das Kennwort zum Öffnen der Brieftasche eingegeben werden.
  • Der Administrator (root) kann immer Verbindungen anlegen und jederzeit alle im System definierten Verbindungen nutzen, ändern oder löschen.
  • Erstellt der Administrator (root) eine Verbindung (OHNE sie explizit für weitere/alle Benutzer freizugeben), so wird "permissions=user:root:;" in der Verbindungsdatei eingetragen.
  • Da "automatisch verbinden" die Standardeinstellung ist, wird es nicht in der Verbindungsdatei vermerkt. Nur wenn beim Anlegen der Verbindung explizit "nicht automatisch verbinden" einstellt, wird "autoconnect=false" im Abschnitt "[connection]" der Verbindungsdatei vermerkt.
  • Erstellt ein "normaler" Benutzer eine Verbindung (OHNE sie explizit für weitere/alle Benutzer freizugeben), so kann er diese Verbindung jederzeit, OHNE Angabe eines Kennworts nutzen (vorausgesetzt die Brieftasche ist geöffnet), ändern oder löschen.
  • Erstellt ein "normaler" Benutzer (z.B.: Benutzer01) eine Verbindung und gibt diese für weitere/alle Benutzer frei (nur mit Verbindungs-Editor möglich), so wird "permissions=user:BENUTZER01:;user:BENUTZER02:;"/"permissions=" in der Verbindungsdatei eingetragen. BENUTZER01 kann diese Verbindung nur mit Eingabe des korrekten Administratorkennworts anlegen, bearbeiten oder löschen.
  • Da das Netzwerk-Zugangskennwort für einer Verbindung in der Brieftasche des Benutzers abgelegt wird, muss jeder Benutzer, wenn er eine Verbindung (die er nicht selbst erzeugt hat) zum aller ersten mal benutzen will, das Netzwerks-Zugangskennwort eingeben, damit es in seiner Brieftasche abgelegt werden kann. Das gilt sowohl für Verbindungen mit "permissions=user:BENUTZER01:;user:BENUTZER02:;" als auch für Verbindungen mit "permissions=".
  • Sobald eine Verbindung von mehreren Benutzern (unabhängig davon, ob einer der Benutzer "root" ist) genutzt werden kann (z.B.: "permissions=user:BENUTZER01:;user:BENUTZER02:;") tritt bei allen "normalen" Benutzern folgendes Verhalten auf, wenn die Verbindung genutzt werden soll: Zunächst wird das Administratorkennwort abgefragt. Unabhängig davon, ob diese Abfrage korrekt beantwortet oder einfach abgebrochen wird, wird die Verbindung hergestellt (sofern die Brieftasche noch nicht geöffnet ist, ist vorher noch das Kennwort für die Brieftasche einzugeben).
Es wäre schön, wenn Du die Zeit hättest, zu prüfen, ob sich Dein System ebenso verhält und eventuelle Abweichungen hier mitzuteilen. Ich bezweifle nämlich, dass die meines Erachtens "sinnfreie" Abfrage des Administratorkennworts, die bei mir auftritt, sobald mehrere Benutzer eine Verbindung nutzen können, korrekt ist. Entweder habe ich irgendetwas falsch konfiguriert oder es liegt ein Fehler vor.

Aber es gibt auch noch eine "gute Nachricht": Auch wenn ein Benutzer die Verwendung von kwallet aktiviert hat, kann er trotzdem Verbindungen nutzen, die für eine Verwendung ohne kwallet erstellt wurden. Steht in einer Verbindungsdatei, die ein Benutzer nutzen darf (z.B. mit "permissions=") "psk=GEHEIMES_NETZWERK_ZUGANGSKENNWORT", so kann der Benutzer diese ohne weiteres verwenden (allerdings tritt auch dabei die m. E. "sinnfreie" Abfrage nach dem Administratorkennwort auf).

Viele Grüße

susejunky
 
OP
H

Hazel

Hacker
Hallo susejunky

Vielen Dank für deine systematischen Untersuchungen und deinen ausführlichen Bericht.

Ich werde mich daran orientieren (und Rückmeldung geben), sobald ich selbst wieder an der Sache arbeiten kann. Wegen der Komplexität des Themas und meine üblicherweise recht langen Arbeitstage kann dies aber erst am Wochenende erfolgen.

Danke und Gruß
Hazel
 

susejunky

Moderator
Teammitglied
Hallo Bequimão,

Bequimão schrieb:
... Dazu gibt es kwallet-pam. User-Passwort und KWallet-Passwort sind gleich, und der Anmeldeprozeß öffnet mit dem Passwort-Hash gleichzeitig KWallet. Aus welchen Gründen auch immer ist kwallet-pam in openSUSE Leap nicht in den offiziellen Repos enthalten
Vielen Dank für den Hinweis.

Mittlerweile ist "pam_kwallet 5.7.1-6.1" in diesem http://download.opensuse.org/repositories/KDE:/Frameworks5/openSUSE_Leap_42.1/ Repository zu finden. Allerdings nutze ich es nicht, da es meines Erachtens eine Sicherheitseinbuße darstellt, wenn die Kennwörter für Login und Brieftasche identisch sind.

Außerdem - war es zumindest früher - nicht möglich pam-kwallet mit Brieftaschen zu verwenden, die mit GPG verschlüsselt sind (was für alle meine Brieftaschen zutrifft) und zudem musste die Brieftasche immer den Namen "kwallet" tragen (was jedoch nicht wirklich ein Problem für mich dargestellt hätte). Da ich aber, wie bereits gesagt, pam-kwallet ohnehin nicht einsetzen würde, habe ich nicht nachgeprüft, ob das alles auch heute noch zutrifft.

Viele Grüße

susejunky
 

susejunky

Moderator
Teammitglied
Hallo Hazel,

Hazel schrieb:
... Wegen der Komplexität des Themas und meine üblicherweise recht langen Arbeitstage kann dies aber erst am Wochenende erfolgen.
Kein Problem! Ich trage diese Problematik bereits seit openSUSE 13.2 mit mir herum, da spielen ein paar Tage/Wochen keine Rolle.

Bevor ich eine Fehlermeldung einstelle, möchte ich gerne ausschließen, dass der Fehler gar keiner ist bzw. eigentlich bei mir liegt. Deswegen meine Bitte hier um weitere Meinungen.

Viele Grüße

susejunky
 
OP
H

Hazel

Hacker
Hallo,

LUH 3417 hatte Recht: Die von mir in den letzten Wochen geschilderten Ärgernisse haben tatsächlich mit der Wechselwirkung zwischen KWallet und dem NetworkManager unter 42.1 Leap / Plasma 5 zu tun.

Aber der Reihe nach:

Ich habe susejunky's Konzept, das sie/er am 7.9.2016 12:21 h beschrieben hat, getestet und soweit wie möglich umgesetzt. Mein Ziel war es allerdings in dieser ersten Etappe nur, sicherzustellen, dass jeder Benutzer nach dem Beginn einer Sitzung sofort (i.e. ohne irgendeine Passwortabfrage) mit dem WLAN verbunden ist.

Ich habe dieses Ziel erreicht, und was ich dabei gelernt habe, klingt wie folgt:

Jeder neu angelegte Benutzer hat unter den KDE-Systemeinstellungen sofort den automatischen Eintrag
Code:
[X] KDE-Passwortspeicher-System aktivieren
Ich hatte in meinem eigenen, als allerersten angelegten, Account diese Einstellung unverändert gelassen, weil ja alles so gut lief und ich nie nach einem Passwort gefragt wurde.

Nach susejunky's Erfahrungen habe ich nun den Haken entfernt und lief natürlich sofort in ständige Passwortabfragen hinein. Daraufhin habe ich versucht, dem Verbindungseditor des NetworkManagers diese Information dauerhaft mitzugeben.

Genau dies war aber nicht möglich. Zwar konnte ich unter Wi-Fi-Sicherheit das Passwort eingeben, und die Verbindung stand, aber nach dem nächsten Reboot (Ab- und Neuanmelden war ohne Effekt) hatte der NetworkManager das Passwort bereits wieder vergessen.

Ich habe mir daraufhin die Dateien unter /etc/NetworkManager/system-connections näher angeschaut. Die meinem Account zugeordnete Konfigurationsdatei, die eigentlich das WLAN-Passwort hätte speichern sollen, war trotz meiner Aktionen unverändert geblieben.

Der Rest war einfach: Ich habe die WLAN-Verbindung im NetworkManager gelöscht und sofort wieder neu eingerichtet. Dann gab es eine frisch erstellte Konfigurationsdatei (die alte durch direkten Eingriff zu löschen, war nicht notwendig), und sie enthielt auch das korrekte Passwort. Von diesem Zeitpunkt an funktionierte die WLAN-Verbindung so, wie ich es von Anfang an wollte.

Mein persönliches Fazit für die ersten Maßnahmen nach Einrichtung eines neuen Benutzers lautet nun:
  • Deaktiviere in den KDE-Systemeinstellungen den Passwortspeicher (siehe oben)
  • Lösche im Verbindungseditor des Network-Managers alles heraus, was da möglicherweise bereits steht, und richte die gewünschten Verbindungen von Grund auf neu ein. Beachte dabei die beiden Einstellungen
    Code:
    [X] Automatisch mit diesem Netwerk verbinden, wenn es verfügbar ist
    [_] Alle Benutzer dürfen sich mit diesem Netzwerk verbinden
Da es sich in meinem Fall um einen Familien-PC handelt, möchte ich den heute erreichten Zustand zunächst für einige Tage unverändert belassen und erst später mit den vorgeschlagenen Einstellungsvarianten, die root-Rechte erfordern, experimentieren.

Nochmals danke für die gründlichen Untersuchungen und die wertvollen Tipps.
Hazel
 
Oben