Razlika između su i sudo i kako konfigurirati sudo u Linuxu


Linux sistem je mnogo zaštićen od bilo kojeg drugog. Jedan od načina za implementaciju sigurnosti u Linuxu je politika upravljanja korisnicima i korisnička dozvola, a normalni korisnici nisu ovlašteni za obavljanje bilo kakvih sistemskih operacija.

Ako običan korisnik treba da izvrši bilo kakve promjene u cijelom sistemu, mora koristiti naredbu „su“ ili „sudo“.

NAPOMENA – Ovaj članak je primjenjiviji na Ubuntu distribucije, ali je također primjenjiv na većinu popularnih Linuxa distribucije.

'su' vs 'sudo'

'su' vas prisiljava da svoju root lozinku podijelite s drugim korisnicima, dok 'sudo' omogućava da se izvrši sistemske komande bez root lozinke. ‘sudo‘ vam omogućava da koristite vlastitu lozinku za izvršavanje sistemskih naredbi, tj. delegira sistemsku odgovornost bez root lozinke.

Šta je 'sudo'?

'sudo' je root binarni setuid, koji izvršava root naredbe u ime ovlaštenih korisnika i korisnici moraju unijeti vlastitu lozinku da bi izvršili sistemska naredba praćena 'sudo'.

Ko može izvršiti 'sudo'?

Možemo pokrenuti ‘/usr/sbin/visudo’ da bismo dodali/uklonili listu korisnika koji mogu izvršiti ‘sudo’.

sudo /usr/sbin/visudo

Snimak ekrana "/usr/sbin/visudo" datoteke izgleda otprilike ovako:

Lista sudo izgleda kao donji niz, prema zadanim postavkama:

root ALL=(ALL) ALL

Napomena: Morate biti root za uređivanje /usr/sbin/visudo fajl.

Omogućavanje sudo pristupa

U mnogim situacijama, Administrator sistema, posebno nov u ovoj oblasti, pronalazi niz “root ALL=(ALL) ALL” kao šablon i daje neograničen pristup drugima koji mogu biti potencijalno veoma štetno.

Uređivanje '/usr/sbin/visudo' datoteke na nešto poput donje obrasca može zaista biti vrlo opasno, osim ako u potpunosti vjerujete svim navedenim korisnicima.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Parametri sudo

Ispravno konfiguriran ‘sudo‘ je vrlo fleksibilan i broj naredbi koje treba pokrenuti može se precizno konfigurirati.

Sintaksa konfigurisanog reda „sudo“ je:

User_name Machine_name=(Effective_user) command

Gornja sintaksa se može podijeliti na četiri dijela:

  1. User_name: Ovo je ime „sudo“ korisnika.
  2. Machine_name: Ovo je ime hosta u kojem je važeća naredba „sudo“. Korisno kada imate mnogo host mašina.
  3. (Effective_user): 'Efektivni korisnik' kojima je dozvoljeno izvršavanje naredbi. Ova kolona omogućava korisnicima da izvršavaju sistemske komande.
  4. Naredba: naredba ili skup naredbi koje korisnik može pokrenuti.

Predloženo čitanje: 10 korisnih Sudoers konfiguracija za postavljanje 'sudo' u Linuxu

Neke od situacija i njihova odgovarajuća „sudo“ linija:

P1. Imate korisničku oznaku koja je administrator baze podataka. Vi biste trebali da mu omogućite sav pristup samo na serveru baze podataka (beta.database_server.com), a ne ni na jednom hostu.

Za gornju situaciju, red „sudo“ se može napisati kao:

mark beta.database_server.com=(ALL) ALL

P2. Imate korisnika 'tom' koji bi trebao izvršiti sistemsku naredbu kao korisnik koji nije root na istom serveru baze podataka, gore objašnjeno.

Za gornju situaciju, red „sudo“ se može napisati kao:

mark beta.database_server.com=(tom) ALL

P3. Imate sudo korisnika 'cat' koji bi trebao pokrenuti naredbu ' samo psa.

Da bismo implementirali gornju situaciju, možemo napisati 'sudo' kao:

mark beta.database_server.com=(cat) dog

P4. Što ako korisniku treba dodijeliti nekoliko naredbi?

Ako je broj komandi koje bi korisnik trebao pokrenuti manji od 10, možemo postaviti sve naredbe uporedo, sa razmakom između njih, kao što je prikazano ispod:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Ako ova lista naredbi varira u rasponu, gdje doslovno nije moguće upisati svaku komandu ručno, moramo koristiti aliases. Aliases! Da, Linux uslužni program gdje se dugačka naredba ili lista komandi može nazvati malom i jednostavnom ključnom riječi.

Nekoliko alias primjera, koji se mogu koristiti umjesto unosa u „sudo“ konfiguracijski fajl.

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

Moguće je navesti Sistemske grupe, umjesto korisnika, koje pripadaju toj grupi samo sufiksom '%' kao u nastavku:

%apacheadmin WEBSERVERS=(www) APACHE

P5. Kako bi bilo da izvršite naredbu „sudo“ bez unosa lozinke?

Možemo izvršiti naredbu „sudo“ bez unosa lozinke pomoću oznake „NOPASSWD“.

adam ALL=(ALL) NOPASSWD: PROCS

Ovdje korisnik ‘adam’ može izvršiti sve naredbes alias pod “PROCS”, bez unošenja lozinke.

Preporučeno čitanje: Neka vas Sudo uvrijedi kada unesete pogrešnu lozinku

sudo” vam pruža robusno i sigurno okruženje s puno fleksibilnosti u poređenju sa 'su’. Štaviše, “sudo” konfiguracija je jednostavna. Neke distribucije Linuxa imaju “sudo” omogućeno prema zadanim postavkama, dok većina današnjih distribucija zahtijeva da ga omogućite kao Sigurnosnu mjeru.

Da dodate korisnika (bob) u sudo samo pokrenite naredbu ispod kao root.

adduser bob sudo

To je sve za sada. Opet ću biti ovdje sa još jednim zanimljivim člankom. Do tada ostanite sa nama i povezani na Tecmint. Ne zaboravite nam dati svoje vrijedne povratne informacije u našem odjeljku za komentare.