Permisele in Linux

Orice este tratat ca un fisier.

Important de retinut: in Linux orice este un fisier. Ne referim la o poza oarecare, sau la unitatea de cd-rom , la hard disk, Linux le trateaza pe toate ca pe un fisier.

In Linux accesul la fisiere sau directoare este restrictionat. Useri nu au acelasi tip de permis cand vor sa stearga , sa execute sau chiar sa citeasca un fisier. Fiecare fisier contine informatie despre cine este propietarul, ce permise are si alta informatie care define ce se poate face cu acel fisier, si de catre cine.

Permisele in sistemele Linux sunt definite pentru useri, grupuri si ceilalti , in exact aceasta ordine. Fiecare user apartine cel putin unui grup.

User: numele userului care detine fisierul. Prin defect userul care creaza fisierul e si propietarul acelui fisier.

Grupul: grupul de useri care detin fisierul. Toti useri apartinand acestui grup au aceleasi permise asupra fisierulul in chestiune.

Ceilalti: in engleza “others”, se refera la restul userilor care nu sunt nici propietarii fisierului si nici nu apartin grupului care detine fisierul. De obicei intlegem prin “ceilalti” restul lumii care au acces la acel sistem Linux.

Avem trei tipuri de permise in Linux: r = read (citi sau deschide), w = write (scrie sau modifica), x = execute ( executa). Fiecare din aceste trei permise sunt definite separat pentru user, grup si ceilalti. In Linux, cand o sa folositi linia de comanda pentru a schimba permise, useri si grupurile sunt reprezentate doar de literele initiale dupa cum urmeaza:

u = user

g = grup

o = other (ceilalti)

a = all ( toti, afecteaza pe toti useri si toate grupurile)

Ca sa verificam permisele la un fisier sau la un director oarecare o facem cu comanda ls -l. Exemplu:

ls -l doc.txt

iar rezultatul:

- rwx r- – r- – adrian proiect 850 Feb 22 20:49 doc.txt

Sa analizam un pic rezulatul comenzi:

In prima coloana avem zece caractere, primul caracter ne indica tipul fisierului, in cazul acesta un fisier obisnuit, reprezentat prin caracterul -. Cand primul caracter este litera d atunci este vorba de un director.

In continuare avem noua caractere care sunt permisele pentru user, grup si ceilalti, impartite in grupuri de cate trei caractere.

Caracterele 2,3,4 , in cazul nostru, rwx, apartin userului, (adrian, in acest caz) care este propietarul fisierului, in ordinea in care apar sunt:

r : read, il poate citi sau deschide

w: write, dreptul de a modifica fisierul

x: execute, dreptul de a executa fisierul, de exemplu in cazul unui program

Urmatoarele trei caractere (5, 6, 7) r- -, apartin grupului (proiect) din care face parte userul adrian :

r: read, orice user apartinad grupului proiect poate citi fisierul

-: nici un permis, nici un user apartinand grupului proiect (in afara de adrian, desigur) nu are dreptul de a modifica fisierul

-: nici un permis, nici un user apartinand grupului proiect (in afara de adrian) nu are dreptul de a executa fisierul

Ultimele trei caractere, r- -, sunt permisele care le au restul userilor, deci cei care nu apartin grupului proiect:

r: read, au dreptul de a citi fisierul

-: nici un permis, restul userilor nu au drept de a modifica fisierul

-: nici un permis, fara drept de a executa fisierul

In a doua coloana avem numele userului care detine fisierul, urmat de numele grupului caruia apartine userul.

Urmeaza mai multa informatie despre fisier, cum ar fi marimea lui, data cand a fost modificat pentru ultima data si, ultima coloana, numele fisierului.

Cum schimbam permisele

chmod este comanda care schimba permisele. Doar root-ul si userul care detine fisierul in cauza pot schimba permisele. chmod are doua moduri: simbolic sau numeric.

1) Modul simbolic

Modul simbolic este cel mai usor de tinut minte. Prima data decide pentru cine o sa schimbi permisele: pentru user (u), pentru grup (g), pentru ceilalti (o) sau pentru toti trei deodata (a). Apoi decide daca adaugi un permis (+), stergi un permis (-) sau stergi toate permisele anterioare si adaugi unul nou (=). Urmatorul lucru ce trebuie decis este tipul de permis care vrei sa-l schimbi, permisul de a citi (r), de a modifica (w) sau de a executa (x). Apoi, pentru a termina, indicam fisierul caruia o sa-i schimbam permisele.

Sa trecem la cateva exemple practice. Avem un fisier obisnuit numit testfile , fisierul are toate permisele, o listare a permiselor cu comanda ls -l testfile ne da ca rezultat: -rwxrwxrwx.

Stergem toate permisele si adaugam permisul de a citi pentru toti:

$ chmod a=r testfile

Dupa aceia permisele arata asa: -r – -r – -r – -

Adaugam permisul de a executa pentru grup:

$ chmod g+x testfile

Acum permisele sunt: -r – -r-xr – -

Adaugam permisul de a modifica si executa pentru userul care detine fisierul. Dupa cum vedeti se pot seta mai multe permisii deodata.

$ chmod u+wx testfile

Permisele arata asa dupa comanda: -rwxr-xr- -

Stergem permixul de executa pentru grup si user.

$ chmod ug-x testfile

Acum permisele sunt: -rw-r- – r- -

2) Modul numeric

Cealalta modalitate de a schimba permisele cu chmod este modul numeric. Pare un pic mai complicat, dupa ce o sa intelegeti mecanismul o sa vedeti ca este simplu si rapid. Dupa cum spuneam permisele sunt reprezentate numeric de un numar format din 3 cifre.

4 = citi (r)

2 = scrie sau modifica (w)

1 = executa (x)

0 = nici un permis (-)

Pentru a obtine permisele puneti numarul de acord cu permisele dorite. De exemplu un permis total rwx in mod numeric este reprezentat de numarul 7, sau 4+2+1=7. Simplu, nu? Un permis de a citi si executa rx in mod numeric este 5, sau 4+1=5, iar un permis de citit si modificat rw este 6, sau 4+2=6.

Un exemplu:

$ chmod 755 testfile

Iar permisele ar arata asa: -rwxr-xr-x, permis total pentru propietarul fisierului (7=4+2+1) si permis de a citi si executa pentru grup si restul (5=4+1).

Inca un exemplu:

$ chmod 640 testfile

Ne lasa ca rezultat permisele: -r-xr – - – - -, permis de a citi si executa pentru propietar (6=4+2), permis pentru a citi pentru grup (4), iar pentru restul nici un permis (0).

Modul numeric nu esta asa de intuitiv ca si cel simbolic, dar este mai rapid si mai eficient.

Lasă un Răspuns