Unelte utilizator

Unelte site


drepturi_de_acces_pe_linux_-_permisiuni

Diferențe

Aceasta arată diferențele dintre revziile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

drepturi_de_acces_pe_linux_-_permisiuni [2008/05/31 20:10] (curent)
Linia 1: Linia 1:
 +--- //[[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
 +<​code>​ls -l</​code>​
 +Să vedem ce informaţii oferă outputul acestei comenzi şi cum se foloseşte ea. Dacă dorim să vedem permisiunile unui fişier folosim
 +<​code>​ls -l numefisier</​code>​
 +Dacă dorim să listăm toate fişierele şi directoarele din alt director, să spunem ''​test'',​ dăm comandă în directorul respectiv
 +<​code>​cd /​calecatre/​test
 +ls -l</​code>​
 +Să spunem că ceea ce am afişat mai jos este conţinutul directorului ''​test''​ şi să facem o analiză scurtă.
 +<​code>​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*</​code>​
 +
 +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
 +<​code>​-rw-r--r-- 1 adi adi 185575 May 27 2005 Screenshot.png</​code>​
 +vrem sa adaugam drepturi de scriere (''​w''​) pentru grup folosim
 +<​code>​chmod g+w Screenshot.png</​code>​
 +Rezultatul, daca dăm
 +<​code>​ls -l</​code>​
 +este
 +<​code>​-rw-rw-r-- 1 adi adi 185575 May 27 2005 Screenshot.png</​code>​
 +Se observa aparitia dreptului de scriere pentru grup.
 +Daca vrem sa dam permisiuni scriere citire (''​rw''​) pentru toti utilizatorii putem scrie
 +<​code>​chmod a+rw Screenshot.png</​code>​
 +Rezultatul va fi
 +<​code>​-rw-rw-rw- 1 adi adi 185575 May 27 2005 Screenshot.png</​code>​
 +Daca vrem sa retragem dreptul de scriere (''​w''​) putem scrie
 +<​code>​chmod a-rw Screenshot.png</​code>​
 +
 +==== 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
 +<​code>​chmod 777 Screenshot.png</​code>​
 +care ar avea ca rezultat
 +<​code>​-rwxrwxrwx 1 adi adi 185575 May 27 2005 Screenshot.png</​code>​
 +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
 +<​code>​chown lucian.adi Screenshot.png</​code>​
 +rezultatul va fi
 +<​code>​-rwxrwxrwx 1 lucian adi 185575 May 27 2005 Screenshot.png</​code>​
 +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
 +<​code>​chmod -R a+rwx mandrivalinux</​code>​
 +sau
 +<​code>​chmod -R 777 mandrivalinux</​code>​
 +
 +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ă)