Sunteți pe pagina 1din 73

Administrarea sistemelor Linux

Drago Acostchioaie
Cap. 1. Introducere
1.1. Scopul cursului
Scopul cursului Administrarea sistemelor Linux este iniierea n configurarea i
administrarea unui server avnd instalat sistemul de operare Linux, asigurarea bunei
funcionri a serviciile pe care acesta le ofer i meninerea securitii reelei.
1.2. Bibliografie
Suportul de curs are la baz lucrarea Drago Acostchioaie, Administrarea i
configurarea sistemelor Linux, ed. a II-a, Polirom, Iai, 2003 (http://www.adt.ro/
admin/).
Alte referine bibliografice recomandate sunt urmtoarele:
1. Kirch, O.; Dawson, T., Linux Network Administrators Guide, 2
nd
Edition,
OReilly & Associates, Inc., 2000: http://www.oreilly.com/catalog/
linag2/.
2. Hunt, C., Linux Network Servers, SYBEX Inc., Alameda, 2002.
3. Frisch, ., Essential System Administration, OReilly & Associates, Inc.,
Sebastopol, 1995.
4. Mourani, G., Securing and Optimizing Linux: The Ultimate Solution, Open
Network Architecture Inc., 2001: http://www.openna.com/.
5. http://www.linux.org : situl oficial al sistemului de operare Linux.
6. http://www.linuxhq.com : o baz de date complet de surse, patch-uri i
documentaii Linux.
7. http://sourceforge.net : cel mai puternic sit dedicat dezvoltrii de programe
open-source.
8. http://freshmeat.net : cea mai mare baz de date de programe open-source.
9. http://www.adt.ro/projects/linux-ro/: documentaii referitoare la Linux
traduse n limba romn.
1.3. Ce este Linux
Linux este un sistem de operare gratuit (open source), compatibil UNIX. UNIX
este un sistem multi-tasking - putnd executa n mod concurent un numr nedeterminat de
programe, i multi-utilizator - utilizatorii avnd acces la resursele calculatorului de la
diferite terminale plasate local sau la distan. Linux respect standardele POSIX, suport
toat gama de aplicaii GNU i posed o interfa grafic X Window System.
Scurt istoric
n anul 1969, cercettorii Kenneth Thompson i Dennis Ritchie de la AT&T Bell
Labs au nceput dezvoltarea unui sistem de operare numit UNIX, pe un calculator PDP-7.
Multe idei din UNIX au fost preluate dintr-un sistem anterior, MULTICS. n 1972,
sistemul a fost rescris n proasptul nscut limbaj de programare C. Astfel, UNIX-ul a
devenit portabil i pe alte maini, deoarece doar o mic parte a sa mai era realizat n
limbaj de asamblare. Sistemul a fost lansat n curnd n comunitatea academic, putnd
astfel nva de la utilizatorii si. n 1979 a fost lansat versiunea V7 de UNIX, care a
constituit ulterior "printele" celorlalte implementri.
O serie de profesori de la Universitatea Berkeley a dezvoltat propria variant de
UNIX, denumit BSD (Berkeley Software Distribution), n timp ce AT&T continua n
paralel dezvoltarea propriei variante, culminnd cu UNIX System V.
n anii care au urmat, BSD a fost preluat i de alte organizaii, rezultnd ale
variante derivate din acesta, cum ar fi una proprietar, realizat de Sun Microsystems i
denumit Solaris, i trei open-source, denumite FreeBSD, NetBSD i OpenBSD. De
asemenea, System V a constituit i el o serie ntreag de "clonri" i versiuni derivate.
Alt pas important n evoluia UNIX-ului a fost nfiinarea, n 1984, de ctre
Richard Stallman (cercettor pe atunci la celebrele MIT AI Labs), a fundaiei FSF (Free
Software Foundation), care apr interesele autorilor de programe gratuite (pentru
informaii suplimentare, a se vizita situl http://www.gnu.org). El a pornit proiectul
GNU (denumire recursiv, dat n spiritul hacker-ilor anilor '80, nsemnnd GNU's Not
Unix), cu scopul de a crea o versiune gratuit (open-source) a sistemului UNIX, din
considerentul c toate cunoinele nglobate ntr-un program trebuie s fie publice.
Primul program realizat de ctre Stallman n cadrul proiectului GNU a fost
Emacs, care a devenit operaional n 1985. Editorul de texte Emacs a fost fcut disponibil
pe serverul ftp.prep.ai.mit.edu. Fiindc multe persoane erau interesate de acest
editor, dar nu aveau acces la Internet, Stallman a pus la dispoziia publicului o band
(tape) coninand programul, contra sumei de 150$. n acest mod a nceput prima afacere
de distribuie de software free.
n anul 1990, proiectul coninea deja o serie complet de aplicaii (cum ar fi
compilatorul GCC, editorul Emacs, precum i un numr impresionant de alte programe),
singura component major care lipsea fiind nucleul sistemului de operare.
n acest moment intervine n scen sistemul Linux.
Linux a aprut iniial ca un proiect al lui Linus Torvalds, student pe atunci la
Universitatea din Helsinki. Prima versiune funcional a nucleului Linux a fost lansat pe
5 octombrie 1991. Acest sistem de operare a fost combinat cu programele GNU, diferite
programe BSD precum i cu sistemul grafic X Window de la MIT, pentru a forma un
sistem de operare complet, denumit GNU/Linux.
Linux a cunoscut ncepnd cu lansarea sa un succes crescnd, ajungnd n acest
moment pe locul al doilea din punct de vedere al numrului de utilizatori. n momentul
fa se estimeaz c exist circa 18 milioane de utilizatori de Linux (pentru detalii, a se
vedea situl http://counter.li.org).
Un studiu recent efectuat de IDC relev faptul c Linux este privit ca avand
avantaje semnificative fa de alte sisteme de operare n ceea ce privete preul, costul de
administrare, stabilitatea i performana.
Spre deosebire de alte sisteme de operare, nici o firm nu este proprietara
sistemului Linux. Mai mult dect att, el este protejat de Licena Public GNU, care
stipuleaz faptul c se poate copia i utiliza gratuit codul programelor, cu condiia de a se
permite i altora s fac acelai lucru. Linux i toate programele distribuite mpreun cu
distribuia Linux sunt gratuite i, permis de licena mai sus menionat, poate fi copiat sau
redistribuit fr nici un fel de restricii.
Sistemul Linux este alctuit propriu-zis dintr-un nucleu (kernel) i un numr uria
de programe i utilitare. Este un sistem de operare complet, care conine practic orice tip
de aplicaie, putnd astfel juca o varietate de roluri, printre care:
- Server. Sistemul Linux conine un suport excepional pentru reea, pund
oferi att serviciile specifice Internet-ului, cum ar fi Web, FTP, pot
electronic, grupuri de discuii etc., precum i alte servicii de reea, cum ar fi
server de imprimante, server de fiiere (NFS) .a.m.d. De asemenea, el poate
substitui un server Windows NT/2000/XP sau Novell Netware. Stabilitatea,
fiabilitatea i securitatea sa sporite i confer posibilitatea de a fi utilizat pe
servere high-end i n medii critice.
- Sistem personal. Linux poate fi utilizat pentru redactarea de texte, tiprirea
la imprimant, conectarea i navigarea pe Internet, citirea corespondenei. n
plus, este o platform multimedia perfect pentru jocuri, pentru vizionarea
de filme sau audiia de piese muzicale.
- Sistem utilizat la serviciu. Sistemul Linux conine o suit complet de
programe pentru birou, cum ar fi programe de calcul tabelar, redactare
profesionist de texte, realizarea de prezentri etc. Instrumentele pentru
acces la Internet reprezint i ele un punct forte al acestui sistem.
- Sistem educaional. Atuul principal este costul practic nul al sistemului.
Instalarea de sisteme proprietare pe multe calculatoare poate fi extrem de
costisitoare. Linux include aplicaii, compilatoare i medii integrate de
dezvoltare a cror calitate este n general superioar celei a programelor
comerciale.
Un sistem Linux, alctuit dintr-un program de instalare, nucleu i aplicaii gata
compilate se numete distribuie Linux. Numeroase companii i organizaii au realizat
asemenea distribuii. Acestea sunt disponibile gratuit pe Internet, dar pot fi achiziionate
i contra cost ca pachete formate din CD-ROM-uri i manuale de utilizare. Distribuiile
Linux cele mai rspndite sunt Fedora/Red Hat (http://fedora.redhat.com),
Mandrake (http:// www.mandrake.com), SuSE (http://www.suse.de), Debian
(http://www.debian.org), Caldera (http://www.caldera.com) i Slackware
(http://www.slackware.org) i Knoppix (distribuie "live", care poate fi folosit prin
pornirea direct de pe CD, nefiind necesar instalarea acesteia, disponibil la
http://www.knopper.net/knoppix/index-en.html).Diferenele dintre aceste
distribuii constau doar n sistemele diferite de instalare i programele de configurare
folosite. Majoritatea acestor distribuii, precum i multe altele, pot fi gsite pe situl
http://www.linuxiso.org.
1.4. Arhitectura sistemului Linux
Ca n cazul oricrui sistem de operare compatibil UNIX, principala component a
Linux-ului o constituie nucleul (kernel). Acesta este ncrcat n memorie dup pornirea
calculatorului, de ctre un program special numit ncrctor de boot. Similar programelor
obinuite, nucleul accept o serie de argumente i parametri, acetia putnd fi transmii
prin intermediul ncrctorului de boot. Nucleul este lansat n execuie i ramne n
memoria volatil (RAM) tot timpul utilizrii sistemului Linux.
Driverele pentru dispozitivele hardware i anumite funcii ale nucleului pot fi
compilate fie monolitic (ca parte integrant din nucleu) fie ca module; n acest ultim caz
ele vor fi ncrcate n momentul n care devin necesare sau la dorina utilizatorului.
n cadrul sistemului pot rula mai multe programe n regim concurent, regsite sub
numele de procese. Exist o serie de procese speciale, care ruleaz n fundal (adic nu
interacioneaz cu utilizatorul), cu rolul de a asigura diverse servicii (cum ar fi tiprirea la
imprimant, bazele de date, server Web .a.m.d.). Aceste procese poart denumirea de
daemoni.
Interfaa grafic utilizat pe sistemele Linux este X Window, o interfa complex,
cu posibilitatea lucrului n reea. Aceast interfa poate cpta aspecte i moduri de
interaciune cu utilizatorul total diferite, prin intermediul mediilor desktop precum KDE
i GNOME, sau a managerelor de fereastr. X Window este practic un ansamblu de
procese, care pot rula eventual i pe calculatoare diferite, existnd posibilitatea ca o
aplicaie s se execute pe un calculator iar afiarea s se fac pe un altul.
Accesul la resursele sistemului se realizeaz prin intermediul utilizatorilor creai
n sistem, n funcie de drepturile atribuite acestora. Astfel, se asigur o bun securitate a
sistemului. Administrarea sistemului se efectueaz de ctre un utilizator special, denumit
root.
Cap. 2. Noiuni de baz
2.1. Pornirea sistemului Linux
Imediat dup punerea sub tensiune, BIOS-ul testeaz sistemul, caut i
iniializeaz echipamentele periferice, iar apoi caut discul de pe care va porni sistemul.
BIOS-ul verific sectorul de boot, MBR (Master Boot Record), i ncarc coninutul n
memorie i i pred controlul. MBR-ul citete mai departe ncrctorul de boot i l
execut. ncrctoarele de boot folosite de Linux sunt GRUB i LILO.
2.1.1. ncrctorul de boot
n cazul utilizrii programului GRUB, pot fi utilizate tastele-sgei pentru
selectarea sistemului de operare dorit. Dac utilizatorul nu acioneaz nici o tast n
intervalul de timp afiat pe ecran, va fi pornit sistemul implicit (pe care se afl cursorul).
Poate fi folosit de asemenea i tasta "e" pentru a modifica configuraia GRUB sau "a"
pentru a edita argumentele trimise nucleului sistemului.
Dac se folosete programul LILO, la prompterul afiat pe ecran trebuie introdus
denumirea sistemului care va fi pornit (de exemplu linux sau win), i tasta ENTER pentru
a porni nucleul. Opional, denumirea sistemului poate fi urmat de argumentele care vor
fi trimise nucleului. Tasta Tab va afia lista de sisteme definite. Dac utilizatorul nu apas
nici o tast ntr-un interval prestabilit de timp, va fi pornit sistemul implicit.
2.1.2. Pornirea sistemului
O dat ales de ctre utilizator sistemul de operare Linux, ncrctorul de boot
citete imaginea nucleului i i cedeaz controlul. Nucleul identific echipamentele
cunoscute din sistem i ncarc driverele pentru ele, monteaz sistemul de fiiere
rdcin, iar apoi pornete o serie de scripturi care pregtesc mediul UNIX. Astfel, sunt
montate restul sistemelor de fiiere, este iniializat conexiunea la reea (dac exist) i
sunt pornite serviciile pe care le va oferi sistemul (cum ar fi serviciul de tiprire la
imprimant, serverul de baze de date, serverul Web .a.m.d.).
Pornirea sistemului Linux
n timpul pornirii sistemului Linux, pot fi remarcate o serie de mesaje care de
obicei se deruleaz cu vitez pe ecran. Primele mesaje afiate sunt cele generate de
nucleu, dup care urmeaz mesajele cauzate de pornirea serviciilor, despre care am
discutat mai sus.
Mesajele generate de ctre nucleu indic detectarea echipamentelor hardware de
ctre driverele n cauz. Ele sunt utile att n vederea diagnosticrii funcionrii acestora
ct i pentru verificarea corectitudinii configuraiei n care a fost compilat nucleul.
Mesajele nucleului pot fi revzute ulterior prin apelul comenzii dmesg.
Mesajele legate de pornirea serviciilor sistemului conin descrierea serviciului i
un cod de succes a pornirii serviciului. Astfel, codurile afiate pot fi: OK - avnd culoarea
verde, i semnificnd pornirea cu succes a serviciului, FAILED - avnd culoarea roie,
semnificnd o pornire euat, i PASSED - avnd culoarea galben, atunci cnd pornirea
unui serviciu a generat o eroare, aceasta putnd fi ns corectat.
n funcie de configuraie, sistemul va porni sistemul de autentificare a
utilizatorilor, fie n mod text, fie n mod grafic (vezi infra).
2.1.3. Intrarea i ieirea din sistem
Fiecare persoan creia i este permis s lucreze pe un sistem UNIX trebuie s
posede un cont de utilizator pe respectivul calculator. Fiecare utilizator are asociate un set
de drepturi, avnd astfel acces la o anumit serie de resurse ale sistemului. Acesta deine
un director propriu, n care sunt stocate fiierele personale, inclusiv configurrile
aplicaiilor etc.
Orice sesiune de lucru UNIX ncepe cu autentificarea i acceptarea utilizatorului
n sistem. Pentru a a-i fi permis accesul, acesta trebuie s furnizeze numele su de
utilizator i parola.
Intrarea n sistem grafic X Window va conduce la ncrcarea mediului desktop
preferat de utilizator (KDE sau GNOME), n configuraia specific acestuia, nsoit de
programele configurate a fi pornite automat.
Ieirea din sistem n cazul utilizrii X Window se face prin selectarea opiunii
Logout, controlul fiind cedat sistemului de autentificare grafic sau consolei virtuale din
care a fost lansat n execuie, dup caz.
Intrarea la consol va fi de felul:
Fedora Core 3
Kernel 2.6.10 on an i686
fenrir login: dragos
Password:
Dup introducerea corect a parolei (care nu va fi afiat pe ecran), va fi pornit
execuia interpretorului de comenzi.
Ieirea din sistem (echivalnd cu ncheierea execuiei interpretorului de comenzi)
se face prin comanda exit sau logout. Poate fi folosit i combinaia de taste Ctrl+D,
care genereaz n UNIX codul pentru sfrit de fiier (End Of File).
2.1.4. Oprirea sistemului
nainte de oprirea sistemului, toate programele n curs de execuie trebuie nchise,
deoarece este posibil ca acestea s piard informaii nesalvate. n acest sens, se
recomand verificarea tuturor consolelor virtuale pentru a nu exista aplicaii pornite,
nainte de oprirea calculatorului. Pentru oprirea sistemului din sistemul X Window, se va
selecta optiunea Logout iar apoi, din sistemul de autentificare, opiunea Shutdown -
oprire, sau Reboot - repornire (n unele versiuni Restart).
Oprirea sistemului Linux
Oprirea sistemului din mod text se va face din utilizatorul root sau utilizatorul
curent dac i sunt conferite drepturi n acest sens, prin intermediul comenzii halt -
oprire sau reboot - repornire. Util este i comanda poweroff, care va trimite
calculatorului comanda de nchidere automat, dac configuraia sa hardware permite
acest lucru. Repornirea sistemului se poate face i prin apsarea combinaiei de taste
Ctrl+Alt+Del.
2.1.5. Consola sistemului
Din perspectiva UNIX clasic, accesul la sistem se face prin intermediul
terminalelor, aflate local sau la distan. Linux implementeaz un sistem care permite
deschiderea mai multor sesiuni de lucru la consol, concept care poart numele de
terminal virtual. La pornirea sistemului n mod text (consol), controlul este predat
terminalului virtual cu numrul 1. Comutarea ntre terminalele virtuale se face cu ajutorul
combinaiei de taste Alt + Fn, unde n reprezint numrul terminalului.
O excepie notabil o face sistemul X Window, cruia n momentul pornirii i se
aloc un terminal virtual, i anume cel avnd numrul egal cu numrul maxim de
terminale virtuale alocate plus unu. Spre exemplu, dac numrul maxim de terminale
virtuale este 6 (configuraia standard dup instalare), atunci sistemul X Window va utiliza
terminalul 7. Comutarea din mod grafic n mod text se va face prin intermediul
combinaiei de taste Ctrl + Alt + Fn.
Sesiunile de lucru clasice se desfoar n mod text, de aceea acest mod mai este
cunoscut i sub numele de mod consol. Aa cum menionam i mai devreme, sesiunea
de lucru ncepe odat cu autentificarea corect a utilizatorului n sistem i pornirea
execuiei interpretorului de comenzi (shell). Sesiunea se ncheie odat cu ncetarea
execuiei acestui interpretor.
Istoricul informaiilor afiate pe ecranul terminalului virtual (n limita dimensiunii
spaiului de memorie alocat pentru aceasta) poate fi accesat prin intermediul
combinaiilor de taste Shift+PgUp (pagina precedent) respectiv Shift+PgDn (pagina
urmtoare). Aceast operaiune poate fi realizat numai pentru informaiile afiate dup
ultima schimbare a terminalului.
Terminalele virtuale permit i utilizarea mouse-ului. Astfel, selecia efectuat cu
ajutorul cursorului mouse-ului poate fi copiat la locaia curent a cursorului prin
apsarea butonului-dreapta.
Dac se utilizeaz sistemul X Window, o sesiune de lucru (nsoit n mod evident
de lansarea interpretorului de comenzi) poate fi deschis prin intermediul aplicaiilor
konsole, gnome-terminal sau xterm. n mod evident, utilizatorul care deine sesiunea este
cel care a pornit mediul X Window.
2.2. Interpretorul de comenzi
Un interpretor de comenzi (shell) reprezint un program capabil de a executa
comenzi introduse de utilizator i de a controla modul de afiare a rezultatelor acestor
comenzi. Un shell UNIX este att un interpretor de comenzi, interfa ntre utilizator i un
larg set de comenzi i utilitare puse la dispoziie, ct i un limbaj de programare care
ofer mecanisme complexe de operare cu sistemul.
Bash este un interpretor de comenzi specific sistemului de operare Linux. Numele
su este un acronim de la Bourne-Again Shell, dup Steve Bourne, autorul shell-ului sh
pentru UNIX, predecesorul bash-ului.
2.2.1. Generaliti
Exist dou categorii de comenzi care pot fi apelate prin intermediul
interpretorului:
comenzi interne (builtin, care se gsesc implementate n cadrul shell-ului); ca exemple
de comenzi interne putem enumera cd, echo sau kill lista tuturor comenzilor
interne poate fi vizualizat prin intermediul comenzii help.
comenzi externe (acestea se gsesc separat fiecare n fiiere executabile; de exemplu,
passwd, ls sau mail). Comenzile externe pot fi fiiere executabile (programe binare
rezultate n urma procesului de compilare din programe surs scrise n C sau alte
limbaje compilabile) sau script-uri (fiiere de comenzi, interpretate de un procesor de
comenzi, cum ar fi bash sau Perl).
Shell-ul de cele mai multe ori este apelat interactiv, n sensul c va dialoga cu
utilizatorul, interpretnd i executnd comenzile introduse de acesta. Utilizarea
interactiv a interpretorului de comenzi (de la invocarea sa i pn la terminarea
activitii) constituie o sesiune de lucru.
Pornirea interpretorului de comenzi se poate face n dou moduri:
n mod automat, la conectarea n sistem, fie de la consola calculatorului, fie de la
distan prin telnet sau ssh, dup autentificarea utilizatorului;
din cadrul altui program care necesit rularea interpretorului de comenzi pentru a
executa diferite comenzi sau la cererea utilizatorului, cum este cazul ferestrelor-
terminal atunci cnd se folosete sistemul X Window.
Pentru a se indica utilizatorului c interpretorul de comenzi este gata de a executa
urmtoarea comand, se va afia un prompt. Astfel, n exemplul de mai jos, prompt-ul
include adragos, desemnnd numele de cont al utilizatorului, iar fenrir este numele
mainii pe care se lucreaz. Se precizeaz i numele directorului curent (n acest caz,
directorul rdcin):
[adragos@fenrir /]$ pwd
/
Prsirea shell-ului interactiv (sesiunii curente de lucru) se realizeaz prin
intermediul comenzii exit sau acionnd combinaia de taste CTRL+D (sfrit de fiier n
UNIX).
Pentru editarea facil a comenzilor introduse, pot fi folosite tastele sgei sus i
jos pentru a parcurge lista istoricului comenzilor introduse. n cadrul unei linii de
comenzi, combinaia CTRL+A mut cursorul la nceputul liniei, iar CTRL+E la sfritul ei.
De asemenea, shell-ul ofer facilitatea numit tab completion care d posibilitatea
introducerii pariale a numelui unui fiier, la apsarea tastei Tab interpretorul completnd
(dac este posibil) cea mai bun potrivire cu textul-prefix deja introdus.
Pentru mai multe detalii referitoare la shell-ul bash recomandm consultarea
lucrrii Buraga S., Tarhon-Onu V., Tanas S., Programare Web n bash i Perl, Polirom,
Iai, 2002.
3.2.2. Apelarea comenzilor
Sintaxa general pentru apelarea unei comenzi - fie ea intern sau extern - n
cadrul interpretorului de comenzi este:
comand [ opiuni ] [ parametri ]
n care opiuni indic opiunile dorite (n general prefixate de caracterul "-"), iar
parametri, parametrii care vor fi transmii programului. Att opiunile ct i parametrii
sunt opionali, iar numrul lor este nelimitat, variind n funcie de comanda sau programul
apelat i de nevoile utilizatorului.
Separatorii pentru numele comenzii, opiuni i parametri sunt caracterele spaiu
sau tab. Caracterul "\ la sfritul liniei semnific faptul c aceasta continu pe linia
urmtoare. Pot fi introduse mai multe comenzi ntr-o singur linie de comand, separate
prin caracterul ";".
O comand poate fi executat n fundal (background), dac la apelarea sa se
adaug caracterul "&.
Majoritatea comenzilor de sistem i programelor realizate de ctre fundaia GNU
suport n mod standard opiunea --help, care afieaz modalitatea utilizrii sale, precum
i opiunile i parametrii admii.
2.2.3. Redirecionarea intrrilor i ieirilor
n UNIX, exist trei dispozitive logice de intrare/ieiere:
Intrarea standard (stdin), de la care se citesc datele de intrare. Implicit, intrarea
standard are asociat tastatura;
Ieirea standard (stdout), unde sunt afiate datele de ieire. Implicit, ieirea
standard are asociat terminalul curent;
Ieirea de eroare standard (stderr), la care sunt afiate mesajele de eroare. Implicit,
aceasta are asociat terminalul curent.
n cadrul shell-ului, exist posibilitatea redirecionrii acestor dispozitive, dup cum
urmeaz:
redirecionarea intrrii se realizeaz prin intermediul operatorului de
redirecionare "<";
redirecionarea ieirii se poate face cu ajutorul operatorului ">". Spre exemplu,
comanda ls -la > list va trimite ieirea comenzii ctre fiierul list. Poate
fi utilizat i operatorul ">>", care, spre deosebire de operatorul ">", nu suprascrie
fiierul spre care se face redirecionarea, ci adaug ieirea la sfritul acestuia
(bineneles, n cazul n care fiierul exist);
redirecionarea ieirii de eroare se realizeaz prin "2>", cifra "2" reprezentnd
numrul descriptorului de fiier corespunztor ieirii standard pentru erori.
De asemenea, redirectarea poate fi utilizat n rnduri multiple n cadrul unei linii
de comand, ca n forma de mai jos:
comand < date_intrare > rezultate
2.2.4. Mecanismul pipe
Acest mecanism const n nlnuirea comenzilor, adic prima comand trimite
ieirea standard a celei de-a doua comenzi .a.m.d. Sintaxa acestui mecanism este:
comanda1 | comanda2
Spre exemplu, comanda ps aux | grep squid | wc -l va afia numrul de
procese squid care ruleaz pe main (ieirea comenzii ps aux, adic lista de procese
curente, este trimis ca intrare comenzii grep squid - filtrnd doar procesele cu numele
squid - care, la rndul ei, genereaz intrarea pentru comanda wc -l, ce contorizeaz
numrul de linii dintr-un text).
O utilizare frecvent a acestui mecanism o constituie comenzile de tip filtru. Cele
mai uzuale comenzi de acest gen sunt:
more - pagineaz textul primit ca intrare, cu posibilitatea de defilare n jos, cu cte
o linie sau pagin de ecran;
less - asemntoare cu more, dar ofer posibilitatea de defilare n ambele sensuri;
wc - numr caracterele (opiunea "-c"), cuvintele ("-w") sau liniilor (opiunea
"-l");
grep - caut un ir de caractere (pattern) n cadrul intrrii, trimind la ieiere doar
liniile de text care conin respectivul ir. irul de caractere de cutat poate conine
i unul dintre urmtoarele meta-caractere:
o "^" indic nceputul unei linii;
o "$" indic sfritul unei linii.
2.2.5. Specificatori
Interpretorul de comenzi bash permite utilizarea specificatorilor de fiiere. Astfel,
la specificarea numelui unui fiier pot fi folosite urmtoarele meta-expresii (wildcards)
pentru a nlocui o parte din numele acestuia:
caracterul "?" nlocuiete un singur caracter;
caracterul "*" nlocuiete unul sau mai multe caractere;
expresia "[ expresie ]" definete un interval de valori.
Spre exemplu, specificatorul de fiier oferta[1-65]* va desemna numele de fiiere
care ncep cu oferta, urmat de un numr ntreg aflat n intervalul 1-65, putnd fiind
succedat de oricare alte caractere.
ntre delimitatorii "[" i "]" poate fi utilizat i meta-caracterul "|", cu semnificaia
operaiunii logice SAU, precum i "!", reprezentnd operaiunea de negaie logic. Spre
exemplu, specificatorul doc[!a]* desemneaz numele de fiiere care ncep cu doc, urmat
de orice caracter diferit de "a", apoi de alte caractere.
2.2.6. Variabile de sistem
n bash, variabilele sunt de tip ir de caractere, ele fiind create la momentul
definirii lor. Stabilirea valorii acestora se face prin comanda set variabil=valoare.
Eliminarea din memorie a unei variabile se va face cu ajutorul comenzii unset
variabil.
n mod normal, variabilele definite nu sunt vizibile i n procesele-copil ale shell-
ului curent. Pentru ca o variabil s fie vizibil i n cadrul acestor procese, aceasta
trebuie exportat cu ajutorul comenzii export variabil [ =valoare ].
La variabile se face referire prin prefixarea caracterului "$" la numele acestora (de
exemplu, $HOME).
Exist o serie de variabile predefinite, cele mai importante fiind:
HOME - calea absolut a directorului home al utilizatorului curent (spre exemplu,
/home/dragos);
USER - numele utilizatorului curent;
HOSTNAME - numele mainii;
HOSTTYPE - arhitectura mainii (de exemplu, i386);
OSTYPE - tipul sistemului de operare (e.g. Linux);
MACHTYPE - tipul sistemului n formatul arhitectur- productor-so (e.g. i386-
redhat-linux-gnu);
TERM - tipul terminalului (e.g. linux, vt100 etc.);
PATH - lista de directoare pentru cutarea fiierelor executabile;
PWD - directorul curent;
UID - identificatorul utilizatorului curent;
EUID - identificatorul efectiv al utilizatorului curent.
2.2.7. Script-uri shell
Scripturile sunt fiiere coninnd comenzi ale unui limbaj - n cazul nostru
interpretorul de comenzi. Ele sunt utile pentru automatizarea unor activiti cum ar fi
administrarea sistemului. Acestea trebuie s aib drept de execuie (de exemplu 755)
pentru a putea fi apelate.
De obicei, orice fiier script ncepe cu numele programului care va fi apelat pentru
a executa comenzile din cadrul scriptului:
#!/bin/sh
Fiierul script poate conine i comentarii, introduse prin caracterul "#", fiind
valabile pn la sfritul liniei.
2.2.8. Comenzi pentru asisten (help)
Comenzile mai importante pentru asistena utilizatorului sunt:
apropos cuvnt_cheie - afieaz descrierea comenzilor, funciilor sau fiierelor
care conin cuvntul-cheie specificat, precum i seciunile de manual n care pot fi
regsite informaii detaliate;
help [ comand ] - afieaz informaii despre comanda specificat. Dac
aceasta nu este menionat, va fi afiat lista tuturor comenzilor interne ale bash-
ului.
info program - afieaz pagina de manual info aferent programului specificat;
man [ seciune ] comand - afieaz pagina de manual despre comanda
specificat (sintaxa, descriere, explicarea opiunilor oferite, semnificaia
parametrilor, comenzi nrudite etc.). Parametrul comand poate fi o comand, un
nume de apel de sistem, o funcie de bibliotec C/C++ sau numele unui fiier de
configurare. Manualele sunt organizate pe seciuni, dup cum urmeaz:
o 1 - programe (comenzi).
o 2 - funcii sistem.
o 3 - funcii de bibliotec.
o 4 - funcii ale nucleului.
o 5 - fiiere de configurare.
o 6 - diverse programe.
o 7 - protocoale i standarde.
o 8 - programe sistem.
o l - serverul de baze de date PostgreSQL.
o n - mediul de programare Tcl/Tk.
whatis comand - afieaz informaii rezumate despre funcionalitatea
comenzii specificate, precum i seciunile de manual de unde pot fi
obinute informaii detaliate.
2.3. Fiierele
2.3.1. Generaliti
Ca i n alte sisteme de operare, n Linux informaiile (date sau programe) sunt
memorate n fiiere (files).
n Linux, numele de fiiere pot avea lungimea de maxim 255 de caractere, literele
mici diferind de cele mari (case-sensitive). n componena unui nume de fiier pot intra
orice caractere, exceptnd "/", care reprezint delimitatorul de nume de director. Linux,
ca dealtfel orice sistem UNIX, nu utilizeaz ideea de extensie (cele trei caractere prefixate
de punct care ncheie numele unui fiier, sub sistemele DOS/Windows) pentru a
determina tipul unui fiier. Totui, anumite aplicaii pot necesita utilizarea unor extensii
specifice (e.g. compilatorul de C sau serverul/navigatoarele Web).
Fiierele pot fi de mai multe tipuri:
obinuite sau ordinare, coninnd date, programe etc. Ele sunt de dou feluri:
o fiiere text, structurate pe linii, fiecare dintre aceasta coninnd caractere
ASCII afiabile, i terminndu-se cu caracterul special Carriage Return
(CR);
o fiiere binare, folosite pentru stocarea de cod executabil, informaii
multimedia, baze de date, date diverse etc.
Intern, fiierele ordinare sunt identificate prin intermediul unui numr denumit
i-number, un index dintr-un ir de i-noduri. I-nodurile conin atribute asociate
fiecrui fiier, dintre care enumerm pe cele mai importante:
o tipul;
o proprietarul (identificatorul utilizatorului care deine fiierul, UID,
precum i identificatorul grupului care deine fiierul, GID);
o permisiunile de acces, de trei tipuri: citire (Read), scriere (Write) i
execuie (eXecute), grupate n trei categorii: pentru proprietar (user),
pentru grupul care l deine (group) i ali utilizatori (others);
o lungimea;
o timpii ultimei operaiuni de accesare, modificare i schimbare a strii
(modificarea i-nodului nsui);
o numrul de legturi ctre fiierul respectiv.
directoare, care permit structurarea ierarhic a fiierelor;
speciale, astfel:
o dispozitive, fie ele fizice (discuri, imprimante, mouse, plci de reea etc.)
sau virtuale (memoria intern, terminale etc.). Fiierele speciale de tip
dispozitiv pot fi orientate caracter - caz n care citirile i scrierile se
realizeaz direct, cte un caracter, n mod uzual transferndu-se cantiti
mici de date, sau bloc - pentru care citirile i scrierile se realizeaz prin
intermediul unor zone de memorie tampon. Pentru exemplificare,
terminalele sunt dispozitive de tip caracter (character devices), iar
discurile - dispozitive de tip bloc (block devices);
o pipe-uri, constituind mod de transfer de informaii ntre procese locale,
practic cozi FIFO (First In-First Out);
o socket-uri, utilizate pentru transferul de informaii ntre procese aflate la
distan.
legturi, "shortcut-uri" ctre fiiere sau directoare, pentru o mai uoar
regsire sau accesare. Ele sunt percepute de utilizatori ca fiiere avnd
nume proprii, dar care se refer de fapt la alte fiiere aflate pe disc. Orice
operaie care se execut asupra fiierului-legtur (exceptnd tergerea) va
avea practic efect asupra fiierului indicat de respectiva legtur.
Legturile pot fi de dou tipuri: fizice (hard links) i simbolice (symbolic
links).
Directoarele sunt stocate ca fiiere obinuite, permind astfel aranjarea fiierelor
n manier ierarhic. Astfel, un fiier va fi referit printr-o cale de directoare (path) care
va avea n componen nume de directoare delimitate de "/" i la sfrit numele fiierului
dorit.
Fiecare utilizator are asociat, n cadrul interpretorului de comenzi, un aa-numit
director curent. Directorul curent are proprietatea c toate fiierele (i sub-directoarele)
pe care le conine pot fi identificate prin numele lor, fr a mai fi necesar s se precizeze
i calea. Pentru a evita conflictele, un sistem de fiiere nu posed dect un singur director
curent la un moment dat. Utilizatorul poate schimba directorul curent n orice moment,
dup dorin.
Putem avea ci relative care ncep avnd ca punct de referin directorul curent
sau ci absolute, acestea din urm fiind prefixate ntotdeauna de "/" i pornind de la
directorul rdcin. Directorul rdcin (root) este stabilit atunci cnd se instaleaz
sistemul de operare i va conine toate fiierele ce vor fi stocate, ntr-un arbore consistent
de directoare. Chiar dac vom putea accesa mai multe sisteme de fiiere, posibil aflate pe
discuri ori calculatoare diferite, va exista un director rdcin unic, spre deosebire de alte
sisteme de operare.
n cadrul fiecrui director exist dou fiiere cu numele speciale "." i ".." care
semnific directorul curent i directorul printe, respectiv. Aceste dou directoare cu
nume special vor putea fi utilizate n specificarea cilor relative. De exemplu, ../tmp va
desemna directorul tmp al directorului printe, iar ./doc/manual.pdf va conduce la
fiierul manual.pdf aflat n sub-directorul doc al directorului curent.
Utilizatorul poate crea legturi care reprezint "scurtturi" ("shortcuts") ctre un
fiier sau un director, pentru a putea fi mai uor de regsit sau accesat; astfel, un fiier
poate fi regsit n cadrul sistemului de fiiere prin mai multe nume, eventual n directoare
diferite.
2.3.2. Comenzi pentru lucrul cu fiiere
Principalele comenzi referitoare la directoare sunt:
mkdir director creaz un director;
rmdir director terge un director gol, n sensul c acesta nu conine dect
intrrile . i ..;
cd [ director ] schimb directorul curent de lucru n cale;
pwd afieaz numele directorului curent;
Afiarea coninutului unui director se obine n urma apelrii comenzii ls. Aceasta
ofer mai multe opiuni, dintre care le menionm pe cele mai importante:
-a listeaz i fiierele ascunse (cele ale cror nume ncepe cu caracterul ".");
-l afieaz formatul lung coninnd informaii suplimentare, cum ar fi cele referitoare
la drepturile de acces, proprietar i grup, dimensiunea, data crerii etc.;
-h are urmtorul efect: dimensiunile fiierelor sunt transformate din octei n kilo-
octei (K) sau mega-octei (M) pentru a fi mai uor citite de utilizator;
-R va lista i subdirectoarele, n mod recursiv (aceast opiune va putea fi folosit i
n cazul altor comenzi).
O alt comand util este file, care determin tipul unui fier:
Comanda du afieaz dimensiunile tuturor subdirectoarelor din directorul curent
sau dintr-un director precizat. Se pot utiliza urmtoarele opiuni:
-h: dimensiunile sunt scrise n kilo-octei sau mega-octei pentru a fi ct mai uor
citite de utilizator.
-s: se va afia doar dimensiunea directorului curent.
-a: listeaz i dimensiunile fiierelor.
Comanda df listeaz informaii privitoare la spaiul liber al partiiilor de disc.
Aceast comand are aceleai opiuni ca i comanda du.
Comenzile pentru realizarea operaiunilor de baz cu fiiere sunt:
cp realizeaz copierea unui fiier sau grup de fiiere, sintaxa uzual a comenzii fiind:
cp surs destinaie.
mv mut/redenumete fiiere, avnd aceeai sintax ca i cp;
ln, cu sintaxa ln surs destinaie realizeaz o legtur la fiierul surs, avnd
numele destinaie. Legturile pot fi hard (se creeaz i o copie a coninutului
fiierului; la tergerea copiei, fiierul original e pstrat) sau simbolic (care va conine
doar calea ctre fiierul surs; tergerea copiei determin i tergerea originalului).
rm terge fiiere, avnd sintaxa rm fiier(e).
Pentru toate comenzile de mai sus, exist o serie de opiuni utile:
-f foreaz ndeplinirea aciunii, fr confirmare din partea utilizatorului sau ignornd
erorile care pot surveni;
-i mod interactiv, interognd utilizatorul dac ntr-adevr dorete s realizeze ceea ce
s-a specificat (utilizai-o mai ales la rm);
-v afieaz mai multe informaii la execuia comenzii respective;
-R mod recursiv, comanda executndu-se asupra tuturor subdirectoarelor (foarte
periculoas dac apare la rm, mai ales mpreun cu opiunea -f).
Cutarea fiierelor este posibil cu ajutorul comenzii find. Asupra fiierelor gsite
se pot efectua i diverse operaii (de exemplu, execuia unor comenzi). Cutarea se va
realiza pornind de la un anumit director care va fi explorat conform criteriilor de cutare
alese.
Sintaxa general a comenzii find este:
find [ cale ] [ expresie ] [ aciune ]
Componenta cale reprezint calea de directoare de la care se va ncepe cutarea,
expresie semnific o expresie definind criteriul de cutare, iar aciune specific aciunea
care va fi efectuat la gsirea unui fiier.
Cutarea se poate realiza dup:
numele unui fiier se folosete opiunea -name specificator, n care specificator
reprezint un specificator de fiier (se pot utiliza, desigur, meta-caracterele de
substituie, precum "*" sau "?");
tipul unui fiier se folosete -type tip, unde tip poate fi unul dintre caracterele: f
(fiier obinuit), d (director), l (legtur simbolic) etc.;
numele proprietarului se utilizeaz opiunea -user nume, unde nume poate fi
numele sau UID-ul proprietarului fiierului;
grupul proprietarului se folosete -group nume, unde nume poate fi un nume de
grup sau un GID.
Ca aciune executat la gsirea unui fiier putem avea:
afiarea numelui fiierului gsit se folosete opiunea -print (implicit);
execuia unei comenzi se utilizeaz opiunea -exec. Sirul de caractere {} va
substitui numele fiierului gsit i va putea fi dat ca argument al comenzii care va fi
executat. Vom sfri lista argumentelor pasate comenzii cu caracterul punct-virgul.
De exemplu, cutarea tuturor imaginilor GIF din contul utilizatorului curent se va
putea face astfel:
$ find ~ -name '*.gif' -print
Identificarea fiierelor utilizatorului dragos din directorul /tmp se va putea
realiza prin linia:
$ find /tmp -user dragos -print
Pentru a terge toate fiierele temporare (al cror nume este terminat cu .bak sau
~) vom putea da urmtoarea comand:
find / -name *.bak -o -name *~ -exec rm "{}" ";"
S-au utilizat ghilimelele pentru ca interpretorul de comenzi s nu interpreteze
greit caracterele speciale "{}" sau ";". Opiunea -o semnific operatorul logic sau (or).
Pot fi precizai i operatorii i (and) prin -a i negaie (not) prin caracterul "!".
2.3.3. Atributele asociate fiierelor
n UNIX, fiecare fiier sau director are un proprietar (owner) i face parte dintr-un
grup (group) pentru care se pot specifica drepturi de acces. De asemenea, se pot stabili
drepturi i pentru ceilali utilizatori (others) care nu dein fiierul n cauz i nici nu fac
parte din grup respectiv. Drepturile asociate unui fiier sunt:
citire ("r");
scriere ("w");
execuie ("x").
Pentru directoare, drepturile de acces au o semnificaie diferit, n sensul c "r"
reprezint dreptul de inspectare a coninutului directorului (e.g. comanda ls), "w" permite
adugarea i tergerea de fiiere, iar "x" este dreptul de "intrare" n director (e.g. comanda
cd).
De asemenea, pentru fiiere mai exist trei atribute speciale (bii):
biii SUID (Set User ID) i SGID (Set Group ID), notate cu "s", care permit
schimbarea identitii efective a utilizatorului cu cea a proprietarului fiierului pe
durata execuiei programului respectiv (e.g. comanda passwd);
bitul Sticky ("lipicios", notat cu "t"), utilizat pentru directoare, indic faptul c
tergerea unui fiier din cadrul acestuia va fi permis doar proprietarului su, chiar
dac n director are oricine drept de scriere (de exemplu, directorul /tmp).
$ ls -la
total 660652
drwxr-xr-x 8 dragos dragos 512 Nov 9 13:20 .
drwxr-xr-x 7 root wheel 512 Sep 29 10:56 ..
-rw-r--r-- 1 dragos dragos 0 Sep 27 18:37 .addressbook
-rw------- 1 dragos dragos 2285 Sep 27 18:37 .addressbook.lu
-rw------- 1 dragos dragos 4886 Nov 8 23:22 .bash_history
-rw-r--r-- 1 dragos dragos 255 Sep 27 14:29 .login
-rw-r--r-- 1 dragos dragos 165 Sep 27 14:29 .login_conf
-rw------- 1 dragos dragos 371 Sep 27 14:29 .mail_aliases
-rw-r--r-- 1 dragos dragos 331 Sep 27 14:29 .mailrc
drwxr-xr-x 3 dragos dragos 512 Nov 8 23:20 .mc
-rw------- 1 dragos dragos 15783 Nov 3 23:22 .pinerc
-rw-r--r-- 1 dragos dragos 801 Sep 27 14:29 .profile
-rw-r--r-- 1 dragos dragos 852 Sep 27 14:29 .shrc
drwx------ 2 dragos dragos 512 Sep 27 15:20 .ssh
-rw------- 1 dragos dragos 675151872 Nov 5 18:21 5.2.1-disc1.iso
drwx------ 2 dragos dragos 512 Nov 3 23:22 mail
drwxr-xr-x 17 dragos dragos 1024 Oct 25 23:29 public_html
Dup cum se poate observa n exemplul de mai sus, drepturile de acces sunt
afiate de comanda ls -l printr-o secven de zece caractere. Primul caracter se refer la
tipul fiierului, dup cum urmeaz:
- - fiier obinuit
b - fiier special de tip bloc
c - fiier special de tip caracter
d - director
l - legtur
p - pipe
s - socket
Urmtoarele sunt trei grupuri a cte trei caractere, primul grup fcnd referire la
drepturile proprietarului, al doilea - la cele ale grupului, iar al treilea - la drepturile
celorlali utilizatori. n mod analog, primul caracter din grup semnific dreptul "r", al
doilea - "w", iar al treilea - "x". Dac un anumit drept este revocat, apare caracterul "-".
2.3.3.1. Modificarea drepturilor de acces
Modificarea drepturilor de acces se realizeaz cu ajutorul comenzii chmod. Pentru
proprietar se utilizeaz litera "u", pentru grup - "g", iar pentru ali utilizatori - "o". Pentru
acordarea sau revocarea de drepturi se folosete caracterul "+", respectiv "-". De
exemplu, dac se dorete acordarea drepturilor de citire i scriere altor utilizatori pentru
fiierul test.cc se folosete comanda:
chmod o+rw test.cc
Modificarea atributelor speciale se face dup cum urmeaz: pentru a seta bitul
SUID se va folosi "u" la specificarea utilizatorului i "s" la specificarea drepturilor de
acces, pentru bitul SGID se va folosi "g" la specificarea utilizatorului, iar pentru bitul
Sticky se va utiliza caracterul "t". Astfel, pentru a seta bitul SUID pentru fiierul /
usr/bin/passwd, se va folosi comanda:
chmod u+s /usr/bin/passwd
Mai exist o modalitate de modificare a drepturilor de acces. Astfel, fiecrui grup
de drepturi i se asociaz o valoare numeric: fiecrui drept acordat i corespunde valoarea
1, fiecrui drept revocat i corespunde valoarea 0. Rezult astfel un numr binar format
din trei cifre, care trebuie transformat apoi n octal. De exemplu, pentru rw- corespunde
valoarea 110, adic 6 n octal. Deci, pentru a seta drepturile rw-rw-r-- pentru fiierul
test.cc, va fi utilizat comanda:
chmod 664 test.cc
Pentru a modifica atributele speciale, este utilizat un grup de trei bii, primul
semnificnd atributul SUID, al doilea, SGID, iar cel de-al treilea, Sticky. Spre exemplu,
setarea bitului SUID i a drepturilor corecte de acces pentru fiierul /usr/bin/passwd se
va putea realiza astfel (4 = bitul SUID setat, 5 = 101 = r-x, 1 = 001 = --x, 1 = 001 = --
x):
chmod 4511 /usr/bin/passwd
2.3.3.2 Modificarea proprietarului
Pentru modificarea proprietarului unui fiier se folosete comanda chown. Astfel,
comanda:
chown dragos:autori test.cc
va stabili proprietarul dragos i grupul autori pentru fiierul test.cc.
Specificarea grupului nu este obligatorie. De asemenea, schimbarea doar a grupului se
poate face prin comanda chgrp, furnizndu-i ca argumente numele grupului i fiierul
care va fi modificat.
Modificarea proprietarului sau a grupului poate fi realizat numai de ctre
utilizatorul root.
2.3.4. Structura sistemului de fiiere Linux
Structura sistemului de fiiere Linux este standardizat n documentul numit
Filesystem Hierarchy Standard (FHS). Standardul este disponibil la adresa
http://www.pathname.com/fhs.
Directorul /dev
Conine intrri care reprezint dispozitivele din sistem. Aceste fiiere sunt vitale pentru
funcionarea sistemului.
Directorul /etc
Este rezervat fiierelor de configurare. Trebuie s conin directoarele X11, care conine
fiierele de configurare ale sistemului X Window (cum ar fi XF86Config), i skel, care
conine fiierele implicite ale utilizatorilor copiate la crearea acestuia.
Directorul /home
Conine fiierele utilizatorilor. Conine cte un subdirector pentru fiecare utilizator n parte,
purtnd numele acestuia. Directoarele utilizatorilor se numesc directoare home.
Directorul /lib
Conine bibliotecile necesare pentru execuia executabilelor din /bin i /sbin
(importante, de exemplu, pentru pornirea sistemului).
Directorul /mnt
Conine sisteme de fiiere montate temporar, cum ar fi CD-uri sau diskete.
Directorul /opt
Ofer spaiu pentru aplicaii software mari, cu o structur complex de directoare sau care
conin subpachete.
Directorul /proc
Conine fiiere virtuale speciale care fie extrag informaii din nucleu, fie trimit informaii
ctre nucleu.
Directorul /sbin
Conine executabile utilizate doar de ctre root. Executabilele sunt utilizate doar pentru
pornire, oprire i repararea sistemelor de fiiere.
Directorul /usr
Conine fiiere folosite de toi utilizatorii; n mod normal, este montat ntr-o partiie
separat, doar cu posibilitate de citire. Trebuie s conin urmtoarele directoare: bin
(conine executabile), doc (conine documentaii), etc (conine fiiere de configurare
generale), games (conine jocuri), include (conine fiiere header C), kerberos (conine
sistemul Kerberos), lib (conine fiiere obiect i biblioteci utilizate de ctre programe),
libexec (conine mici programe apelate de aplicaii), sbin (conine executabile pentru
administrarea sistemului, altele dect cele din /sbin), share (conine fiiere
independente de platform), src (conine coduri-surs), iar X11R6 conine sistemul X
Window.
Directorul /usr/local
Acest director este rezervat pentru uzul administratorului de sistem pentru a instala
programe local (/usr poate fi exportat i ctre alte maini pentru a economisi spaiu pe
respectivele maini). Structura acestui director este similar directorului /usr.
Directorul /var
Conine fiiere variabile utilizate de aplicaii. Include cozi de ateptare, informaii
administrative i jurnale, baze de date, precum i fiiere temporare. Trebuie s conin
urmtoarele subdirectoare: arpwatch, cache, db, ftp, gdm, kerberos, lib, local, lock, log,
named, nis, opt, preserve, run, spool (cu urmtoarele subdirectoare: anacron, at, cron,
fax, lpd, mail, mqueue, news, rwho, samba, slrnpull, squid, up2date, uucp, uucppublic,
vbox, voice), tmp, www, yp. Jurnalele sistemului se gsesc n /var/log.
2.4. Procesele
2.4.1. Generaliti
n cadrul oricrui sistem UNIX pot rula mai multe programe n regim concurent,
regsite sub numele de procese. Procesele pot fi programele utilizator, precum i o serie
de procese speciale. Aceste procese speciale ruleaz n fundal (adic nu interacioneaz
cu utilizatorul), cu rolul de a asigura diverse servicii (cum ar fi tiprirea la imprimant,
bazele de date, server Web .a.m.d). Aceste procese poart denumirea de daemoni.
Un proces se afl la un moment dat ntr-o anumit stare, dup cum vom vedea mai
jos. n mod normal, fiecare proces va fi programat s ruleze o perioad foarte scurt de
timp, dup care este trecut ntr-o coad de ateptare, i aa mai departe. Strile posibile
ale unui proces sunt urmtoarele:
rulare (running), starea n care procesul primete o cuant de timp pentru a fi
executat n cadrul procesorului (notat cu "R");
ateptare (sleep) n vederea cptrii unei cuante de timp procesor (notat cu "S");
ateptare (wait) n vederea realizrii unei operaii de intrare/ieire (aceste operaii
fiind considerate mari consumatoare de timp, procesul va fi pus n stare de
ateptare pn la terminarea respectivei operaiuni) (notat cu "D");
oprit temporar (stopped), stare n care procesul nu va fi programat temporar pentru
execuie (notat cu "T");
terminare (terminate), sistemul pregtind eliminarea procesului din memorie,
urmnd ca acesta s dispar complet;
zombie, stare n care un proces trece atunci cnd procesul su printe nu i-a
determinat corect ncetarea execuiei sau zona de memorie pe care a ocupat-o nu a
putut fi eliberat, ocupnd astfel inutil loc n coada de ateptare (notat cu "Z").
Fiecare proces este identificat printr-un identificator de proces (PID - Process
Identifier), un numr ntreg mai mare dect 1. n mod normal, procesele sunt interactive,
adic comunic cu utilizatorul prin intermediul terminalului asociat - n cazul
programelor cu interfa tip linie de comand (mod text) sau prin intermediul mediului
grafic X Window - n cazul programelor dotate cu o asemenea interfa. Vom numi acest
tip de procese ca fiind n prim-plan (foreground).
O alt categorie de procese sunt acelea care nu interacioneaz cu utilizatorul,
fiind vorba n general de daemonii menionai mai sus. Spunem c aceste procese ruleaz
n fundal (background).
Filosofia UNIX privind modul de via al proceselor este c orice proces este
nscut de un alt proces, denumit proces printe (identificatorul acestuia este denumit
PPID - Parent PID). La momentul pornirii sistemului, se creaz un pseudo-proces avnd
PID egal cu zero, care lanseaz n execuie procesul init, acesta din urm avnd PID egal
cu unu. Acesta va lansa alte procese, care vor lansa la rndul lor altele etc., astfel nct
orice proces care ruleaz pe main are ca strmo pe init.
Fiecare proces deine un set drepturi i proprieti, acestea motenindu-se de la
printe la copil. Desigur, procesele copil i printe pot funciona i independent unul de
cellalt, dar exist i situaii n care moartea unuia va conduce la supravieuirea celuilalt.
Dac un proces i pierde printele, atunci PPID-ul su va fi automat considerat ca fiind
egal cu 1 (cu alte cuvinte, printele su devine init).
Procesele reprezint imaginea dinamic (ncrcat n memorie) a unui program,
iar acel program este n fapt un fiier executabil deinut de un utilizator. Astfel, i
procesul va avea un proprietar i va avea apartenen la un grup. Drepturile de acces ale
procesului i controlul su depinde aadar de drepturile pe care le are proprietarul.
Utilizatorii obinuii i pot controla doar propriile procese. Utilizatorul root poate
controla activitatea tuturor proceselor de pe main.
Lista de procese care ruleaz la un moment dat poate fi consultat prin
intermediul comenzii ps. Argumentele uzuale sunt:
a - are ca efect afiarea tuturor proceselor (nu doar cele aparinnd utilizatorului
curent)
u - realizeaz afiarea ntr-un format extins, incluznd i numele utilizatorului
care deine procesele precum i starea acestora
x - conduce la afiarea i acelor procese care nu au asociat un terminal
w - afieaz informaiile chiar dac depesc lungimea liniei
Fr argumente, ps are ca efect afiarea proceselor interactive pe care le deine
utilizatorul curent (cel care lanseaz comanda):
Pentru a vedea lista complet de procese care ruleaz pe main, vom folosi
comanda ps aux.
Util este i comanda top, care afieaz un "top" al proceselor, ordonate n funcie
de timpul procesor consumat. Vor fi afiate de asemenea i informaii privind gradul de
utilizare a memoriei.
2.4.2. Comunicarea ntre procese
Una dintre metodele de comunicare clasice UNIX ntre procesele care ruleaz pe
main o constituie semnalele. Un semnal este o valoare numeric avnd o anumit
semnificaie. Ele pot anuna anumite evenimente aprute n sistem, cum sunt cele de
natur hardware (instruciune ilegal, ntreruperea tensiunii de alimentare etc.) sau
software (de exemplu, atunci cnd un proces ncearc s acceseze o zon de memorie care
nu i este permis). Tot semnale primete un proces atunci cnd un proces nrudit i
ncheie execuia sau la apariia unor operaii de intrare/ieire. De asemenea, utilizatorii
pot trimite (desigur, doar proceselor pe care le dein) direct sau indirect semnale. Astfel,
un proces cu probleme poate fi oprit trimindu-i un semnal. Prin apsarea combinaiei
CTRL+C, de exemplu, se ntrerupe execuia procesului curent prin trimiterea unui semnal
ctre acesta. Procesele pot avea definite anumite comportamente pentru fiecare semnal n
parte, sau poate ignora semnalele primite, cu excepia ctorva, i anume SIGKILL i
SIGSTOP.
Semnalele principale sunt:
Denumire
semnal
Valoare
semnal
Descriere
SIGHUP 1
Hangup, semnalizeaz terminarea execuiei procesului printe.
Este utilizat de muli daemoni pentru a determina recitirea
fiierelor de configurare etc.
SIGINT 2 ntreruperea procesului (de la tastatur)
SIGQUIT 3
ncetarea execuiei procesului (de la tastatur, n mod uzual
combinaia CTRL+C)
SIGILL 4 procesul a efectuat o operaie invalid
SIGKILL 9 oprirea forat a procesului
SIGSEGV 11 referin invalid
SIGPIPE 13 comunicaie prin pipe ntrerupt
SIGTERM 15 terminarea procesului
SIGUSR1
SIGUSR2
16
17
semnale definite de utilizator
SIGCHLD 18 procesul copil i-a ncheiat execuia
SIGSTOP 23 oprete temporar execuia procesului
SIGCONT 25
continu execuia procesului dup ce acesta a fost oprit
temporar
Trimiterea unui semnal ctre un proces se face prin comanda:
kill -semnal nr_proces
Semnalul poate fi specificat fie prin valoarea sa numeric, fie prin denumirea sa.
Spre exemplu, comanda kill -SIGKILL 3419 (sau kill -9 3419) va trimite semnalul
SIGKILL procesului avnd PID egal cu 3419, ceea ce va provoca ncetarea execuiei
acestuia.
2.5. Utilizatorii
2.5.1. Generaliti
Un utilizator reprezint o entitate care poate executa programe sau deine fiiere.
Accesul la resursele sistemului se realizeaz prin intermediul utilizatorilor nregistrai, n
funcie de drepturile atribuite acestora.
Din punctul de vedere al sistemului de operare UNIX, un utilizator (numit i
cteodat i cont de utilizator, user sau user account) nu este neaprat o persoan.
Utilizatorii pot fi ori persoane reale, ori utilizatori sistem. Acetia din urm sunt
rezervai pentru anumite aplicaii care efectueaz activiti specifice (cum ar fi utilizatorul
apache utilizat de serverul httpd). De asemenea, poate exista un cont utilizator partajat
de mai multe persoane dintr-un grup de lucru (e.g. departamentul operatorilor). n
majoritatea cazurilor, ns, un utilizator nseamn o anumit persoan care poate "intra"
(log in) n sistem, executa programe i utiliza sistemul.
Fiecare cont are un nume de utilizator (username) care l identific. Numele de
utilizator trebuie s fie unice. De asemenea, fiecare utilizator are asociat cte un
identificator (User ID sau UID), care este folosit intern de ctre sistem. Baza de date de
utilizatori ai sistemului se gsete stocat n fiierul /etc/passwd.
Utilizatorii pot fi organizai n grupuri. Acestea sunt practic colecii de utilizatori
care partajeaz o funcie sau drepturi similare i pot conine unul sau mai muli utilizatori.
Fiecare grup are asociat un identificator de grup (Group ID sau GID), folosit intern de
sistem. Grupurile definite n sistem sunt memorate n fiierul /etc/group.
Folosii mpreun, identificatorul de utilizator respectiv identificatorul de grup
determin drepturile de acces la fiiere i la alte resurse ale sistemului. Aceti doi
identificatori sunt atribuii n mod automat la momentul crerii utilizatorului, ns pot fi
modificai i ulterior.
Fiierul care memoreaz informaiile despre utilizatori n UNIX este /
etc/passwd, iar cel despre grupuri este /etc/group. Parolele utilizatorilor sunt
memorate criptat, ntr-un fiier protejat, i anume /etc/shadow.
2.5.2. Utilizatorul root
Exist un utilizator privilegiat, cu statut de supervizor al sistemului, denumit root,
avnd identificatorul de utilizator egal cu zero. Acest utilizator are drepturi totale asupra
sistemului, n sensul c poate, de exemplu, controla execuia proceselor, manipula orice
fiier sau schimba diverse atribute asociate utilizatorilor.
n mod normal, acest cont de utilizator trebuie folosit doar atunci cnd se execut
anumite operaiuni administrative, cum ar fi instalarea de programe, modificarea
fiierelor de configurare ale sistemului sau adugarea de noi utilizatori.
Att contul root, ct i o serie de conturi de utilizatori sistem, sunt creai n mod
automat la momentul instalrii sistemului. Se recomand crearea unuia sau mai multor
utilizatori obinuii pentru utilizarea obinuit a calculatorului, deoarece o comand
greit lansat ca root poate cauza deteriorarea sistemului sau chiar pierderea datelor i
aplicaiilor stocate.
n vederea asigurrii securitii sistemului, este obligatoriu ca toi utilizatorii s
aib parol. Este de dorit ca parolele s aib minim 6 caractere i s nu fie constituite din
cuvinte uor de ghicit, cum ar fi cuvinte de dicionar sau elemente importante pentru
utilizatorul n cauz (numele prietenilor, data naterii etc.). Principiul de baz pentru
alegerea parolelor este ca acestea s fie uor de memorat, dar greu de ghicit. De
asemenea, utilizatorii trebuie s i schimbe parolele n mod regulat.
Procesele din UNIX au dou identiti la un moment dat. Prima identitate este
identificatorul de utilizator real, adic cea dat de numele de cont de la conectarea
utilizatorului. Uneori, pentru execuia anumitor programe sau comenzi, utilizatorii trebuie
s primeasc provizoriu identitatea altui utilizator; acesta este identificatorul de utilizator
efectiv, valabil doar pe durata execuiei respectivului program. Acest transfer de identitate
este acceptat de proprietarul programului, prin setarea bitului Set UID (SUID) din
drepturile de acces ale fiierului executabil.
Comanda su (Substitute User) permite schimbarea identitii unui utilizator. Dac
noul nume de cont furnizat este protejat prin parol, utilizatorul trebuie s o furnizeze;
dac utilizatorul real este root, nu este necesar furnizarea parolei.
2.5.3. Utilitare pentru administrarea utilizatorilor
Administrarea utilizatorilor se poate face cu ajutorul urmtoarelor utilitare:
adugarea de utilizatori: useradd nume
tergerea de utilizatori: userdel nume
modificarea parametrilor asociai utilizatorilor: usermod nume
modificarea informaiilor (GECOS) despre utilizatori: chfn nume
adugarea de grupuri: groupadd grup
tergerea de grupuri: groupdel grup
adugarea de utilizatori la un grup: gpasswd -a nume grup
Modificarea parolei utilizatorului curent se va face cu ajutorul programului
userpasswd sau passwd. Este solicitat parola actual i de dou ori parola nou (a doua
oar pentru confirmare):
Alte comenzi referitoare la utilizatori:
whoami - furnizeaz numele utilizatorului efectiv curent
who - afieaz lista sesiunilor deschise ale utilizatorilor
w - comand nrudit cu who, afieaz sesiunile deschise i, pentru fiecare sesiune
n parte, ultima comand executat
id - ofer informaii privitoare la identitatea real a unui utilizator:
finger [ nume ] - afieaz utilizatorii conectai curent la sistem. Dac este
specificat un nume de utilizator, vor fi afiate diferite informaii despre respectivul
utilizator, cum ar fi numele acestuia i ultima intrare n sistem
last [ nume ] - afieaz ultimele intrri ale utilizatorilor n sistem, n ordine
descresctoare a datei. Dac este specificat un nume de utilizator, jurnalul afiat se
va referi la intrri ale utilizatorului respectiv.
Cap. 3. Instalarea de programe
3.1. Pachetele
Un pachet reprezint ansamblul de fiiere necesare pentru funcionarea unui
anumit program sau grup de programe. Pachetul este constituit n general din unul sau
mai multe executabile, fiiere de configurare, documentaii etc. ntre unele pachete pot
exista relaii de dependen, n sensul c un pachet poate depinde de instalarea n
prealabil a altor pachete. Sistemul de gestiune al pachetelor permite administratorului
manipularea acestora prin intermediul unor comenzi (vezi infra), fr a cunoate detaliile
de implementare a bazei de date de pachete
RPM (Red Hat Package Manager) este un sistem de mpachetare creat de Red
Hat Software Inc. i care este utilizat i de alte distribuii Linux, cum ar fi Mandrake,
SuSE i Caldera.
Sistemul RPM permite operarea uoar a pachetelor: instalare, dezinstalare,
upgrade etc. Aceste trei operaiuni trebuie efectuate ca root. Interogarea informaiilor
despre pachete poate fi realizat de ctre orice utilizator.
Pachetele RPM au n general numele de fiier de forma doc++-3.4.9-
1.i386.rpm. Numele fiierului include denumirea pachetului (doc++), versiunea (3.4.9),
numrul de lansare (1) i arhitectura (i386, adic Intel minim 386).
Instalarea sau dezinstalarea unei aplicaii trebuie realizat exclusiv prin
intermediul mecanismului oferit de sistemul RPM. O aplicaie n mod uzual nu include
propriul program de instalare/dezinstalare, aa cum se ntmpl n alte sisteme de operare.
Exist, de asemenea, posibilitatea folosirii sistemului RPM i n cazul instalrii
unor pachete care nu sunt incluse n distribuia standard, preluate de exemplu de pe
Internet.
3.2. Instalarea pachetelor
Instalarea unui pachet se realizeaz prin comanda:
# rpm -i doc++-3.4.9-1.i386.rpm
Uneori pot aprea i erori:
Pachetul este deja instalat
package doc++-3.4.9-1 is already installed
Dac se dorete oricum instalarea pachetului (de exemplu, dac au fost terse de pe
disc fiiere coninute n pachet i se intenioneaz restaurarea acestuia), pentru ca RPM s
ignore eroarea, se folosete parametrul --replacepkgs.
Fiiere care intr n conflict
/usr/bin/docify conflicts with file from doc++-3.4.8-2
Pachetul conine un fiier care este deja instalat dintr-un alt pachet sau dintr-o versiune
mai veche a pachetului.
Dac se dorete totui instalarea pachetului, trebuie folosit parametrul --
replacefiles.
Dependene nerezolvate
Pentru a funciona corect, pachetul are nevoie ca alt pachet s fie instalat mai nti.
failed dependencies:
flex is needed by doc++-3.4.9-1
Pachetele necesare trebuie instalate pentru a rezolva dependenele. Dac totui se
dorete instalarea pachetului (care, astfel, se poate s nu funcioneze corect), se utilizeaz
parametrul --nodeps.
3.3. Dezinstalarea pachetelor
(infoiasi)# rpm -e doc++
n cazul n care un pachet depinde de acest pachet, RPM va genera o eroare de
dependen:
removing these packages would break dependencies:
doc++ is needed by foo-1.0-1
De asemenea, poate fi folosit parametrul --nodeps, pentru a fora tergerea pachetului,
ceea ce nu este ns recomandat.
3.4. Upgradarea pachetelor
Upgradarea (actualizarea) unui pachet semnific instalarea unei versiun mai noi a
acestuia, aciune care poate fi necesar dac noul pachet include corecii de bug-uri (erori
n cadrul programelor) sau conine noi faciliti care sunt necesare. Datorit
dependenelor dintre pachete, este posibil s fie necesar instalarea i altor pachete dect
cele existente.
# rpm -U doc++-3.4.10-1.i386.rpm
Pachetul existent n sistem va fi mai nti dezinstalat, apoi noul pachet va fi instalat, n
mod automat. Deoarece RPM realizeaz un upgrade "inteligent" al pachetelor coninnd
fiiere de configurare, poate fi afiat un mesaj de genul:
saving /etc/doc++.conf as /etc/doc++.conf.rpmsave
Acest mesaj nseamn c este posibil ca vechiul fiier de configurare s nu fie complet
compatibil cu noul fiier de configurare. Vor trebui analizate manual diferenele dintre
cele dou fiiere i rezolvate.
Dac pachetul este mai vechi dect cel instalat, va fi generat o eroare:
package doc++-3.4.9-1 (which is newer) is already installed
Pentru a face totui upgradarea, se utilizeaz parametrul --oldpackage.
3.5. Extragerea informaiilor despre pachete
Pentru afiarea versiunii i numrului lansrii pachetului instalat doc++:
(infoiasi)# rpm -q doc++
doc++-3.4.9-1
Opiuni care pot fi utilizate mpreun cu -q:
-a afieaz toate pachetele instalate
-f fiier afieaz pachetul care conine fiierul specificat
-i afieaz toate informaiile despre pachet: numele, descrierea, versiunea, numrul
lansrii, mrimea, data mpachetrii, data instalrii, numele celui care l-a generat
-l afieaz lista fiierelor coninute de pachet
--provides afieaz "capabilitile" pe care le ofer pachetul (e.g. biblioteci, fiiere-
antet etc.)
--requires afieaz "capabilitile" de care depinde pachetul (e.g. biblioteci, fiiere-
antet etc.)
Mai multe detalii se pot obine folosind comanda man rpm.
3.6. Verificarea pachetelor
Operaiunea de verificare compar informaiile despre fiierele instalate cu informaiile
din baza de date. Sunt verificate mrimea, suma de control MD5, permisiunile, tipul,
proprietarul i grupul.
Pentru a verifica un pachet:
# rpm -V doc++
Pentru a verifica toate pachetele instalate vom apela:
# rpm -Va
Pentru a verifica un pachet comparativ cu un fiier RPM:
# rpm -Vp doc++-3.4.9-1.i386.rpm
Dac exist diferene, va fi afiat un ir de format din opt caractere i numele fiierului.
Fiecare caracter reprezint rezultatul comparaiei unui atribut. Un punct (".") nseamn c
testul a fost trecut cu succes. Sunt posibile urmtoarele atribute:
5 suma de control MD5;
S mrimea fiierului;
L fiierul este de tip legtur simbolic
T data ultimei modificri a fiierului;
D dac fiierul este de tip dispozitiv;
U utilizatorul;
G grupul;
M permisiunile i tipul fiierului;
? fiierul nu poate fi citit.
Exist i posibilitatea de a verifica semtura unui pachet pentru a-i certifica integritatea
i originea:
# rpm --checksig doc++-3.4.9-1.i386.rpm
Cap. 4. Instalarea sistemului Linux
4.1. Pregtirea pentru instalare
Instalarea unei distribuii Linux se poate face n mod normal prin pornirea
sistemului de pe primul disc CD. n cazul n care programul de instalare nu pornete
automat, trebuie mai nti creat o disket de boot. De asemenea, aceast disket poate fi
necesar atunci cnd nu se dorete utilizarea metodei obinuite de instalare de pe CD.
Dac sistemul are deja instalat un sistem MS-DOS/Windows, instalarea poate fi pornit i
direct de pe CD-ROM, fr a mai fi necesar i disketa de boot.
Pe un calculator pot coexista fr probleme mai multe sisteme de operare, evident
dac spaiul pe disc permite acest lucru. Astfel, poate rula sistemul deja instalat (cum ar fi
cele din seria Windows) i Linux.
Sistemul Linux are nevoie de cel puin dou partiii separate pentru a putea
funciona. Dac pe disc exist deja Windows, este necesar redimensionarea partiiilor
existente pentru a putea crea partiiile necesare Linux-ului.
Pentru a redimensiona partiiile existente pe disc, poate fi folosit utilitarul FIPS
(inclus de obicei tot pe primul disc al distribuiei) sau Partition Magic (program
comercial). Pentru a folosi FIPS, trebuie mai nti defragmentat discul cu ajutorul
comenzii MS-DOS DEFRAG, iar apoi redimensionate partiiile. Dup activarea acestora,
calculatorul va trebui repornit.
4.1.1. Crearea disketei de boot
Pentru a crea disketa de boot din cadrul MS-DOS/Windows, se va folosi utilitarul
RAWRITE (inclus i el n general pe primul disc), printr-o comand de genul RAWRITE
BOOT.IMG.
Pentru crearea disketei de boot din cadrul unui sistem compatibil UNIX (e.g. un
alt calculator cu Linux), se lanseaz un set de comenzi de genul (presupunnd c
dispozitivul asociat unitii CD-ROM este /dev/cdrom, iar cel asociat unitii floppy este
/dev/fd0, i c directorul /mnt/cdrom exist):
# mount /dev/cdrom /mnt/cdrom
# dd if=/mnt/cdrom/images/boot.img of=/dev/fd0
# umount /dev/cdrom
Distribuiile Linux ofer mai multe surse de unde fiierele coninnd pachetele de
programe vor fi preluate. Astfel, sunt posibile urmtoarele metode: instalare de pe CD-
ROM (cea mai uzual), hard-disk (n acest caz, coninutul discurilor de instalare trebuie
copiat n prealabil pe o partiie Linux sau Windows existent), NFS (instalarea se
efectueaz de pe un alt calculator aflat n reea, care export coninutul distribuiei prin
sistemul NFS), FTP (dac instalarea se efectueaz de pe un server FTP, de obicei atunci
cnd se dispune de o conexiune Internet rapid), HTTP (similar cu FTP, dar fiind vorba
despre un server HTTP). Menionm c pentru metodele de instalare prin reea poate fi
necesar o a doua disket, coninnd drivere pentru diferite plci de reea (imaginea
acesteia se gsete de asemenea pe primul disc).
4.1.2. Planificarea partiionrii discului
Dup cum spuneam i mai sus, spaiul pe disc ocupat de sistemul Linux trebuie s
fie separat de spaiul ocupat de alte sisteme de operare instalate n sistem. Cel puin dou
partiii (o partiie principal, /, i swap) sunt necesare pentru instalarea sistemului.
Recomandm crearea cel puin a urmtoarelor partiii:
o partiie de swap, pentru a crea memorie virtual (informaiile sunt scrise n
memoria virtual atunci cnd nu exist memorie fizic disponibil). Partiia de
swap trebuie s fie de cel puin 32 MB i cel mult 2 GB, valoarea ideal fiind
valoarea memoriei RAM existente n sistem, pentru un calculator ce urmeaz a fi
utilizat ca staie de lucru, i dublul acesteia pentru un server;
o partiie /boot care va conine nucleul Linux i celelalte fiiere utilizate n timpul
bootrii. Dimensiunea ideal a acestei partiii este de 16-32 MB;
partiia de root, acolo unde se va afla /, directorul-rdcin al sistemului, i care
va conine toate fiierele din sistem.
n cazul n care calculatorul va fi server Linux, recomandm crearea a trei partiii
suplimentare:
o partiie /usr, care va conine fiierele sistemului de operare, de mrime cel puin
egal cu dimensiunea preconizat a instalrii plus circa 100 MB (de exemplu, 1,4
GB);
o partiie /var, care va conine fiierele variabile ale sistemului, preferabil de cel
puin 256 MB;
o partiie /home, care va conine fiierele utilizatorilor, de preferin de cel puin
512 MB.
Pentru a gzdui sistemul Linux pot fi utilizate urmtoarele tipuri de partiii:
ext2 sistemul clasic de fiiere din Linux, compatibil cu standardele UNIX;
ext3 un sistem nou de fiiere, bazat pe ext2, cu suport pentru jurnalizare;
reiserfs un sistem nou de fiiere, cu suport pentru jurnalizare, avnd n multe
condiii performane superioare ext2 sau ext3, datorit arhitecturii interne
arborescente.
Recomandm utilizarea de partiii ext3 n loc de ext2 deoarece suportul pentru
jurnalizare permite n primul rnd siguran mult mai mare a informaiilor n cazul
incidentelor nedorite (probleme hardware sau ntreruperi ale tensiunii de alimentare) i n
al doilea rnd reduce semnificativ timpul de restaurare dup o cdere a sistemului (fsck).
Pot fi utilizate de asemenea i partiiile de tip reiserfs, care prezint, pe lng avantajele
enumerate mai sus, o vitez superioar de acces n multe situaii.
4.2. nceperea instalrii
n cele ce urmeaz ne vom referi la paii care trebuie urmai n vederea instalrii
unei distribuii Red Hat.
Dup bootare trebuie s apar un ecran coninnd n partea inferioar promptul
boot:. Ecranul conine informaii despre diverse opiuni de pornire. Dup apariia acestui
prompt, programul de instalare va porni automat dup un minut, dac nu este apsat nici
o tast. Apsarea tastei ENTER va porni imediat instalarea ntr-un mediu grafic uor de
utilizat. Dac nu se dorete pornirea mediului grafic (de exemplu, dac placa video
instalat n sistem are performane slabe), se tasteaz comanda:
boot: text
pentru a porni programul de instalare n mod text.
Mai multe detalii privitoare la modurile de instalare pot fi furnizate de ctre program,
apsnd tasta F2. Acionnd F5 avem posibilitatea s iniiem o procedur de refacere
(rescue), util n cazurile n care o instalare anterioar a euat din diverse motive sau
pentru a reinstala ncrctorul de boot.
Vom prezenta n continuare etapele de instalare a sistemului:
1. Selectarea limbii
Se selecteaz limba care va fi utilizat att n timpul instalrii, ct i i implicit dup
instalare. Selecia fcut aici va influena i fusul orar folosit de sistem (time zone), a
crui configurare poate fi fcut ceva mai trziu. Sunt disponibile o multitudine de alte
limbi, printre care i limba romn.
2. Configurarea tastaturii
Se selecteaz:
modelul de tastatur (101 taste, Microsoft Natural Keyboard etc.). Poate fi utilizat
modelul Generic, dac nici una dintre opiunile din list nu se potrivete cu tastatura
n cauz;
schema tastaturii (U.S. English, German etc.).
3. Configurarea mouse-ului
Se selecteaz:
tipul mouse-ului (Generic, Mouse Systems etc.);
dac este un mouse serial, portul la care este conectat;
n cazul n care mouse-ul folosit are dou butoane, dac se dorete emularea de trei
butoane prin apsarea celor dou.
4. Opiunile de instalare
Se stabilete dac se efectueaz o instalare complet sau un upgrade o actualizare
(instalarea unei versiuni mai noi a distribuiei peste una deja existent). n cazul instalrii
complete, se stabilete tipul instalrii: Personal Desktop, Workstation, Server sau
Custom. Acest tip determin pachetele care vor fi propuse pentru instalare:
Personal Desktop (sistem personal). Acest tip de instalare este ideal pentru
utilizatorii noi de Linux. Se folosete atunci cnd sistemul se afl acas sau la
serviciu, sau pentru calculatoare portabile. Include programe de tip office (redactare
de texte, calcul tabelar, realizare de prezentri etc.), utilitare pentru acces la Internet
(navigare, citire a corespondenei etc.), programe multimedia etc. Necesit minim 1,5
GB spaiu disponibil pe hard-disk.
Workstation (staie de lucru). Este asemntoare cu Personal Desktop, incluznd n
plus instrumente pentru dezvoltarea de programe i administrare de sistem.
Server. Acest tip de instalare cuprinde programe care ofer servicii Internet (Web,
FTP, pot electronic etc.), precum i alte servicii de reea (NFS, SMB etc.).
Necesit minim 1 GB spaiu disponibil.
Custom (personalizat). Instalarea de tip Custom este potrivit utilizatorilor obinuii
cu sistemul Linux i ofer cea mai mare flexibilitate posibil. Necesit minim 350
MB spaiu disponibil pentru o instalare minimal i minim 3,5 GB dac sunt selectate
toate pachetele.
5. Partiionarea discului
Exist trei opiuni de partiionare:
partiionare automat: programul de instalare va genera automat partiiile n funcie de
tipul de instalare ales. Partiiile rezultate pot fi modificate apoi n funcie de
necesiti;
partiionare manual cu ajutorul programului Disk Druid, un program dotat cu o
interfa grafic simpl, dar puternic, uor de folosit;
partiionare manual cu ajutorul programului clasic fdisk (disponibil numai n cazul
instalrilor n mod text), care are o interfa tip linie de comand, n mod text.
Partiionarea automat
Programul de partiionare automat ofer utilizatorului posibilitatea de a controla
modul de tratare a partiiilor deja existente pe disc, prin intermediul a trei opiuni:
tergerea partiiilor Linux existente;
tergerea tuturor partiiilor existente (atenie: se pierd toate datele de pe hard-disk-
urile existente!);
pstrarea partiiilor existente i utilizarea spaiului liber.
Din lista de discuri fixe aflate n sistem trebuie selectate discurile pe care va fi
efectuat instalarea.
Dac opiunea Review este activat, instalarea va continua cu programul Disk Druid,
permind modificarea partiiilor create automat.
Partiionarea discului folosind programul Disk Druid
Partiionarea discului cu Disk Druid
Fiecare disc fix din sistem poate fi editat separat. Aciunile se efectueaz prin
intermediul a cinci butoane:
New - pentru crearea unei noi partiii. Dialogul care apare conine urmtoarele
cmpuri:
o Mount Point - directorul n care va fi montat coninutul noii partiii (de exemplu,
partiia de root, /; pentru partiia alocat utilizatorilor, directorul poate fi /home);
o Filesystem Type - tipul partiiei (de exemplu, ext2 sau ext3 pentru o partiie Linux);
o Size - dimensiunea partiiei n Megabytes;
o Additional Size Options - dac partiia va avea dimensiunea fix menionat n
cmpul precedent, dac se dorete ca partiia s umple tot spaiul liber mai puin o
dimensiune menionat sau dac se dorete ca partiia s umple tot spaiul disponibil;
o Force to be a primary partition - dac se dorete ca partiia s fie primar;
o Check for bad blocks - dac se dorete verificarea existenei de sectoare defecte pe
respectiva partiie;
Edit - pentru editarea proprietilor unei partiii deja create;
Delete - pentru tergerea unei partiii deja create;
Reset - pentru renunarea la modificrile fcute asupra partiiilor;
RAID - pentru crearea de partiii RAID (Redundant Array of Independent Disk),
tehnic prin care mai multe partiii/discuri sunt tratate ca fiind un spaiu de stocare
(disc) unic sau cuprinznd aceleai date stocate n paralel pe mai multe discuri, n
vederea creterii capacitii de memorare i a siguranei datelor, respectiv.
Partiionarea discului folosind programul fdisk
Comenzile uzuale sunt:
a - seteaz respectiv anuleaz opiunea de bootare a sistemului de pe acea partiie
(avertizm c doar o singur partiie trebuie s aib setat aceast opiune; n caz
contrar, este impredictibil partiia de pe care va porni sistemul)
d - terge o partiie
l - listeaz tipurile de partiii cunoscute
m - afieaz toate comenzile fdisk
n - adaug o nou partiie
p - afieaz tabela de partiii
q - prsete fdisk fr a salva modificrile fcute
t - modific tipul unei partiii
w - scrie tabela de partiii pe disc i prsete fdisk
Iat un exemplu de utilizare a comenzii n:
Command (m for help): n
First cylinder (2837-3649, default 2837):
Using default value 2837
Last cylinder or +size or +sizeM or +sizeK (2837-3649, default 3649):
Using default value 3649
Dup cum se observ, este solicitat numrul cilindrului de la care va ncepe partiia,
precum i numrul cilindrului la care se va sfri partiia. n locul acestuia din urm poate
fi specificat ncepnd cu "+" mrimea partiiei n octei, sau n kilo-octei adugnd
caracterul "K", sau n mega-octei adugnd "M" (de exemplu, +500M desemneaz o
partiie de 500 megabytes).
Prezentm i un exemplu de lansare a comenzii p:
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 3649 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 523 4200966 83 Linux
/dev/hda2 524 1046 4200997+ 83 Linux
/dev/hda3 1047 1569 4200997+ c Win95 FAT32
/dev/hda4 1570 3649 16707600 f Win95 Ext'd
/dev/hda5 1570 1831 2104483+ 83 Linux
/dev/hda6 1832 1895 514048+ 83 Linux
/dev/hda7 1896 1912 136521 82 Linux swap
/dev/hda8 1913 2043 1052226 83 Linux
/dev/hda9 2044 2052 72261 82 Linux swap
/dev/hda10 2053 2836 6297448+ b Win95 FAT32
/dev/hda11 2837 3649 6530391 83 Linux
Un exemplu de apel al comenzii d:
Command (m for help): d
Partition number (1-11): 11
Dup cum se observ, nu este solicitat confirmarea aciunii de tergere a partiiei!
Utilizarea comenzii t:
Command (m for help): t
Partition number (1-11): 6
Hex code (type L to list codes): 83
Dac se folosete acest program, dup definirea partiiilor recomandm verificarea
existenei a cel puin dou partiii, iar acestea s aib tipul corect, i anume 82 pentru
Linux i 83 pentru partiia de swap. n final, dup operaiunile de stabilire a partiiilor, se
folosete comanda "w" pentru a scrie efectiv datele pe disc.
6. Instalarea ncrctorului de boot
Pentru a putea porni sistemul Linux, este nevoie de un ncrctor de boot (boot loader).
De asemenea, acest ncrctor poate porni i alte sisteme de operare care sunt instalate pe
disc. Sunt disponibile trei opiuni:
programul GRUB (GRand Unified Boot loader), pe care l recomandm datorit
facilitilor oferite i performanelor sale superioare;
programul clasic LILO (LInux LOader);
nici un ncctor de boot, caz n care utilizatorul trebuie s se asigure c poate porni
sistemul Linux ntr-un alt mod (de exemplu, cu o dischet de boot).
ncrctorul de boot poate fi instalat n:
MBR (Master Boot Record), sectorul de boot care este ncrcat automat de BIOS-ul
calculatorului - este opiunea recomandat (exceptnd situaia n care pe disc este
instalat i sistemul de operare OS/2);
primul sector al partiiei de root
De asemenea, n aceast etap pot fi stabilite i celelalte sisteme de operare care vor fi
pornite de ncrctorul de boot.
7. Parola de pornire
Dac a fost instalat un ncrctor de boot, poate fi definit o parol pentru a proteja
sistemul. Aceasta va fi solicitat utilizatorului la pornire, dac ncearc s apeleze nucleul
folosind parametri. Parola de pornire ofer protecie fa de atacurile de la consol.
8. Configurarea legturii de reea
Dac instalarea a fost pornit cu suport pentru reea, fiecrei plci de reea aflate n
calculator trebuie s i fie asociai urmtorii parametri:
dac configurarea adresei IP se face prin DHCP (Dynamic Host Configuration
Procol);
dac interfaa de reea va fi activat la pornire;
adresa IP;
masca de reea;
adresa de reea;
adresa de broadcast;
numele mainii;
adresa gateway-ului;
adresa DNS-ului (Domain Name Server) primar, secundar i ternar.
9. Configurarea firewall-ului
Programul de instalare poate configura automat firewall-ul, n funcie de nivelul de
securitate ales. Exist trei niveluri de securitate:
nalt (High), caz n care sistemul nu va accepta alte tipuri de conexiuni dect cele
definite. Implicit, vor fi acceptate doar urmtoarele tipuri de conexiuni:
o cereri DNS (Domain Name System) - folosite pentru a obine adresele IP ale numelor
simbolice de main;
o DHCP (Dynamic Host Configuration Protocol) - protocol utilizat pentru alocarea
dinamic a adreselor IP.
Dac sistemul este conectat la Internet, ns nu ofer servicii ctre exterior,
aceasta este cea mai sigur opiune;
Mediu (Medium), caz n care sistemul nu va accepta dect anumite tipuri de
conexiuni. Implicit, urmtoarele tipuri de conexiuni nu vor fi permise:
o pe porturi mai mici dect 1023 - porturile standard rezervate, utilizate de majoritatea
serviciilor Internet, cum ar fi FTP, SSH, telnet, HTTP etc.;
o serverul NFS - utilizat pentru accesarea sistemelor de fiiere n reea;
o sistemul de ferestre X Window;
o serverul xfs - folosit pentru gestionarea fonturilor n mediul X Window;
Fr firewall (No firewall) - nu se impune nici o restricie asupra naturii
comunicaiilor dintre calculator i alte computere din Internet.
Alegnd opiunea Customize, pot fi adugate dispozitive considerate sigure sau poate fi
acordat accesul la servicii adiionale. Selectnd oricare dintre dispozitive, va fi permis
accesul prin dispozitivele respective ctre sistem - cu alte cuvinte, pachetele sosite prin
respectivul dispozitiv vor fi excluse din regulile stabilite de firewall. Spre exemplu, poate
fi permis accesul fr restricii n cadrul reelei locale, prin placa de reea eth0, iar
conexiunea dial-up la Internet, ppp0, s fie supus filtrrii.
Dintre serviciile din cadrul Allow Incoming pot fi selectate acelea la care va fi permis
accesul:
DHCP - serviciul pentru obinerea automat a adresei IP;
SSH - serviciul pentru conectarea i execuia de comenzi pe o main aflat la
distan, utiliznd un protocol sigur pentru criptarea datelor;
telnet - serviciul pentru conectarea la o main aflat la distan, fr criptare i cu
securitate redus;
WWW (HTTP - HyperText Transfer Protocol) - serviciul pentru accesarea paginilor
Web;
Mail (SMTP - Simple Mail Transfer Protocol) - serviciul pentru expedierea de mesaje
de e-mail;
FTP (File Transfer Protocol) - serviciul de transfer de fiiere;
alte porturi, pentru a permite i accesul la alte servicii, sub forma port:protocol - de
exemplu, pop3:tcp sau 6667:udp.
10. Selectarea limbii
Se selecteaz limba implicit, ct i celelalte limbi care vor fi instalate.
11. Configurarea timpului
Se selecteaz fusul orar n care se afl sistemul.
12. Configurarea utilizatorilor
Utilizatorul root posed drepturi totale asupra sistemului. Acest utilizator trebuie
folosit n mod normal doar pentru a instala/dezinstala pachete de aplicaii i pentru
administrarea sistemului. Se recomand crearea unuia sau mai multor utilizatori obinuii
pentru utilizarea calculatorului, chiar dac acesta este folosit acas, deoarece o comand
greit tastat ca root poate cauza deteriorarea sistemului sau chiar pierderea total a
datelor i aplicaiilor stocate.
Este obligatorie stabilirea unei parole pentru utilizatorul root. Parola trebuie s aib
minim ase caractere lungime i nu poate conine cuvinte aflate n dicionar.
n cadrul acestei etape pot fi creai i utilizatorii sistemului, pentru fiecare trebuind
introduse numele (compuse din caractere, eventual i numere) i parolele.
13. Configurarea autentificrii n sistem
n cazul n care maina va fi legat n reea, este important ca accesul la sistem s fie
posibil pe baza unui sistem de autentificare sigur. Sunt disponibile urmtoarele opiuni:
Activarea/dezactivarea sistemului MD5, care permite utilizarea de parole de pn la
256 de caractere lungime, n loc de lungimea standard de maxim 8 caractere. Implicit,
aceast opiune este activat.
Activarea/dezactivarea sistemului shadow, care ofer o metod sigur de memorare a
parolelor. Parolele sunt memorate n fiierul /etc/shadow, care nu poate fi accesat de
ctre utilizatorii obinuii. Implicit, aceast opiune este activat.
14. Selectarea pachetelor
Pot fi selectate grupurile de pachete (aplicaii) care se doresc a fi instalate. Dac se
dorete i selectarea individual a pachetelor din cadrul grupurilor, trebuie selectat
opiunea Customize software packages to be installed. n orice moment se poate
consulta spaiul ocupat pe disc al pachetelor instalate.
Fiecare grup de pachete poate fi selectat pentru a fi instalat, sistemul propunnd n mod
automat un numr de pachete din respectivul grup. Prin apsarea pe butonul Details,
poate fi selectat individual fiecare pachet n parte.
Prezentarea tuturor pachetelor incluse ntr-o distribuie Linux (oricare ar fi aceea) nu
este posibil, datorit numrului uria al acestora (practic, de ordinul sutelor). Ne vom
rezuma la grupurile de pachete incluse:
Desktops (medii grafice): X Window System (sistemul grafic X Window), GNOME
Desktop Environment (mediul desktop GNOME) i KDE Desktop Environment
(mediul desktop KDE).
Applications (aplicaii): Editors (editoare de text), Engineering and Scientific
(aplicaii inginereti i pentru calcule tiinifice), Graphical Internet (programe
dedicate accesrii Internet-ului, n mod grafic X Window), Text-based Internet
(programe pentru acces la serviciile Internet, n mod text), Office/ Productivity
(programe destinate lucrului la birou), Graphics (prelucrarea de imagini) i Games
and Entertainment (jocuri).
Servers (servere): Server Configuration Tools (programe de configurare i
administrare), Web Server (serverul Web Apache), Mail Server (server de pot
electronic), Windows File Server (server de fiiere Samba), DNS Name Server
(serverul pentru rezolvarea numelor de domenii BIND), FTP Server (server FTP),
SQL Database Server (serverele de baze de date MySQL i PostgreSQL), News
Server (server de tiri), Network Servers (alte servere de reea).
Development (instrumente de dezvoltare soft): Development Tools (instrumente utile
pentru dezvoltarea de programe), Kernel Development (programe necesare pentru
compilarea nucleului), GNOME Software Development (pentru dezvoltarea de
programe care utilizeaz bibliotecile GNOME), KDE Software Development (pentru
dezvoltarea de programe care utilizeaz bibliotecile KDE).
System (programe de sistem): Administration Tools (instrumente pentru
administrarea sistemului), System Tools (diverse programe pentru configurarea
sistemului) i Printing Support (suport pentru tiprirea la imprimant).
Miscellaneous (diverse): Minimal (nu este propriu-zis un grup de pachete, ci
stabilete c se efectueaz o instalare a unui numr minim de pachete, strict necesare
pentru funcionarea sistemului) i Everything (selecteaz toate pachetele pentru
instalare).
Dup selectarea pachetelor, programul de instalare verific dependenele dintre pachete
(anumite aplicaii necesit i alte programe pentru a funciona corect) i afieaz
pachetele care vor fi instalate automat pentru a satisface aceste dependene. Utilizatorul
va putea opta ntre a le instala sau a renuna la pachetele selectate iniial (cele care au
generat aceste dependene).
15. Configurarea plcii video
n general, programul de instalare poate determina singur tipul plcii video din sistem.
n cazul n care aceast detectare a euat, din lista de plci video cunoscute poate fi aleas
placa n cauz. n cazul n care nici acest lucru nu este posibil, trebuie consultat situl Web
al productorului acelei plci. De asemenea, poate fi specificat dimensiunea memoriei
video (e.g., 16 MB, 32 MB etc.).
16. Instalarea pachetelor
Durata instalrii pachetelor depinde att de numrul de pachete selectate pentru
instalare, ct i de performanele calculatorului.
n timpul instalrii sunt afiate informaii despre pachetul n curs de instalare, precum
i despre evoluia instalrii. De asemenea, sistemul va solicita introducerea CD-urilor din
care este alctuit distribuia. Dac unul dintre CD-uri lipsete sau este defect, atunci de
cele mai multe ori instalarea eueaz, sistemul fiind doar parial copiat.
Procesul de instalare a pachetelor creeaz un jurnal cu aciunile ntreprinse, n fiierul /
root/install.log.
17. Crearea unei dischete de boot
Este recomandat crearea unei dischete de boot, util n cazul n care ar putea aprea
probleme la pornirea sistemului Linux. Se utilizeaz o dischet goal, care nu trebuie s
fie defect. Aceast dischet nu va fi formatat FAT (n sistem MS-DOS) i deci nu va
putea fi utilizat n alt sistem de operare dect dup o formatare prealabil.
18. Configurarea sistemului de ferestre X Window
Aceast aciune implic urmtoarele:
Configurarea monitorului
Programul de instalare va ncerca s determine tipul monitorului. Dac
detectarea eueaz, trebuie selectat monitorul din lista de tipuri cunoscute.
Sistemul va testa configuraia aleas. n cazul n care testul nu se ncheie n
cteva secunde, acesta poate fi ntrerupt utiliznd combinaia de taste
Ctrl+Alt+Backspace (ieire forat).
Personalizarea sistemului X Window
Se selecteaz adncimea culorii (de exemplu High Color - 16 bit, True Color -
32 bit etc.), rezoluia ecranului (spre exemplu, 800x600, 1024x768 etc.), mediul
desktop (KDE sau GNOME) i dac sistemul va porni direct n mod grafic sau n
mod consol (text). Ulterior, aceste setri vor putea fi modificate.
19. Instalarea este ncheiat
Programul de instalare va cere confirmarea pentru repornirea sistemului. nainte
de aceasta, eventuala dischet aflat n unitatea floppy trebuie scoas, CD-ul din unitatea
CD-ROM fiind automat ejectat.
Cap. 5. Noiuni elementare de administrare
5.1. Sistemele de fiiere
5.1.1. Montarea i demontarea sistemelor de fiiere
Montarea reprezint procesul de a face disponibil coninutul unui sistem de fiiere (de
exemplu, coninutul unui disc CD-ROM), asimilndu-l n cadrul structurii de directoare a
sistemului. Cu alte cuvinte, un sistem de fiiere poate fi montat/demontat la, respectiv de
la ierarhia sistemului. Singura excepie o face ierarhia rdcin, care este ntotdeauna
montat ncepnd cu momentul pornirii sistemului. Toat ierarhia de fiiere i directoare
ale unei partiii sau ale unui disc poate fi montat n orice director al sistemului-rdcin.
Dup montare, directorul-rdcin al sistemului de fiiere montat nlocuiete coninutul
directorului unde a fost montat.
Montarea se face utiliznd comanda mount, avnd urmtoarea sintax:
mount [ opiuni ] [ nume_dispozitiv ] [ punct_de_montare ]
unde opiuni pot fi:
-r monteaz sistemul de fiiere n mod read-only (numai citire);
-t specific tipul sistemului de fiiere (vezi tabelul 1.3);
-o specific diferite opiuni de montare (vezi tabelul 1.4);
-wmonteaz sistemul de fiiere n mod scriere.
Comanda mount fr argumente va afia sistemele de fiiere montate. Directorul
punct_de_montare trebuie s existe, altfel va fi semnalat eroare.
De exemplu, pentru a monta discul CD-ROM n /mnt/cdrom:
mount /dev/cdrom /mnt/cdrom
Demontarea se face utiliznd comanda umount, avnd urmtoarea sintax:
umount nume_dispozitiv | punct_de_montare
Demontarea CD-ROM-ului deja montat:
umount /dev/cdrom
n loc de /dev/cdrom se poate introduce /mnt/cdrom.
Montarea automat a sistemelor de fiiere
Procesul de montare automat este controlat de fiierul de configurare /
etc/fstab. Acesta este structurat pe linii, coninnd ase cmpuri:
Cmp Descriere
Nume dispozitiv Numele de dispozitiv al partiiei
Punctul de montare Directorul n care va fi montat dispozitivul
Tipul sistemului de
fiiere
Tipul sistemului de fiiere: ext2, swap, vfat, iso9660 etc.
Opiuni Opiuni asupra operaiunii de montare, separate prin
virgul. n general, se utilizeaz defaults. Dac este
specificat opiunea noauto, sistemul de fiiere nu va fi
montat automat la pornire
Frecvena salvrii Frecvena cu care sistemul de fiiere va fi salvat
Ordinea verificrii Un numr care indic ordinea n care vor fi verificate
sistemele de fiiere. Pentru sistemul-rdcin trebuie s
aib valoarea 1, iar pentru swap valoarea 0. Sistemele
pentru care valoarea acestui cmp este egal vor fi
verificate n paralel (recomandat doar dac se afl pe
discuri diferite)
Furnizm n continuare un fiier /etc/fstab, de exemplu:
# device mount type options dump fsck
/dev/hda1 / ext2 defaults 0 1
/dev/hda2 none swap sw 0 0
/dev/hda3 /mnt/dos vfat defaults 0 0
/dev/fd0 /mnt/floppy vfat noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto 0 0
Sistemele de fiiere specificate n /etc/fstab sunt montate automat la pornirea
sistemului (exceptnd cele avnd opiunea noauto) i demontate automat la oprirea
sistemului. De asemenea, pentru sistemele specificate n acest fiier de configurare, la
apelul comenzii mount trebuie specificat fie numele dispozitivului, fie punctul de montare,
nu neaprat amndou.
Numele de dispozitive
Tabelul 1.1. Nume de dispozitive uzuale
Numele dispozitivului Tipul dispozitivului
/dev/hda
Primul controler IDE, unitatea conectat ca master
/dev/hdb
Primul controler IDE, unitatea conectat ca slave
/dev/hdc
Al doilea controler IDE, unitatea conectat ca master
/dev/hdd
Al doilea controler IDE, unitatea conectat ca slave
/dev/sda
Primul disc SCSI
/dev/sdb
Al doilea disc SCSI
/dev/scd0
Prima unitate CD-ROM SCSI
/dev/scd1
A doua unitate CD-ROM SCSI
/dev/fd0
Prima unitate floppy
/dev/fd1
A doua unitate floppy
Pentru discuri fixe, numele dispozitivului trebuie urmat de numrul partiiei, de
exemplu /dev/hda1 pentru prima partiie de pe discul /dev/hda. Linux permite, de
asemenea, montarea doar unei sesiuni a unui disc CD-ROM, adugnd numrul sesiunii
la numele dispozitivului (e.g. /dev/hdc2), cu meniunea c numerotarea ncepe de la
zero.
Tipuri de sisteme de fiiere
Tabelul 1.2. Tipuri de sisteme de fiiere uzuale
Tipul sistemului Descriere
ext2
Sistemul clasic de fiiere Linux
ext3
Noul sistem de fiiere Linux, bazat pe ext2, cu suport pentru
jurnalizare
reiserfs
Noul sistem de fiiere reiserfs, cu suport pentru jurnalizare,
cu performane mai bune dect ext2 n anumite situaii
swap
Partiia pentru memorie virtual
vfat
Sistem de fiiere Windows, cu suport pentru nume lungi de
fiiere
ntfs
Sistemul de fiiere utilizat de Windows NT/2000/XP
msdos
Sistemul clasic MS-DOS
iso9660
Sistemul de fiiere pentru discuri CD-ROM
nfs
Sistem de fiiere NFS, aflat la distan
smbfs
Resurs Samba
Recomandm utilizarea de partiii ext3 n loc de ext2, deoarece suportul pentru
jurnalizare permite n primul rnd siguran mult mai mare a informaiilor n cazul
incidentelor nedorite (probleme hardware sau ntreruperi ale tensiunii de alimentare) i n
al doilea rnd reduce semnificativ timpul de verificare a partiiilor (fsck). Pot fi utilizate
de asemenea i partiiile de tip reiserfs, care prezint, pe lng avantajele enumerate mai
sus, o vitez superioar de acces n multe situaii.
Opiuni de montare
Tabelul 1.3. Opiuni de montare a sistemelor de fiiere
Numele opiunii Descriere
defaults
Opiunea uzual de montare
ro
Nu este permis scrierea (read-only)
rw
Este permis scrierea (read-write)
nosuid
Nu este permis modul SUID
noauto
Sistemul de fiiere nu va fi montat automat la pornire
remount
Remonteaz sistemul de fiiere (utilizat n general pentru
modificarea opiunilor de montare)
user
Permite utilizatorilor obinuii s monteze sistemul de fiiere
5.1.2. Verificarea i repararea sistemelor de fiiere
Oprirea forat a sistemului sau cderile de tensiune pot cauza defectarea sistemelor de
fiiere montate (aceste evenimente nedorite pot fi prentmpinate prin utilizarea unui
sistem de fiiere jurnalizat, cum ar fi ext3 sau reiserfs). Verificarea i repararea
sistemelor de fiiere se realizeaz cu ajutorul utilitarului fsck. Acest utilitar este apelat
automat la pornirea sistemului pentru fiecare sistem de fiiere specificat n /etc/fstab
(evident, fr opiunea noauto) i care nu a fost demontat corect. Exceptnd sistemul-
rdcin, fsck poate rula doar pentru sisteme de fiiere nemontate. Pentru a rula fsck pe
sistemul-rdcin, sistemul trebuie adus n mod single-user (prin pornirea nucleului cu
opiunea single pentru detalii, vezi cap. 3).
Programul fsck are urmtoarea sintax:
fsck [ opiuni ] nume_dispozitiv
Opiunile uzuale sunt:
-p repar automat toate erorile aprute, dac aceasta nu modific coninutul nici unui
fiier;
-n rspunde nu la toate ntrebrile; afieaz dar nu repar nici o eroare aprut;
-y rspunde da la toate ntrebrile; repar orice eroare aprut, indiferent de urmri;
-f verific sistemul chiar dac nu prezint probleme.
De exemplu, verificarea partiiei /dev/hda2 care nu a fost demontat corect la oprirea
sistemului se va face prin comanda:
fsck -y /dev/hda2
Pe partiiile ext2 sau ext3 poate fi remarcat directorul lost+found. Acesta este utilizat
pentru depozitarea fiierelor recuperate de fsck de pe respectiva partiie, atunci cnd
aceasta a fost deteriorat. Acest director nu trebuie n nici un caz ters, el fiind gestionat
n mod automat de ctre sistem.
5.2. Pornirea i oprirea sistemului
5.2.1. Generaliti
Imediat dup punerea sub tensiune, BIOS-ul testeaz sistemul, caut i iniializeaz
echipamentele periferice, iar apoi caut discul de pe care va porni sistemul. BIOS-ul
verific sectorul de boot, MBR (Master Boot Record), i ncarc coninutul n memorie i
i pred controlul. MBR-ul citete mai departe ncrctorul de boot (LILO sau GRUB) i
l execut.
ncrctorul de boot citete imaginea nucleului i i cedeaz controlul. Nucleul
identific echipamentele cunoscute din sistem, apoi caut programul init n directorul /
sbin i l execut, nu nainte de a monta sistemul de fiiere-rdcin n mod read-only.
Procesul init devine printele tuturor proceselor care vor fi pornite ulterior. De
asemenea, el continu operaiunea de pornire, dup cum urmeaz:
1. Execut scriptul /etc/rc.d/rc.sysinit, care efectueaz o serie de iniializri ale
mediului UNIX, dintre care mai importante:
verific integritatea sistemului de fiiere-rdcin apelnd fsck. De asemenea,
este verificat i integritatea celorlalte sisteme de fiiere specificate n /
etc/fstab;
monteaz sistemele de fiiere locale (aflate pe discurile din sistem);
iniializeaz memoria virtual.
2. Citete configurrile din fiierul /etc/inittab. Acest fiier conine intrri care
definesc aciunile sistemului atunci cnd acesta intr n fiecare nivel de execuie i
stabilete nivelul implicit. De asemenea, execut scripturile din nivelul implicit de
execuie, /etc/rc.d/rc N, unde N este nivelul de execuie.
3. Execut scriptul /etc/rc.d/rc.local, care efectueaz iniializri locale.
Standardul UNIX System V definete o serie de stri ale sistemului, denumite niveluri
de execuie (run levels). La un moment dat, sistemul se gsete n una din aceste stri i
poate fi trecut ntr-o alt stare utiliznd anumite comenzi administrative. Urmtorul tabel
prezint nivelurile de execuie uzuale:
Nivelul
de execuie
Descriere
0 Starea de oprire (halt): starea n care sistemul poate fi oprit n
siguran.
1 Starea de reparare a sistemului (single-user): n aceast stare
nu este montat dect partiia rdcin, reeaua nu este activat
iar serviciile nu sunt pornite. Se utilizeaz atunci cnd apar
defeciuni n sistem, de exemplu defeciunea unei partiii.
2 Starea normal a sistemului, fr NFS (mult-user without
NFS).
3 Starea normal a sistemului (multiuser).
4 Neutilizat.
5 Starea normal a sistemului, cu login X Window.
6 Starea de repornire (reboot).
De asemenea, System V definete cteva niveluri de execuie adiionale, desemnate
prin litere ale alfabetului. Acestea nu reprezint stri distincte ale sistemului, ci folosesc
pentru a comunica programului init s execute anumite operaiuni. De exemplu, nivelul q
comunic init s reciteasc fiierul de configurare.
5.2.2. Modul de execuie single
Nivelul de execuie single se folosete pentru activiti administrative. Pentru a iniializa
nivelul single-user, init execut interpretorul de comenzi, sub utilizatorul root. n acest
mod, serviciile normale ale sistemului nu sunt disponibile, nefiind posibil execuia
daemonilor sau altor programe n fundal.
Sistemul poate fi pornit n mod single furniznd nucleului Linux opiunea single,
apelnd, de exemplu, la promptul LILO, comanda:
LILO: linux single
Este posibil ca sistemul s porneasc automat n mod single, atunci cnd n cadrul
procesului de pornire apar probleme care nu pot fi rezolvate automat, spre exemplu atunci
cnd fsck detecteaz erori ce nu pot fi reparate n mod implicit. n aceste cazuri,
administratorul sistemului trebuie s rezolve problema. O dat rezolvat, pornirea poate
continua terminnd execuia shell-ului de comenzi, apelnd comanda exit sau logout.
5.2.3. Pornirea, repornirea i oprirea serviciilor
Operaiile de pornire, repornire, oprire sau verificare a unui serviciu pot fi realizate
apelnd scriptul respectiv, i anume /etc/rc.d/init.d/nume_serviciu sau /etc/
init.d/nume_serviciu, trimind ca parametru:
start pentru a porni serviciul;
stop pentru a opri serviciul;
restart pentru a reporni serviciul;
status pentru a verifica dac serviciul este activ.
Spre exemplu, comanda:
/etc/rc.d/init.d/syslog restart
va reporni serviciul syslog.
De asemenea, poate fi utilizat i comanda:
service nume_serviciu aciune
unde aciune poate lua una dintre valorile descrise mai sus.
Astfel, comanda service postgresql status va afia starea serviciului postgresql
(dac este sau nu activ).
5.2.4. Configurarea serviciilor sistemului
Serviciile pe care le ofer sistemul pot fi activate/dezactivate cu ajutorul
programului chkconfig.
Comanda chkconfig --list listeaz toate serviciile existente n sistem i starea
acestora (dac sunt activate sau nu).
Sintaxa comenzii chkconfig este urmtoarea:
chkconfig [ --list ] [ --add ] [ --del ] [ --level list_niveluri]
nume_serviciu [ aciune ]
unde:
list_niveluri reprezint lista de niveluri de execuie n care se dorete
activarea/dezactivarea serviciului;
aciune poate fi on sau off, pentru activarea/dezactivarea serviciului.
Opiunile pot fi:
--list afieaz toate serviciile nregistrate, precum i setrile pentru fiecare
nivel de execuie n parte. Dac nume_serviciu este specificat, sunt
afiate doar informaii referitoare la serviciul specificat;
--add adaug serviciul specificat n lista de servicii nregistrate;
--del terge serviciul specificat din lista de servicii nregistrate.
De exemplu, comanda chkconfig --level 345 postgresql on seteaz serviciul
postgresql s porneasc atunci cnd nivelul de execuie devine 3, 4 sau 5. Comanda
chkconfig postgresql off dezactiveaz pornirea serviciului.
Prezentm mai jos un exemplu de apelare a comenzii chkconfig --list:
syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
random 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
portmap 0:off 1:off 2:off 3:off 4:off 5:off 6:off
gpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
keytable 0:off 1:on 2:on 3:on 4:on 5:on 6:off
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfslock 0:off 1:off 2:off 3:off 4:off 5:off 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd based services:
imap: off
imaps: off
ipop2: off
ipop3: off
pop3s: off
telnetd: off
5.3. Nucleul Linux
5.3.1. Compilarea nucleului Linux
Dei nucleul furnizat de distribuia Linux poate satisface toate nevoile
administratorului sistemului, de cele mai multe ori este de preferat compilarea unui
nucleu adaptat att configuraiei calculatorului, ct i modului de utilizare a acestuia.
Motivele principale sunt:
nucleul implicit nu conine toate driverele pentru echipamentele hardware din
sistem sau nu suport toate opiunile dorite;
nucleul implicit este compilat modular, ceea ce poate conduce la ntrzieri n
rspuns cauzate de durata de ncrcare a modulelor;
nucleele modulare prezint riscul de a fi i nfectate cu module strine ru
intenionate (cai troieni);
cu ct nucleul generat are dimensiunea mai mic, cu att acesta ocup mai puin
spaiu de memorie.
De aceea, n general se recomand utilizarea unei versiuni oficiale de nucleu, i nu
versiunea livrat n distribuie. Motivul este c nucleul din distribuie nu este cel oficial
(adic publicat pe situl ftp.kernel.org sau mirrors), ci conine modificri realizate de
furnizorul distribuiei. Nucleul oficial este testat de un numr mult mai mare de persoane
dect cel din distribuie, fapt care i confer o stabilitate mai mare. De multe ori ns,
nucleul din distribuie conine i corecii de bug-uri sau drivere pentru dispozitive,
neconinute n nucleul oficial, care pot fi necesare.
Trebuie avut n vedere faptul c nucleele cu numr de versiune impar (e.g. 2.5.x) sunt
considerate ca fiind n curs de dezvoltare, fiind de multe ori instabile. Nu se recomand
utilizarea acestora dect cu titlu experimental.
Pentru a putea compila nucleul este necesar instalarea urmtoarelor pachete: kernel,
kernel-doc, kernel-headers, kernel-pcmcia-cs i kernel-source. Nucleul din distribuie se
afl n directorul /usr/src/linux-2.4 sau /usr/src/linux.
Dac se dorete instalarea nucleului oficial, acesta trebuie descrcat de pe situl FTP
ftp.kernel.org (sau oglindiri - mirrors), din directorul /pub/linux/kernel/
versiune (e.g. /pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2). Dup descrcare,
acesta trebuie decomprimat i dezarhivat, utiliznd o comand de genul:
tar jxf linux-2.4.22.tar.bz2
Este de preferat localizarea arborelui cu surse n /usr/src/linux, dar poate fi folosit
i orice alt director.
Dac se dorete utilizarea unui patch (set de diferene dintre dou fiiere sau structuri
de fiiere) pentru nucleu sau utilizarea unei versiuni mai noi de nucleu fr a mai descrca
ntreaga arhiv tar, acesta va trebui mai nti decomprimat (dac este cazul):
bzip2 -d patch-2.4.22.bz2
iar apoi aplicat arborelui cu surse al nucleului printr-o comand de genul:
patch p1 < patch-2.4.22
Trebuie avut n vedere faptul c fiecare fiier-patch este generat plecnd de la o
anumit versiune de nucleu, prin urmare aplicarea acestuia va fi corect doar pentru
respectiva versiune.
Majoritatea facilitilor oferite de nucleul Linux (cum ar fi drivere pentru dispozitivele
aflate n calculator) pot fi compilate separat de nucleu, ca module. Un modul este o
component a nucleului care este ncrcat doar atunci cnd este nevoie de ea (de
exemplu, driverul pentru o plac de reea este ncrcat atunci cnd respectiva interfa de
reea este activat). De asemenea, modulele care nu sunt utilizate o anumit perioad de
timp sunt eliminate automat din memorie. Unul dintre dezavantajele utilizrii modulelor
este timpul de ncrcare a acestora. Dac nucleul compilat va fi folosit pe un anumit
calculator, este de preferat varianta monolitic. Dac nucleul va fi folosit pe mai multe
calculatoare, avnd configuraii hardware diferite, este de preferat varianta modular.
Pentru a configura nucleul, se va executa, avnd ca director curent locaia n care au
fost instalate sursele acestuia, fie make config, cu care se efectueaz o configurare de tip
linie comand, fie make menuconfig, cu care configurarea se face ntr-o interfa
utilizator n mod text, sau make xconfig.
Configurarea nucleului se realizeaz prin intermediul unui meniu cu structur
arborescent, coninnd opiuni. Fiecare dintre opiuni poate avea trei stri posibile:
dezactivat (opiunea are valoarea nu sau facilitatea nu va fi inclus n nucleu), activat
(*, opiunea va avea valoarea da sau facilitatea va fi inclus n nucleu) sau includere
modular (M, care implic compilarea respectivei faciliti ca modul). Ultima stare nu
este posibil pentru toate opiunile din meniul de configurare.
Dup configurarea nucleului, acesta trebuie compilat prin comanda make bzImage.
Modulele se compileaz utiliznd comanda make modules, iar instalarea acestora n /
lib/modules se face cu make modules_install. n cazul n care modulele sunt
compilate pentru prima oar pentru versiunea curent de nucleu, trebuie apelat comanda
depmod -a versiune_nucleu, pentru a genera dependenele dintre module (directorul /
lib/modules/versiune_nucleu).
n final, trebuie copiat nucleul generat (arch/i386/boot/bzImage) precum i tabela
de simboluri (System.map) peste versiunile vechi (n general n directorul /boot), apoi
configurat ncrctorul de boot pentru a porni nucleul nou compilat (vezi infra). Se
recomand pstrarea vechiului nucleu i crearea n configuraia ncrctorului de boot a
unei imagini care s porneasc sistemul folosind nucleul vechi, pentru a putea asigura
pornirea sistemului n cazul n care apar probleme cu nucleul nou.
5.3.2. Configurarea ncrctorului de boot
Un ncrctor de boot (boot loader) este un program care pornete imediat dup
bootarea sistemului. Acesta afieaz un meniu coninnd mai multe sisteme de operare
care pot fi pornite. Utilizatorul poate selecta unul dintre acestea sau poate atepta pornirea
sistemului setat implicit. Cel mai adesea este folosit ncrctorul de boot GRUB (GRand
Unified Boot loader).
Fiierul de configurare GRUB este /etc/grub.conf sau /boot/grub/grub.conf. Acesta
conine mai multe opiuni, dintre care cele mai importante sunt:
boot = nume_dispozitiv
Dispozitivul pe care va fi scris sectorul de boot.
default = nr
Stabilete sistemul implicit. Numerotarea se face n ordinea apariiei (vezi infra),
ncepnd de la 0.
timeout = timp
Timpul de ateptare (exprimat n secunde) dup care va fi pornit sistemul
implicit.
splashimage = (disc)fiier
Specific o imagine n format XPM care va fi afiat ca fundal.
title = titlu
Definete un sistem, cu titlul specificat. Poate conine mai multe seciuni:
root (disc)
Specific partiia de root de pe care va porni sistemul. Partiia are formatul
hddisc,partiie, unde disc reprezint numrul discului (numerotarea se face
n ordinea deteciei de ctre BIOS, ncepnd cu 0), iar partiie numrul
partiiei (numerotarea se face tot ncepnd cu 0).
rootnoverify (disc)
Specific partiia de pe care va porni sistemul, atunci cnd acesta este non-
UNIX.
kernel imagine_nucleu argumente
Specific imaginea nucleului care va fi executat, precum i argumentele care
vor fi trimise acestuia.
chainloader [ start ]+nr_sectoare
Pentru un sistem non-UNIX, citete i execut numrul specificat de sectoare,
ncepnd cu sectorul start.
password [ --md5 ] parol
Protejeaz sistemul cu parola de acces specificat, nepermind modificarea
argumentelor sau imaginea nucleului. Dac este folosit parametrul -md5,
parola este criptat n format MD5 (prin comanda md5crypt).
lock
Utilizat n conjuncie cu opiunea password, nu permite pornirea sistemului
dect n condiia introducerii parolei.
Pentru a instala ncrctorul de boot, trebuie lansat comanda grub-install
nume_dispozitiv.
Prezentm mai jos un fiier grub.conf:
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.21)
root (hd0,0)
kernel /boot/bzImage ro root=/dev/hda1
title Windows
rootnoverify (hd0,2)
chainloader +1
Pentru instalarea ncrctorului de boot conform acestei configuraii, se va executa
comanda grub-install /dev/hda.
5.4. Configurarea legturii de reea
5.4.1. Configurarea atributelor mainii
Fiierele de configurare a atributelor mainii sunt /etc/HOSTNAME, n care este
specificat numele complet al mainii (adic inclusiv domeniul e.g.
hercules.biosfarm.ro) i /etc/sysconfig/network, n care se specific numele complet
i numele domeniului:
NETWORKING=yes
HOSTNAME=hercules.biosfarm.ro
DOMAINNAME=biosfarm.ro
5.4.2. Configurarea echipamentelor de reea
Dup ce echipamentul de reea (plac de reea, modem etc.) a fost instalat fizic n
sistem i mediul de conectare legat, fie trebuie ncrcat modulul ce conine driverul
pentru respectivul echipament, fie trebuie reconfigurat i recompilat nucleul Linux pentru
a include driverul n cauz. Denumirile utilizate n Linux pentru dispozitivele de reea
uzuale sunt:
Interfaa loopback lo
Plci de reea Ethernet eth0, eth1 etc.
Legturi modem ppp0, ppp1 etc.
n UNIX, echipamentul de reea este denumit interfa de reea. Configurarea
interfeei de reea se poate face cu utilitarul ifconfig. Acesta din urm are urmtoarea
sintax:
ifconfig interfa [ familie_de_adrese ] opiuni | adres
Dac interfa nu este specificat, ifconfig va afia informaii privind starea
interfeelor active. Dac nu este specificat nici o opiune, ci doar interfa, ifconfig va
afia starea interfeei respective. n celelalte cazuri, va fi configurat interfaa de reea.
Familie_de_adrese poate lua una dintre valorile: inet (TCP/IP, valoare implicit),
inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) i
netrom (AMPR Packet Radio).
Opiunile pot fi:
up
interfaa va fi activat. Este implicit dac este atribuit o adres interfeei.
down
interfaa va fi dezactivat.
netmask adres
stabilete masca de reea.
irq numr_ntrerupere
stabilete ntreruperea utilizat de dispozitiv.
io_addr adres
stabilete adresa I/O utilizat de dispozitiv.
[-] broadcast [ adres ]
dac adres este specificat, stabilete adresa de broadcast a interfeei. Dac parametrul nu
este specificat, activeaz sau dezactiveaz cmpul de stare IFF_BROADCAST pentru
interfa.
[-] pointopoint [ adres ]
dac adres este specificat, stabilete adresa de IP a mainii cu care se face conexiunea
punct-la-punct (cum ar fi PPP) i activeaz acest mod de conexiune. Dac parametrul nu
este specificat, activeaz cmpul de stare IFF_POINTOPOINT pentru interfa.
Adres reprezint adresa IP atribuit interfeei.
De exemplu, pentru configurarea i activarea plcii de reea Ethernet eth0, cu adresa
193.226.26.9, vom folosi comanda:
ifconfig eth0 193.226.26.9 netmask 255.255.255.0 broadcast
193.226.26.255 up
Fiierele de configurare a interfeelor de reea se gsesc n directorul /etc/
sysconfig/network-scripts i poart nume de forma ifcfg-nume_dispozitiv (de
exemplu, ifcfg-eth0). Pentru detalii, a se vedea seciunea 10.6.
5.4.3. Opiuni de rutare
Rutarea este operaiunea de trimitere a pachetelor de date de la o reea la alta. Rutrile
pot fi:
Dac reeaua nu conine subreele, nu este necesar nici o rutare explicit.
Rutri statice, folosite pentru reele de dimensiuni mici sau medii, avnd calea
origine destinaie relativ simpl.
Rutri dinamice, n care cile spre destinaie sunt determinate la momentul
trimiterii pachetelor, prin protocoale de rutare, pentru care se folosesc daemonii
routed i gated.
Rutrile statice pot fi gestionate folosind utilitarul route, avnd sintaxa:
route [ opiuni ]
route [ -v ] [ -A familie ] add [ -net | -host ] dest [ opiuni ]
route [ -v ] [ -A familie ] del [ -net | -host ] dest [ opiuni ]
Prima variant afieaz tabela de rutare, permind opiunile:
-v afieaz informaii suplimentare;
-n afieaz adrese numerice n loc de nume.
A doua variant permite adugarea de rutri statice. Opiuni:
-v afieaz informaii suplimentare;
-A familie specific familia de adrese. Vezi supra, la ifconfig, familiile de adrese;
-net specific faptul c dest este o reea;
-host specific faptul c dest este o main;
dest reprezint adresa reelei sau mainii-destinaie, fie numeric, fie prin nume;
netmask adres utilizeaz aceast masc atunci cnd se adaug o rutare;
default stabilete rutarea implicit, care va fi utilizat atunci cnd nu exist nici o alt
rutare ctre destinaie;
gw gateway ruteaz pachetele printr-un gateway. Calea ctre acesta trebuie s fie
definit n prealabil, stabilind n general o rutare static spre el;
dev dispozitiv asociaz rutarea cu dispozitivul specificat. n mod normal, specificarea
acestui parametru nu este necesar.
Cteva exemple:
route add -net 192.130.21.0 netmask 255.255.255.0 dev eth1
adaug o rutare ctre reeaua 192.130.21.0 prin placa de reea eth1.
route add default gw zeus.biosfarm.ro
adaug o rutare implicit (utilizat atunci cnd nu exist o alt rutare) prin maina
zeus.biosfarm.ro.
5.4.4. Verificarea funcionrii reelei
Prima verificare care trebuie fcut dup configurarea interfeelor de reea i stabilirea
rutrilor este dac interfeele de reea sunt activate i au parametrii coreci. Aceasta se
face tot cu ajutorul utilitarului ifconfig. Dac se specific drept parametru numele
interfeei, se vor afia informaiile de stare referitoare doar la respectiva interfa. Dac nu
este introdus nici un parametru, vor fi afiate informaii despre toate interfeele active.
Iat un exemplu de execuie a comenzii ifconfig:
eth0 Link encap:Ethernet HWaddr 00:E0:29:25:53:41
inet addr:10.0.0.1 Bcast:200.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:57497219 errors:0 dropped:0 overruns:0 frame:3
TX packets:53415959 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4087849514 (3898.4 Mb) TX bytes:4227682795 (4031.8 Mb)
Interrupt:11 Base address:0xe400
Lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1467483 errors:0 dropped:0 overruns:0 frame:0
TX packets:1467483 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:437242723 (416.9 Mb) TX bytes:437242723 (416.9 Mb)
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.130.21.14 P-t-P:192.130.78.14 Mask:255.255. 255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1064 Metric:1
RX packets:16682 errors:0 dropped:0 overruns:0 frame:0
TX packets:16998 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:9140239 (8.7 Mb) TX bytes:2061425 (1.9 Mb)
A doua verificare este corectitudinea rutrilor. Tabelele de rutare pot fi consultate tot
cu programul route:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
leased14.nemesi * 255.255.255.255 UH 0 0 0 ppp0
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default leased14.nemesi 0.0.0.0 UG 0 0 0 ppp0
A treia verificare ce trebuie fcut este accesibilitatea efectiv a altei maini, pentru
care se folosete de regul programul ping, ce primete ca parametru numele mainii-
destinaie sau adresa sa IP:
PING metalab.unc.edu (152.2.210.81) from 192.130.21.14 : 56(84) bytes of
data.
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=0 ttl=235 time=281.878
msec
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=1 ttl=235 time=268.268
msec
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=2 ttl=235 time=248.270
msec
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=3 ttl=235 time=278.304
msec
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=4 ttl=235 time=268.304
msec
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=5 ttl=235 time=267.780
msec
64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=6 ttl=235 time=268.250
msec
--- metalab.unc.edu ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max/mdev = 248.270/268.722/281.878/9.889 ms
Poate fi utilizat i comanda traceroute, care afieaz toate mainile prin care trece
pachetul n ruta sa ctre destinaie:
traceroute to fenrir.info.uaic.ro (193.231.30.197), 30 hops max, 38 byte
packets
1 esc26.leased.dntis.ro (172.21.33.155) 140.673 ms 139.693 ms 139.954 ms
2 cisco0.dntis.ro (193.226.30.30) 140.119 ms 166.454 ms 141.181 ms
3 route.dntis.ro (193.226.30.17) 139.930 ms 138.031 ms 150.607 ms
4 cisco-gw-escape.dntis.ro (193.226.30.145) 139.281 ms 137.995 ms
139.889 ms
5 * roedu-to-dntis.dntis.ro (193.226.30.122) 138.228 ms 168.003 ms
6 gw-man.iasi.roedu.net (193.231.140.2) 139.910 ms 137.972 ms 139.919 ms
7 217.73.168.10 (217.73.168.10) 139.952 ms 138.323 ms *
8 gw-masterc.uaic.ro (193.226.23.116) 144.437 ms 138.039 ms 139.908 ms
9 gate-info.uaic.ro (193.231.30.15) 149.912 ms * 140.091 ms
5.4.5. Rezolvarea numelor de main
Pentru a putea identifica o main din reea, sistemul trebuie s i determine mai nti
adresa IP. Exist dou modaliti n care aceasta poate fi determinat:
cutnd numele n fiierul /etc/hosts;
apelnd serverul DNS (vezi infra) care va rezolva adresa.
Dac maina nu este legat permanent la reea sau se gsete ntr-o reea de
dimensiuni mici, nu este necesar configurarea dect a /etc/hosts.
Fiierul /etc/hosts conine lista de maini aflate n reeaua local, inclusiv maina
local. Iat un fiier exemplu de pe maina access.biosfarm.ro:
127.0.0.1 localhost localhost.localdomain
10.0.0.1 access access.biosfarm.ro
10.0.0.2 hercules hercules.biosfarm.ro
10.0.0.3 secretariat secretariat.biosfarm.ro
10.0.0.4 comenzi comenzi.biosfarm.ro
193.226.30.8 ftp ftp.dntis.ro
193.226.30.15 mail mail.dntis.ro
Lista de servere DNS se configureaz n fiierul /etc/resolv.conf:
# domeniile in care vor fi cautate mai intai numele de masina
search biosfarm.ro nemesis.ro
# serverele DNS la care vor fi trimise cererile de rezolvare
# serverul DNS propriu
nameserver 10.0.0.1
# alte servere DNS
nameserver 193.233.7.1
nameserver 193.233.7.9
Sunt recunoscute urmtoarele directive principale:
domain stabilete numele domeniului local (n care se afl maina).
nameserver adresa unui server DNS cruia i va fi trimis cererea de rezolvare. Pot fi
specificate mai multe directive nameserver. Dac primul server nu
rspunde cererii, va fi apelat al doilea .a.m.d., n ordinea apariiei n fiier.
search lista de domenii n care va fi cutat numele de main, separate prin spaii
sau tab-uri. n exemplul nostru, dac este cutat maina main, va fi testat
mai nti adresa main.biosfarm.ro, iar dac aceasta nu poate fi rezolvat,
main.nemesis.ro.
Pentru alte directive, recomandm consultarea man resolv.conf.
5.4.6. Scripturi pentru configurarea reelei
Dup cum am menionat mai sus, fiierele de configurare a interfeelor de reea se
gsesc n directorul /etc/sysconfig/network-scripts i poart nume de forma
ifcfg-nume_dispozitiv. Aceste fiiere sunt alctuite dintr-o serie de opiuni, dintre
care cele mai uzuale sunt:
DEVICE = nume_interfa
Specific numele dispozitivului la care se refer opiunile (de exemplu, eth0, ppp0
etc.).
IPADDR = adres
Stabilete adresa IP asociat dispozitivului.
NETMASK = adres
Stabilete masca de reea.
BROADCAST = adres
Stabilete adresa broadcast.
NETWORK = adres
Specific adresa reelei.
ONBOOT = val
Stabilete dac interfaa de reea va fi activat n mod automat la pornirea
sistemului de operare.
Interfaa de reea poate fi activat prin comanda ifup nume_interfa i dezactivat
prin ifdown nume_interfa.
Redm mai jos un fiier de configurare pentru placa de reea eth0:
DEVICE=eth0
IPADDR=10.0.0.11
NETMASK=255.255.255.0
BROADCAST=10.0.0.255
NETWORK=10.0.0.0
ONBOOT=yes
Cap. 6. Serviciile sistemului
Vom prezenta pe scurt serviciile pe care le poate oferi un sistem Linux. Detalii
suplimentare pot fi regsite n lucrarea noastr, Administrarea i configurarea sistemelor
Linux.
6.1. Tiprirea la imprimant
Sistemul de operare Linux utilizeaz sisteme de tiprire (spooling systems)
compatibile BSD. Implementarea folosit difer de la o distribuie la alta, ns
compatibilitatea cu sistemul BSD a fost meninut. Acest tip de sistem poate gestiona
imprimante multiple, localizate pe maina local sau pe alte maini, i cozi de sarcini
(cererile de tiprire sunt stocate n cozi de ateptare, pn cnd dispozitivul periferic le va
putea tipri) multiple. Att distribuia Red Hat ct i Mandrake utilizeaz implementarea
CUPS (Common UNIX Printing System) sau opional LPRng (LPR New Generation).
6.2. Accesarea de la distan a sistemului: serviciul SSH
Serviciul SSH reprezint o modalitate sigur de conectare de pe alte maini, criptnd
informaiile nainte de a fi trimise n reea, prin intermediul unui sistem de chei publice i
private, asigurnd confidenialitatea informaiilor. Poate fi utilizat n locul serviciilor
nesigure (care transmit informaii necriptate prin reea, acestea putnd fi urmrite cu
ajutorul unor programe de capturare a pachetelor, sniffer-ele) precum telnet, FTP sau
rlogin. Poate fi folosit, de asemenea, pentru pentru a tunela alte servicii de reea.
FreeBSD utilizeaz implementarea serviciului SSH numit OpenSSH. Aceast
implementare a fost realizat la nceput pentru OpenBSD, fiind ulterior portat pe
majoritatea platformelor. Pentru ca maina s accepte conexiuni SSH, este necesar
prezena serviciului.
6.3. Sisteme de fiiere n reea: NFS
Sistemul NFS (Network File System), implementat pentru prima oar de ctre
SUN Microsystems, permite ca un sistem de fiiere s se gseasc fizic pe o alt main
dect cea pe care este utilizat, dar s se prezinte utilizatorilor ntocmai ca un director
local. Cu alte cuvinte, un sistem de fiiere aflat fizic pe alt main poate fi montat ntr-
un director din ierarhia local, toate operaiunile asupra acestuia fiind total transparente
pentru utilizatori. Este net superior sistemului file sharing din toat gama de sisteme de
operare Windows deoarece ofer securitate sporit, fiabilitate mai mare, siguran mai
bun a informaiilor (n momentul transferurilor de date se realizeaz verificarea
corectitudinii acestora, spre deosebire de sistemele Windows), vitez mai mare de
transfer.
6.4. Sistemul de pot electronic
Ca i serviciul FTP, serviciul de pot electronic este unul dintre primele servicii
oferite de Internet. Un sistem de pot electronic este alctuit din urmtoarele trei
componente:
1. Ageni utilizator (clieni de pot electronic, MUA = Mail User Agent), programe
care permit utilizatorilor s citeasc, s emit i s gestioneze mesajele.
Programele cele mai des folosite n FreeBSD sunt pine, mutt, elm, Kmail,
Evolution, Mozilla Mail etc.
2. Ageni de transport (MTA = Mail Transport Agent), programe responsabile
pentru acceptarea mesajelor primite i livrarea acestora la destinaia final.
Sistemul sendmail este agentul de transport tradiional din mediile UNIX. Ali
ageni de transport sunt postfix, qmail i exim.
3. Ageni de distribuie (MDA = Mail Distribution Agent), programe care
direcioneaz mesajele primite ctre csua potal a utilizatorului destinatar (cum
ar fi procmail).
Cea mai important component a sistemului de pot electronic este agentul de
transport. Agenii de transport utilizai de obicei n Linux sunt sendmail (n continuare cel
mai rspndit sistem utilizat, dei acesta a suferit, de-a lungul timpului, de numeroase
probleme de securitate), postfix i qmail.
6.5. Sistemul numelor de domenii: BIND
Fiecare sistem din cadrul reelei Internet are un nume de main, care, mpreun cu
numele domeniului, definete un nume unic al acestuia. Numele de main permit
referirea mai uoar a unui calculator, n locul adresei IP a acestuia. Rezolvarea
(translarea) n ambele sensuri a numelui, respectiv adresei se realizeaz prin intermediul
sistemului numelui de domenii DNS (Domain Names System).
Sistemul DNS nu este altceva dect o uria baz de date distribuit, rspndit pe tot
globul. Aceasta este implementat de ctre aa-numitele servere DNS, care furnizeaz
informaii despre unul sau mai multe domenii, numite i zone. Pentru fiecare zon exist
cel puin un server de nume care conine informaiile despre mainile din cadrul
domeniului. Primul server este denumit server DNS primar, care descrie zona master, i
este acela care ncarc configurrile zonelor DNS din fiierele de configurare, iar celelalte
- servere DNS secundare, care deservesc zonele slave, transfernd informaiile despre
zone de la serverul primar.
Daemonul ce ofer servicii DNS pe mainile UNIX este named, ce face parte din
pachetul BIND (Berkeley Internet Name Domain).
6.6. Serverul HTTP: Apache
Un server HTTP este un daemon care accept conexiuni conforme protocolului HTTP,
rspunznd cererilor recepionate de la clieni. Protocolul HTTP (HyperText Transfer
Protocol) este un protocol de tip cerere-rspuns, bazat pe TCP/IP, destinat pentru
transferurile informaiilor hipermedia. Serverul cel mai utilizat n sistemele de operare
UNIX este Apache.
6.7. Serverul FTP
FTP (File Transfer Protocol) este unul dintre cele mai vechi servicii Internet i
reprezint cel mai popular mod de transfer al fiierelor de pe un calculator pe altul.
Implementri de aplicaii-client i server FTP exist practic pe toate platformele din lume.
Implementrile mai des folosite sunt Very Secure FTP daemon, proftpd i wu-
ftpd.
6.8. Execuia de proceduri automate: cron
Serviciul cron (numit uneori i Vixie Cron) este un daemon care execut comenzi
n mod programat, la anumite momente prestabilite de timp.
6.9. Jurnalele sistemului: syslog
Daemonul syslog ofer att aplicaiilor, ct i nucleului Linux posibilitatea de
jurnalizare a mesajelor generate (mesaje de eroare, de atenionare, de depanare etc.).
Mesajele pot fi trimise ctre maina local sau ctre maini aflate la distan. Fiierele n
care sunt jurnalizate aceste mesaje se afl n general n directorul /var/log.
Administratorii de sistem pot utiliza aceste fiiere-jurnal pentru a determina
problemele de funcionare a serviciilor sistemului, pentru a descoperi ncercrile de atac
asupra sistemului sau utilizarea neautorizat a serviciilor acestuia.
6.10. Proxy-uri Web: serverul Squid
Serverele proxy sunt daemoni care au rolul de intermediari, n sensul c primesc cereri
de la clieni, pe care le trimit mai departe, ctre alte servere, ascunznd astfel adevrata
surs de provenien a cererii. Serverele proxy sunt utilizate n general pentru
protocoalele HTTP i FTP.
Sistemul Squid este derivat din proiectul Harvest nceput de ARPA, fiind dezvoltat la
National Laboratory for Applied Network Research. Squid suport protocoalele HTTP,
HTTPS, FTP i Gopher. Este util i pentru blocarea accesului utilizatorilor la diferite
situri.
6.11. Interaciunea cu sistemele Windows: Samba
Samba este un sistem care ofer servicii SMB (numit cteodat i Lan Manager) /
CIFS (The Common Internet Filesystem), asigurnd compatibilitatea cu sistemele file
sharing sau Microsoft Network (sistemul de partajare a resurselor n reea, transferul de
fiiere ntre maini etc., utilizate de sistemele Windows) din MSCLIENT 3.00 pentru
DOS, Windows for Workgroups, Windows 95/98/ME, Windows NT, Windows 2000/XP,
OS/2, DAVE pentru Macintosh. Este alctuit din dou pri, una de server, care permite
folosirea sistemului Linux ca server SMB, putnd nlocui astfel cu succes un server
Windows (adic maina va conine resurse cum ar fi directoare, discuri, imprimante
care vor putea fi accesate de ctre alte calculatoare), i una de client, care permite
accesarea serviciilor SMB oferite de alte maini.

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