0% au considerat acest document util (0 voturi)
4 vizualizări6 pagini

Permisiunile de Acces Asupra Fi) Ierelor) I Directoarelor: Lucrarea Nr. 5

Documentul prezintă modalitățile de gestionare a permisiunilor de acces asupra fișierelor și directoarelor în sistemul de operare UNIX. Sunt explicate concepte precum proprietarul fișierului, grupurile de utilizatori, permisiunile de citire, scriere și execuție, precum și comenzile pentru modificarea proprietarului, grupului și permisiunilor asupra fișierelor.

Încărcat de

Mihaela
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
4 vizualizări6 pagini

Permisiunile de Acces Asupra Fi) Ierelor) I Directoarelor: Lucrarea Nr. 5

Documentul prezintă modalitățile de gestionare a permisiunilor de acces asupra fișierelor și directoarelor în sistemul de operare UNIX. Sunt explicate concepte precum proprietarul fișierului, grupurile de utilizatori, permisiunile de citire, scriere și execuție, precum și comenzile pentru modificarea proprietarului, grupului și permisiunilor asupra fișierelor.

Încărcat de

Mihaela
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

LUCRAREA NR.

Permisiunile de acces asupra fi]ierelor ]i directoarelor

Sistemul de operare UNIX este un sistem multiuser, iar permisiunile de acces asupra fi]ierelor ]i
directoarelor reprezint[ una dintre facilit[\ile de securitate ale acestui sistem.
#n fapt, este vorba de o modalitate prin care sistemul protejeaz[ fi]ierele ]i directoarele @mpotriva
oric[rui acces neautorizat, inten\ionat sau accidental.
Toate fi]ierele ]i directoarele UNIX au permisiuni de acces ]i proprietari.
La momentul cre[rii unui fi]ier sau director, utilizatorul ce le-a creat devine @n mod automat
proprietarul acestora (owner). Aceasta @nseamn[ c[ el are privilegiul de a schimba permisiunile
(specific[ cine ]i ce permisiuni are) sau poate schimba proprietarul fi]ierului (directorului)1 .
Schimbarea permisiunilor de acces sau a proprietarului are drept scop furnizarea unui acces mai
complet asupra fi]ierelor ]i directoarelor.
Schimbarea proprietarului unui fi]ier sau director se face cu comanda:
chown proprietar_nou nume_fisier
Utilizatorii (dar ]i fi]ierele ]i directoarele) apar\in grupurilor. Grupurile reprezint[ o modalitate
convenabil[ de a furniza autoriz[ri de acces mai multor utilizatori, dar nu oric[rui utilizator din sistem. La
momentul cre[rii unui utilizator, grupul implicit al acestuia este cel ce @i poart[ numele ]i care este creat
odat[ cu utilizatorul.
Comanda prin care se poate schimba grupul c[ruia @i apar\ine un fi]ier (director) este:
chgrp grup_nou nume_fisier
Proprietarul fi]ierului trebuie s[ fie membru al noului grup (grup_nou).

Observa\ie:
Grupul users este cel ce con\ine to\i utilizatorii neprivilegia\i ai sistemului.

Permisiunile de acces asupra fi]ierelor (directoarelor) acceptate de UNIX sunt:


 permisiunea de citire (r) - permite vizualizarea (citirea) con\inutului unui fi]ier. #n cazul
unui director permite afi]area con\inutul acestuia (utiliz`nd, de exemplu, comanda ls).
 permisiunea de scriere (w) - permite modificarea, ]tergerea ]i redenumirea unui fi]ier. #n
cazul unui director existen\a acestei permisuni permite actualizarea, ]tergerea ]i redenumirea
directorului.
 permisiunea de execu\ie (x) - permite executarea fi]ierului prin tastarea numelui acestuia.
Pentru directoare permite accesul (comutarea) @n directorul respectiv, ]i efectuarea de
opera\ii asupra fi]ierelor din cadrul s[u.

Observa\ii:
1. Dac[ un utilizator are permisiunea de scriere asupra unui director ce con \ine fi]iere,
permisiunile asupra fi]ierelor respectiv sunt rescrise de permisiunile pe acel direc tor.
2. Orice utilizator care are permisiunea de a citi un fi]ier poate s[ copieze acel fi]ier. C`nd un
fi]ier este copiat, copia se afl[ @n proprietatea utilizatorului care a efectuat copierea. Acesta poate s[
schimbe proprietarul ]i permisiunile, s[ editeze fi]ierul ].a.m.d.
3. }tegerea permisiunii de scriere asupra unui fi]ier nu permite ca acesta s[ fie ]ters.

Pentru a vizualiza permisiunile existente asupra unui fi]ier (director) se folose]te comanda:
ls –l nume_fisier
De exemplu, se tasteaz[:
ls –l [Link]
Se va afi]a:
-rw-rw-r--1 student student 150 Dec 19 08:08 [Link]
Interpretarea informa\iei afi]ate se face astfel:

1
Utilizatorul root are permisiunea de a citi, scrie, ]i executa orice fi]ier din sistem, indiferent cine este
proprietarul acestora.
1
Primul caracter din ]irul afi]at indic[ tipul fi]ierului. Astfel, dac[ acest caracter este - atunci este
vorba de un fi]ier normal. Dac[ caracterul este d, atunci este vorba de un director, iar dac[ caracterul este
l este vorba de o leg[tur[ simbolic[ c[tre un alt program sau fi]ier din sistem 2 .
Urm[toarele nou[ caractere din ]irul afi]at specific[, @n seturi de c`te trei, permisiunile de acces
pentru urm[toarele trei categorii diferite de entit[\i:
 proprietarul (owner) fi]ierului (directorului);
 grupul (group) (utilizatorii ce apar\in aceluia]i grup ca ]i proprietarul fi]ierului
/directorului)3 ;
 al\ii (others) (utilizatorii ]i grupurile altele dec`t proprietarul ]i cei din grupul c[ruia @i
apar\ine proprietarul).
Dac[ unul din caracterele ce specific[ permisiunile (r, w, x) va ap[rea ca fiind @nlocuit prin
caracterul -, atunci permisiunea respectiv[, pentru entitatea @n cauz[, nu va fi acordat[.
Alte informa\ii afi]ate de c[tre comanda ls –l includ: numele fi]ierului, data ]i timpul cre[rii
sale, m[rimea acestuia.

Schimbarea permisiunilor de acces asupra fi]ierelor


Pentru a schimba permisiunile de acces asupra fi]ierelor se utilizeaz[ comanda:
chmod indicator nume_fisier.
unde indicator se va @nlocui cu identitatea entit[\ii pentru care se face schimbarea de permisiune:
u utilizatorul care este proprietar al fi]ierului (owner)
g grupul c[ruia @i apar\ine utilizatorul
o al\ii (al\ii dec`t utilizatorul ]i grupul acestuia) (others)
a oricine (u, g ]i o) (everyone)
urmat[ de tipul ac\iunii ce se dore]te:
+ adaug[ o permisiune
- elimin[ o permisiune
= marcheaz[ permisiunea ca fiind singura acceptat[
]i litera (literele) aferente permisiunilor (r, w, x).

Observa\ii:
1. #n cadrul sintaxei comenzii chmod, indicator se poate @nlocui ]i cu un num[r format din
trei cifre, a c[rui codificare este explicat[ @n continuare.
2. At`t timp c`t suntem proprietar al unui fi]ier (director), sau suntem conecta\i ca utilizator
privilegiat (root), putem s[ modific[m permisiunile fi]ierului (directorului) @n orice combina\ie pentru
proprietar, grup ]i al\ii.

Exist[ dou[ modalit[\i de modificare a permisiunilor.


O prim[ modalitate este cea @n care se folosesc literele. Pentru a specifica entit[\ile pentru care se
schimb[ permisiunile, se vor tasta literele u, g, o sau a @n sintaxa comenzii chmod. Litera (literele) vor fi
urmate de unul dintre semnele +, -, sau =, pentru a ad[uga, ]terge sau marca permisiunea ca fiind singura
acceptat[ Semnul este urmat de litera permisiunii respective (r, w, x).
Exemple:
Presupunem c[ permisiunile ini\iale ale fi]ierului [Link] sunt:
-rw-rw-r--1 student student 150 Dec 19 08:08 [Link]
Conform permisiunilor afi]ate proprietarul (student) ]i grupul (student) pot citi ]i scrie @n
fi]ier. Oricine alt utilizator ce nu apar\ine grupului student poate numai s[ citeasc[ fi]ierul.
Dac[ tast[m comanda:
chmod o+rw [Link]
numai al\ii (ce nu sunt nici proprietari ]i nici nu apar\in grupului student) vor putea s[ citeasc[ ]i s[
scrie fi]ierul.
Deoarece utilizatorul student este proprietar al acestui fi]ier, el va putea @ntotdeauna s[ schimbe
permisiunile pentru a rec[p[ta accesul @n citire ]i scriere.

2
Sunt posibile ]i alte caractere. Semnifica\ia acestora este explicat[ @n lucrarea nr. 4.
3
Grupul din care face parte proprietarul.
2
Comanda ce se va tasta va fi:
chmod u+rw [Link]
cat [Link]
acesta este un test
S-a verificat ]i permisiunea @n citire cu ajutorul comenzii cat.
Pentru ]tergerea tuturor permisiunilor asupra fi]ierului [Link] pentru oricine, se va tasta
comanda:
chmod a-rw [Link]
S[ vedem dac[ fi]ierul poate fi citit:
cat [Link]
cat: [Link]: Permission denied
Mesajul de eroare returnat de sistem, Permission denied, semnific[ faptul c[ execu\ia
comenzii anterioare (cat), nu este posibil[ datorit[ lipsei permisiunii de citire necesare.
Alte exemple de set[ri ce pot fi folosite @n cadrul comenzii chmod sunt:
g+w adaug[ permisiunea de scriere pentru grup
o-rwx ]terge toate permisiunile pentru al\ii
u+x permite proprietarului fi]ierului s[ execute fi]ierul
a+rw pemite oricui s[ citeasc[ ]i s[ scrie @n fi]ier
ug+r permite proprietarului ]i grupului s[ citeasc[ fi]ierul
g=rx permite grupului numai s[ citeasc[ ]i s[ execute fi]ierul, f[r[ scriere

O a doua metod[ de modificare a permisiunilor asupra fi]ierelor este cea bazat[ pe un sistem de
codificare numeric[. Acesta permite specificarea permisiunilor asupra fi]ierelor sub forma unui num[r
din 3 cifre octale.
Este important de a @n\elege cum lucreaz[ acest sistemul de codificare, deoarece numerele @n
cauz[ sunt folosite, at`t pentru a schimba permisiunile asupra fi]ierelor, c`t ]i de c[tre mesajele de eroare
ce implic[ permisiunile.
#n cadrul unui astfel de num[r prima cifr[ codific[ permisiunile pentru proprietar, a doua pe cele
pentru grup ]i a treia pe cele pentru al\ii.
Conform sistemului de codificare respectiv, seturile de c`te trei permisiuni (rwx) pot fi
interpretate ca un num[r binar pe 3 bi\i. Astfel, o permisiune acordat[ corespunde unei cifre de 1, iar o
permisiune neacordat[ corespunde unei cifre de 0. Prin urmare pentru setul (r–x) combina\ia binar[
corespondent[ va fi 101 care @n zecimal este egal[ cu: 4+0+1=5.
Cifrele individuale sunt codificate prin @nsumarea tuturor permisiunilor, "permise" pentru acel
utilizator particular4 dup[ cum urmeaz[:
Permisiune citire 4
Permisiune scriere 2
Permisiune execu\ie 1
Sunt posibile urm[toarele combina\ii:
0 - nici o permisiune
4 - numai citire
2 - numai scriere
1 - execu\ie
6 - citire ]i scriere
5 - citire ]i execu\ie
3 - scriere ]i execu\ie
7 - toate
Prin urmare o permisiune asupra unui fi]ier, codificat[ prin num[rul 751, @nseamn[ c[
proprietarul are permisiunile r,w,x (4+2+1=7), grupul are permisiunile r ]i x (4+0+1=5) ]i al\ii au
numai permisiunea x (0+0+1=1).
Felul @n care metoda expus[ permite schimbarea permisiunilor asupra fi]ierelor se observ[ ]i din
exemplele urm[toare:
ls -l [Link]
-rw-r--r--1 student student 114 Dec 7 14:31 [Link]

4
Deci dintr-un set de trei.
3
chmod 345 [Link]
ls -l [Link]
--wxr--r-x 1 student student 114 Dec 7 14:31 [Link]
ls -l [Link]
-rw-r--r--1 student student 114 Dec 7 14:31 [Link]
chmod 664 [Link]
ls -l [Link]
-rw-rw-r-—1 student student 114 Dec 7 14:31 [Link]
Dac[ @n cadrul acestui exemplu se dore]te ca utilizatorii din grupul student s[ nu aib[
permisiunea de scriere dar s[ o aib[ pe cea de citire, asupra fi]ierului [Link], va trebui eliminat[
permisiunea respectiv[ prin sc[derea lui 2 din cel de-al doilea set de permisiuni. Num[rul va deveni 644.
Se va tasta comanda:
chmod 644 [Link]
Pentru verificarea modific[rii se tasteaz[ comanda:
ls –l [Link]
-rw-r—r—1 student student 114 Dec 7 14:31 [Link]
Pentru a reda permisiunea de scriere grupului student asupra fi]ierului @n cauz[, se va ad[uga
valoarea 2 la cel de-al doilea set de permisiuni.
chmod 664 [Link]

Observa\ie:
Setarea permisiunilor 666 sau 777 va permite ca orice utilizator s[ poat[ citi ]i scrie @ntr-un
fi]ier sau director. Asemenea set[ri pot determina fraudarea fi]ierelor, ]i ca urmare nu sunt recomandate.

#n continuare sunt prezentate c`teva dintre cele mai obi]nuite set[ri, valori numerice, precum ]i
semnifica\ia lor:
-rw------- (600) - numai proprietarul are permisiunile r ]i w
-rw-r--r-- (644) - numai proprietarul are permisiunile r ]i w; grupul ]i al\ii pot numai s[
citeasc[
-rwx------ (700) - numai proprietarul are permisiunile r w x
-rwxr-xr-x (755) - proprietarul are permisiunile r w ]i x; grupul ]i al\ii pot numai s[
citeasc[ ]i s[ execute
-rwx--x--x (711) - proprietarul are permisiunile r w x; grupul ]i al\ii pot numai s[ execute

-rw-rw-rw- (666) - oricine poate s[ citeasc[ ]i s[ scrie @n fi]ier


-rwxrwxrwx (777) - oricine poate s[ citeasc[, s[ scrie, s[ execute.

Schimbarea permisiunilor asupra directoarelor


Se poate realiza exact @n acela]i fel ca ]i @n cazul fi]ierelor, deci tot cu ajutorul comenzii chmod.
Orice utilizator care are permisiunea de scriere @ntr-un director poate ]terge fi]iere din acel director, chiar
dac[ utilizatorul are sau nu permisiunea de scriere asupra fi]ierului.
Deoarece nu putem "executa" un director, c`nd se seteaz[ sau ]terge permisiunea de execu \ie
asupra acestuia, @n fapt se seteaz[ sau se ]terge permisiunea de a c[uta @n acel director.
De exemplu s[ tast[m:
chmod a-x aplicatii
pentru a ]terge permisiunea de execu\ie pentru to\i utilizatorii.
Iat[ ce se @nt`mpl[ c`nd se @ncearc[ folosirea comenzii cd @n directorul aplicatii:
cd aplicatii
bash:aplicatii: Permission denied
S[ restaur[m permisiunea de execu\ie pentru proprietar ]i pentru grupul acestuia:
chmod ug+x aplicatii
Acum, dac[ vom verifica cu ajutorul comenzii ls –dl se va vedea c[ numai others au
interzis accesul la directorul aplicatii.
Pentru a permite oricui de a avea acces @n citire ]i scriere asupra directorului aplicatii se va
tasta:
chmod –R a+rw aplicatii

4
Prin ad[ugarea indicatorului –R, se pot schimba permisiunile pentru @ntreaga structur[ director.
C`teva set[ri obi]nuite pentru directoare, sunt:
drwx------ (700) - numai proprietarul are permisiunile r, w, x @n acest director
drwxr-xr-x (755) - oricine poate citi directorul dar con\inutul s[u poate fi modificat numai
de c[tre proprietar

Observa\ii:
1. Modalitatea de a ob\ine acces la un fi]ier atunci c`nd nu avem permisiunile necesare, ]i f[r[ a
ne deconecta de la sistem, este de a utiliza comanda su. Acesta permite conectarea cu numele altui
utilizator ce are permisiunile necesare. Evident va trebui s[ cunoa]tem parola utilizatorului respectiv.
2. Unele versiuni de UNIX furnizeaz[ un bit suplimentar numit sticky bit ca parte a
permisiunii asupra unui director. Scopul acestui bit este de a permite numai proprietarului directorului,
proprietarului fi]ierului sau utilizatorului root s[ ]tearg[ ]i s[ redenumeasc[ fi]iere.

Permisiuni implicite
Atunci c`nd un utilizator se conecteaz[ la un sistem UNIX, @i sunt furnizate anumite permisiuni
implicite. Toate fi]ierele ]i directoarele pe care acesta le creeaz[ vor avea permisiunile definite @n umask.
Pentru a afla care sunt permisiunile definite implicit pentru un utilizator, acesta va tasta comanda:
umask
Rezultatul afi]at (masca) poate fi similar cu urm[torul:
022
umask este stocat ]i afi]at ca un num[r ce va fi sc[zut din 777. 022 @nseamn[ c[ permisiunile
implicite sunt: 777-022=755
umask-ul implicit, setat de obicei pentru to\i utilizatorii de c[tre administratorul de sistem, poate
fi modificat pentru a corespunde cerin\elor particulare ale unui utilizator. Modificarea se face de c[tre
utilizator prin executarea comenzii umask cu un argument, care reprezint[ masca pe care o dore]te.
De exemplu, dac[ dore]te ca permisiunile implicite s[ fie proprietar cu r, w, x (7); grup cu r, x
(5); ]i al\ii cu x (1), umask trebuie setat la 777-751=026. Deci se va executa comanda:
umask 026
#n general, comanda umask este folosit[ de c[tre administratorul de sistem pentru a seta valoarea
implicit[ a permisiunilor ce va fi asignat[ fiec[rui fi]ier creat de c[tre un utilizator.

setuid ]i setgid

Atunci c`nd un utilizator execut[ anumite programe, este posibil s[ fie necesar ca acesta s[ @]i
asume identitatea unui utilizator sau grup diferit.
Acest lucru este posibil prin setarea bitul SET USER ID (setuid) asupra unui fi]ier
executabil, astfel @nc`t atunci c`nd fi]ierul este executat, utilizatorul ce efectueaz[ opera\ia respectiv[ s[
@]i asume identitatea utilizatorului care este proprietarul fi]ierului @n cauz[.
De exemplu, dac[ se execut[ un fi]ier numit testprg, care se afl[ @n proprietatea utilizatorului
user1, pe durata execu\iei acestuia, utilizatorul care a ini\iat aceast[ opera\ie, @]i va asuma identitatea lui
user1.
Un alt exemplu referitor la modul @n care se folose]te bitul SET USER ID, este urm[torul.
S[ presupunem c[ se dore]te efectuarea unei copii de siguran\[ a tuturor fi]ierelor din sistem de
c[tre utilizatorul student. #n mod normal aceast[ opera\ie este efectuat[ de c[tre utilizatorul root.
Pentru ca opera\ia s[ poat[ fie efectuat[ de c[tre utilizatorul student, se va creea o copie a programului
ce permite realizarea copiei de siguran\[, cu bitul SET USER ID setat. Apoi utilizatorul student va
putea executa acest program ]i pe durata opera\iei de salvare @]i va asuma identitatea utilizatorului root.
#ntr-o manier[ similar[, dac[ bitul SET GROUP ID (setgid) al unui fi]ier executabil este
setat, executarea acelui fi]ier va avea ca efect asumarea identit[\ii grupului ce este proprietarul fi]ierului,
pe durata execu\iei acestuia.

Exerci\ii

1. #n directorul de lucru curent s[ se creeze un subdirector ]i s[ se vizualizeze permisiunile de

5
acces, interpret`ndu-se.
2. Pentru un director creat anterior de c[tre utilizatorul stud1, s[ se ]tearg[ permisiunea de
scriere aferent[ proprietarului, ]i s[ se adauge permisiunea de execu \ie pentru others. Pentru
specificarea permisiunilor se vor folosi literele.
3. Pentru un director creat anterior de c[tre utilizatorul studl, s[ se ]tearg[ permisiunea de
execu\ie aferent[ proprietarului, ]i s[ se adauge permisiunea de scriere pentru others. Pentru
specificarea permisiunilor se va folosi codificarea numeric[.
4. S[ se determine care sunt permisiunile implicite pentru utilizatorul stud1.

S-ar putea să vă placă și