Sunteți pe pagina 1din 26

UNIVERSITATEA DIN BUCURETI

FACULTATEA: MATEMATIC I INFORMATIC


AN II, ID

Sisteme de Operare

Organizarea fiierelor i directoarelor


n sistemul Linux

Stoica Cristian
1

1. Noiuni introductive
Fiierul (file) este reprezentarea logic a unei informaii sub forma unei niruiri de octei. Fiierul
poate fi considerat ca fiind versiunea electronic a documentului scris.
Directorul (directory) este o entitate n care se pot regsi fiiere i/sau alte directoare. Acesta poate
fi considerat versiunea electronic a dosarului.
n interfeele grafice, directorul este de obicei denumit folder.
Fiierele organizeaz informaiile pe mediile de stocare. Mediile de stocare pot fi considerate spaii
continue de octei. n aceste spaii, se pot regsi mai multe fiiere, de dimensiuni variabile.
Sistemul de fiiere reprezint modul de organizare a fiierelor pe un mediu de stocare pentru a le
face mai uor accesibile. Organizarea include att partea logic (modul n care sunt adresate fiierele)
ct i partea fizic (modul n care sunt stocare fiierele ca niruire de octei).
Fiind o component a sistemului de operare (SO), sistemul de fiiere menine numele i atributele
fiierelor i permite stocarea lor ntr-o ierarhie de directoare numit i arbore de directoare.
Sistemele de operare folosesc fiiere pentru a organiza date, indiferent dac aceste date sunt ale
utilizatorului sau sunt generate pe moment de sistem. Spre exemplu, n Linux i n Mac OS, orice
informaie se gsete ntr-un fiier: datele se regsesc n fiiere; directoarele sunt i ele fiiere, dar cu
atributul de director; fiecare dispozitiv poate fi accesat printr-un fiier, inclusiv mouse-ul, memoria i
placa video. Intern, Microsoft Windows folosete o schem asemntoare structurii de fiiere i
directoare pentru a denumi dispozitivele,dar aceast structur nu se suprapune peste structura de
fiiere precum n Linux i n Mac OS.

2. Ierarhia sistemului de fiiere


Sistemele de fiiere permit utilizatorului s organizeze datele ntr-un mod accesibil. Structura cel mai
des ntlnit pentru organizarea fiierelor este arborele. Tabelele de mai jos prezint structura
ierarhic din sistemele de operare cele mai cunoscute.
Comparativ cu Linux, structura n Windows este mult mai simpl pentru directoarele aflate imediat n
rdcin. n schimb, o mare parte din directoarele importante se afl n directorul Windows.
Orice sistem Linux prezint urmtoarea structur standard de directoare (standardizat n
documentul File system Hierachy Standard - FHS):
Director
/
/bin
/boot
/dev

/etc

Coninut
directorul rdcin
comenzi standard i programele necesare ntreinerii i
depanrii sistemului
fiiere necesare boot-rii, precum imaginea kernel-ului
fiiere speciale utilizate pentru accesul direct la
dispozitivele hardware sau logice ale sistemului
(terminale, discuri de sistem, imprimante, porturi
paralele, seriale, etc.)
fiiere pentru configurarea i administrarea diverselor
utiliate i servicii ale sistemului (inittab, fstab, hosts, cron,
2

/home
/media
/mnt
/opt
/proc
/root
/run
/sbin
/selinux
/srv
/sys
/tmp
/usr
/usr/bin
/usr/sbin
/usr/lib
/usr/share
/var

etc.)
folderele aferente fiecrui utilizator din sistem, n mod
implicit acestea au acelai nume cel cu al utilizatorului
subdirectoare n care se monteaz unitile optice,
floppy, etc.
subdirectoare n care se monteaz alte sisteme de fiiere
pachete de aplicaii de dimensiuni mari, accesibile tuturor
utilizatorilor
sistem virtual de fiiere din care se obin informaii
despre sistem i aplicaiile care ruleaz la un moment dat
directorul home al utilizatorului root
***
comenzi pentru administrarea sistemului
****
servicii de date (www, ftp)
****
fiiere temporare
aplicaii pentru uzul normal al sistemului de operare;
conine mai multe subdirectoare
comenzi orientate pe utilizator
comenzi pentru administrarea sistemului
librrii pentru limbajele de programare
date independete de arhitectur, n general read-only:
documentaia Linux, paginile de manual, etc.
fiiere al cror coninut se schimb foarte des, precum
log-uri, fiiere temporare, cache (date reutilizabile), spool
(date neprocesate)

Tabelul 1. Structura standard de directoare n sistemul Linux

Figura 1. Lista directoarelor i fiierelor din rdcina sistemului de fiiere n mediul Linux (distribuia openSUSE 12.1)

Figura 2. Structura arborescent (explicitat parial) a directoarelor i fiierelor din rdcina sistemului de fiiere n
mediul Linux (distribuia openSUSE 12.1) folosind utilitarul WinSCP

3. Tipuri de fiiere
3.1 Terminologie
Sistemele de fiiere pun la dispoziia utilizatorilor diverse forme logice de organizare i acces la date,
bineneles sub form de fiiere.
n afar de directoare i fiiere, sistemul de fiiere pune la dispoziia utilizatorului i legturi (link-uri).
Astfel, sistemele de fiiere moderne ofer posibilitatea utilizrii mai multor tipuri de fiiere
prezentate n Tabelul 2.
Tipuri fiier
fiiere normale
directoare
legturi simbolice

Denumire tip n englez


regular files
directories/folders
symbolic links

Descriere
unitate logic de acces la date
organizeaz fiiere i alte directoare
legtur ctre un fiier sau director

Tabelul 2. Tipuri de fiiere

Exist posibilitatea de a crea legturi att pentru fiiere ct i pentru directoare n fond, ambele
entiti sunt fiiere, dar cu atribute diferite. Legturile se utilizeaz la scriere/citire la fel ca fiierele
normale. Sistemul de operare mpreun cu sistemul de fiiere se ocup transparent de traducerea
acestora n fiiere normale pentru aplicaii.
Fiecare director conine dou directoare speciale:
. (punct) indic spre acelai director (directorul curent);
.. (punct, punct) indic spre directorul printe;

n exemplele de mai jos:


comanda mkdir (make directory) creeaz un director
comanda touch creeaz un fiier gol (0 octei)
comanda ln -s creeaz un link simbolic

3.2 Detecia tipului fiierelor


Pe sistemele Windows, detecia tipului fiierelor se bazeaz pe verificarea extensiei. n funcie de
aceasta, sistemul de operare determin care aplicaie este potrivit pentru a deschide un fiier.
Pe sistemele Linux, detecia tipului fiierelor este realizat prin intermediul comenzii file. Aceasta
utilizeaz un fiier special de configurare n care sunt nscrise secvene de octei care se regsesc n
diferite tipuri de fiiere. Comanda file lucreaz independent de extensia fiierului, precum este
dovedit n exemplele urmtoare:

4. Operaii uzuale asupra fiierelor i directoarelor


4.1 Afiarea i schimbarea directorului curent
Comanda pwd afieaz calea absolut ctre directorul curent. De asemenea, prompt-ul bash conine
implicit directorul curent. Pentru a schimba directorul curent se folosete comanda cd <cale>. Calea
poate s fie o cale absolut sau relativ.
Mai jos se gsete un exemplu de folosire a comenzilor pwd i cd. A se observa c la fiecare
schimbare de director se modific i prompt-ul bash. Ierarhia de directoare prin care se navigheaz
este cea prezentat anterior.
comanda pwd (print working directory) afieaz directorul current
comanda cd / (change directory) schimb directorul current (/root) cu directorul rdcin
al sistemului de operare (/)
comanda cd /root este echivalent cu comanda cd ~; aceasta are ca efect schimbarea
directorului curent (/) cu directorul home al utilizatorului curent logat root (/root).

cd .. (punct punct) schimb directorul curent n directorul printe al directorului curent; se


pot nlnui mai multe secvene .. (punct punct) separate de / (slash);
cd . (punct) nu schimb directorul; . (punct) este un caracter special i se folosete pentru a
indica n mod explicit o cale care are ca punct de pornire directorul curent; este utilizat
frecvent pentru a scrie comenzi care execut scripturi/programe aflate n directorul curent;
cd ~ (tilda) schimb directorul curent n directorului home al utilizatorul curent;
cd - (minus) schimb directorul curent n directorul anterior i l afieaz pe ecran;
cd apelat fr parametru schimb directorul n directorul home al utilizatorul curent
(echivalent cu cd ~);

4.2 Afiarea coninutului fiierelor


Coninutul unui fiier poate fi afiat pe ecran prin intermediul comenzii cat (concatenate). Sintaxa
cestei comenzi este cat <nume_fiier>. Un exemplu de utilizare este:

Aceast comand afieaz tot fiierul, inclusiv dac acesta este mai mare de un ecran. Pentru a putea
naviga prin output-ul unei comenzi (n cazul acesta, al comenzii cat), se pot folosi comenzile more sau
less.
more permite navigarea doar ntr-o singur direcie (de la nceput ctre sfritul fiierului) i cte un
ecran odat, pe cnd less permite navigarea n ambele direcii, cte o linie, la fel ca un editor. more i
less poart numele de paginatoare (pagere). Interfaa less este foarte asemntoare cu cea a
editorului VIM (Vi IMproved).

4.3 Listarea coninutului unui director


Cea mai frecvent operaie care se execut asupra directoarelor este listarea. Comanda utilizat este
ls (list). n aceast seciune, prin fiier nelegem orice tip de fiier (inclusiv tipul director), mai puin
n cazurile n care este menionat explicit.
Sintaxa comenzii pentru listare este ls [opiuni] [<cale>]. n momentul n care lipsete
calea, se realizeaz listarea coninutului directorului curent.

Opiunile cele mai des folosite cu aceast comand sunt:


-l afieaz informaii detaliate despre fiecare fiier/director (data modificare, dimensiune,
utilizator, grup, drepturi de acces);
-a afieaz i fiierele care ncep cu . (punct); n Unix, aceste fiiere sunt considerate de
majoritatea interfeelor cu utilizatorul ca fiind fiiere ascunse;
-h afieaz dimensiunea fiierelor n format human-readable, respectiv dimensiunea n octei
este nlocuit cu dimensiunea n Kilooctei/Megaoctei/Gigaoctei dac depete un aunit
ordin de mrime.
comanda ll este un alias pentru comanda ls -l (forma lung)

Semnificaia coloanelor afiate este:


primul caracter reprezint tipul fiierului:
- - = fiier normal
- d = director
- p = pipe
- b = dispozitiv bloc
- c = dispozitiv caracter
- l = legtur simbolic
urmeaz 3 grupuri de cte 3 caractere (rwx / read write execute) care reprezint drepturile
de acces pentru utilizatorul root (care este deintorul fiierului), drepturile de acces pentru
utilizatorii care fac parte din grupul root (care deine fiierul), drepturile de acces pentru
ceilali utilizatori;
numrul de link-uri ctre fiier: 1;
utilizatorul ce deine fiierul: root;
grupul de care aparine fiierul: root;
dimensiunea fiierului: 4557;
data fiierului: Feb 7;
9

ora fiierului: 23:48;


numele fiierului: .bash_history;
Observaii:
dac se dorete afiarea coninutului directorului curent, nu este necesar scrierea cii ca
parametru pentru comanda ls;
ls -al afieaz lista detaliat a fiierelor din directorul curent, inclusiv fiierele ascunse (a se
observa c i . i .. sunt afiate);
ls -alh afieaz lista detaliat a fiierelor din directorul curent, utiliznd formatul humanreadable pentru afiarea dimensiunii fiierelor (a se observa dimensiunea fiierului afiate);
ls ../.. prezint utilizarea lui ls cu parametru dat sub form de cale relativ (directorul afiat
este /);
ls -a prezint fiierele ascunse ale directorului /; se observ c i acest director conine
directoarele standard . i ..;
ls -R <cale> afieaz arborele de directoare i fiiere care are ca rdcin directorul specificat
ca argument;

Pentru mai multe opiuni se poate consulta ls --help sau man ls.

4.4 Crearea/tergerea fiierelor/directoarelor


Pentru a crea orice entitate pe un sistem de fiiere, se utilizeaz o serie de comenzi, prezentate n
Tabelul 3.
Prima metod de creare a unui fiier este utiliznd comanda touch. A doua metod se bazeaz pe o
funcionalitate bash numit redirectare n fiiere. Pe scurt, ceea ce realizeaz comanda doua este
redirectarea ieirii unei comenzi (nule) ctre un fiier, crendu-se astfel un fiier gol (0 octei).
Entitate
Fiier normal
Director
Legturi simbolice (link-uri simbolice)
Pipe-uri cu nume

Comand
touch <nume_fiier1>, <nume_fiier2>
mkdir <nume_director>
ln -s <destinaie> [<nume_legtur>]
mkfifo <nume_pipe>

Tabelul 2. Comenzi pentru crearea fiierelor

10

O alt ntrebuinare a comenzii touch este aceea a actualizrii datei ultimei modificri i a datei
ultimei accesri folosind urmtoarele opiuni:
-m (actualizeaz doar data ultimei modificri)
-a (actualizeaz doar data ultimei accesri)
fr parametru (actualizeaz ambele date)
-r (preia informaiile legate de timp de la alt fiier)

comanda mkdir (make directory) creeaz unul sau mai multe directoare specificate ca
parametru
comanda rmdir (remove empty directory) terge unul sau mai multe directoare goale
specificat ca parametru

11

n Linux, comanda cea mai utilizat pentru tergerea fiierelor i directoarelor este rm.
Sintaxa comenzii este rm [opiuni] <cale>.
Una dintre cele mai folosite opiuni este -r/-R, utilizat pentru a terge recursiv un director. Aceast
opiune trebuie folosit cu atenie pentru c poate avea rezultate negative dac directorul care este
ters conine informaii utile. O eroare celebr este utilizarea comenzii rm -rf /, care terge recursiv
totul ncepnd cu directorul rdcin, fornd tergerile (datorit opiunii -f).
Pentru tergerea directoarelor goale se poate folosi i rmdir.

4.5 Operaiile de copiere/mutare/redenumire


Operaiile de copiere i mutare sunt operaii care necesit 2 parametrii:
sursa de unde se copiaz/mut
destinaia unde se copiaz/mut

Copierea
Copierea unui fiier sau director se realizeaz cu ajutorul comenzii cp.
Sintaxa comenzii este cp [opiuni] <surs> <destinaie>
Opiunile cele mai folosite pentru copiere sunt:
-r (copiere recursiv; copiaz i copiii directoarelor, presupunnd c exist aa ceva n surs)
-p (copiere cu pstrarea atributelor: permisiuni, dat)
12

-u (copiaz doar dac fiierul surs este mai nou dect fiierul destinaie sau dac fiierul
destinaie lipsete)

Mutarea
Mutarea unui fiier sau director se realizeaz cu ajutorul comenzii mv.
Sintaxa comenzii este mv [opiuni] <surs> <destinaie>
Implicit, mutarea este recursiv i pstreaz atributele fiierelor. n cazul n care sursa i destinaia se
gsesc pe aceiai partiie, la o mutare, se schimb doar printele fiierului sau directorului care se
mut. O operaie de mutare este, astfel, mai puin costisitoare dect o operaie de copiere.

Redenumirea
Redenumirea este, de fapt, o mutare i se realizeaz cu ajutorul comenzii mv, n urmtoarele condiii:
n cazul n care sursa este un fiier i destinaia este un fiier, se realizeaz copierea/mutarea
fiierului cu schimbarea numelui sursei;
n cazul n care sursa este un director i destinaia nu exist ca director, se realizeaz
copierea/mutarea directorului cu schimbarea numelui.

13

5. Operaii asupra coninutului


5.1 Arhivarea i dezarhivarea
Arhivarea este procedeul prin care mai multe fiiere i directoare sunt adunate la un loc (ntr-un
fiier), realiznd eventual i o reducere a dimensiunii prin eliminarea datelor care se repet i
nlocuirea lor cu o serie de codificri.
n general, n cadrul procesului de arhivare se creeaz un dicionar cu secvene de octei frecvente i
o codificare a lor mai scurt (pe mai puini octei). Arhiva conine att dicionarul ct i coninutul
fiierelor dar, n loc de secvenele frecvente lungi, se regsesc referine ctre un dicionar. Dac
fiierele conin multe date care se repet, dimensiunea unei arhive scade considerabil.
Dup cum se poate identifica i din descrierea anterioar, exist dou etape mai importante n ceea
ce privete manevrarea fiierelor:
concatenarea (lipirea) fiierelor ntr-un fiier mai mare, din care s se poat extrage toate
fiierele i informaiile despre ele;
compresia fiierului mare, astfel nct s se reduc dimensiunea lui dar fr a se pierde din
informaii.
n Linux exist utilitare de arhivare care se ocup ori de una dintre etape ori de ambele etape.
Comanda tar (tape archive) se ocup de prima etap. Un fiier .tar conine fiiere necomprimate
mpreun cu informaii despre modul de extragere al acestora (spre exemplu: de unde pn unde se
gsete un fiier n cadrul arhivei). Din acest motiv, un fiier .tar este de obicei mai mare dect suma
tuturor dimensiunilor fiierelor ce sunt incluse n el.
Sintaxa comenzii este tar cvf nume_arhiv.tar <cale>
cu parametrii:
c creeaz arhiva;
v afieaz ce anume se arhiveaz;
f nume_arhiv.tar specific numele arhivei;
<cale> precizeaz directorul/directoarele/fiierele care vor fi arhivate.
Pentru a dezarhiva o arhiv .tar, se utilizeaz:
tar xvf nume_arhiv.tar [C <cale_destinaie>]
unde:
x dezarhiveaz (eXtract)
v afieaz ce anume se dezarhiveaz;
f nume_arhiv.tar specific numele arhivei;
-C <cale_destinaie> specific, opional, locul unde se realizeaz dezarhivarea.

14

f i nume_arhiv.tar se consider un singur parametru; din acest motiv, de fiecare dat cnd se
folosete opiunea f pentru a indica un fiier arhiv, aceasta trebuie s apar ultima n lista de
opiuni, fiind urmat imediat de numele fiierului de arhiv.

Pentru a realiza compresia unui fiier, dou utilitare sunt folosite preponderent n lumea Unix:
gzip, mai rapid dar cu rat de compresie mai mic;
bzip2, mai lent dar cu rat de compresie mai mare.
Comanda tar poate utiliza direct unul dintre programele de comprimare menionate anterior folosind
parametrul z pentru gzip sau parametrul j pentru bzip2.
Pe lng opiunile de compresie/arhivare se mai pot folosi i alte opiuni. Printre cele mai utile se
numr opiunea --preserve, care impune pstrarea drepturilor de acces ]n momentul
arhivrii/dezarhivrii.

15

5.2 Backup
Backup-ul este realizat pentru a pstra ntr-un loc separat o copie a datelor. Aceast copie se
utilizeaz pentru a reface datele n cazul n care suportul original nu mai poate fi folosit din orice
motiv. Este una dintre cele mai utile aciuni asupra datelor pe care toat lumea tie c ar fi bine s o
fac dar nu o face. Cteva metode de backup au fost deja prezentate. Tabelul 4 prezint cteva
metode de backup i situaiile cnd sunt ele potrivite.
Metod

Descriere
Metod foarte simplu de aplicat. Devine greu de folosit pentru
tar+gzip/bzip2
dimensiuni mari de date.
Metod simplu de folosit i independent de sistemul de fiiere.
Permite pstrarea intact a structurii sistemului de fiiere. Inflexibil
dd
cnd vine vorba de recuperarea datelor. Util pentru cantiti mari de
date.
E asemntoare comenzii cp, dar la care s-a adugat suport de
rsync
sincronizare ntre mai multe sisteme de calcul. Permite replicarea
structurii de fiiere (inclusiv permisiuni) ntre dou sisteme de calcul.
16

Compresie
Da

Nu

Da

rdiff-backup

Este un wrapper peste rsync. Adaug suport pentru backup-uri


incrementale. La un moment dat se realizeaz un backup complet
pentru un director (asemntor rsync-ului). Backup-urile incrementale
salveaz doar modificrile ce s-au fcut de la ultimul backup pn n
prezent, indiferent de tipul backup-ului. n acest fel se poate reveni la
orice stare anterioar, n msura n care s-a realizat cel puin un
backup incremental la acea stare.

Da

Tabelul 4.

5.3 Comanda dd (data description)


Comanda dd (data description) permite realizarea copierii i conversiei low-level a datelor. Aceasta
accept la intrare urmtoarele argumente:
if (input file) parametru care specific fiierul de intrare
of (output file) parametru care specific fiierul de ieire
bs (block size) parametru care specific mrimea blocului (n octei)
count parametru ce specific numrul de blocuri
n exemple de mai jos
crearea unui fiier (zero.txt) care conine numai zerouri folosind blocuri de 128 de octei;
mrimea acestuia este de 128 octei x 8 = 1024 de octei (1 Kilo octet);
crearea unui fiier (rand.txt) care conine date aleatoare folosind blocuri de 128 de octei;
mrimea acestuia este de 128 octei x 8 = 1024 de octei (1 Kilo octet);

Efectuarea unui test de performan la scrierea i citirea secvenial al unui fiier de 1 Giga octet pe
hard-disk folosind blocuri de 128 de octei la scriere i de 64 de Kilo octei la citire.

17

tergerea unui hard-disk cu zero sau cu date aleatoare.

Copierea unei partiii ca un fiier de imagine de disc pe o alt partiie.

5.4 Comanda tail


Comanda tail este folosit pentru a afia ultimele linii dintr-un fiier. Sintaxa comenzii este:
tail [opiuni] <nume_fiier>
Folosit fr nicio opiune comanda tail afieaz ultimele 10 linii.
Opiunile cele mai des folosite sunt:
-c - afieaz numrul specificat de octei dintr-un fiier
-n - afieaz numrul specificat de linii din fiier
-f - monitorizeaz fiierul
n exemplele urmtoare avem:
afiarea ultimelor 5 linii din fiier

afiarea ultimelor linii din fiier ncepnd cu linia 3

monitorizarea log-ului de sistem

18

5.5 Comanda head


Comanda head este folosit pentru a afia primele linii dintr-un fiier. Sintaxa comenzii este:
head [opiuni] <nume_fiier>
Folosit fr nicio opiune comanda head afieaz primele 10 linii.
Opiunile cele mai des folosite sunt:
-c - afieaz numrul specificat de octei dintr-un fiier
-n - afieaz numrul specificat de linii din fiier
n exemplele urmtoare avem:
afiarea primelor 5 linii din fiier

afiarea primilor 10 octei din fiier

19

5.6 Comanda sort


Comanda sort este folosit pentru a afia n ordine sortat liniile unui fiier sau datele primite ca
argument. Sintaxa comenzii este:
sort [opiuni] <nume_fiier>

Opiunea -r afieaz n ordine invers.

5.7 Cutarea fiierelor


Comanda find
Comanda find folosete aboradrea brute-force pentru gsirea fiierelor cutnd n arborele de
directoare. Comanda pune la dispoziie un set extins de criterii de cutare, cum ar fi numele
fiierului, utilizatorul, grup, tip, permisiuni, dat i altele. Exemple de criterii de cutare sunt
prezntate n continuare specificnd opiunea corespunztoare a comenzii find:
-name cutare dup numele fiierelor
-perm cutare dup permisiunile fiierelor
-size cutare dup dimensiunea fiierelor
Comanda urmtoare caut toate fiierele care au numele stat, n mod recursiv n directorul /usr:
20

Urmtoarea comand caut toate fiierele care au permisiunile 644:

Pentru cutarea fiierelor cu dimensiunea mai mare de 50 KB se folosete urmtoarea comend:

Comanda locate
Comanda locate folosete o baz de date local n care sunt indexate toate fiierele. Comanda locate
este mai rapid dect comanda find, dar pune la dispoziie un singur criteriu de cutare: numele
fiierului. Un alt dezavantaj este faptul c baza de date trebuie reactualizat periodic pentru a
conine informaii despre fiierele noi create n sistem. Actualizarea se realizeaz cu ajutorul comenzii
updatedb.
Comanda ntoarce o list cu toate fiierele ale crui nume conine irul de caractere precizat ca
argument.
Unele distribuii Linux folosesc comanda slocate n locul comenzii locate. Avantajul comenzii slocate
este acela c nu permite afiarea fiierelor din directoarele n care utilizatorul nu are drepturi de
acces.

Comanda whereis
Aceast comand poate fi folosit pentru a cuta ntr-un set restrns de locaii din sistem, de
exemplu directoarele cu fiiere binare, directoarele cu biblioteci sau directoarele cu pagini de
manual. Comanda whereis nu poate fi folosit pentru a cuta n directoarele utilizatorului. Comanda
va cuta toate fiierele care ncep cu irul de caractere precizat ca argument. De exemplu, pentru a
localiza comanda ls sau gcc folosim urmtoarea comand:

21

Comanda va afia calea ctre executabil, dar i calea ctre pagina de manual a comenzii.

Comanda which
Folosind comanda which se poate obine calea ctre executabile care pot fi rulate din linia de
comand. De exemplu, pentru a afla calea ctre comanda chmod se va folosi comanda urmtoare:

n mod implicit, comanda which returneaz doar prima potrivire gsit, iar pentru a afia lista
complet a potrivirilor se va folosi opiunea -a.

Comanda type
Aceast comand poate fi folosit pentru a determina modul de interpretare a unei comenzi, de
exemplu comand integrat n shell, comand extern sau alias.
Un exemplu de comand integrat n shell este:

Pentru o comand extern rezultatul comenzii type este calea ctre executabil:

n cazul unui alias este afiat comanda echivalent:

22

6. Drepturi de acces
O prim msur de protecie a datelor o reprezint drepturile de acces la fiiere. Att timp ct un
utilizator nu are drepturi de administrator pe un anumit computer, acel utilizator se supune
drepturilor de acces la fiiere.
Tabelul 5 prezint drepturi ce pot fi configurate pentru un fiier, fr a particulariza la un anumit tip
de sistem de fiiere.
Drept
citire
scriere
execuie
modificare
tergere

Descriere
dreptul de a deschide i citi coninutul unui fiier
dreptul de a scrie ntr-un fiier
dreptul de executa un fiier (aplicaie) sau, pentru directoare, dreptul
de a intra ntr-un director
dreptul de a modifica datele dintr-un fiier existent
dreptul de a terge un fiier

Tabelul 5.

6.1 Utilizatori i grupuri de utilizatori vs. liste de acces


Exist dou metode mai ntlnite pentru definirea drepturilor de acces la fiiere:
drepturi de acces la nivel de utilizator/grup.
liste de acces Access Control Lists (ACL).
Prima metod (drepturi de acces la nivel de utilizator/grup) const n definirea unor drepturi pentru
urmtoarele entiti:
posesorul unui fiier (user);
grupul care deine fiierul (group);
toi ceilali utilizatori (others).
Un utilizator se poate afla n mai multe grupuri. Aceast metod este cea mai folosit cale pentru
definirea drepturilor de acces. Metoda ofer un nivel de protecie suficient pentru majoritatea
situaiilor, ocupnd un spaiu limitat.
n cadrul sistemului bazat pe liste de acces, unui fiier i se pot asocia mai muli utilizatori i/sau
grupuri de utilizatori. Pentru fiecare dintre aceste entiti pot fi configurate mai multe tipuri de
drepturi. Aceast variant poate fi privit ca o extindere a sistemului cu drepturi de acces prezentat
anterior. Complexitatea poate face ca sistemul s fie destul de greu de ntreinut.
Fiecare sistem de fiiere ofer un set de drepturi ce pot fi modificate pentru fiecare fiier n parte. ca
diferene notabile ntre sistemele de fiiere se pot aminti urmtoarele:
FAT32 nu ofer suport pentru drepturi de acces la fiiere; exist doar posibilitatea de a marca
un fiier ca read-only; orice utilizator poate s schimbe acest drept;
majoritatea sistemelor de fiiere n mediile Unix (inclusiv Mac OS X) au suport pentru
drepturi de acces bazat pe utilizator/grup i, folosind o extensie, pot si extinse cu liste de
acces;
23

NTFS are un sistem foarte avansat de drepturi de acces, bazat pe liste de acces; pentru
fiecare entitate adugat n lista unui anumit fiier pot fi configurate mai multe drepturi.

6.2 Clasificarea drepturilor de acces


Sistemele de fiiere din mediile Unix care au implementate standard drepturile de acces la nivel de
user/grup au la baz urmtorul set de drepturi de acces:
citire (read) deschidere i citire de fiiere;
scriere (write) creare i scriere de fiiere;
execuie (execute) execuie fiiere/intrare n directoare;
n aceste sisteme de fiiere exist 3 entiti pentru care poate fi stabilit orice combinaie a
drepturilor definite mai sus:
utilizator (user) posesorul fiierului;
grup (group) grupul de care aparine fiierul;
alii (others) utilizatorii care nu fac parte din grupul fiierului i nici nu sunt posesori.

6.3 Vizualizarea drepturilor de acces


Pentru a vedea drepturile de acces pentru un anumit fiier este suficient utilizarea comenzii ls cu
parametrul -l (sau a comenzii ll). Spre exemplu, pentru a vedea drepturile de acces asupra unui fiier,
transmitem ca parametru comenzii ll direct numele fiierului:

Drepturile de acces sunt date de primele 10 caractere din ieirea comenzii ll:
primul caracter reprezint tipul fiierului:
- - = fiier normal
- d = director
- p = pipe
- b = dispozitiv bloc
- c = dispozitiv caracter
- l = legtur simbolic
urmtoarele 3 caractere (rw-) reprezint drepturile de acces pentru utilizatorul root, care
este deintorul fiierului; se observ c utilizatorul are doar drepturile de citire respectiv
scriere, dar lipsete dreptul de execuie;
urmtoarele 3 caractere (r--) reprezint drepturile de acces pentru utilizatorii care fac parte
din grupul root; se observ c este prezent doar dreptul de citire, dar lipsesc drepturile de
scriere i execuie;

24

urmtoarele 3 caractere (r--) reprezint drepturile de acces pentru utilizatorii care nu sunt
root i nici nu fac parte din grupul root; se observ c este prezent doar dreptul de citire, dar
lipsesc drepturile de scriere i execuie;
Exist dou moduri de reprezentare a drepturilor:
n form numeric: pentru fiecare entitate exist o cifr n baza 8 care descrie drepturile,
cte un bit pentru fiecare drept;
n form literar: drepturile sunt referite direct prin iniiala lor, pentru fiecare tip de entitate.
Astfel, pentru exemplul de mai sus, avem drepturile:
rw-r--r-- n form listing;
110100100 n form binar;
644 n form octal;
u=rwx g=r o=r n form literal.

6.4 Modificarea proprietarului/grupului i a drepturilor de acces


n sistemul Linux utilitarele de baz sunt chown i chmod. Primul ofer posibilitatea schimbrii
proprietarului i a grupului cruia i aparine respectivului fiier, n vreme ce al doilea permite
modificarea drepturilor.
Sintaxa comenzii chown este: chown utilizator[:grup] <nume_fiier>
n exemplul de mai jos a fost modificat proprietarul i grupul fiierului:

Dac se dorete modificarea utilizatorului sau a grupului, se folosete doar o parte a sintaxei:

25

n mediul Linux, un utilizator neprivilegiat nu poate schimba proprietarul i/sau grupul unui fiier. n
Linux, comanda chown este folosit doar de utilizatorul privilegiat.

Comanda chmod permite modificarea drepturilor de acces ale unui fiier. Comanda poate fi folosit
doar de utilizatorul ce deine fiierul sau de utilizatorul privilegiat. Noile drepturi ale fiierului pot fi
precizate n form literal sau octal.
Pentru schimbarea drepturilor se va folosi mai nti forma literal. Drepturile pot fi precizate pentru
oricare dintre cele trei niveluri de privilegiu: utilizator, grup, ali utilizatori printr-o singur liter: u, g,
o. Drepturile pot fi:
adugate prin folosirea operatorului +;
nlturate prin folosirea operatorului -;
precizate explicit prin folosirea operatorului =.

n format octal este suficient o singur comand pentru a modifica simultan drepturile pentru toate
cele trei grupuri de acces.

26