Permise (IT)

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

Permisiunile , în informatică , indică permisiunile pentru diferiți utilizatori de a accesa fișiere și directoare ale sistemului de fișiere ale sistemului într-un sistem de operare multi-utilizator .

Sistemele Unix și Unix-like , fiind printre primele sisteme multi-utilizator, au propriul lor mecanism tradițional de permisiuni stocat în sistemul de fișiere, de obicei atribuit / modificat de un administrator de sistem .

Permisiuni tradiționale Unix

În sistemele Unix și similare Unix există permisiuni sau atribute de bază pentru fișiere și directoare care sunt aplicabile pentru trei clase distincte, numite utilizator (sau proprietar ), grup și altele . Apoi, există alte permisiuni care se aplică global fișierului sau directorului.

Aceste permisiuni sunt asociate cu inodul care reprezintă datele fișierului sau directorului și nu cu numele fișierului, astfel încât două sau mai multe legături dure către același inod vor avea neapărat aceleași permisiuni, chiar dacă sunt plasate în directoare diferite.

Clase

Utilizatorii fiecărui fișier director aparțin a trei clase de utilizatori: sunt numiți proprietar , apartenență la grup și altele. Prin urmare, fiecărui fișier sau folder este posibil să asociați diferitele permisiuni de bază (scriere, citire, executare) pentru fiecare dintre aceste trei clase de utilizatori:

  • proprietar (de obicei, creatorul acestuia): clasa de permisiuni numită utilizator se aplică acestui utilizator ;
  • grup aparținând (de obicei, grupul principal al creatorului său): utilizatorii care nu dețin fișierul, dar care sunt membri ai grupului căruia îi aparține fișierul, aplică clasa de permisiuni numită grup . În acest sens, amintiți-vă că, în timp ce un fișier aparține exact unui grup de utilizatori, un utilizator de sistem poate fi membru al unuia sau mai multor grupuri (dintre care unul se numește principal, în timp ce ceilalți sunt numiți suplimentari );
  • pentru toți ceilalți utilizatori care nu se încadrează în cele două cazuri enumerate mai sus, se aplică clasa de permisiuni numite altele .

Permisiuni suplimentare sunt aplicate indiferent de clasă.

Cu comanda ls -l <cale / nume de fișier> rezumând, de exemplu, se pot obține următoarele informații despre permisiuni:

  • d rwxrwxrwx - Indică faptul că fișierul este un director (tipul de fișier este indicat înainte de clase);
  • - rwx rwxrwx - Atributele evidențiate se referă la utilizatorul care deține fișierul;
  • -rwx rwx rwx - Atributele evidențiate se referă la grupul de care aparține utilizatorul (dacă nu este proprietarul fișierului, dar face parte din grupul de utilizatori atribuit fișierului);
  • -rwxrwx rwx - Atributele evidențiate se referă la toți ceilalți utilizatori sau grupuri care nu sunt cei atribuiți fișierului.

Permisiuni de bază

Permisiunile de bază, care se aplică fișierelor și folderelor din cadrul celor trei clase de utilizatori enumerate mai sus, sunt:

  • reading ( r ) - aplicat fișierelor vă permite să citiți conținutul acestora; aplicat directoarelor vă permite să listați numele fișierelor și subdirectoarelor pe care le conțin;
  • write ( w ) - aplicat fișierelor vă permite să modificați conținutul acestora; aplicat directoarelor vă permite să adăugați sau să eliminați fișiere și alte subdirectoare din ele; prin urmare, trebuie remarcat faptul că nu permisiunile unui fișier determină dacă acesta poate fi șters, ci permisiunile din directorul care îl conține;
  • executare ( x ) - aplicată fișierelor vă permite să le executați ; aplicat directoarelor, vă permite să le traversați pentru a accesa fișierele și subdirectoarele pe care le conțin (dar nu pentru a le conține conținutul, pentru care aveți nevoie și de permisiunea de citire ).

Alte permisiuni

În plus față de permisiunile de bază, sistemele Unix au alte trei permisiuni care se aplică global fișierului sau directorului, independent de clasă:

  • set user ID , numit și setuid sau suid : atunci când este aplicat unui fișier care are permisiunea de execuție (un fișier executabil ), indică faptul că acesta trebuie rulat cu privilegiile utilizatorului care deține fișierul mai degrabă decât cu cele ale utilizatorul care începe ; este utilizat în mod obișnuit pentru a permite utilizatorilor obișnuiți să ruleze programe care necesită privilegii speciale de sistem pe care, de obicei, le are doar administratorul. Este reprezentat cu s sau S , a se vedea reprezentarea simbolică pentru mai multe informații;
  • set ID grup , numit și setgid : atunci când este aplicat unui fișier care are permisiunea de execuție (un fișier executabil ), acesta indică faptul că acesta trebuie rulat cu permisiunile grupului atribuit fișierului mai degrabă decât cu cele ale grupului principal al utilizatorului cine o începe . Aplicat directoarelor înseamnă că fișierele și subdirectoarele noi create în interiorul lor vor avea grupul directorului care conține ca grup atribuit, mai degrabă decât rădăcina utilizatorului care creează fișierul sau directorul. Este reprezentat cu s sau S , a se vedea reprezentarea simbolică pentru mai multe informații;
  • lipicios : o dată, când a fost aplicat fișierelor executabile , a sugerat nucleului să păstreze o copie a fișierului executabil în fișierul swap chiar și după ce a fost terminat, pentru a accelera pornirile ulterioare. Astăzi această sugestie este în general ignorată. Când este aplicat unui director, indică faptul că fișierele conținute în acesta pot fi șterse și mutate numai de către utilizatorii care le dețin sau de către utilizatorul care deține directorul care le conține sau de către superutilizator ( rădăcină ); acesta este cazul, de exemplu, al directorilor / tmp și / var / tmp , unde toți utilizatorii trebuie să poată crea și modifica fișiere, dar nimeni, cu excepția superutilizatorului, nu trebuie să poată elimina sau muta fișierele temporare ale altor utilizatori. Este reprezentat cu t sau T , a se vedea reprezentarea simbolică pentru mai multe informații;

Permisiuni pentru linkuri simbolice

Legăturile simbolice nu au niciodată permisiuni proprii, fiind doar referințe pe nume la un alt fișier și, din toate punctele de vedere, se poate considera că au permisiunile fișierului sau directorului la care se referă.

Este posibil, în unele sisteme, să oferiți opțiuni pentru schimbarea recursivă a permisiunilor, de asemenea, urmând legături simbolice.

Reprezentarea permisiunilor

Există două reprezentări ale permisiunilor descrise mai sus: una simbolică și una octală .

Reprezentare simbolică

Aceasta este reprezentarea utilizată de comanda ls -l și constă dintr-o serie de 10 caractere.

Primul caracter indică tipul de fișier sau director listat și nu reprezintă într-adevăr o permisiune:

Este urmat de trei serii de câte trei personaje fiecare. Fiecare serie reprezintă o clasă de permisiuni, respectiv pentru proprietar, pentru grup și pentru celelalte:

  • r - citire
  • w - scris
  • x - executare (sau traversabilitate pentru directoare)
  • - - indică absența permisului corespunzător

Celelalte permisiuni sunt reprezentate cu variante în cadrul celor trei clase, deși nu sunt aplicabile pe clase:

  • în prima clasă (cea care denotă permisiunile pentru proprietar) autorizația de execuție poate fi indicată și ca
    • s (minuscule) atunci când ambele setează ID-ul utilizatorului și permisiunile de executare sunt prezente
      • -rw s ------
    • S (cu majuscule) când este prezentă doar permisiunea setată pentru ID-ul utilizatorului
      • -rw S ------
  • în clasa a doua (cea care denotă permisiunile pentru grup) permisiunea de execuție poate fi indicată și ca
    • s (minuscule) atunci când ambele setează ID-ul grupului și permisiunile de executare sunt prezente
      • ---- rw s ---
    • S (cu majuscule) când este prezentă doar permisiunea setată pentru ID-ul grupului
      • ---- rw S ---
  • în a treia clasă (cea care denotă permisiunile pentru alții), permisiunea de execuție poate fi denumită și
    • t (minuscule) atunci când sunt prezente atât permisiunile lipicioase, cât și cele de executare
      • -------- t
    • T (majuscule) atunci când este prezentă doar permisiunea lipicioasă
      • -------- T

Exemple

  • drwxr-xr-x indică un director care poate fi citit, scris și parcurs de către proprietar, lizibil și parcurs pentru grup și pentru alții.
  • drwx ------ indică un director care poate fi citit, scris și traversat de proprietar, dar inaccesibil tuturor celorlalți.
  • drwxrwxrwt indică un director care poate fi citit, scris și traversat de toată lumea și cu permisiunea lipicioasă .
  • -rw ------- indică un fișier care poate fi citit și scris de către proprietar
  • -rw-r - r-- indică un fișier citibil de toți, dar care poate fi scris doar de către proprietar
  • ------- r-- indică un fișier care poate fi citit de toată lumea, cu excepția proprietarului și a utilizatorilor care aparțin grupului de utilizatori atribuit fișierului.
  • -r-sr-xr-x înseamnă un fișier executabil citibil și executabil de toată lumea cu, de asemenea, ID-ul utilizatorului set de permisiuni speciale.
  • -r-Sr - r-- indică un fișier care poate fi citit de om cu, de asemenea, ID-ul utilizatorului set de permisiuni speciale, dar fără permisiunea de executare.
  • drwxrws --- indică un director care poate fi citit, înscris și parcurs de către proprietar și grupul de utilizatori atribuit directorului, de asemenea, cu setul de permisiuni speciale ID grup .

Reprezentarea octală

Reprezentarea octală a permisiunilor constă dintr-un număr de patru cifre de bază-opt (0 până la 7). Toate cifrele, cu excepția ultimei, pot fi omise și sunt considerate zero. De exemplu, „ 750 ” este „ 0750 ”, în timp ce „ 5 ” este „ 0005 ”.

Ultima cifră reprezintă clasa de permisiune pentru celelalte, penultima cifră clasa de permisiuni pentru grup, a treia până la ultima cifră reprezintă clasa de permisiune pentru proprietar, iar a patra până la ultima cifră reprezintă celelalte permisiuni. De obicei sunt specificate numere de trei sau patru cifre.

Numerele sunt atribuite permisiunilor de citire, scriere și executare:

  • 4 - citire
  • 2 - scris
  • 1 - executare

iar suma permisiunilor activate denotă cifra care trebuie utilizată pentru clasa particulară de permisiuni (ultima, penultima și a treia până la ultima cifră), adică:

Figura simboluri Permise
0 --- fara permisiune
1 --X execuţie
2 -w- scris
3 -wx scriere și execuție
4 r-- citind
5 rx citirea și execuția
6 rw- citire si scriere
7 rwx citirea, scrierea, executarea

Celelalte permisiuni primesc, de asemenea, un număr:

  • 4 - setați ID-ul utilizatorului
  • 2 - set ID grup
  • 1 - lipicios

și aici și suma permisiunilor activate denotă a patra până la ultima cifră.

Figura Reprezentare simbolică Permise
0 fără alte permisiuni
1 -------- t lipicios
2 ----- s --- setați ID-ul grupului
3 ----- s - t lipicios și set ID-ul grupului
4 --s ------ setați ID-ul utilizatorului
5 --s ----- t setați ID-ul de utilizator și lipicios
6 --s - s --- setați ID-ul utilizatorului și setați ID-ul grupului
7 --s - s - t setați ID-ul utilizatorului , setați ID-ul grupului și lipicios

Rețineți că numerele derivă din notația binară, în care fiecare permisiune corespunde unui singur bit (pentru un total de 12 biți), care este setat la 1 dacă permisiunea este acordată sau la 0 dacă este refuzată.

Alte permisiuni Permise
proprietar grup alții
setați ID-ul utilizatorului setați ID-ul grupului lipicios citind scris execuţie citind scris execuţie citind scris execuţie
Pic 12 11 10 9 8 7 6 5 4 3 2 1
Cifre octale Nu. Permise Nu. Permise Nu. Permise Nu. Permise
0 fara permisiune 0 fara permisiune 0 fara permisiune 0 fara permisiune
1 lipicios 1 execuţie 1 execuţie 1 execuţie
2 setați ID-ul grupului 2 scris 2 scris 2 scris
3 setați ID-ul grupului și lipicios 3 scriere și execuție 3 scriere și execuție 3 scriere și execuție
4 setați ID-ul utilizatorului 4 citind 4 citind 4 citind
5 setați ID-ul de utilizator și lipicios 5 citirea și execuția 5 citirea și execuția 5 citirea și execuția
6 setați ID-ul utilizatorului și setați ID-ul grupului 6 citire si scriere 6 citire si scriere 6 citire si scriere
7 setați ID-ul utilizatorului , setați ID-ul grupului și lipicios 7 citirea, scrierea, executarea 7 citirea, scrierea, executarea 7 citirea, scrierea, executarea

De exemplu, un permis 755 (în binar 000111101101 ) setează citirea, scrierea și executarea (7) pentru proprietar (prima cifră) și citirea și executarea (cele două 5s ) per grup (a doua cifră) și altele (a treia cifră).

În unele documentații [1] este posibilă specificarea a cinci cifre, dintre care prima este totuși întotdeauna zero, conform convenției limbajului C pentru care trebuie indicat un număr octal precedându-l cu un zero.

Exemple

  • 750 (echivalent cu 0750 ) - Indică citirea, scrierea și executarea pentru proprietar ( 4 + 2 + 1 = 7 ), citirea și executarea pentru grup ( 4 + 1 = 5 ), fără permisiuni pentru alții, fără alte permisiuni.
  • 50 (echivalent cu 0050 ) - Indică lipsa permisiunii proprietarului, citirea și executarea grupului ( 4 + 1 = 5 ), permisiunea altor persoane, permisiunile ulterioare.
  • 5750 - Indică permisiunea setată pentru ID-ul utilizatorului și permisiunea lipicioasă ( 4 + 1 = 5 ), citește, scrie și execută pentru proprietar, citește și execută pentru grup, fără permisiuni pentru ceilalți.

Permisiuni pentru sisteme de fișiere non-Unix

De-a lungul timpului, diferitele sisteme Unix și Unix au dobândit treptat capacitatea de a accesa sisteme de fișiere care nu au suport nativ pentru schema de permisiuni descrisă mai sus.

În unele cazuri, a fost posibil să se proiecteze extensii pentru sistemul de fișiere, astfel încât acest tip de suport să poată fi oferit și în mod transparent, cum ar fi în cazul extensiilor Rock Ridge pentru sistemul de fișiere ISO 9660 .

În multe alte cazuri, cum ar fi pentru FAT și NTFS sisteme de fișiere, o cesiune de permisiuni, proprietar și de grup a fost utilizat în conformitate cu normele generalizate care se aplică tuturor fișierelor și directoarelor conținute, și care nu sunt stocate în sistemul de fișiere în sine. În astfel de cazuri, de obicei nu este posibil să modificați individual permisiunile fișierelor și directoarelor individuale.

Notă

  1. ^ ( RO ) Pagina manuală Solaris 10 chmod (2) [ link rupt ]

Bibliografie

  • W. Richard Stevens, Advanced Programming in the UNIX Environment , Addison Wesley, 1992, pp. 78-81, ISBN 0-201-56317-7 .

Elemente conexe

Securitate IT Portal de securitate cibernetică : Accesați intrările Wikipedia care se ocupă de securitatea cibernetică