1. Introducere
Linux are o structura complet diferita de organizare a datelor spre deosebire de windows. Pentru a intelege modul cum functioneaza datele sub Linux, este vital sa intelegeti cum Linux isi organizeaza in ansamblu datele,cum pot fi accesate datele si cum isi denumeste componentele hardware. In continuare se va face o descriere detaliata despre acestea.
2. Utilizatori si permisii
In Linux, accesul la fisiere este permis numai pe baza unui utilizator. Asta inseamna ca numai logat veti putea accesa directoarele si fisierele sistemului.
Acesti utilizatori au drepturi numai pe anumite fisiere. Mai exact pe un anumit fisier pot avea doar drept de citire, sau la anumite fisiere le este restrictionat accesul. Acest lucru este facut cu ajutorul permisilor.
2.1 Utilizatori
Utilizatorii sistemului sunt de 2 tipuri: cei facuti de utilizator si cei ai sistemului(numiti si demoni). Demonii nu ofera posibilitatea de autentificare si sunt folositi de anumite programe pentru a lansa anumite servicii si a permite accesul in anumite parti ale computerului. Un exemplu de demon este gpm, care permite folosirea mouse-ului fara a fi logat.
Utilizatorii au in general drepturi restrictionate. Cel mai puternic utilizator se numeste “root”. El poate accesa orice fel de fisiere, crea si sterge useri, restrictiona accesul anumitor utilizatori. Pentru a adauga un utilizatorr folositi comanda adduser iar pentru a sterge un utilizator folositi userdel. Pentru a schimba parola unui utilizator folositi comanda passwd nume_utilizator.
Utilizatorii normali au un director in care au drepturi de scriere, si care se afla in general in /home/numa_utilizator. Acesta se cheama home directory. Home directory-ul utilizatorului root este /root.
Fiecare utilizator este insotit de un grup cu acelasi nume. Aceste grupuri sunt necesare cand doriti de exemplu sa dati acces mai multor utilizatori cu drepturi reduse pe in anumit device. Pentru aceasta este necesara inscrierea utilizatorului in grupul respectiv. Practic, daca se dau un anumit drept asupra unui grup, toti utilizatorii din acel grup primesc aceste drepturi. Iata care este comanda care da acces utilizatorului x pe placa de sunet:
usermod -G x audio
Acestea ar fi in linii mari proprietatiile utilizatorului.
2.2 Permisii
Permisiile sunt proprietati date unui fisier, in functie de care acesta poate fi citit, scris si/sau modificat de catre un utilizator anume. Se poate face o analogie a permisilor cu atributele din DOS ale fisierelor
Permisille definesc utilizatorul care are aces la fisier, grupul la care face acces, si drepturi de citire/scriere/executare. Aceste permisii se pot seta cu ajutorul literelor sau a cifrelor.
Cea prin litere se face prin folosirea setului de caractere ‘r’,'w’,'x’.'r’ vine de la read, si ofera drept de citire asupra fisierului resp.’w’ vine de la Write, si da drept de scriere asupra unui fisier. ‘x’ vine de la Execute, si da drept de executie asupra unui fisier. Un utilizator poate sa aiba pe un fisier toate aceste drepturi, numai anumite drepturi sau nici un drept (accesul la resp fisier ii este restrictionat).
Pentru a seta permisile se foloseste utilitarul chown. Pentru a adauga un drept, va trebui sa dati comanda “chown + drept nume_fisier”, iar pentru a scoate un drept va trebui sa dati comanda “chown – drept nume_fisier”. De exemplu, daca vreti sa dati drept de scriere si citire asupra unui fisier, va trebui sa dati comanda “chown + rw nume_fisier” iar pentru a scoate drepurile de scriere si citire asupra unui fisier va trebui sa dati comanda “chown -rw nume_fisier”.
Pentru a seta utilizatorul si grupul care sa aiba acces pe un anumit fisier va trebui sa folositi utilitarele chown si chgrp. De exemplu, pentru a da utilizatorului “x” acces pe fisierul “fisier1″ va trebuie sa dati comanda “chown x fisier1″. Daca doriti sa dati grupului “y” acces pe acelasi fisier “fisier1″ va trebui sa dati comanda “chgrp y fisier1″.
Date fiind comenzile pentru setarea drepturilor, va trebui sa stiti si sa cititi drepturile unui fisier existent. Pentru asta, va trebui sa dati comanda “ls -al nume_fisier” sau “ls -al” in directorul in care se afla fisierul sau “ls -al” o_parte_din_nume*” care va afisa tot ce incepe cu literele anterioare caracterului ‘*’. Iata ceea ce este afisat la comanda “ls -al fisier”:
-rwxr-xr-x 1 florin root 647150 Jul 11 00:37 fisier
Prima parte -rwxr-xr-x arata ca fisierul are toate drepturile. ‘florin’ este utilizatorul care are acces la acest fisier. ‘root’ este grupul care are acces la acest fisier. 647150 este marimea in biti a fisierului. Jul 11 00:37 este ultima data la care a fost modificat fisierul. fisier este numele fisierului caruia i se afiseaza datele.
3. Principalele directoare
Linux are o organizare foarte precisa a directoarelor. De accea este important sa cunoasteti ceea ce se gaseste in fiecare din ele.
3.1 /
/ este directorul radacina, sau root. Este baza celorlalte subdirectoare. O analogie putin fortata ar putea echivala / cu My Computer din windows, deoarece el grupeaza toate hdd-urile atasate sistemului si toate componentele hardware si virtuale.
La acest subcapitol trebuie discutata si notiunea de montare. Sub Linux, pentru a folosii un suport de memorie, acesta trebuie montat. fiecare partitie trebuie montata intr-un director. In concluzie, partitia principala de linux(de multe ori si singura) se monteaza in /.
3.2 /bin,/sbin,/usr/bin,/usr/sbin
In aceste directoare se afla binarele sistemului. Pentru ca o comanda sa fie valabila, va trebui sa aveti binarul in unul din aceste directoare. De exemplu binarul lui “ls” se afla in “/bin/ls”
3.3 /home, /root
Directorul /home gazduieste directoarele home ale utilizatorilor sistemului. Asta inseamna ca in mod normal, utilizatorul x va avea home directory /home/x. In home directory, utilizatorul resp are drept de scriere. De asemenea in home directory se gasesc setarile particulare pentru resp user. O execeptie a acestei reguli o face utilizatorul “root”, care are home directory-ul in /root.
3.4 /usr/local
In acest subdirector se gasesc in general programele instalate prin compilarea codului sursa. Este bine sa creati o partitie separata pentru acest director, deoarece compilarea unui program din codul sursa in general necesita mai mult timp, si in cazul unei prabusiri a sistemului, la o reinstalare nu va mai fi nevoie de recompilarea programului respectiv. Un exemplu de program care dupa compilare se instaleaza in /usr/local este kde: /usr/local/kde
3.5 /tmp
Acest director este folosit in general de programe pentru crearea fisierelor temporare. Un exemplu de program care foloseste foarte mult directorul /tmp este wine(Windows Emulator). Si pentru /tmp este recomandabila folosirea unei partitii separate, montata fara drept de executie. Astefel veti putea sa evitati o parte din exploituri.
3.6 /dev,/proc
Aceste fisiere sunt sisteme de fisiere virtuale(ele nu exista pe hdd)./dev face legatura intre device-uri si software. Mai multe detalii despre acest director in capitolul urmator. /proc se ocupa de setarile kernel-ului (procesele care ruleaza in memorie, filtrare de pachete). Tipul de fisiere /proc este ceva mai complex, si nu va fi discutat detaliat. Ceea ce trebuie sa retineti este ca este virtual, si ca in cazul in care doriti sa transferati sistemul va trebui sa nu-l copiati.
3.7 /etc
Acest director contine setarile globale ale sistemului.Toate programele instalate sub forma de package(rpm,deb etc) isi fac cel putin un fisier de configurare in /etc/. Acest director contine fisiere vitale, iar o proasta configurare a unui din acestea poate duce la prabusirea sistemului.
3.8 /var
Var este asemuit de cele mai multe ori serverului de mail. Este adevarat, serverele de mail depoziteaza in general in /var mesajele. Unele distributii, cum ar fi Debian, isi depoziteaza packetele download-ate cu ajutorul utilitarelor de upgrade in subdirectoare din /var/cache (in exemplul cu Debian, apt-get depoziteaza fisierele download-ate in /var/cache/apt/archives. Din motive de securitate, este bine sa va creati o partitie separata pentru /var, iar daca rulati un server de mail sa ii dati o marime mare acestei partitii.
3.9 /lib, /usr/lib
Aceste directoare contin librariile sistemului. Aceste librarii sunt analoage cu DLL-urile windows-ului. Fiti foarte atenti cand stergeti ceva de aici, pentru ca un program poate sa nu mai ruleze in lipsa unei librarii. De asemenea, daca ati copiat o librarie in aceste directoare, pentru a putea fi “vazuta” de programe, folositi comanda ldconfig.
3.10 /boot
In boot se gaseste binarul kernel-ului, de a ceea importanta acestui director este foarte mare. Aici se gasesc toate cele necesare boot-arii Linux-ului. Daca rulati mai multe sisteme de operare, este foarte bine sa faceti o partitie separata pentru acest director.
3.11 /mnt
In acest director se monteaza in general partitile secundare si perifericele(floppy, cdrom/dvdrom etc). In unele distributii, cdrom-ul este montat in setarile standard in /cdrom si floppy-ul in /floppy. Este bine sa montati toate partitiile secundare in /mnt, deoarece confera o oarecare ordine in sistem.
4. Apelarea componentelor hardware si a celor virtuale
In Linux, toate componentele hardware si driverele virtuale se afla in directorul /dev. Directorul /dev face legatura dintre kernel(care contine driverul propriu-zis) si componenta hardware. Asta inseamna ca un device nu functioneaza daca nu are driver in kernel, chiar daca se gaseste in /dev.In continuare vor fi enumerate numele principalelor componente hardware.
4.1 Materiale de stocare(hard, cdrom/dvdrom,floppy)
Pentru a intelege modul in care Linux isi noteaza partitiile, va trebui facuta o mica introducere hardware a problemei. Dupa cum stiti, pe majoritatea placilor de baza exista 2 magistrale IDE, pe care se pot conecta in total 4 device-uri(hdd sau cdrom, cate 2 pe fiecare IDE). Pe fiecare din aceste IDE-uri, unul din device trebuie sa fie master si unul slave. Astfel pe primul IDE avem Primary Master si Primary Slave iar pe al doilea avem Secondary Master si Secondary Slave. Pentru mai multe informatii cititi cartea placii de baza pe care o detineti. De asemenea, tot pe placa de baza se gaseste si o magistrala floppy, pe care se pot conecta 2 device-uri(floppy de 3,5″ sau 5,2″ sau zip drive).
Linux numeste cele 4 mufe de conectare pe care le ofera cele 2 IDE-uri sub forma hd#. ‘#’ este de la a la d, si denumeste mufa in care este conectat device-ul. De exemplu, daca pe prima magistrala, primary master este hard-ul si primary slave este cdrom-ul, partitile hard-ului vor fi notate hda1, hda2, …, hdaN(N=nr de partitii) iar cdrom-ul va fi notat hdb. Pe a doua magistrala master-ul va fi hdc si slave-ul hdd. Datorita regulii conform careia toate device-urile din linux se gasesc in /dev, componentele conectate la IDE-uri vor fi apelate sub numele /dev/hda1, /dev/hda2…, /dev/hdaN, /dev/hdb1, /dev/hdb2…, /dev/hdbN, /dev/hdc1, /dev/hdc2…, /dev/hdcN, /dev/hdd1, /dev/hdd2…, /dev/hddN. Retineti faptul ca un device de tipul cdrom/dvdrom nu contine cifra in nume (poate fi de forma /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd).
Device-urile dupa magistrala de floppy sunt notate /dev/fd0 (principalul) si /dev/fd1.
4.2 Porturi(COM1-COM4,LPT,USB,PS2
Porturile seriale (numite in dos COM1-COM4) sub Linux se gasesc astfel:
COM1 ………. /dev/ttyS0
COM2 ………. /dev/ttyS1
COM3 ………. /dev/ttyS2
COM4 ………. /dev/ttyS3
Portul paralel(LPT) se gaseste sub linux cu numele de /dev/lp0
Portul PS2 se gaseste cu numele de /dev/psaux
La USB, lucrurile sunt ceva mai complicate, deoarece totul depinde de device-ul care este atasat pe respectivul port. De aceea nu pot da o regula generala.
4.3 Placa de retea
In Linux, placa de retea face exceptie de la regula care spune ca toate device-urile se afla in dev. Placile de retea sunt notate astfel:
eth0, eth1, eth2, ….., ethN(N=numarul de placi)