sudo, &, -b ili --daemon: kako pokrenuti OpenVPN klijent u pozadini
Ampersand oslobađa terminal, ali ne i prijavu. Uporedite sudo -b, --daemon i servisnu instancu po tome ko poseduje proces i ko odgovara na upite.
U frazi „pokreni to u pozadini“ kriju se dva pitanja. Prvo je može li ovaj korisnik uopšte pokrenuti privilegovani proces; drugo je može li sesija nastaviti bez toga da neko kuca u terminal. Ampersand ljuske ne odgovara ni na jedno, a skripta koja čuva sudo lozinku u varijabli loše odgovara na prvo i ostavlja drugo netaknutim. Razdvojite ih i opcije postaju lake za poređenje.
Uporedite tri kandidata po vlasništvu, a ne po udobnosti.
Tri načina da napustite terminal, tri različita vlasnika
Dodavanje ampersanda na komandu traži od ljuske da je pokrene kao pozadinski posao, a posao i dalje pripada toj ljusci. sudo može pitati pre nego što program uopšte počne, a OpenVPN može pitati posle toga za lozinku ključa ili prijavu. Pokretanje komande koja očekuje unos u pozadini stvara proces koji čeka terminal koji niko ne gleda. Terminal se oslobađa; interakcija ne.
To je najjeftinija opcija i ona koja najzbunjujuće propada, jer se upit pojavljuje na mestu koje je operater već napustio.
sudo -b nije obrađivač akreditiva
sudo -b pokreće komandu u pozadini iz perspektive samog sudo, što zvuči kao nedostajuća funkcija, ali nije. Prema sudo priručniku, interaktivne komande se u tom režimu uglavnom ponašaju pogrešno, a kontrola poslova ljuske ne može upravljati procesima koje stvara. On premešta proces bez toga da mu da način da odgovara na pitanja. Ništa u vezi s njim ne daje lozinku privatnog ključa ni prijavu na mrežni prolaz.
Ako veza zahteva interakciju, rešenje je podržana neinteraktivna autentifikacijska postavka, a ne drugi način pokretanja istog upita.
--daemon menja program, a ne prijavu
--daemon traži da se sam OpenVPN odvoji nakon inicijalizacije. Priručnik za 2.6 napominje da se preusmeravanje sysloga događa prilikom parsiranja opcije, iako se odvajanje događa kasnije, pa poruke mogu prestati pojavljivati u terminalu ranije nego što se očekuje. Tišina nakon te tačke ništa ne dokazuje o tunelu. Dodajte izričit --log ili --log-append tako da izlaz stigne negde gde možete pročitati.
Daemon režim takođe trajno uklanja konzolu. Zaštićeni privatni ključ zahteva askpass u tom režimu, a akreditivi uneseni s konzole u kombinaciji s opcijama keširanja mogu kasniju ponovnu autentifikaciju ostaviti bez mesta za pitanje. Proverite model autentifikacije prema instaliranoj verziji pre nego pretpostavite da će pozadinsko pokretanje preživeti prvo obnavljanje ključa.
Šta sudo validacija daje, a šta ne daje
sudo -v validira ili osvežava keširani lokalni akreditiv, autentifikujući se ako politika to zahteva. Ne pokreće OpenVPN, ne autentifikuje se na mrežnom prolazu i ne garantuje da će kasnija komanda u skripti biti dopuštena. sudo -n znači suprotno: ne pitaj, nego neuspeh. To čini lokalni neuspeh autorizacije izričitim, što je korisno, i ne govori ništa o tome šta će OpenVPN kasnije tražiti.
Nijedna opcija nije razlog da se svima dodele komande bez lozinke ili da se administratorska lozinka ubaci u skriptu.
Preferirajte vlasnika koji se može posmatrati
Za tunel koji poseduje mašina, koristite servisnu instancu koju distribucija podržava. Takav vlasnik pruža početak, zaustavljanje, status i dnevnike i preživljava kraj vaše sesije. Sastavljanje pozadinskog rada ljuske, daemonizacije i petlje za ponovno pokretanje jedno oko drugog stvara tri vlasnika za jedan tunel i nema jasan odgovor koji od njih radi.
Šta god odabrali, proverite resurs zbog kojeg tunel postoji. Uspešan zahtev za pokretanje je događaj procesa, a ne dokaz radne veze.