Unelte utilizator

Unelte site


drepturi_de_acces_pe_linux_-_permisiuni

adyx 2005/06/23

Consideraţii

În Linux, spre deosebire de alte sisteme de operare, mai ales datorită faptului că este un sistem multiuser, vom întâlni un sistem special de administrare a drepturilor asupra fişierelor şi directoarelor preluat din Unix.

Teoria

Tipuri de utilizatori

Utilizatorii care pot accesa fişierele sau directoarele sunt împărţiţi pe trei categorii

  • owner - proprietarul, cel care a creat fişierul sau directorul
  • group - un membru al grupului din care face parte proprietarul
  • other - oricare alt utilizator, care nici nu deţine fişierul/directorul nici nu face parte din grupul proprietarului

Drepturi de acces pentru fişiere

Sunt împărţite în trei categorii

  • r - (read) citire
  • w - (write) scriere
  • x - (execute) execuţie

Drepturi de acces pentru directoare

Sunt împărţite tot în trei categorii, au aceeaşi simbolizare dar au altă semnificaţie

  • r - (read) citire; semnifică dreptul de a vizualiza (lista) conţinutul directorului (comanda ls)
  • w - (write) scriere; permite adăugarea şi ştergerea de fişiere
  • x - (execute) executie; semnifică dreptul de a intra în director (comanda cd)

Vizualizarea şi interpretarea permisiunilor

Se face cu ajutorul comenzii

ls -l

Să vedem ce informaţii oferă outputul acestei comenzi şi cum se foloseşte ea. Dacă dorim să vedem permisiunile unui fişier folosim

ls -l numefisier

Dacă dorim să listăm toate fişierele şi directoarele din alt director, să spunem test, dăm comandă în directorul respectiv

cd /calecatre/test
ls -l

Să spunem că ceea ce am afişat mai jos este conţinutul directorului test şi să facem o analiză scurtă.

drwxrwxrwx 20 adi adi   1448 Jan  2 09:27 mandrivalinux/
drwxrwxrwx  3 adi adi     72 May  6  2005 Music/
-rw-r--r--  1 adi adi 185575 May 27  2005 Screenshot.png
-rw-rw-r--  1 adi adi   4879 Jun 20  2005 shrek-text.scm
-rwxrwxrwx  1 adi adi  48970 Apr 23  2005 snapshot1.jpg*
-rwxrwxrwx  1 adi adi 125602 Apr 23  2005 snapshot2.jpg*
-rwxrwxrwx  1 adi adi 144053 May  7  2005 snapshot3.jpg*

Primul caracter poate fi - sau d.
- denotă că avem de a face cu un fişier, iar d ne arată că este vorba despre un director. Deci în lista noastră primele două linii aparţin unor directoare iar celelalte cinci aparţin unor fişiere. Mai sunt şi alte caractere pentru alte tipuri de fişiere, cum ar fi: l (legături simbolice), p (pipe), s (socket) etc, dar ele nu fac obiectul acestui tutorial. Cele două nume sunt al propietarului (owner) şi respectiv al grupului. Urmează data ultimei modificări şi apoi numele fişierului sau directorului. Următoarele nouă caractere dau permisiunile de acces. De ce sunt nouă? Foarte simplu. Aşa cum aţi citit mai sus, sunt trei categorii de utilizatori şi trei feluri în care poate fi accesat un fişier, rezultând deci nouă combinaţii posibile. Trei pentru owner, trei pentru group şi ultimele trei pentru others. Acolo unde caracterul care simbolizează un drept este înlocuit cu -, înseamnă că respectiva permisiune nu este acordată. Cele două directoare au permisiuni activate pentru toţi utilizatorii sistemului: rwxrwxrwx. La fel şi ultimele trei fişiere. Asta înseamnă că orice utilizator poate să le modifice sau să le acceseze după bunul plac. Primele două fişiere vedem că au acordate numai anumite drepturi pe care le puteţi identifica cu uşurinţă.

Modificarea permisiunilor

Comanda cu care se face schimbarea permisiunilor este chmod. Aceasta are mai multe moduri in care poate fi apelata.

Cu litere

Intr-un prim mod de utilizare se folosesc urmatoarele conventii: u - propietar , g -grup , o - others, a - toti(all), - retrage drepturile si + adauga drepturile. Daca pentru fisierul

-rw-r--r-- 1 adi adi 185575 May 27 2005 Screenshot.png

vrem sa adaugam drepturi de scriere (w) pentru grup folosim

chmod g+w Screenshot.png

Rezultatul, daca dăm

ls -l

este

-rw-rw-r-- 1 adi adi 185575 May 27 2005 Screenshot.png

Se observa aparitia dreptului de scriere pentru grup. Daca vrem sa dam permisiuni scriere citire (rw) pentru toti utilizatorii putem scrie

chmod a+rw Screenshot.png

Rezultatul va fi

-rw-rw-rw- 1 adi adi 185575 May 27 2005 Screenshot.png

Daca vrem sa retragem dreptul de scriere (w) putem scrie

chmod a-rw Screenshot.png

Cu cifre

Un alt mod de utilizare este folosirea scrierii permisiunilor sub forma zecimala. Este mai putin intuitiv dar odata inteles este destul de usor de aplicat si mai flexibil decat modul prezentat anterior. Pentru fiecare tip de utilizator vom avea o valoare numerica, care va descrie toate cele trei permisiuni (rwx) si care se obtine astfel. Pentru fiecare drept se acorda 1 daca el este dat si 0 daca el este revocat. Va rezulta astfel un numar binar format din trei cifre. Sa luam cazul in care avem 111, adica acordam toate permisiunile. Il transformam apoi in zecimal sub forma 1*1+1*2+1*4=7 unde 1,2 si 4 sunt puterile lui 2 (2^0=1 , 2^1=2 , 2^2=4). Daca aveam o serie de drepturi de tipul -wx vom avea 0*1+1*2+1*4=6 . Acesta cum spuneam este numai pentru un tip de utilizator. De exemplu pentru toate cele trei categorii , owner, group si others , permisiunile rwxrwxrwx s-ar scrie dupa modelul de mai sus, luate trei cate trei 777. Atunci comanda ar fi sub forma

chmod 777 Screenshot.png

care ar avea ca rezultat

-rwxrwxrwx 1 adi adi 185575 May 27 2005 Screenshot.png

Ca o metoda usora de memorare a acestei metode, trebuie sa stiti ca faceti sume din 1, 2 si 4 functie de drepturile pe care doriti sa le acordati.

Modificarea propietarului

Modificarea propietarului (owner) se face folosind comanda chown. Daca, să spunem, fisierul dat in exemplele de mai sus si care are ownerul adi din grupul adi vrem sa il trecem sub propietatea lui lucian din grupul adi, folosim comanda

chown lucian.adi Screenshot.png

rezultatul va fi

-rwxrwxrwx 1 lucian adi 185575 May 27 2005 Screenshot.png

Daca nu cunoasteti grupul userului puteti sa nu il precizati.

Observaţii

Daca vrem sa aplicam comanda chmod pentru toate fisierele dintr-un director , folosim optiunea -R recursive. Daca vrem sa dam drepturi depline tuturor asupra fisierelor din directorul mandrivalinux din lista de mai sus putem folosi

chmod -R a+rwx mandrivalinux

sau

chmod -R 777 mandrivalinux

Aveti si o serie de alte metode de modificare a permisiunilor din interiorul unor file managere cum ar fi mc unde lucrurile pot fi rezolvate mult mai usor,chiar cu ajutorul mouseului.

Trebuie sa aveti grija cui si ce permisiuni acordati utilizatorilor pe un sistem linux, securitatea acestuia depinzand mult de acest aspect.

Utilizatorul root poate acorda/modifica permisiunile tuturor utilizatorilor.

Textul necesita completari cu privire la SUID si SGID precum si la bitul Sticky pentru directoare.

drepturi_de_acces_pe_linux_-_permisiuni.txt · Ultima modificare: 2008/05/31 20:10 (editare externă)