Atšķirība starp su un sudo un kā konfigurēt sudo Linux


Linux sistēma ir daudz drošāka nekā jebkurš tās kolēģis. Viens no veidiem, kā ieviest drošību Linux, ir lietotāju pārvaldības politika un lietotāju atļauja, un parastajiem lietotājiem nav atļauts veikt nekādas sistēmas darbības.

Ja parastam lietotājam ir jāveic visas sistēmas izmaiņas, viņam jāizmanto komanda “su” vai “sudo”.

PIEZĪME - Šis raksts ir vairāk piemērots Ubuntu balstītiem izplatījumiem, bet arī lielākai daļai populāro Linux izplatījumu.

‘Su’ liek jums koplietot savu root paroli citiem lietotājiem, savukārt ‘sudo’ ļauj izpildīt sistēmas komandas bez root paroles. ‘Sudo’ ļauj izmantot savu paroli, lai izpildītu sistēmas komandas, t.i., deleģē sistēmas atbildību bez root paroles.

‘Sudo’ ir saknes binārs setuid , kas izpilda sakņu komandas pilnvarotu lietotāju vārdā, un lietotājiem ir jāievada sava parole, lai izpildītu sistēmas komandu, kam seko ‘sudo’.

Mēs varam palaist ‘/ usr/sbin/visudo’, lai pievienotu/noņemtu to lietotāju sarakstu, kuri var izpildīt ‘sudo’.

$ sudo /usr/sbin/visudo

Faila “/ usr/sbin/visudo” ekrānuzņēmums izskatās apmēram šādi:

Pēc noklusējuma sudo saraksts izskatās šādi:

root ALL=(ALL) ALL

Piezīme. Lai rediģētu/usr/sbin/visudo failu, jums ir jābūt root .

Daudzās situācijās sistēmas administrators, kas ir īpaši jauns šajā jomā, atrod virkni “root ALL = (ALL) ALL” kā veidni un piešķir citiem neierobežotu piekļuvi, kas var būt ļoti kaitīga.

Faila “/ usr/sbin/visudo” rediģēšana uz kaut ko līdzīgu zemāk redzamajam paraugam var būt ļoti bīstama, ja vien jūs pilnībā neticat visiem uzskaitītajiem lietotājiem.

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

Pareizi konfigurēts ‘sudo’ ir ļoti elastīgs, un var tikt precīzi konfigurēts palaižamo komandu skaits.

Konfigurētās ‘sudo’ rindas sintakse ir:

User_name Machine_name=(Effective_user) command

Iepriekš minēto sintaksi var sadalīt četrās daļās:

  1. Lietotāja_nosaukums: Šis ir vārds “sudo” lietotājam.
  2. Mašīnas_nosaukums: tas ir resursdatora nosaukums, kurā ir derīga komanda ‘sudo’. Noderīgi, ja jums ir daudz resursdatoru.
  3. (Efektīvs_lietotājs): “Efektīvs lietotājs”, kuram atļauts izpildīt komandas. Šī sleja ļauj lietotājiem izpildīt sistēmas komandas.
  4. Komanda: komanda vai komandu kopa, kuru lietotājs var izpildīt.

Dažas no situācijām un tām atbilstošā “sudo” līnija:

Q1. Jums ir lietotāja atzīme, kas ir datu bāzes administrators. Jums vajadzētu nodrošināt viņam visu piekļuvi tikai Database Server (beta.database_server.com), nevis jebkuram resursdatoram.

Iepriekš minētajā situācijā rindu “sudo” var rakstīt šādi:

mark beta.database_server.com=(ALL) ALL

Q2. Jums ir lietotājs “tom”, kuram ir paredzēts izpildīt sistēmas komandu kā citu lietotāju, nevis root tajā pašā datu bāzes serverī, iepriekš paskaidrots.

Iepriekš minētajā situācijā rindu “sudo” var rakstīt šādi:

mark beta.database_server.com=(tom) ALL

Q3. Jums ir sudo lietotājs “cat”, kuram paredzēts izpildīt tikai komandu “dog”.

Lai īstenotu iepriekš minēto situāciju, mēs varam rakstīt “sudo” šādi:

mark beta.database_server.com=(cat) dog

Q4. Ko darīt, ja lietotājam jāpiešķir vairākas komandas?

Ja komandām, kuras lietotājam ir paredzēts izpildīt, ir mazāks par 10, mēs varam izvietot visas komandas blakus, starp tām atstājot atstarpi, kā parādīts zemāk:

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

Ja šis komandu saraksts mainās atkarībā no diapazona, kur burtiski nav iespējams katru komandu ierakstīt manuāli, mums jāizmanto aizstājvārdi . Aliases! Jā, Linux lietderība, kurā garu komandu vai komandu sarakstu var saukt par mazu un ērtu atslēgvārdu.

Daži pseidonīmi piemēri, kurus var izmantot ieraksta vietā ‘sudo’ konfigurācijas failā.

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

Lietotāju vietā ir iespējams norādīt sistēmas grupas, kas pieder šai grupai, tikai pievienojot “%”, kā norādīts zemāk:

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Kā būtu izpildīt komandu ‘sudo’, neievadot paroli?

Izmantojot “NOPASSWD” karogu, mēs varam izpildīt komandu “sudo”, neievadot paroli.

adam ALL=(ALL) NOPASSWD: PROCS

Šeit lietotājs ‘adam’ var izpildīt visas komandas, kas tiek aizstātas ar nosaukumu „PROCS”, neievadot paroli.

“Sudo” nodrošina izturīgu un drošu vidi ar lielu elastību, salīdzinot ar “su”. Turklāt “sudo” konfigurēšana ir vienkārša. Dažos Linux izplatījumos pēc noklusējuma ir iespējots “sudo”, savukārt lielākajai daļai mūsdienu distros jums tas ir jāiespējo kā drošības līdzeklis.

Lai pievienotu lietotāju (bob) sudo, vienkārši palaidiet zemāk esošo komandu kā root.

adduser bob sudo

Tas pagaidām ir viss. Es atkal būšu šeit ar vēl vienu interesantu rakstu. Līdz tam sekojiet līdzi un sazinieties ar Tecmint. Neaizmirstiet sniegt mums vērtīgas atsauksmes mūsu komentāru sadaļā.