Skirtumas tarp su ir sudo ir kaip sukonfigūruoti sudo Linux


Linux sistema yra labiau apsaugota nei bet kuri kita jos analoga. Vienas iš būdų užtikrinti saugumą Linux sistemoje yra vartotojų valdymo politika ir vartotojo leidimai, o įprasti vartotojai neturi teisės atlikti jokių sistemos operacijų.

Jei įprastam vartotojui reikia atlikti bet kokius visos sistemos pakeitimus, jis turi naudoti komandą „su“ arba „sudo“.

PASTABA – šis straipsnis labiau taikomas Ubuntu pagrįstiems platinimams, bet taip pat taikomas ir daugeliui populiarių Linux paskirstymus.

„su“ prieš „sudo“

su“ verčia jus bendrinti root slaptažodį su kitais naudotojais, o naudojant „sudo“ galima vykdyti sistemos komandos be root slaptažodžio. Sudo leidžia naudoti savo slaptažodį sistemos komandoms vykdyti, t. y. perduoti sistemos atsakomybę be root slaptažodžio.

Kas yra "sudo"?

sudo“ yra šakninis dvejetainis setuid, kuris vykdo root komandas įgaliotų naudotojų vardu, o naudotojai turi įvesti savo slaptažodį, kad galėtų vykdyti sistemos komanda ir „sudo“.

Kas gali vykdyti „sudo“?

Galime paleisti „/usr/sbin/visudo“, kad pridėtume/pašalintume sąrašą vartotojų, kurie gali vykdyti „sudo“.

sudo /usr/sbin/visudo

Failo „/usr/sbin/visudo“ ekrano kopija atrodo maždaug taip:

Pagal numatytuosius nustatymus sudo sąrašas atrodo kaip toliau pateikta eilutė:

root ALL=(ALL) ALL

Pastaba: norėdami redaguoti /usr/sbin/visudo, turite būti root failą.

Sudo prieigos suteikimas

Daugeliu atvejų Sistemos administratorius, ypač naujas šioje srityje, randa eilutę „root ALL=(ALL) ALL“ kaip šabloną ir suteikia neribotą prieigą kitiems, kurie gali būti potencialiai labai žalingas.

Redaguoti failą „/usr/sbin/visudo“ pagal toliau pateiktą šabloną gali būti labai pavojinga, nebent visiškai tikite visais išvardytais naudotojais.

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

Sudo parametrai

Tinkamai sukonfigūruotas „sudo“ yra labai lankstus, todėl komandų, kurias reikia vykdyti, skaičius gali būti tiksliai sukonfigūruotas.

Sukonfigūruotos eilutės „sudo“ sintaksė yra tokia:

User_name Machine_name=(Effective_user) command

Aukščiau pateiktą sintaksę galima suskirstyti į keturias dalis:

  1. Vartotojo_vardas: tai „sudo“ naudotojo vardas.
  2. Machine_name: tai pagrindinio kompiuterio pavadinimas, kuriame galioja komanda „sudo“. Naudinga, kai turite daug pagrindinių kompiuterių.
  3. (Efektyvus_vartotojas): „Efektyvus naudotojas“, kuriam leidžiama vykdyti komandas. Šis stulpelis leidžia vartotojams vykdyti sistemos komandas.
  4. Komanda: komanda arba komandų rinkinys, kurį gali vykdyti naudotojas.

Siūlomas skaitymas: 10 naudingų „Sudoers“ konfigūracijų, skirtų „sudo“ nustatymui sistemoje „Linux“

Kai kurios situacijos ir jas atitinkanti eilutė „sudo“:

1 Q. Turite naudotojo ženklą, kuris yra duomenų bazės administratorius. Turite suteikti jam visą prieigą tik prie duomenų bazės serverio (beta.database_server.com), o ne jokiame pagrindiniame kompiuteryje.

Aukščiau pateiktoje situacijoje eilutė „sudo“ gali būti parašyta taip:

mark beta.database_server.com=(ALL) ALL

2 klausimas. Turite naudotoją tom, kuris turėtų vykdyti sistemos komandą kaip kitas vartotojas, o ne root tame pačiame duomenų bazės serveryje, aukščiau paaiškinta.

Aukščiau pateiktoje situacijoje eilutė „sudo“ gali būti parašyta taip:

mark beta.database_server.com=(tom) ALL

3 Q. Turite sudo naudotoją cat, kuris turėtų paleisti komandą tik šuos.

Norėdami įgyvendinti aukščiau pateiktą situaciją, galime parašyti „sudo“ kaip:

mark beta.database_server.com=(cat) dog

4 klausimas. Ką daryti, jei vartotojui reikia suteikti kelias komandas?

Jei komandų, kurias turi paleisti naudotojas, skaičius yra mažesnis nei 10, visas komandas galime sudėti greta, tarp jų palikdami tarpą, kaip parodyta toliau:

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

Jei šis komandų sąrašas skiriasi priklausomai nuo diapazono, kuriame tiesiogine prasme neįmanoma įvesti kiekvienos komandos rankiniu būdu, turime naudoti slapyvardžius. Pseudonimai! Taip, „Linux“ programa, kurioje ilgai trunkanti komanda arba komandų sąrašas gali būti vadinamas mažu ir paprastu raktiniu žodžiu.

Keli alias pavyzdžiai, kuriuos galima naudoti vietoj įrašo „sudo“ konfigūracijos faile.

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

Galima nurodyti Sistemos grupes vietoj naudotojų, priklausančių tai grupei, tik su galūne „%“, kaip nurodyta toliau:

%apacheadmin WEBSERVERS=(www) APACHE

5 klausimas. O kaip vykdyti komandą „sudo“ neįvedant slaptažodžio?

Galime vykdyti komandą „sudo“ neįvesdami slaptažodžio naudodami žymą „NOPASSWD“.

adam ALL=(ALL) NOPASSWD: PROCS

Čia vartotojas „adam“ gali vykdyti visas komandas slapyvardis, esančias „PROCS“, neįvesdamas slaptažodžio.

Siūlomas skaitymas: leiskite „Sudo“ jus įžeisti, kai įvesite neteisingą slaptažodį

sudo“ suteikia jums tvirtą ir saugią aplinką su daug lankstumo, palyginti su „su“. Be to, „sudo“ konfigūracija yra paprasta. Kai kuriuose „Linux“ platinimuose pagal numatytuosius nustatymus įjungta „sudo“, o daugelyje šiuolaikinių platinimų reikia įjungti jį kaip saugos priemonę.

Norėdami pridėti vartotoją (bob) prie sudo, tiesiog paleiskite toliau pateiktą komandą kaip root.

adduser bob sudo

Tai kol kas viskas. Aš vėl būsiu čia su kitu įdomiu straipsniu. Iki tol sekite naujienas ir prisijunkite prie Tecmint. Nepamirškite pateikti mums savo vertingų atsiliepimų mūsų komentarų skiltyje.