Pozadina
Montaža
Konfiguracija
Korištenje
Najbolje prakse
Savjeti i trikovi
Pozadina
OpenBSD-ova alternativa sudoje doas, iako ne radi na isti način kao sudo i zahtijeva određenu konfiguraciju. To je akronim za "dedicated openbsd application subexecutor". OpenBSD 5.8, objavljen 2015., prvi je uključio doas. Stvorio ga je Ted Unangst nakon što je bio nezadovoljan složenošću sudoa i imao problema sa zadanom sudo konfiguracijom.
doasNaredba je jednostavan po dizajnu i ne sadrži napredne funkcije potrebne za razraditi sysadmin infrastruktura. Za većinu ljudi to je više nego dovoljno. Ako trebate sudo, instalirajte ga pkg_add sudokao root.
Montaža
OpenBSD verzija 5.8 i novije je doasunaprijed instaliran.
Konfiguracija
Da biste korisnicima u grupi kotača omogućili pristup doas, dodajte sljedeće u /etc/doas.conf. Za uređivanje ove datoteke trebat će vam root pristup.
permit :wheel
To će svim korisnicima u grupi kotača dati dopuštenje za izvršavanje naredbi kao bilo koji korisnik.
Ako želite da korisnici mogu jednom unijeti svoju lozinku, a zatim je ne moraju unositi neko vrijeme, upotrijebite persistopciju. Evo primjera koji daje dopuštenja samo grupi kotača:
permit persist :wheel
Umjesto toga možete koristiti nopassopciju ako želite da nikada ne moraju unositi svoju lozinku:
permit nopass :wheel
Ako želite da korisnik "mynewuser" ima administratorska prava, možete ga dodati u grupu kotača pokretanjem usermod -G wheel mynewuserkao root ili dodati redak u svoju /etc/doas.conftako da izgleda otprilike ovako:
permit nopass :wheel
permit nopass mynewuser
Ovaj primjer pretpostavlja da ne trebate da vaši korisnici unose lozinku kada koristite doas. Ako ga želite postaviti tako da mynewuser smije izvršavati naredbe samo kao www korisnik, konfiguracija bi bila sljedeća:
permit nopass :wheel
permit nopass mynewuser as www
Ako želite da mynewuser može koristiti samo naredbu "vim" s doas-om, koristite sljedeću konfiguraciju:
permit nopass :wheel
permit nopass mynewuser as www cmd vim
Postoje i druge opcije konfiguracije, ali one koje su ovdje obrađene su najčešće. Ako želite pročitati više, možete koristiti naredbu man doas.confza čitanje doas.conf(5) man stranice.
Testiranje konfiguracijskih datoteka
Za testiranje konfiguracijske datoteke upotrijebite doas -C /etc/doas.confnaredbu. Ako naknadno doas -C /etc/doas.conf vimunesete naredbu, npr. , reći će vam imate li dopuštenje za pokretanje naredbe ili ne bez pokušaja izvršenja naredbe.
Korištenje
Korisnik može pokrenuti naredbu echo "test"kao root koristeći naredbu:
doas echo "test"
Korisnik koji ima dopuštenja za korištenje doas-a kako bi se uzdigao do korisnika "www" može pokrenuti naredbu vim /var/www/http/index.htmlkao korisnik "www" korištenjem naredbe:
doas -u www vim index.html
Ovo je korisno za nekoga tko upravlja web poslužiteljem, ali nema puna dopuštenja superkorisnika.
Najbolje prakse
Preporučljivo je da koristite dozvolu umjesto odbijanja gdje je to moguće. Ako korisniku odbijete korištenje određene naredbe, možda će se moći izvući korištenjem alternativnog puta ili naziva te naredbe ako postoji. Oni također mogu kopirati izvršnu datoteku naredbe u svoj početni direktorij i zatim pokrenuti tu izvršnu datoteku, čime će pobjediti vaš sustav dozvola.
Općenito govoreći, bolja je ideja koristiti doas nego koristiti su jer nitko ne mora dijeliti root lozinku. Nema šanse da ga netko promijeni, zaboravi i zaključa sve iz sustava ako svatko koristi vlastitu lozinku za root pristup. Dnevnici se čuvaju u /var/log/secure.
Savjeti i trikovi
Sve varijable okruženja možete zadržati pomoću Keepenv-a, što je korisno ako imate uređivač podešen na nešto i ne želite da se to promijeni kada postanete drugi korisnik. Evo primjera s mynewuser:
permit nopass keepenv mynewuser
Ponekad postoje situacije u kojima prepisivanje svake varijable okruženja može pokvariti stvari, ali sa setenvom možete birati koje ćete prenijeti. Evo primjera koji će vaš uređivač držati postavljenim na ono što želite za korištenje s git-om i nekim drugim stvarima.
permit nopass setenv { VISUAL EDITOR } mynewuser
Također možete koristiti setenv za uklanjanje varijabli okruženja (stavljanjem crtice ispred svake koju želite ukloniti) ili ih postaviti na određene stvari sa znakom jednakosti. Na primjer, ako želite da ukloni varijablu okruženja VISUAL i postavite EDITOR na vim, upotrijebili biste ovu konfiguracijsku liniju:
permit nopass setenv { -VISUAL EDITOR=vim } mynewuser
Ako doasse sjetio vaše lozinke, možete učiniti doas -Lda zaboravi lozinku.