Hvorfor en ny VPN-genvej ikke genskaber mistede indstillinger
En starter afgør, hvordan et program starter, ikke hvor det gemmer præferencer. Sammenlign konteksten for den kørbare fil, brugeren og konfigurationen, før du bebrejder ikonet.
Manglende menupunkter og forsvindende præferencer bliver rettet med samme refleks, og de er ikke beslægtede problemer. Det ene er skrivebordsintegration, det andet er applikationstilstand, og et nyt ikon ændrer ikke noget af det af sig selv. At skille de to ad kræver ét eksperiment og forklarer det meste af den forvirring, folk kommer med til dette emne. Starteren starter et program; programmet bestemmer, hvad det husker.
To opgaver, der kun ligner én
Skrivebordsintegration betyder, at miljøet kan finde en kørbar fil, præsentere et navn og et ikon og sende de rigtige argumenter. Applikationstilstand betyder, at programmet skriver en profil et varigt sted og læser den igen ved næste start. Ingen af delene forudsætter den anden, og derfor kan en fungerende genvej starte en klient, der har glemt alt.
Ændr én uskyldig visningspræference via programmets egne kontroller, og luk og genåbn det derefter på samme måde. Hvis præferencen vender tilbage, virker lagringen, og den resterende klage handler om at finde vinduet snarere end at gemme data. Hvis den forsvinder, er genvejen en afledning, og det egentlige spørgsmål er, hvor den proces holder sine filer. Test én præference ad gangen, for en klient, der igen spørger om en adgangskode, beskytter måske en hemmelighed snarere end at miste en konfiguration.
Sammenlign startparametrene, før du geninstallerer
Begynd ved skrivebordsposten og læs, hvad den faktisk gør, for en start fra menuen er ikke automatisk det samme procesmiljø som en start fra terminalen. De nøgler, der betyder noget, er Exec, Path og indirekte det miljø, sessionen stiller til rådighed. Et indpakningsscript i Exec kan sætte en variabel, skifte mappe eller kalde en privilegeret hjælper, som menuen aldrig viser. Geninstallation erstatter filer, programmet allerede havde, og det er sjældent den variabel, der blev ændret.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Se på filen under ~/.local/share/applications før den i /usr/share/applications, fordi en brugerkopi skygger for systemkopien. Kør desktop-file-validate, når posten opfører sig forkert, og led efter en forældet kopi, der stadig peger på en fjernet sti. En ugyldig brugerkopi foretrækkes stadig af de fleste skriveborde, så en ødelagt fil kan fjerne posten fra menuen, mens pakkens fil forbliver gyldig. Kør derefter den samme kommando manuelt og sammenlign, hvad de to startere giver.
Hvor en præference faktisk bor
Programmer, der følger XDG-reglerne for basiskataloger, lægger konfiguration under $XDG_CONFIG_HOME, varig tilstand under $XDG_STATE_HOME og engangsdata under $XDG_CACHE_HOME med ~/.config, ~/.local/state og ~/.cache som standard, når disse variable ikke er sat. De tre er roller snarere end løfter, så et bestemt VPN-produkt kan dokumentere noget helt andet. At læse leverandørens egen dokumentation slår at gætte en sti ud fra et mappenavn. Når dokumentationen er tynd, skal du holde øje med processen i stedet for filsystemet.
Et trace filtreret til filåbninger viser hver konfigurationssti, klienten prøver, inklusive den, den skriver ved afslutning. Kør det som den samme bruger med det samme miljø, og sammenlign derefter disse stier med de mapper, du forventede.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Hemmeligheder og profiler har forskellige ejere
En gemt profil og en gemt adgangsoplysning er separate objekter, ofte med separat lager. Den ene kan bo i en konfigurationsfil, mens den anden sidder i en nøglering, der låses op per session, så en klient, der igen spørger om en adgangskode, gør måske blot, hvad den blev designet til. At slette profilen for at stoppe prompten er måden, folk mister en fungerende konfiguration på.
Privilegerede starter komplicerer dette yderligere, fordi en start via sudo eller en PolicyKit-hjælper kan præsentere en anden hjemmemappe og dermed et andet konfigurationssæt. Ret ejerskabet på den specifikke fil, programmet dokumenterer, i stedet for rekursivt i hele hjemmemappen, og beslut derefter, hvilken identitet der fremover skal eje profilen, og hold fremtidige starter i overensstemmelse med den.
Hvad ikonet kan og ikke kan fortælle dig
Et ikon beviser, at en starterfil kan opløses, og intet mere. Forbindelsestilstand tilhører klienten, så den eneste pålidelige kontrol er grænsefladen, ruten eller klientens egen statusudskrift. En bakkeapplet, der ikke startede, kan få en fungerende tunnel til at se brudt ud, mens en forældet applet kan få en brudt tunnel til at se fin ud. Test forbindelsen og starteren separat, og skriv derefter ned, hvilken af dem du faktisk reparerede.
Hvis begge var brudt, skal du modstå at behandle reparationen som én ændring. Ret posten, bekræft starten, bekræft derefter tunnelen, og noter resultatet af hvert trin. Den registrering er det, der gør den næste rapport om mistede indstillinger diagnosticerbar i stedet for en gentagelse af denne, og den er også det, der fortæller den næste person, hvilken halvdel af problemet der var virkelig.