Kako korisnicima omogućiti sigurno uređivanje datoteka koristeći sudoedit na Linuxu

Kako korisnicima omogućiti sigurno uređivanje datoteka koristeći sudoedit na Linuxu

Pretpostavimo da ste sistemski administrator u kompaniji u kojoj timovi uglavnom rade na Linuxu sa ograničenim privilegijama. Sada zamislite situaciju u kojoj članovi jedne od timova - kao deo nekog novog rada - trebaju često uređivati ​​datoteku koja zahtijeva privilegije superusera. Šta bi ti uradio?

Jedna od opcija je da im daju pristup sudo, ali to bi bilo kao davanje nepoznatog pristupa svom kompletnom kući kada su sve što trebale biti u jednoj od vaših soba - na šta mislim, podrazumevani 'sudo' pristup će neka učine sve što zahteva root privilegije, kada je sve što je potrebno za to je mogućnost uređivanja određene sistemske datoteke.

S obzirom na vrstu fleksibilnosti 'sudo' nudi, druga opcija koju imate je da podesite politiku 'sudo' na način da se odobrava samo privilegija za uređivanje datog fajla. Na primer, nešto ovako:

% newsudo ALL = vim / putanje / do / datoteke

Iako je to bez sumnje daleko bolje rešenje nego obezbeđivanje potpunog pristupa sudo-u, još uvek postoji praznina koja bi neko mogao da iskoristi.

Da shvatim o čemu govorim, razmotrite scenario u kojem je - u navedenom ograničenom pristupu pružen grupi, a neko otvara predmetnu datoteku za uređivanje pomoću naredbe 'sudo'.

Sada, pametan um s dobrim znanjem o Vim-u bi znao da mogu da pokrenu novu školjku iz urednika - sve što treba da uradi je da pokrene sledeću vim komandu:

: školjka

Ovo će vas odmah postaviti u interaktivnu školjku. Ako probate ove korake na vašoj mašini, samo izvršite komandu 'whoami' i razumećete o čemu sam ja govorio - Da, vi ste u ljusci kao root.

Evo primera ekrana:

Nepotrebno je reći da je svrha obezbeđivanja uređivanja pristupa samo jednom fajlu poražena, a korisnik sada može uraditi bilo šta.

Da vidimo da li postoji i druga opcija koju imamo. Postoji NOEXEC oznaka koju možete koristiti za unos sudoera:

% newsudo ALL = NOEXEC: vim / putanje / do / datoteka

NOEXEC vam u osnovi omogućava da sprečite program koji sudo sprovodi od izvršavanja drugih programa. Dakle, da li je ovo krajnje rešenje? Nažalost ne. Što se tiče razloga, evo kako sudoers priručnik objašnjava ovu oznaku:

noexec
Mnogi sistemi koji podržavaju deljene biblioteke imaju mogućnost da prevaziđu defaultne funkcije biblioteke tako što pokazuju varijablu okoline (obično LD_PRELOAD) u alternativnu dijeljenu biblioteku. Na takvim sistemima, sudo-ova funkcionalnost noexec-a može se koristiti za sprječavanje programa koji sudo izvršava od izvršavanja bilo kojih drugih programa. Međutim, obratite pažnju na to da se ovo odnosi samo na izvorne dinamički povezane izvršne datoteke. Na statički vezane izvršne i strane izvršne programe koji se pokreću pod binarnom emulacijom ne utiču.
Značajka noexec je poznata po tome što radi na SunOS, Solaris, * BSD, Linux, IRIX, Tru64 UNIX, MacOS X, HP-UX 11.x i AIX 5.3 i više. ... ... ... Da biste omogućili noexec za naredbu, koristite NOEXEC oznaku kao što je dokumentirano u odjeljku Korisničke specifikacije iznad. Evo opet tog primjera: aaron shanty = NOEXEC: / usr / bin / more, / usr / bin / vi To omogućuje korisniku aaron da pokrene / usr / bin / more i / usr / bin / vi sa omogućenim noexec-om. To će spriječiti da te dvije naredbe izvršavaju druge naredbe (kao što je ljuska). Ako niste sigurni da li je vaš sistem sposoban da podrži noexec, uvijek ga možete isprobati i provjeriti da li je shell izbjegao rad kada je Noexec omogućen.
Imajte na umu da ograničavanje bekstva granata nije panaceja. Programi koji se pokreću kao root i dalje su sposobni za mnoge potencijalno opasne operacije (kao što su mijenjanje ili prepisivanje datoteka) koje mogu dovesti do neželjene eskalacije privilegija. ... ... ...

Ako pažljivo pročitate tekst označen podebljanim, znate da NOEXEC ima svoj skup ograničenja.

Dakle, koje je onda najpouzdanije rešenje? Pa, to je sudoedit. Čak i sudoers priručnik takođe preporučuje ovaj alat:

U konkretnom slučaju urednika, sigurniji pristup je dati korisniku dozvolu za pokretanje sudoedita.

Sudoedit

Sudoedit je ugrađena komanda koja omogućava korisnicima da bezbedno uređuju datoteke. Prema sudo man stranici, 'sudoedit' je ekvivalentan izvršenju 'sudo' sa opcijom '-e' komandne linije.

Zašto je bolje

Sa sudoedit-om, korisnici imaju izbor da koriste svoj omiljeni editor - što je za razliku od rješenja koje smo razmatrali na početku ovog tutoriala gdje su korisnici primorani da koriste Vim editor - omogućavajući im da uživaju u vlastitim prilagođavanjima. A najveći razlog za sve, s 'sudoedit', korisnik će uređivati ​​datoteku kao sebe, a ne 'root'.

Kako Sudoedit radi

Da biste koristili sudoedit, unos u sudoersima bi trebao biti, na primer, nešto ovako:

% newsudo SVE = sudoedit / putanje / do / datoteke

I korisnici koji su deo grupe 'newsudo' će moći da urede datoteku tako što će pokrenuti sljedeću naredbu:

sudoedit / put / do / datoteka

Dakle, šta će ova naredba učiniti, prvo će stvoriti privremenu kopiju datoteke koju želite urediti. Zatim, naredba će pretraživati ​​varijable okruženja SUDO_EDITOR, VISUAL i EDITOR (u tom redosledu) kako bi utvrdili koji uredjaj bi trebalo pozvati da otvore privremenu kopiju koja je upravo kreirana. Kada se korisnik obavi radom izmene, promjene se kopiraju nazad u prvobitnu datoteku.

Evo detaljnog objašnjenja sa stranice 'sudo' komande:

-e, --edit 
Uredite jedan ili više datoteka umjesto pokretanja naredbe. Umesto imena staze, string "sudoedit" se koristi kada se konsultuje bezbednosna politika. Ako je korisnik ovlašten od strane politike, poduzimaju se sljedeći koraci: 1. Privremene kopije su napravljene od datoteka koje treba urediti s postavljenim vlasnikom na pozivanje korisnika. 2. Uređivač naveden u politici se pokreće za uređivanje privremenih datoteka. Sudoers politika koristi SUDO_EDITOR, VISUAL i EDITOR varijable okoline (u tom redoslijedu). Ako nijedno od SUDO_EDITOR, VISUAL ili EDITOR nije postavljeno, koristi se prvi program naveden u opciji editor sudoers (5). 3. Ako su izmijenjene, privremene datoteke se kopiraju natrag na njihovu izvornu lokaciju i privremene verzije se uklanjaju. Ako navedena datoteka ne postoji, ona će biti kreirana. Imajte na umu da za razliku od većine komandi koje upravlja sudo, urednik se pokreće bez promjene modula za pozivanje korisnika. Ako iz nekog razloga sudo ne može da ažurira datoteku sa svojom verzijom, korisnik će dobiti upozorenje, a izmijenjena kopija će ostati u privremenom fajlu.

zaključak

Do sada biste trebali imati osnovnu ideju o 'sudoeditu', uključujući i kada ga koristiti, i zašto je bolje od korištenja 'sudo' kada sve želite želite urediti datoteku ili nekoliko datoteka. Naravno, kao i svaka druga alatka vezana za sigurnost, 'sudoedit' je imao svoj dio eksploatacije, ali je i dalje preporučljivo rješenje u mnogim slučajevima korištenja.

izvor

Ostavite odgovor

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.