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 posjeduje 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 prije nego što program uopšte počne, a OpenVPN može pitati poslije 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 mjestu 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 premješ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 zahtijeva interakciju, rješenje je podržana neinteraktivna autentifikacijska postavka, a ne drugi način pokretanja istog upita.
--daemon mijenja program, a ne prijavu
--daemon traži da se sam OpenVPN odvoji nakon inicijalizacije. Priručnik za 2.6 napominje da se preusmjeravanje 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 točke ništa ne dokazuje o tunelu. Dodajte izričit --log ili --log-append tako da izlaz stigne negdje gdje možete pročitati.
Daemon režim takođe trajno uklanja konzolu. Zaštićeni privatni ključ zahtijeva askpass u tom režimu, a akreditivi uneseni s konzole u kombinaciji s opcijama keširanja mogu kasniju ponovnu autentifikaciju ostaviti bez mjesta za pitanje. Provjerite model autentifikacije prema instaliranoj verziji prije nego pretpostavite da će pozadinsko pokretanje preživjeti prvo obnavljanje ključa.
Šta sudo validacija daje, a šta ne daje
sudo -v validira ili osvježava keširani lokalni akreditiv, autentifikujući se ako politika to zahtijeva. 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 neuspjeh. To čini lokalni neuspjeh 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 dodijele komande bez lozinke ili da se administratorska lozinka ubaci u skriptu.
Preferirajte vlasnika koji se može posmatrati
Za tunel koji posjeduje 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, provjerite resurs zbog kojeg tunel postoji. Uspješan zahtjev za pokretanje je događaj procesa, a ne dokaz radne veze.