Zakaj nova bližnjica VPN ne obnovi izgubljenih nastavitev
Zaganjalnik odloči, kako se program zažene, ne kje hrani svoje nastavitve. Primerjajte kontekst izvršljive datoteke, uporabnika in konfiguracije, preden krivite ikono.
Manjkajoči vnosi v meniju in nastavitve, ki izginjajo, se popravljajo z istim refleksom, čeprav gre za nepovezani težavi. Eno je integracija z namizjem, drugo je stanje aplikacije, nova ikona pa sama po sebi ne spremeni nobenega od obeh. Ločevanje obeh zahteva en poskus in pojasni večino zmede, ki jo ljudje prinesejo k tej temi. Zaganjalnik zažene program; program odloči, kaj si zapomni.
Dve opravili, ki se zdita le eno
Integracija z namizjem pomeni, da okolje lahko najde izvršljivo datoteko, prikaže ime in ikono ter posreduje prave argumente. Stanje aplikacije pomeni, da program zapiše profil na trajno mesto in ga ob naslednjem zagonu znova prebere. Nobeno ne pomeni drugega, zato lahko delujoča bližnjica zažene odjemalca, ki je vse pozabil.
Spremenite eno nedolžno nastavitev prikaza prek lastnih kontrolnikov aplikacije, nato jo zaprite in znova odprite na enak način. Če se nastavitev vrne, shranjevanje deluje in preostala pritožba se nanaša na iskanje okna, ne na shranjevanje podatkov. Če izgine, je bližnjica odvračanje pozornosti in pravo vprašanje je, kje ta proces hrani svoje datoteke. Preizkusite eno nastavitev naenkrat, ker odjemalec, ki znova zahteva geslo, morda varuje skrivnost, namesto da bi izgubljal konfiguracijo.
Primerjajte vhode zagona pred ponovno namestitvijo
Začnite pri vnosu na namizju in preberite, kaj v resnici počne, ker zagon iz menija ni samodejno isto procesno okolje kot zagon iz terminala. Ključi, ki štejejo, so Exec, Path in posredno okolje, ki ga zagotavlja seja. Ovojni skript v Exec lahko nastavi spremenljivko, zamenja mapo ali pokliče privilegiranega pomočnika, ki ga meni nikoli ne pokaže. Ponovna namestitev zamenja datoteke, ki jih je aplikacija že imela, in to je redko tista spremenljivka, ki se je spremenila.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Poglejte datoteko v ~/.local/share/applications prej kot tisto v /usr/share/applications, ker uporabniška kopija zasenči sistemsko kopijo. Zaženite desktop-file-validate, ko se vnos obnaša slabo, in poiščite zastarelo kopijo, ki še vedno kaže na odstranjeno pot. Neveljavna uporabniška kopija je na večini namizij še vedno prednostna, zato lahko pokvarjena datoteka odstrani vnos iz menija, medtem ko datoteka iz paketa ostane veljavna. Nato zaženite isti ukaz ročno in primerjajte, kaj dajeta oba zagona.
Kje nastavitev v resnici živi
Aplikacije, ki sledijo pravilom osnovnih imenikov XDG, shranjujejo konfiguracijo v $XDG_CONFIG_HOME, trajno stanje v $XDG_STATE_HOME in podatke za enkratno uporabo v $XDG_CACHE_HOME ter privzeto uporabljajo ~/.config, ~/.local/state in ~/.cache, kadar te spremenljivke niso nastavljene. Ti trije so vloge in ne obljube, zato lahko določen izdelek VPN dokumentira nekaj povsem drugega. Branje lastne dokumentacije ponudnika je boljše od ugibanja poti iz imena imenika. Ko je dokumentacija skopa, opazujte proces in ne datotečnega sistema.
Sled, filtrirana po odpiranju datotek, pokaže vsako konfiguracijsko pot, ki jo odjemalec poskusi, vključno s tisto, ki jo zapiše ob izhodu. Zaženite jo kot isti uporabnik v istem okolju in nato te poti primerjajte z imeniki, ki ste jih pričakovali.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Skrivnosti in profili imajo različne lastnike
Shranjen profil in shranjene poverilnice so ločeni objekti, pogosto z ločenim shrambo. Eden lahko živi v konfiguracijski datoteki, medtem ko drugi sedi v obroču ključev, ki se odklene za sejo, zato odjemalec, ki znova zahteva geslo, morda le počne to, za kar je bil zasnovan. Brisanje profila, da bi ustavili poziv, je način, kako ljudje izgubijo delujočo konfiguracijo.
Privilegirani zagona to še otežijo, ker lahko zagon prek sudo ali pomočnika PolicyKit predstavi drugo domačo mapo in s tem drugo konfiguracijsko zbirko. Popravite lastništvo na določeni datoteki, ki jo aplikacija dokumentira, ne rekurzivno po celotni domači mapi, nato odločite, katera identiteta naj ima profil v prihodnje, in ohranite prihodnje zagone skladne z njo.
Kaj vam ikona lahko in česa ne more povedati
Ikona dokazuje, da se datoteka zaganjalnika razreši, in nič več. Stanje povezave pripada odjemalcu, zato je edino zanesljivo preverjanje vmesnik, pot ali lastni izhod stanja odjemalca. Aplet v sistemski pladnji, ki se ni zagnal, lahko povzroči, da je delujoč tunel videti pokvarjen, medtem ko lahko zastarel aplet pokvarjenega prikaže kot v redu. Preizkusite povezavo in zaganjalnik ločeno in nato zapišite, katerega od obeh ste res popravili.
Če sta bila pokvarjena oba, se uprite skušnjavi, da bi popravilo obravnavali kot eno spremembo. Popravite vnos, potrdite zagon, nato potrdite tunel in zabeležite izid vsakega koraka. Prav ta zapis naredi naslednje poročilo o izgubljenih nastavitvah diagnostično namesto ponovitve tega, in tudi pove naslednji osebi, katera polovica težave je bila resnična.