setuid și setgid

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În Unix si Unix- ului de operare sisteme , setuid (abreviere set id u ser, Asignează identificator de utilizator) și setgid (abreviere de set id g rupul, Asignează identificator de grup) sunt speciale permisiunile care pot fi atribuite fișierele și directoarele care modifică comportamentul a sistemului spre ei. Acestea pot fi setate sau eliminate prin comanda chmod .

Comportamentul asupra fișierelor

Fișiere executabile

Atunci când este aplicată fișierelor executabile , permisiunea setuid permite unui utilizator care are deja permisiunile de executare corespunzătoare asupra fișierului să îl execute cu privilegiile utilizatorului care deține fișierul, precum și pe ale sale.

Din punct de vedere tehnic, acest lucru este gestionat de kernel , care în cazul în care un nou program trebuie încărcat în memorie printr-unul din apelurile de sistem ale familiei exec se ocupă de setarea ID-ului de utilizator efectiv în blocul de control al procesului din noul proces cu identificatorul de utilizator al proprietarului fișierului.

Permisiunea setuid este utilizat în mod obișnuit pentru a permite utilizatorilor non-privilegiate pentru a rula programe speciale cu administrator ( rădăcină ) privilegii: un exemplu tipic este atribuirea de această permisiune pentru a monta comanda pentru a permite utilizatorilor normali pentru a monta sisteme de fișiere, de asemenea. Rezident pe detașabile memorii de masă , cum ar fi tastele USB sau CD-ROM-urile . Pe de altă parte, gestionarea securității în acest caz este de fapt delegată programului însuși și, în cazul unei erori , ar putea fi încălcată (de exemplu, utilizatorul ar putea rula programe arbitrare cu privilegii ridicate, cum ar fi permiteți-i să încalce sistemul sau privilegiile obținute pot fi suficiente pentru ca troienii sau alte amenințări să se infiltreze în sistem).

Permisiunea setgid pentru fișierele executabile se comportă similar cu setuid , cu diferența că nucleul conferă noului proces un ID de grup efectiv egal cu cel al grupului atribuit fișierului, deci procesul are și privilegiile acelui grup.

Din motive de securitate, comportamentul implicit al unor shell-uri de text , cum ar fi Bash [1] , este de a anula efectul acestor permisiuni atunci când sunt aplicate scripturilor : atunci când sunt pornite ca interpreți, resetează automat valoarea efectivă a ID- ului utilizatorului la valoarea ID-ul utilizatorului real și cel al ID-ului efectiv al grupului la valoarea ID-ului grupului real . În caz de nevoie, este posibil să se utilizeze programe externe, cum ar fi sudo , care, atunci când sunt configurate corespunzător, permit totuși să obțină efectul dorit.

Fișiere neexecutabile

Permisiunea setgid setată la fișiere neexecutabile permite proceselor să folosească blocarea obligatorie pe ele, care este o blocare a mecanismului care nu ocolește procesele oferite în mod obișnuit de sistemele de operare derivate din UNIX System V , precum și din Linux . [2]

Comportamentul în directoare

Permisiunea setuid nu are niciun efect asupra directoarelor și este efectiv ignorată.

Permisiunea setgid aplicată unui director face ca toate fișierele și subdirectoarele noi create în acesta să aibă grupul directorului care le conține ca grup în loc de cel principal al utilizatorului. De asemenea, noile subdirectoare vor avea setate permisiuni setgid , propagându-le în mod eficient în ierarhie. Prin urmare, este convenabil să creați directoare destinate să conțină resurse care să fie partajate între utilizatorii care au diferite grupuri principale, dar care au un grup suplimentar în comun: în acest caz este suficient să creați directorul atribuindu-i grupul comun utilizatorilor și permisiunea setgid , apoi asigurați-vă că permisiunile fișierelor conținute permit accesul la grupul menționat anterior.

Notă

  1. ^ (RO) Fișiere de pornire Bash - Invocate cu uid / gids efective și reale inegale , în Manualul de referință Bash. Adus 16.06.2008 .
  2. ^ (RO) Andy Walker, Blocare obligatorie a fișierelor pentru sistemul de operare Linux (TXT) pe lxr.linux.no. Adus 18/06/2008 .

Elemente conexe