Kodėl nauja VPN nuoroda neatkuria prarastų nustatymų
Paleidėjas nusprendžia, kaip programa paleidžiama, o ne kur ji laiko savo nuostatas. Palyginkite vykdomojo failo, naudotojo ir konfigūracijos kontekstą, prieš kaltindami piktogramą.
Trūkstami meniu įrašai ir nykstančios nuostatos taisomi tuo pačiu refleksu, nors tai nesusijusios problemos. Viena yra darbalaukio integracija, kita – programos būsena, o nauja piktograma pati savaime nekeičia nė vienos. Atskirti jas kainuoja vieną eksperimentą ir paaiškina didžiąją dalį painiavos, kurią žmonės atsineša į šią temą. Paleidėjas paleidžia programą; programa nusprendžia, ką ji atsimena.
Dvi užduotys, kurios tik atrodo kaip viena
Darbalaukio integracija reiškia, kad aplinka gali rasti vykdomąjį failą, parodyti pavadinimą ir piktogramą bei perduoti tinkamus argumentus. Programos būsena reiškia, kad programa įrašo profilį ilgalaikėje vietoje ir perskaito jį kitą kartą paleidus. Nė vienas nenumato kito, todėl veikianti nuoroda gali paleisti klientą, kuris viską pamiršo.
Pakeiskite vieną nekenksmingą rodymo nuostatą per pačios programos valdiklius, tada uždarykite ir vėl atidarykite tą pačią. Jei nuostata grįžta, išsaugojimas veikia, o likęs skundas yra apie lango radimą, o ne apie duomenų išsaugojimą. Jei ji dingsta, nuoroda yra dėmesio nukreipimas, o tikrasis klausimas – kur tas procesas laiko savo failus. Tikrinkite po vieną nuostatą, nes klientas, kuris vėl prašo slaptažodžio, galbūt saugo paslaptį, o ne praranda konfigūraciją.
Palyginkite paleidimo įvestis prieš perinstaliuodami
Pradėkite nuo darbalaukio įrašo ir perskaitykite, ką jis iš tikrųjų daro, nes paleidimas iš meniu nebūtinai yra ta pati procesų aplinka kaip paleidimas iš terminalo. Svarbūs raktai yra Exec, Path ir netiesiogiai aplinka, kurią suteikia sesija. Apvalkalų scenarijus faile Exec gali nustatyti kintamąjį, pakeisti katalogą arba iškviesti privilegijuotą pagalbininką, kurio meniu niekada nerodo. Perinstaliavimas pakeičia failus, kuriuos programa jau turėjo, ir tai retai būna tas kintamasis, kuris pasikeitė.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Pažiūrėkite į failą, esantį ~/.local/share/applications, anksčiau nei į tą, kuris yra /usr/share/applications, nes naudotojo kopija užstoja sistemos kopiją. Paleiskite desktop-file-validate, kai įrašas elgiasi netinkamai, ir ieškokite pasenusios kopijos, kuri vis dar nurodo pašalintą kelią. Dauguma darbalaukių vis dar teikia pirmenybę netinkamai naudotojo kopijai, todėl sugadintas failas gali pašalinti įrašą iš meniu, o paketo failas lieka galiojantis. Tada paleiskite tą pačią komandą rankiniu būdu ir palyginkite, ką duoda abu paleidimai.
Kur nuostata iš tikrųjų gyvena
Programos, kurios laikosi XDG bazinių katalogų taisyklių, deda konfigūraciją į $XDG_CONFIG_HOME, ilgalaikę būseną į $XDG_STATE_HOME, o vienkartinius duomenis į $XDG_CACHE_HOME, ir naudoja numatytąsias ~/.config, ~/.local/state bei ~/.cache, kai tie kintamieji nenustatyti. Šie trys yra vaidmenys, o ne pažadai, todėl konkretus VPN produktas gali dokumentuoti visai ką kita. Skaityti paties tiekėjo dokumentaciją geriau nei spėti kelią iš katalogo pavadinimo. Kai dokumentacija menka, stebėkite procesą, o ne failų sistemą.
Pėdsakas, filtruojamas pagal failų atidarymus, rodo kiekvieną konfigūracijos kelią, kurį klientas bando, įskaitant tą, kurį jis įrašo išeidamas. Paleiskite jį kaip tas pats naudotojas toje pačioje aplinkoje, tada palyginkite tuos kelius su katalogais, kurių tikėjotės.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Paslaptys ir profiliai turi skirtingus savininkus
Išsaugotas profilis ir išsaugoti prisijungimo duomenys yra atskiri objektai, dažnai su atskira saugykla. Vienas gali gyventi konfigūracijos faile, o kitas sėdėti raktų saugykloje, kuri atsirakina kiekvienai sesijai, todėl klientas, vėl prašantis slaptažodžio, galbūt tiesiog daro tai, kam buvo sukurtas. Ištrinti profilį, kad sustabdytumėte raginimą, yra būdas, kuriuo žmonės praranda veikiančią konfigūraciją.
Privilegijuoti paleidimai tai dar labiau komplikuoja, nes paleidimas per sudo arba PolicyKit pagalbininką gali pateikti kitą namų katalogą ir todėl kitą konfigūracijos rinkinį. Taisykite nuosavybę konkrečiame faile, kurį dokumentuoja programa, o ne rekursyviai visame namų kataloge, tada nuspręskite, kuri tapatybė turi valdyti profilį toliau, ir laikykite būsimus paleidimus su ja suderintus.
Ką piktograma gali ir ko negali pasakyti
Piktograma įrodo, kad paleidėjo failas išsprendžiamas, ir nieko daugiau. Ryšio būsena priklauso klientui, todėl vienintelė patikima patikra yra sąsaja, maršrutas arba paties kliento būsenos išvestis. Dėklos programėlė, kuri nepasileido, gali priversti veikiantį tunelį atrodyti sugadintą, o pasenusi programėlė gali priversti sugadintą atrodyti tvarkingą. Tikrinkite ryšį ir paleidėją atskirai, tada užsirašykite, kurią iš jų tikrai sutvarkėte.
Jei abi buvo sugadintos, atsispirkite pagundai traktuoti taisymą kaip vieną pakeitimą. Sutaisykite įrašą, patvirtinkite paleidimą, tada patvirtinkite tunelį ir užsirašykite kiekvieno žingsnio rezultatą. Būtent šis įrašas daro kitą pranešimą apie prarastus nustatymus diagnozuojamą, o ne šio pranešimo kartojimą, ir jis taip pat pasako kitam žmogui, kuri problemos pusė buvo tikra.