Fehlende Menüeinträge und verschwindende Voreinstellungen werden mit demselben Reflex repariert, und sie sind unabhängige Probleme. Das eine ist Desktop-Integration, das andere Anwendungszustand, und ein neues Symbol ändert von sich aus keines von beiden. Die beiden zu trennen kostet ein Experiment und erklärt den größten Teil der Verwirrung, die Leute zu diesem Thema mitbringen. Der Starter startet ein Programm; das Programm entscheidet, was es sich merkt.

Zwei Aufgaben, die nur wie eine aussehen

Desktop-Integration bedeutet, dass die Umgebung eine Programmdatei finden, einen Namen und ein Symbol anzeigen und die richtigen Argumente übergeben kann. Anwendungszustand bedeutet, dass das Programm ein Profil an einem dauerhaften Ort schreibt und es beim nächsten Start wieder liest. Keines bedingt das andere, weshalb eine funktionierende Verknüpfung einen Client starten kann, der alles vergessen hat.

Ändern Sie eine harmlose Anzeigevoreinstellung über die eigenen Bedienelemente der Anwendung, schließen Sie sie dann und öffnen Sie sie auf dieselbe Weise erneut. Kommt die Voreinstellung zurück, funktioniert die Speicherung, und die verbleibende Beschwerde betrifft das Finden des Fensters statt das Speichern von Daten. Verschwindet sie, ist die Verknüpfung eine Ablenkung, und die eigentliche Frage ist, wo dieser Prozess seine Dateien hält. Testen Sie jeweils eine Voreinstellung, denn ein Client, der erneut nach einem Passwort fragt, schützt vielleicht ein Geheimnis, statt eine Konfiguration zu verlieren.

Vergleichen Sie die Starteingaben, bevor Sie neu installieren

Beginnen Sie beim Desktop-Eintrag und lesen Sie, was er tatsächlich tut, denn ein Start aus dem Menü ist nicht automatisch dieselbe Prozessumgebung wie ein Start aus dem Terminal. Die entscheidenden Schlüssel sind Exec, Path und indirekt die Umgebung, die die Sitzung bereitstellt. Ein Wrapper-Skript in Exec kann eine Variable setzen, das Verzeichnis wechseln oder einen privilegierten Helfer aufrufen, den das Menü nie zeigt. Eine Neuinstallation ersetzt Dateien, die die Anwendung schon hatte, und das ist selten die Variable, die sich geändert hat.

grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop

Sehen Sie sich die Datei unter ~/.local/share/applications vor der in /usr/share/applications an, denn eine Benutzerkopie überschattet die Systemkopie. Führen Sie desktop-file-validate aus, wenn sich der Eintrag falsch verhält, und suchen Sie nach einer veralteten Kopie, die noch auf einen entfernten Pfad zeigt. Eine ungültige Benutzerkopie wird von den meisten Desktops weiterhin bevorzugt, sodass eine defekte Datei den Eintrag aus dem Menü entfernen kann, während die paketeigene Datei gültig bleibt. Führen Sie dann denselben Befehl von Hand aus und vergleichen Sie, was die beiden Starts ergeben.

Wo eine Voreinstellung tatsächlich lebt

Anwendungen, die den XDG-Regeln für Basisverzeichnisse folgen, legen Konfiguration unter $XDG_CONFIG_HOME, dauerhaften Zustand unter $XDG_STATE_HOME und wegwerfbare Daten unter $XDG_CACHE_HOME ab und verwenden standardmäßig ~/.config, ~/.local/state und ~/.cache, wenn diese Variablen nicht gesetzt sind. Die drei sind Rollen und keine Versprechen, daher kann ein bestimmtes VPN-Produkt etwas ganz anderes dokumentieren. Die eigene Dokumentation des Anbieters zu lesen ist besser, als einen Pfad aus einem Verzeichnisnamen zu raten. Wenn die Dokumentation dünn ist, beobachten Sie den Prozess statt das Dateisystem.

Eine auf Dateiöffnungen gefilterte Ablaufverfolgung zeigt jeden Konfigurationspfad, den der Client versucht, einschließlich des Pfades, den er beim Beenden schreibt. Führen Sie sie als derselbe Benutzer mit derselben Umgebung aus und vergleichen Sie diese Pfade dann mit den erwarteten Verzeichnissen.

strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client

Geheimnisse und Profile haben verschiedene Eigentümer

Ein gespeichertes Profil und ein gespeicherter Anmeldedatensatz sind getrennte Objekte, oft mit getrenntem Speicher. Eines kann in einer Konfigurationsdatei leben, während das andere in einem Schlüsselbund sitzt, der pro Sitzung entsperrt wird, sodass ein Client, der erneut nach einem Passwort fragt, vielleicht einfach tut, wofür er entworfen wurde. Das Profil zu löschen, um die Abfrage zu beenden, ist der Weg, auf dem Leute eine funktionierende Konfiguration verlieren.

Privilegierte Starts erschweren das weiter, denn ein Start über sudo oder einen PolicyKit-Helfer kann ein anderes Heimatverzeichnis und damit einen anderen Konfigurationssatz präsentieren. Korrigieren Sie die Eigentümerschaft an der konkreten Datei, die die Anwendung dokumentiert, statt rekursiv über ein Heimatverzeichnis, entscheiden Sie dann, welche Identität das Profil künftig besitzen soll, und halten Sie weitere Starts damit konsistent.

Was das Symbol Ihnen sagen kann und was nicht

Ein Symbol beweist, dass eine Starterdatei aufgelöst wird, und nichts weiter. Der Verbindungszustand gehört zum Client, daher ist die einzige verlässliche Prüfung die Schnittstelle, die Route oder die eigene Statusausgabe des Clients. Ein Tray-Applet, das nicht gestartet ist, kann einen funktionierenden Tunnel defekt aussehen lassen, während ein veraltetes Applet einen defekten Tunnel in Ordnung aussehen lässt. Prüfen Sie Verbindung und Starter getrennt und notieren Sie dann, welche der beiden Sie tatsächlich repariert haben.

Wenn beides defekt war, widerstehen Sie der Versuchung, die Reparatur als eine Änderung zu behandeln. Reparieren Sie den Eintrag, bestätigen Sie den Start, bestätigen Sie dann den Tunnel und notieren Sie das Ergebnis jedes Schritts. Diese Aufzeichnung macht den nächsten Bericht über verlorene Einstellungen diagnostizierbar statt zu einer Wiederholung dieses Berichts, und sie sagt der nächsten Person auch, welche Hälfte des Problems echt war.

Ähnliche Artikel