IP: 38.107.191.82

CUPRINS

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 şi 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) execuţie; 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 numefişier

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

cd /calecătre/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 romikele romikele   1448 Jan  2 19:48 pclinuxos/
drwxrwxrwx  3 romikele romikele     72 May  6  2007 Music/
-rw-r--r--  1 romikele romikele 185575 May 27  2007 Screenshot.png
-rw-rw-r--  1 romikele romikele   4879 Jun 20  2007 shrek-text.scm
-rwxrwxrwx  1 romikele romikele  48970 Apr 23  2007 snapshot1.jpg*
-rwxrwxrwx  1 romikele romikele 125602 Apr 23  2007 snapshot2.jpg*
-rwxrwxrwx  1 romikele romikele 144053 May  7  2007 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 proprietarului (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 în care poate fi apelată:

   * Cu litere

Într-un prim mod de utilizare se folosesc următoarele convenţii: u - proprietar , g -grup , o - others, a - toţi(all), - retrage drepturile şi + adaugă drepturile. Dacă pentru fişierul

-rw-r--r-- 1 romikele romikele 185575 May 27 2007 Screenshot.png

vrem să adăugăm drepturi de scriere (w) pentru grup folosim:

chmod g+w Screenshot.png

Rezultatul, dacă dăm:

ls -l

este:

-rw-rw-r-- 1 romikele romikele 185575 May 27 2007 Screenshot.png

Se observă apariţia dreptului de scriere pentru grup. Dacă vrem să dăm permisiuni de scriere şi citire (rw) pentru toţi utilizatorii, putem scrie:

chmod a+rw Screenshot.png

Rezultatul va fi:

-rw-rw-rw- 1 romikele romikele 185575 May 27 2007 Screenshot.png

Dacă vrem să 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 zecimală. Este mai puţin intuitiv dar odată înţeles este destul de uşor de aplicat şi mai flexibil decât modul prezentat anterior.
Pentru fiecare tip de utilizator vom avea o valoare numerică ce va descrie toate cele trei permisiuni (rwx) şi care se obţine astfel:
- Pentru fiecare drept se acordă 1 dacă el este dat şi 0 dacă el este revocat. Va rezulta astfel un număr binar format din trei cifre. Să luăm cazul în care avem 111, adică acordăm toate permisiunile. Îl transformăm apoi în zecimal sub forma:
1*4+1*2+1*1=7 unde 1,2 şi 4 sunt puterile lui 2 (2^0=1, 2^1=2, 2^2=4).
Dacă aveam o serie de drepturi de tipul -wx vom avea 0*4+1*2+1*1=3. Acesta cum spuneam este numai pentru un tip de utilizator.
De exemplu pentru toate cele trei categorii, owner, group şi others , permisiunile rwxrwxrwx s-ar scrie după modelul de mai sus, luate trei câte trei 777.
Atunci comanda ar fi sub forma:

chmod 777 Screenshot.png

care ar avea ca rezultat:

-rwxrwxrwx 1 romikele romikele 185575 May 27 2007 Screenshot.png

Ca o modalitate uşoară de memorare a acestei metode, trebuie să ştiţi să faceţi sume din 1, 2 şi 4, funcţie de drepturile pe care doriţi să le acordaţi.

Modificarea proprietarului

Modificarea proprietarului (owner) se face folosind comanda chown. Dacă, să spunem, fişierul dat în exemplele de mai sus şi care are ownerul romikele din grupul romikele vrem să îl trecem sub proprietatea lui corin din grupul romikele, folosim comanda:

chown corin.romikele Screenshot.png

rezultatul va fi:

-rwxrwxrwx 1 corin romikele 185575 May 27 2007 Screenshot.png

Dacă nu cunoaşteţi grupul userului puteţi să nu îl precizaţi.

Observaţii

Dacă vrem să aplicăm comanda chmod pentru toate fişierele dintr-un director, folosim opţiunea -R recursive. Dacă vrem să dăm drepturi depline tuturor asupra fişierelor din directorul pclinuxos din lista de mai sus putem folosi:

chmod -R a+rwx pclinuxos

sau:

chmod -R 777 pclinuxos

Aveţi şi 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 uşor, chiar cu ajutorul mouseului.

Trebuie să aveţi grijă cui şi ce permisiuni acordaţi utilizatorilor pe un sistem linux, securitatea acestuia depinzând mult de acest aspect.

Utilizatorul root poate acorda/modifica permisiunile tuturor utilizatorilor.

Textul necesită completări cu privire la SUID şi SGID precum şi la bitul Sticky pentru directoare.



chipro mdvro eXTReMe Tracker bluewhite kiwi nimblex