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


Linux sustav mnogo je sigurniji od bilo kojeg drugog sustava. Jedan od načina implementacije sigurnosti u Linuxu je politika upravljanja korisnicima i korisnička dopuštenja, a normalni korisnici nisu ovlašteni za izvođenje bilo kakvih sistemskih operacija.

Ako običan korisnik treba izvršiti bilo kakve promjene na razini cijelog sustava, treba upotrijebiti naredbu ‘su’ ili ‘sudo’.

NAPOMENA – Ovaj je članak više primjenjiv na distribucije temeljene na Ubuntu, ali također i na većinu popularnih Linux distribucije.

'su' u odnosu na 'sudo'

'su' vas prisiljava da podijelite svoju root lozinku s drugim korisnicima, dok 'sudo' omogućuje izvršavanje sistemske naredbe bez root lozinke. ‘sudo’ vam omogućuje korištenje vlastite lozinke za izvršavanje sistemskih naredbi, tj. delegira sistemsku odgovornost bez root lozinke.

Što je "sudo"?

'sudo' je root binarni setuid, koji izvršava root naredbe u ime ovlaštenih korisnika, a korisnici moraju unijeti vlastitu lozinku za izvršenje sistemsku naredbu nakon koje slijedi 'sudo'.

Tko može izvršiti 'sudo'?

Možemo pokrenuti ‘/usr/sbin/visudo’ da dodamo/uklonimo popis korisnika koji mogu izvršiti ‘sudo’.

sudo /usr/sbin/visudo

Snimak zaslona datoteke '/usr/sbin/visudo' izgleda otprilike ovako:

Popis sudo prema zadanim postavkama izgleda kao donji niz:

root ALL=(ALL) ALL

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

Odobravanje sudo pristupa

U mnogim situacijama, Administrator sustava, posebno nov u polju, pronalazi niz “root ALL=(ALL) ALL” kao predložak i odobrava neograničeni pristup drugima koji mogu biti potencijalno vrlo štetno.

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

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

Parametri sudo

Pravilno konfiguriran ‘sudo’ vrlo je fleksibilan i broj naredbi koje je potrebno pokrenuti može se precizno konfigurirati.

Sintaksa konfiguriranog retka ‘sudo’ je:

User_name Machine_name=(Effective_user) command

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

  1. Korisničko_ime: Ovo je ime korisnika 'sudo'.
  2. Naziv_stroja: Ovo je naziv glavnog računala u kojem je naredba 'sudo' važeća. Korisno kada imate puno host strojeva.
  3. (Effective_user): 'Efektivni korisnik' kojem je dopušteno izvršavanje naredbi. Ovaj stupac vam omogućuje da korisnicima omogućite izvršavanje naredbi sustava.
  4. Naredba: naredba ili skup naredbi koje korisnik može pokrenuti.

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

Neke od situacija i njihov odgovarajući 'sudo' redak:

P1. Imate korisničku oznaku koja je administrator baze podataka. Trebate mu omogućiti sav pristup samo na poslužitelju baze podataka (beta.database_server.com), a ne na bilo kojem hostu.

Za gornju situaciju redak ‘sudo’ može se napisati kao:

mark beta.database_server.com=(ALL) ALL

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

Za gornju situaciju redak ‘sudo’ može se napisati kao:

mark beta.database_server.com=(tom) ALL

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

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 naredbi koje bi korisnik trebao pokrenuti manji od 10, možemo staviti sve naredbe pored, s razmakom između njih, kao što je prikazano u nastavku:

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

Ako ovaj popis naredbi varira do raspona, gdje doslovno nije moguće ručno upisati svaku naredbu, moramo koristiti pseudonime. Aliasi! Da, uslužni program za Linux gdje se dugačka naredba ili popis naredbi može navesti kao mala i jednostavna ključna riječ.

Nekoliko primjera aliasa koji se mogu koristiti umjesto unosa u 'sudo' konfiguracijskoj datoteci.

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, koji pripadaju toj grupi samo dodavanjem sufiksa '%' kao u nastavku:

%apacheadmin WEBSERVERS=(www) APACHE

P5. Što kažete na izvršavanje naredbe ‘sudo’ bez unosa zaporke?

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 aliasom pod “PROCS”, bez unosa lozinke.

Predloženo za čitanje: Neka vas Sudo vrijeđa kada unesete netočnu lozinku

sudo” vam pruža robusnu i sigurnu okolinu s mnogo fleksibilnosti u usporedbi s ‘su’. Štoviše, “sudo” konfiguracija je jednostavna. Neke distribucije Linuxa imaju “sudo” omogućen prema zadanim postavkama, dok većina današnjih distribucija zahtijeva da to omogućite kao sigurnosnu mjeru.

Za dodavanje korisnika (bob) u sudo samo pokrenite donju naredbu kao root.

adduser bob sudo

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