Sisteme de Operare [627158]
1
UNIVERSITATEA DIN BUCUREȘTI
FACULTATEA: MATEMATICĂ ȘI INFORMATICĂ
AN II, ID
Sisteme de Operare
Organizarea fișierelor și directoarelor
în sistemul Linux
Stoica Cristian
2
1. Noțiuni introductive
Fișierul (file) este reprezentarea logică a unei informații sub forma unei înșiruiri de octeți. Fișierul
poate fi considerat ca fiind versiunea electronică a documentului scris.
Directorul (directory) este o entitate în care se pot regăsi fișiere și/sau alte direc toare. Acesta poate
fi considerat versiunea electronică a dosarului.
În interfețele grafice, directorul est e de obicei den umit folder.
Fișierele or ganizează informațiile pe mediile de stocare. Mediile de stocare pot fi considerate spații
continue de octeți . În aceste spații, se pot regăsi mai multe fișiere, de dimensiuni variabile.
Sistemul de fișiere reprezintă modul de organizare a fișierelor pe un mediu de stocare pentru a le
face mai ușor accesibile. Organizarea include atât partea logică (modul în care sunt adresate fișierele)
cât și partea fizică (modul în care sunt stocare fișierele ca înșiruire de octeți) .
Fiind o componentă a sistemului de operare (SO), sistemul de fișiere menține numele și atributele
fișierelor și permite stocarea lor într -o ierarhie de directoare numită și arbore de directoare.
Sistemele de operare folosesc fișiere pentru a organiza dat e, indiferent dacă aceste date sunt ale
utilizatorului sau sunt generate pe moment de sistem. Spre exemplu, în Linux și în Mac OS, orice
informație se găsește într -un fișier: datele se regăsesc în fișiere; directoarele sunt și ele fișiere, dar cu
atributul de director; fiecare dispozitiv p oate fi accesat printr -un fișier, inclusiv mouse -ul, memoria și
placa video. Intern, Microsoft Windows folosește o schemă asemănătoare structurii de fișiere și
directoare pentru a denumi dispozitivele,dar această structură nu se suprapune peste structura de
fișiere precum în Linux și în Mac OS.
2. Ierarhia sistemului de fișiere
Sistemele de fișiere permit utilizatorului să organizeze datele într -un mod accesibil. Structura cel mai
des întâlnită pentru organizarea fișierelor e ste arborele. Tabelele de mai jos prezintă structura
ierarhică din sistemele de operare cele mai cunoscute.
Comparativ cu Linux, str uctura în Windows este mult mai simplă pentru directoarele aflate imediat în
rădăcină. În schimb, o mare parte din directoar ele importante se află în directorul Windows .
Orice sistem Linux prezintă următoarea structură standard de directoare (standardizată în
documentul File system Hierachy Standard – FHS) :
Director Conținut
/ directorul rădăcină
/bin comenzi standard și programele necesare întreținerii și
depanării sistemului
/boot fișiere necesare boot -ării, precum imaginea kernel -ului
/dev fișiere speciale utilizate pentru accesul direct la
dispozitivele hardware sau logice ale sistemului
(terminale, discu ri de sistem, imprimante, porturi
paralele, seriale, etc.)
/etc fișiere pentru configurarea și administrarea diverselor
utiliate și servicii ale sistemului (inittab, fstab , hosts , cron,
3
etc.)
/home folderele aferente fiecărui utilizator din sistem, în mo d
implicit acestea au același nume cel cu al utilizatorului
/media subdirectoare în care se montează unitățile optice,
floppy, etc.
/mnt subdirectoare în care se montează alte sisteme de fișiere
/opt pachete de aplicații de dimensiuni mari, accesibile tuturor
utilizatorilor
/proc sistem virtual de fișiere di n care se ob țin informații
despre sistem și aplicațiile care rulează la un moment dat
/root directorul home al utilizatorului root
/run ***
/sbin comenzi pentru administrarea sistemului
/selinux ****
/srv servicii de date (www, ftp)
/sys ****
/tmp fișiere temporare
/usr aplicații pentru uzul normal al sistemului de operare;
conține mai multe subdirectoare
/usr/bin comenzi orientate pe utilizator
/usr/sbin comenzi pentru administrarea sistemului
/usr/lib librării pentru limbajele de programare
/usr/share date independete de arhitectură, în general read -only:
documentația Linux , paginile de manual , etc.
/var fișiere al căror conținut se schimbă foarte des, precum
log-uri, fișiere temporare, cache (date reutilizabile), spool
(date neprocesate)
Tabe lul 1. Structura standard de directoare în sistemul Linux
Figura 1. Lista directoarelor și fișierelor din rădăcina sistemului de fișiere în mediul Linux ( distribuția openSUSE 12.1)
4
Figura 2. Structura arborescentă (explicitată parțial) a directoarelor și fișierelor din rădăcina sistemului de fișiere în
mediul Linux ( distribuția openSUSE 12.1) folosind utilitarul WinSCP
5
3. Tipuri de fișiere
3.1 Terminologie
Sistemele de fișiere pun la dispoziția utilizatorilor diverse forme logice de organizare și acces la date,
bineînțeles sub formă de fișiere.
În afară de directoare și fișiere, sistemul de fișiere pune la dispozi ția utilizatorului și legături (link -uri).
Astfel, sistemele de fișiere moderne oferă posibilitatea utilizării mai multor tipuri de fișiere
prezentate în Tabelul 2 .
Tipuri fișier Denumire tip în engleză Descriere
fișiere normale regular files unitate logică de acces la date
directoare directories/folders organizează fișiere și alte directoare
legături simbolice symbolic links legătură către un fișier sau director
Tabelul 2. Tipuri de fișiere
Există posibilitatea de a crea legături atât pentru fișier e cât și pentru directoare – în fond, ambele
entități sunt fișiere, dar cu atribute diferite. Legăturile se utilizează la scriere/citire la fel ca fi șierele
normale. Sistemul de operare împreună cu sistemul de fișiere se ocupă transparent de “traducerea”
acestora în fișiere normale pentru aplicații.
Fiecare director conține două directoare speciale:
. (punct) indică spre același director (directorul curent);
.. (punct, punct) indică spre directorul părinte;
În exemplele de mai jos:
comanda mkdir (make directory) creează un director
comanda touch creează un fișier gol (0 octeți)
comanda ln -s creează un link simbolic
6
3.2 Detecția tipului fișierelor
Pe sistemele Windows, detecția tipului fișierelor se bazează pe verificarea extensiei. În funcție de
aceasta, sistemul de operare determină care aplicație este potrivită pentru a deschide un fișier.
Pe sistemele Linux, detecția tipului fișierelor este real izată prin intermediul comenzii file. Aceasta
utilizează un fișier special de configurare în care sunt înscrise secvențe de octeți care se regăsesc în
diferite tipuri de fișiere. Comanda file lucrează independent de extensia fișierului, precum este
dovedit în exemplele următoare:
7
4. Operații uzuale asupra fișierelor și directoarelor
4.1 Afișarea și schimbarea directorului curent
Comanda pwd afișează calea absolută către directorul curent. De asemenea, prompt -ul bash conține
implicit directorul curent. Pentru a schimba directorul curent se folosește comanda cd <cale> . Calea
poate să fie o cale absolută sau relativă.
Mai jos se găsește un exem plu 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) afișează directorul c urrent
comanda cd / (change directory) schimbă directorul current ( /root ) cu directorul rădăcin ă
al sistemului de operare ( /)
comanda cd /root este echivalentă cu comanda cd ~ ; aceasta are ca efect schimbarea
directorului curent (/) cu directorul home al u tilizatorului curent logat root (/root ).
cd .. (punct punct) schimbă directorul curent în directorul părinte al directorului curent; se
pot înlănțui mai multe secvențe .. (punct punct) separate de / (slash);
cd . (punct) nu schimbă directorul; . (punct) este un caracter special și se folosește pentru a
indica în mod explicit o cale care a re 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 afișează pe ecran;
cd apelat fără parametru schimbă directorul în directorul home al utilizatorul curent
(echivalent cu cd ~);
8
4.2 Afișarea conținutului fișierelor
Conținutul unui fișier poate fi afișat pe ecran prin intermediul comenzii cat (con catenate). Sintaxa
cestei comenzi este cat <nume_fișier>. Un exemplu de utilizare este:
Această comandă afișează tot fișierul, 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 ă direcție (de la început către sfârșitul fișierului) și câte un
ecran odată, pe când less permite navigarea în ambele direcții, câte o linie, la fel ca un editor. more și
less poartă numele de paginatoare (pagere ). Interfața less este foarte asemănătoare cu cea a
editorului VIM (Vi IMproved).
4.3 Listarea conținutului unui director
Cea mai frecventă operație care se execută asupra directoarelor este listarea. Comanda utilizată este
ls (list). În această secțiune, prin fișier înțelegem orice tip de fișier (inclusiv tipul “director”), mai puțin
în cazurile în care este menționat explicit.
Sintaxa comenzii pentru listare este ls [opțiuni] [<cale>] . În momentul în care lipsește
calea, se realizează listarea conținutului directorul ui curent.
9
Opțiunile cele mai des folosite cu această comandă sunt:
-l afișează informații detaliate despre fiecare fișier/director (data modificare, dimensiune,
utilizator, grup, drepturi de acces);
-a afișează și fișierele care încep cu . (punct); în Un ix, aceste fișiere sunt considerate de
majoritatea interfețelor cu utilizatorul ca fiind fișiere ascunse;
-h afișează dimensiunea fișierelor în format human -readable, respectiv dimensiunea în octeți
este înlocuită cu dimensiunea în Kiloocteți/Megaocteți/Gigaocteți dacă depășește un aunit
ordin de mărime.
comanda ll este un alias pentru comanda ls -l (forma lungă )
Semnificația coloanelor afișate este:
primul caracter reprezintă tipul fișierului:
– – = fișier normal
– d = director
– p = pipe
– b = dispozitiv bloc
– c = dispozitiv caracter
– l = legătură simbolică
urmează 3 grupuri de câte 3 caractere (rwx / read write execut e) care reprezintă drepturile
de acces pentru utilizatorul root (care este deținătorul fișierului), drepturile de acces pentru
utilizatorii care fac parte din grupul root (care deține fișierul), drepturile de acces pentru
ceilalți utilizatori;
numărul de l ink-uri către fișier: 1;
utilizatorul ce deține fișierul: root;
grupul de care aparține fișierul: root;
dimensiunea fișierului: 4557;
data fișierului: Feb 7;
10
ora fișierului: 23:48;
numele fișierului: .bash_history;
Observații:
dacă se dorește afișarea conținutului directorului curent, nu este necesară scrierea căii ca
parametru pentru comanda ls;
ls -al afișează lista detaliată a fișierelor din directorul curent, inclusiv fișierele ascunse (a se
observa că și . și .. sunt afișat e);
ls -alh afișează lista detaliată a fișierelor din directorul curent, utilizând formatul human –
readable pentru afișarea dimensiunii fișierelor (a se observa dimensiunea fișierului afișate);
ls ../.. prezintă utilizarea lui ls cu parametru dat sub formă de cale relativă (directorul afișat
este /);
ls -a prezintă fișierele ascunse ale directorului /; se observă că și acest director conține
directoarele standard . și ..;
ls -R <cale> afișează arborele de directoare și fișiere care are ca rădăcină directorul specificat
ca argument;
Pentru mai multe opțiuni se poate consulta ls –help sau man ls .
4.4 Crearea /ștergerea fișierelor/directoarelor
Pentru a crea orice entitate pe un sistem de fișiere, se utilizează o serie de comenzi, prezentate în
Tabelul 3.
Prima metodă de creare a unui fișier este utilizând comanda touch . A doua metodă se bazează pe o
funcționalitate bash numită redirectare în fișiere. Pe scurt, ceea ce realizează comanda doua este
redirectarea ieșirii unei comenzi (nule) către un fișier, creându -se astfel un fișier gol (0 octeți) .
Entitate Comandă
Fișier normal touch <nume_fișier1>, <nume_fișier2>
Director mkdir <nume_director>
Legături simbolice (link -uri simbolice) ln -s <destinație> [<nume_legătură>]
Pipe -uri cu nume mkfifo <nume_pipe>
Tabelul 2. Comenzi pentru crearea fișierelor
11
O altă întrebuințare a comenzii touch este aceea a actualizării datei ultimei modificări și a datei
ultimei accesări folosind următoarele opțiuni:
-m (actualizează doar data ultimei modificări)
-a (actualizează doar data ultimei accesări)
fără parametru (actualizează ambele date)
-r (preia informațiile legate de timp de la alt fișier)
comanda mkdir (make directory) creează unul sau mai multe directoa re specificate ca
parametru
comanda rmdir (remove empty directory) șterge unul sau mai multe directoare go ale
specificat ca parametru
12
În Linux, comanda cea mai utilizată pentru ștergerea fișierelor și directoarelor este rm.
Sintaxa comenzii este rm [opțiuni] <cale> .
Una dintre cele mai folosite opțiuni este -r/-R, utilizată pentru a șterge recursiv un director. Această
opțiune trebuie folosită cu atenție pentru că poate avea rezultate negative dacă directorul care este
șters conține informații utile. O eroare celebră este utilizarea comenzii rm -rf /, care șterge recursiv
totul începând cu directorul rădăcină, forțând ștergerile (datorită opțiunii -f).
Pentru ștergerea directoarelor goale se poate folosi și rmdir .
4.5 Operațiile de copiere/mutare/re denumir e
Operațiile de copiere și mutare sunt operații care necesită 2 parametrii:
sursa de unde se copiază/mută
destinația unde se copiază /mută
Copierea
Copierea unui fișier sau director se realizează cu ajutorul comenzii cp.
Sintaxa comenzii este cp [opțiuni] <sursă> <destinație>
Opțiunile cele mai folosite pentru copiere sunt:
-r (copiere recursivă; copiază și copiii directoarelor, presupunând că există așa ceva în sursă)
-p (copiere cu păstrarea atributelor: permisiuni, dată)
13
-u (copiază doar dacă fișierul sursă este mai nou decât fișierul destinație sau dacă fișierul
destinație lipsește)
Mutarea
Mutarea unui fișier sau director se realizează cu ajutorul comenzii mv.
Sintaxa comenzii este mv [opțiuni] <sursă> <destinație>
Impli cit, mutarea este recursivă și păstrează atributele fișierelor. În cazul în care sursa și destinația se
găsesc pe aceiași partiție, la o mutare, se schimbă doar părintele fișierului sau directorului care se
mută. O operație de mutare este, astfel, mai puți n costisitoare decât o operație de copier e.
Redenumirea
Redenumirea este, de fapt, o mutare și se realizează cu ajutorul comenzii mv, în următoarele condiții:
în cazul în care sursa este un fișier și destinația este un fișier , se realizează copierea/mutarea
fișierului cu schimbarea numelui sursei;
în cazul în care sursa este un director și destinația nu există ca director, se realizează
copierea/mutarea directorului cu schimbarea numelui.
14
5. Operații asupra conținutului
5.1 Arhivarea și dezarhivarea
Arhivarea este procedeul prin care mai multe fișiere și directoare sunt adunate la un loc (într -un
fișier), real izând eventual și o reducere a dimensiunii prin eliminarea datelor care se repetă și
înlocuirea lor cu o serie de codificări.
În general, în cadrul procesului de arhivare se creează un dicționar cu secvențe de octeți frecvente și
o codificare a lor mai scurtă (pe mai puțini octeți). Arhiva conține atât dicționarul cât și conținutul
fișierelor dar, în loc de secvențele frecvente lu ngi, se regăsesc referințe către un dicționar. Dacă
fișierele conțin 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 privește mane vrarea fișierelor:
concatenarea (lipirea) fișierelor într -un fișier mai mare, din care să se poată extrage toate
fișierele și informațiile despre ele;
compresia fișierului mare, astfel încât să se reducă dimensiunea lui dar fără a se pierde din
informații.
Î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 fișier .tar conține fișiere necomprimate
împreună cu informații despre modul de extragere al acestora ( spre exemplu: de unde până unde se
găsește un fișier în cadrul arhivei). Din acest motiv, un fișier .tar este de obicei mai mare decât suma
tuturor dimensiunilor fișierelor ce sunt incluse în el.
Sintaxa comenzii este tar cvf nume_arhivă.tar <cale>
cu parametrii:
c creează arhiva;
v afișează ce anume se arhivează;
f nume_arhivă.tar specifică numele arhivei;
<cale> precizează directorul/directoarele/fișierele care vor fi arhivate.
Pentru a dezarhiva o arhivă .tar, se utilizează:
tar xvf nume_arhivă.tar [–C <cale_destinație>]
unde:
x dezarhivează (eXtract)
v afișează ce anume se dezarhivează;
f nume_arhivă.tar specifică numele arhivei;
-C <cale_destinație> specifică, opțional, locul unde se realizează dezarhivarea.
15
f și nume_arhivă.tar se consideră un sin gur parametru; din acest motiv, de fiecare dată când se
folosește opțiunea f pentru a indica un fișier arhivă, ace asta trebuie să apară ultima în lista de
opțiuni, fiind urmat ă imediat de numele fișierului de arhivă.
Pentru a realiza compresia unui fiș ier, 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 menționate anterior fo losind
parametrul z pentru gzip sau parametrul j pentru bzip2.
Pe lângă opțiunile de compresie/arhivare se mai pot folosi și alte opțiuni. Printre cele mai utile se
numără opțiunea –preserve , care impune păstrarea drepturilor de acces ]n momentul
arhivăr ii/dezarhivării.
16
5.2 Backup
Backup -ul este realizat pentru a păstra î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 acțiuni asupra date lor pe care toată lumea știe că ar fi bine să o
facă dar nu o face. Câteva metode de backup au fost deja prezentate. Tabelul 4 prezintă câteva
metode de backup și situațiile când sunt ele potrivite.
Metodă Descriere Compresie
tar+gzip/bzip2 Metodă foarte simplu de aplicat. Devine greu de folosit pentru
dimensiuni mari de date. Da
dd Metodă simplu de folosit și independentă de sistemul de fișiere.
Permite păstrarea intactă a structurii sistemului de fișiere. Inflexibilă
când vine vorba de recuperarea datelor. Utilă pentru cantități mari de
date. Nu
rsync E asemănătoare comenzii cp, dar la care s -a adăugat suport de
sincronizare între mai multe sisteme de calcul. Permite replicarea
structurii de fișiere (inclusiv permisiuni) între două sisteme de calcu l. Da
17
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 (asemănător rsync -ului). Backup -urile incrementale
salvează doar modificările ce s -au făcut de la ultimul backup până în
prezent, indiferent de tipul backup -ului. În acest fel se poate reveni la
orice stare anterioară, în măsura în care s -a realizat cel puțin 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 următoarele argumente:
if (input file) parametru care specifică fișierul de intrare
of (output file) parametru care specifică fișierul d e ieșire
bs (block size) parametru care specifică mărimea blocului ( în octeți)
count parametru ce specifică numărul de blocuri
În exemple de mai jos
crearea unui fișier (zero.txt) care conține numai zerouri folosind blocuri de 128 de octeți;
mărimea acestu ia este de 128 octeți x 8 = 1024 de octeți (1 Kilo octet) ;
crearea unui fișier (rand.txt) care conține date aleatoare folosind blocuri de 128 de octeți;
mărimea acestuia este de 128 octeți x 8 = 1024 de octeți (1 Kilo octet) ;
Efectuarea unui test de performanță la scrierea și citirea secvențială al unui fișier de 1 Giga octet pe
hard -disk folosind blocuri de 128 de octeți la scriere și de 64 de K ilo octeți la citire.
18
Ștergerea unui hard -disk cu zero sau cu date aleatoare.
Copierea unei partiții ca un fișier de imagine de disc pe o altă partiție.
5.4 Comanda tail
Comanda tail este folosită pentru a afișa ultimele linii dintr -un fișier. Sintaxa comenzii este:
tail [opțiuni] <nume_fișier>
Folosită fără nicio opțiune comanda tail afișează ultimele 10 linii.
Opțiunile cele mai des folosite sunt:
-c – afișează numărul specificat de octeți dintr -un fișier
-n – afișează numărul specificat de linii din fișier
-f – monitorizează fișierul
În exemplele următoare avem:
afișarea ultimelor 5 linii din fișier
afișarea ultimelor linii din fișier începând cu linia 3
monitorizarea log-ului de sistem
19
5.5 Comanda head
Comanda head este folosită pentru a afișa primele linii dintr -un fișier. Sintaxa comenzii este:
head [opțiuni] <nume_fișier>
Folosită fără nicio opțiune comanda head afișează primele 10 linii.
Opțiunile cele mai des folosite sunt:
-c – afișează numărul specificat de octeți dintr -un fișier
-n – afișează numărul specificat de linii din fișier
În exemplele următoare avem:
afișarea primelor 5 linii din fișier
afișarea primilor 10 octeți din fișier
20
5.6 Comanda sort
Comanda sort este folosită pentru a afișa în ordine sortată liniile unui fișier sau datele primite ca
argument . Sintaxa comenzii este:
sort [opțiuni] <nume_fișier>
Opțiunea -r afișează în ordine inversă.
5.7 Căutarea fișierelor
Comanda find
Comanda find folosește aboradrea brute -force pentru găsirea fișierelor căutând în arborele de
directoare. Comanda pune la dispoziție un set extins de criterii de căutare, cum ar fi numele
fișierului, utilizatorul, grup, tip, permisiuni, dată și altele. Exemple de criterii de căutare sunt
prezntate în continuare specificând opțiunea corespunzătoare a comenzii find:
-name căutare după numele fișierelor
-perm căutare după permisiunile fișierelor
-size căutare după dimensiunea fișierelor
Comanda următoare caută toate fișierele care au numele stat, în mod recursiv în directorul /usr:
21
Următoarea comandă caută toate fișierele care au permisiunile 644:
Pentru căutarea fișierelor cu dimensiunea mai mare de 50 KB se folos ește următoare a comen dă:
Comanda locate
Comanda locate folosește o bază de date locală în care sunt indexate toate fișierele. Comanda locate
este mai rapidă decât comanda find, dar pune la dispoziție un singur criteriu de căutare: numele
fișierului. Un alt dezavantaj este faptul că baza de date trebuie reactualizată periodic pentru a
conține informații despre fișierele noi create în s istem. Actualizarea se realizează cu ajutorul comenzii
updatedb .
Comand a întoarce o listă cu toate fișierele ale cărui nume conține șirul de caractere precizat ca
argument.
Unele distribuții Linux folosesc comanda slocate în locul comenzii locate . Avantajul comenzii slocate
este acela că nu permite afișarea fișierelor din directoarele în care utilizatorul nu are drepturi de
acces.
Comanda whereis
Această comandă poate fi folosită pentru a căuta într -un set restrâns de locații din sistem, de
exemplu directoarele cu fișiere binare, directoarele cu biblioteci sau directoarel e cu pagini de
manual. Comanda whereis nu poate fi folosită pentru a căuta în directoarele utilizatorului. Comanda
va căuta toate fișierele care încep cu șirul de caractere precizat ca argument. De exemplu, pentru a
localiza comanda ls sau gcc folosim urmă toarea comandă:
22
Comanda va afișa calea către executabil, dar și calea către pagina de manual a comenzii.
Comanda which
Folosind comanda which se poate obține calea către executabile care pot fi rulate din linia de
comandă. De exemplu, pentru a afla calea către comanda chmod se va folosi comanda următoare:
În mod implicit, comanda which returnează doar prima potrivire găsită, iar pentru a afișa lista
completă a potrivirilor se va folosi opțiunea -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 către executabil:
În cazul unui alias este afișată comanda echivalentă:
23
6. Drepturi de acces
O primă măsură de protecție a datelor o reprezintă drepturile de acces la fișiere. Atât timp cât un
utilizator nu are drepturi de administrator pe un anumit computer, acel utilizator se supune
drepturilor de acces la fișiere.
Tabelul 5 prezintă drepturi ce pot fi configurate pentru un fișier, fără a particulariza la un anumit tip
de sistem de fișiere.
Drept Descriere
citire dreptul de a deschide și citi conținutul unui fișier
scriere dreptul de a scrie într -un fișier
execuție dreptul de executa un fișier (aplicație) sau, pentru directoare, dreptul
de a intra într -un director
modificare dreptul de a modifica datele dintr -un fișier existent
ștergere dreptul de a șterge un fișier
Tabelul 5.
6.1 Utilizatori și grupuri de utilizatori vs. liste de acces
Există două metode mai întâlnite pentru definirea drepturilor de acces la fișiere:
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
următoarele entități:
posesorul unui fișier (user);
grupul care deține fișierul (group);
toți ceilalți 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 protecție suficient pentru majoritatea
situațiilor, ocupând un spațiu limitat.
În cadrul sistemului bazat pe liste de acces, unui fișier i se pot asocia mai mulți utilizatori și/sau
grupuri de utilizatori. Pentru fiecare dintre aceste entități pot fi configurate mai multe tipuri de
drepturi. Această variantă poate fi privită ca o extindere a sistemului c u drepturi de acces prezentat
anterior. Complexitatea poate face ca sistemul să fie destul de greu de întreținut.
Fiecare sistem de fișiere oferă un set de drepturi ce pot fi modificate pentru fiecare fișier în parte. ca
diferențe notabile între sistemele de fișiere se pot aminti următoarele:
FAT32 nu oferă suport pentru drepturi de acces la fișiere; există doar posibilitatea de a marca
un fișier ca read -only; orice utilizator poate să schimbe acest drept;
majoritatea sistemelor de fișiere î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;
24
NTFS are un sistem foarte avansat de drepturi de acces, bazat pe liste de acces; pentru
fiecare entitate adăugată în l ista unui anumit fișier pot fi configurate mai multe drepturi.
6.2 Clasificarea drepturilor de acces
Sistemele de fișiere din mediile Unix care au implementate standard drepturile de acces la nivel de
user/grup au la bază următorul set de drepturi de acces:
citire (read) – deschidere și citire de fișiere;
scriere (write) – creare și scriere de fișiere;
execuție (execute ) – execuție fișiere/intrare în directoare;
În aceste sisteme de fișiere există 3 entități pentru care poate fi stabilită orice combinație a
drepturilor definite mai sus:
utilizator (user ) – posesorul fișierului;
grup (group ) – grupul de care aparține fișierul;
alții (others ) – utilizatorii care nu fac parte din grupul fișierului și nici nu sunt posesori.
6.3 Vizualizarea drepturilor de acces
Pentru a vedea drepturile de acces pentru un anumit fișier este suficientă utilizarea comenzii ls cu
parametrul -l (sau a comenzii ll). Spre exemplu, pentru a vedea drepturile de acces asupra unui fișier,
transmitem ca parametru comenzii ll direct numele fișierului:
Drepturile de acces sunt date de primele 10 caractere din ieșirea comenzii ll:
primul caracter reprezintă tipul fișierului:
– – = fișier normal
– d = director
– p = pipe
– b = dispozitiv bloc
– c = dispozitiv caracter
– l = legătură simbol ică
următoarele 3 caractere (rw -) reprezintă drepturile de acces pentru utilizatorul root , care
este deținătorul fișierului; se observă că utilizatorul are doar drepturile de citire respectiv
scriere, dar lipsește dreptul de execuție;
următoarele 3 caracte re (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 execuție;
25
următoarele 3 caractere (r –) reprezintă drepturile de acces pentr u 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 execuție;
Există două moduri de reprezentare a drepturilor:
în formă numerică : pentru fiecare ent itate există o cifră în baza 8 care descrie drepturile,
câte un bit pentru fiecare drept;
în formă literară : drepturile sunt referite direct prin inițiala 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 drepturil or de acces
În sistemul Linux utilitarele de bază sunt chown și chmod . Primul oferă posibilitatea schimbării
proprietarului și a grupului căruia îi aparține respectivului fișier , în vreme ce al doilea permite
modificarea drepturilor.
Sintaxa comenzii chown este: chown utilizator[:grup] <nume_fișier >
În exemplul de mai jos a fost modificat proprietarul și grupul fișierului :
Dacă se dorește modificarea utilizatorului sau a grupului, se folosește doar o parte a sintaxei:
26
În mediul Linux, un utilizator neprivilegiat nu poate schimba proprietarul și/sau grupul unui fișier. Î n
Linux, comanda chown este folosită doar de utilizatorul privilegiat.
Comanda chmod permite modificarea drepturilor de acces ale unui fișier. Comanda poate fi folosită
doar de utilizatorul ce deține fișierul sau de utilizatorul privilegiat. Noile drepturi ale fișierului pot fi
precizate în formă literală sau octală.
Pentru schimbarea drepturilor se va folosi mai întâi forma literală. Drepturile pot fi precizate pentru
oricare dintre cele trei niveluri de privilegiu: utilizator, grup, alți utilizatori printr -o singură literă: u, g,
o. Drepturile pot fi:
adăugate prin folosirea operatorului +;
înlăturate 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.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sisteme de Operare [627158] (ID: 627158)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
