Documente Academic
Documente Profesional
Documente Cultură
Drepturi de acces. Daca se tasteaza comanda ls -l cale pentru fiecare fisier sau
sub-director se va afisa o linie de genul:
In raport cu un fiier sau director, din punct de vedere al drepturilor, utilizatorii se mpart
n trei categorii:
proprietarul fiierului (u - user).
grupul de utilizatori (g - group), de exemplu o grup de studeni particip la un
acelai proiect, motiv pentru care administratorul poate constitui un astfel de grup,
cu drepturi specifice - de regul mai slabe dect ale proprietarului, dar mai
puternice dect ale restului utilizatorilor.
restul utilizatorilor (o - others) cei care nu sunt n primele dou categorii.
toi utilizatorii (a-all), echivalent cu combinaia ugo.
Nucleul SO Linux identific utilizatorii prin numere naturale asociate unic, numite UIDuri (User IDentifications). De asemenea, identific grupurile de utilizatori prin numere
numite GID-uri (Group IDentifications). Un utilizator aparte, cu drepturi depline asupra
tuturor fiierelor este root sau superuserul. Pentru fiecare categorie de utilizatori, fiierul
permite maximum trei drepturi:
dreptul de citire (r - read)
dreptul de scriere (w - write) care include crearea de subdirectori, tergerea de
subdirectori, adugarea sau tergerea de intrri n director, modificarea fiierului,
etc.
dreptul de execuie (x - execution) care permite lansarea n execuie a unui fiier.
Acest drept, conferit unui director, permite accesul n directorul respectiv (cd) .
n consecin, pentru specificarea drepturilor de mai sus asupra unui fiier sau director
sunt necesari 9 (nou) bii. Reprezentarea extern a acestei configuraii se face printr-un
grup de 9 (nou) caractere: rwxrwxrwx n care absena unuia dintre drepturi la o categorie
de useri este indicat prin - (minus).
Modul de atribuire a acestor drepturi se poate face cu ajutorul comenzii chmod. Cea mai
simpl form a ei este:
chmod mod fisier
unde mod poate fi absolut sau simbolic. n cazul absolut este un ntreg reprezentat n
sistemul de numeraie 8. n reprezentare binar, prima grup de 3 bii indic drepturile
proprietarului(user-ului), cea de-a doua indic drepturile grupului, iar cea de-a treia cifr
indic drepturile restului utilizatorilor.
Corespunzator unei anumite cifre octale, drepturile setate sunt prezentate in tabelul
urmator (simbolul inseamna ca dreptul respectiv nu este setat).
Numar
Permisiune
---
--x
-w-
-wx
r--
r-x
rw-
rwx
1. programul P are ca proprietar utilizatorul UP care face parte din grupul GP, iar
drepturile fiierului executabil P sunt rwxr-xr-x.
2. fiierul F asupra cruia se acioneaz are proprietarul UF care face parte din
grupul GF, iar drepturile fiierului F sunt rwxr-xr--.
n aceste ipoteze, userul U poate s lanseze n execuie programul P, deoarece acesta
confer drepturi de execuie tuturor utilizatorilor. (Dac drepturile lui P ar fi fost rwxr-r--, atunci lansarea n execuie ar fi fost posibil numai dac U = UP. Dac drepturile
lui P ar fi fost rwxr-xr--, atunci lansarea ar fi fost posibil numai dac U = UP sau G
= GP.)
Dup lansarea n execuie de ctre U a lui P, n mod implicit aciunile pe care programul
P le poate efectua asupra fiierului F sunt cele permise de drepturile pe care U le are
asupra lui F. In exemplul nostru, dac U = UF atunci P poate citi, scrie sau executa F.
Dac G = GF atunci P poate citi sau executa F, iar dac G i GF sunt diferite atunci P
poate numai s citeasc din F. Aceast regul, prin care drepturile lansatorului de program
permit sau nu unele operaii pe care programul lansat le aplic unui fiier, este regula
cvasigeneral de aciune asupra fiierelor.
Exist ns situaii, nu foarte frecvente, n care aceast regul se poate schimba.
Schimbarea este cunoscut sub numele setuid / setgid i se refer, cu notaiile de mai sus,
la faptul c: Dup lansarea n execuie de ctre U a lui P, n mod setuid / setgid aciunile
pe care programul P le poate efectua asupra fiierului F sunt cele permise de drepturile
proprietarului programului P i ale grupului din care face parte acesta. Este vorba de doi
bii importani relativ la drepturile de acces, aa numiii bit setuid (set-user-id) care pus
pe 1 schimb drepturile lui U cu drepturile lui UP i bitul setgid, care pus pe 1 schimb
drepturile lui G cu drepturile lui GP. (Aceste schimbri au loc numai la execuia
programului P). Cu alte cuvinte, dac pentru un fiier executabil bitul setuid este 1,
atunci un utilizator care lanseaz n execuie acest fiier (evident, dac are dreptul s-l
lanseze) primete, pe timpul execuiei, aceleai drepturi de acces la resurse (fiiere,
semafoare, zone de memorie etc.) ca i proprietarul fiierului executabil.
S vedem o situaie concret n care este util folosirea bitului setuid. Un
utilizator cu numele profesor ntreine un fiier note al crui proprietar este. Din raiuni
lesne de neles, drepturile fiierului note sunt fixate la rw-------. Utilizatorul
profesor dorete s permit utilizatorilor din grupul studenti s vad unele informaii
din fiierul note.
Pentru aceasta, profesor creeaz un fiier executabil examen (proprietarul lui examen
este profesor) care permite citirea (eventual selectiv) de informaii din fiierul note.
Proprietarul atribuie pentru examen drepturile rwx--x--x i pune bitul setuid al lui
examen pe 1. Aceast atribuire se face cu comanda chmod
+s examen. Noile
drepturi afiate ale lui examen sunt: rws--x--x
Utilizatorii studenti, n momentul lansrii programului examen, primesc aceleai
drepturi de acces la fiiere ca i profesor. In particular programul examen poate accesa
fiierul note (vezi drepturile acestui fiier) chiar dac el nu a fost lansat n execuie de
ctre profesor. In absena lui setuid pentru examen, acesta poate fi, totui lansat n
execuie, ns nu poate s acceseze fiierul note.
Dup cum spuneam mai sus, nucleul SO Linux identific utilizatorii prin numere
naturale asociate unic, numite UID-uri (User IDentifications). De asemenea, identific
listeaz toate fiierele din sistem al cror nume ncepe cu caracterele `fis, urmate
de trei caractere oarecare.
$ find /home/so -name *fis*
listeaz toate fiierele din din structura care pornete din directorul
Opiunea -newer va fi folosit pentru a gsi fiierele mai noi dect un fiier dat.
Exemplu:
$ find ~ -newer /etc/fis
va lista toate fiierele din directorul structura care pornete din ~ care au au data de
creare mai recent dect fiierul /etc/fis.
Pentru a cuta fiiere a cror dat de creare este ulterioar unei date specificate, se va
folosi comanda touch pentru a introduce acea dat ntr-un fiier, care va fi argument pentu
opiunea
-newer.
Exemplu:
$ touch -t 04010000 /tmp/timestamp
$ find ~ -newer /tmp/timestamp
va cuta toate fiierele din structura care pornete din directorul gazd care au fost
modificate dup 1 aprilie 2008(anul curent)
Opiunea used este folosit pentru a gsi fiiere accesate dup un numr de zile de la
ultima modificare.
Exemplu:
$ find ~ -used +100
va cuta fiierele din structura care pornete din directorul gazd care au fost accesate
dup cel puin 100 de zile de la data ultimei modificri.
Cutarea fiierelor dup proprietar
Cu opiunea user, respectiv group se pot cuta fiiere care aparin unui anumit
utilizator, respectiv unui grup de utilizatori.
Exemple:
$ find ~/florea -user florea
va lista toate fiierele din structura care pornete din /usr/local/fonts care aparin
utilizatorului florea.
$ find ~ -group info
va lista toate fiierele din structura care pornete din directorul ~ al cror proprietar este
grupul info.
Execuia de comenzi asupra fiierelor cutate se realizeaz cu opiunea -exec care are
ca argument o anumit comand. Sfritul comenzii este marcat de caracterele ;. Dac
se folosete irul `'{}'` n cadrul comenzii, acesta este nlocuit cu numele de fiier care a
fost gsit
Exemple:
Exemple: