You are on page 1of 193

Introducere n Linux

Un ghid la ndemn
Machtelt Garrels
Garrels.be

<tille wants no spam _at_ garrels dot be> Ediia 1.25 Copyright 2002, 2003, 2004, 2005, 2006, 2007 Machtelt Garrels 20070919

Traducere n limba romn: Marian miaumiau Vasile, care mulumete comunitii UBUNTU Romnia pentru ajutorul pe care l-a primit din momentul n care a descoperit acest sistem de operare i Grupului pentru software liber pentru promovarea programelor surs deschis.

Introducere
1. De ce acest ghid?
Muli oameni tot mai cred despre Linux c este dificil de nvat sau c numai experii pot nelege cum lucreaz un sistem Linux. Dei exist mult documentaie disponibil gratuit, aceast documentaie este mprtiat pe web i, cteodat, este dificil de neles, deoarece este orientat de regul ctre utilizatori experimentai de UNIX sau Linux. Astzi, mulumit eforturilor depuse n dezvoltare, Linux-ul a ctigat popularitate att n mediul familial, ct i la locurile noastre de munc. elul acestui ghid este acela de a arta oamenilor de toate vrstele c Linux-ul poate fi simplu, amuzant i folositor multor scopuri.

2. Cine ar trebui s citeasc acest ghid?


Acest ghid a fost scris ca o trecere n revist a sistemului de operare Linux, orientat ctre utilizatori noi, crora s le serveasc drept ndrumtor ntr-o explorare a Linux-ului, cu exerciii la sfritul fiecrui capitol. Cei care sunt mai avansai pot apela la el pentru revizuirea i mprosptarea cunotinelor, deoarece conine noiunile de baz, care sunt necesare n administrarea sistemelor i reelelor. El conine multe exemple izvorte din experiena de administrator de sistem i reele Linux, de ndrumtor i consultant a celei care a scris acest ghid. Noi sperm c aceste exemple v vor ajuta s nelegei mai bine sistemele Linux i c vei ncerca aceste lucruri pe calculatoarele voastre. Oricine dorete s capete experien n utilizarea liniei de comand din Linux (i, n general, UNIX) va gsi acest ghid ca fiind foarte folositor.

3. Versiuni noi i disponibilitate


Acest document este publicat n seciunea Ghiduri (Guides) a Proiectului pentru documentaie Linux (Linux Documentation Project) la adresa http://www.tldp.org/guides.html; l putei descrca, de asemenea, n format PDF i PostScript de la aceeai adres. Cea mai recent ediie este disponibil la http://tille.garrels.be/training/tldp/. Cea de-a doua ediie a ghidului este disponibil ca material tiprit la Fultus.com Books ca Print On Demand (tipritur la cerere). Fultus distribuie acest ghid prin Ingram and Baker & Taylor ctre multe librrii, printre care Amazon.com, Amazon.co.uk, BarnesAndNoble.com and Google's Froogle, portalul global pentru cumprturi, i Google Book Search.
Figura 1. Coperta ghidului

Acest ghid a fost tradus n hindu (http://www.geocities.com/linuxparichay/) de :

Alok Kumar Dhananjay Sharma Kapil Puneet Goel Ravikant Yuyutsu gsete la adresa de web

Andrea Montagner a tradus acest ghid n limba italian. El se http://www.codex.altervista.org/introlinux.html.

4. Revizuiri
Versiunea 1.26 19-09-2007 Comentarii de la cititori, liceniere. Revizuit de: MG

Versiunea 1.25 11-05-2007 Revizuit de: MG Comentarii de la cititori, actualizri minore, eticheta n utilizarea e-mail-ului , informaii la zi despre disponibilitate (mulumiri lui Oleg). Versiunea 1.24 01-11-2006 Revizuit de: MG Adugai termeni ai index-ului, pregtire pentru cea de-a doua ediie tiprit, adugate informaii despre gpg (general public licence) i proxy-uri. Versiunea 1.23 25-07-2006 Revizuit de: MG i FK Actualizri i corecturi, scos appendix-ul 5 din nou, modificarea licenei pentru a permite includerea n documentaia Debian. Versiunea 1.22 06-04-2006 Revizuit de: MG Capitolul 8 revizuit complet, capitolul 10: clarificate exemplele, adugate informaii despre ifconfig i cygwin, revizuit seciunea despre network apps. Versiunea 1.21 14-03-2006 Revizuit de: MG Adugate exerciii n capitolul 11, corectate erorile n seciunea newline, completate comenzile din capitolul 9, corecii minore n capitolul 10. Versiunea 1.20 06-01-2006 Revizuit de: MG mprit capitolul 7: seciunea despre audio se gsete acum n capitol separat, capitolul 11. Revizuiri minore, actualizri pentru comenzi ca aptitude, mai multe despre mediile de stocare USB, telefonie Internet, corecturi de la cititori. Versiunea 1.13 27-04-2004 Revizuit de: MG Corecturi de ultim moment nainte de a trimite materialul ctre Fultus pentru tiprire. Adugarea referinelor Fultus n seciunea Revizuiri, revizuirea seciunilor Convenii i Organizare. Schimbri minore n capitolele 4, 5, 6 i 8, adugarea informaiilor despre rdesktop n capitolul 10, revizuirea glosarului, nlocuirea referinelor despre fileutils cu cele pentru coreutils, mulumiri ctre translatorii pentru limba hindu.

5. Contribuii
Mulumesc din inim tuturor oamenilor care i-au mprtit experiena lor. i, n special, utilizatorilor de Linux belgieni, care au fost disponibili zi de zi i care au trimis comentariile lor foarte folositoare. De asemenea, un gnd bun ctre Tabatha Marshall, pentru c a fcut o revizuire complet, corectur gramatical i de stil, i ctre Eugen Crosser, care a observat erorile trecute cu vederea de ctre noi dou. Mulumesc i tuturor cititorilor care m-au atenionat despre topicuri ce nu se regseau n ghid i care m-au ajutat s rectific greelile i definiiile confuze, pentru c au gsit timp s-mi trimit remarcile lor. Acetia sunt oamenii pentru care m strduiesc s menin acest ghid la zi, precum Filipus Klutiero, care a 3

fcut o revizuire complet n 2005 i 2006 i care m-a ajutat s includ ghidul n colecia de documentaie Debian, i Alexey Eremenko, care mi-a trimis bazele de la care a plecat capitolul 11. n 2006, Suresh Rajashekara a realizat un pachet Debian pentru aceast documentaie. n sfrit, multe mulumiri ctre voluntarii care traduc acest ghid n limbile francez, suedez, farsi, hindu i altele. Este o munc grea care nu ar trebui subestimat; v admir curajul.

6. Feedback (Reacii i comentarii de la cititori)


Informaii lips, legturi inexistente, greeli de tipar? Trimitei un mail ctre autoare la: <tille wants no spam _at_ garrels dot be>. Nu uitai s verificai http://tille.garrels.be/training/tldp/. mai nti ultima versiune disponibil, la adresa de Internet

7. Informaii despre copyright

Logo-urile, mrcile i simbolurile utilizate n acest ghid sunt proprietatea respectivilor deintori.

8. Ce v trebuie?
Avei nevoie de un calculator i un mediu care s conin o distribuie de Linux. Cea mai mare parte a acestui ghid este valabil tuturor distribuiilor de Linux i UNIX, n general. La acest moment, nu exist alte cerine. Capitolul CUM S instalm conine informaii folositoare despre obinerea sistemului de operare Linux i instalarea acestuia n calculator. Cerinele de hardware i coexistena cu alte sisteme de operare vor fi, de asemenea, discutate. 4

Imaginile CD-urilor pot fi descrcate de la http://www.linux-iso.com/ i din alte locuri, prezentate n Appendix A. O alternativ interesant pentru cei care nu vor s fac pasul ctre o instalare a Linux-ului pe calculatorul lor este cea a distribuiilor de Linux care pot rula i de pe CD, precum Knoppix (http://www.knoppix.com/) sau Ubuntun.t. (http://www.ubuntu.com/ ).

9. Convenii utilizate n acest document


Urmtoarele convenii folositoare sunt utilizate n acest text: Tabelul 1. Convenii utilizate n acest ghid Text citat captur din Terminal comand VARIABIL Consideraii de la cititori, evidenierea unui rspuns al calculatorului. Captur de text introdus sau afiat n Terminal, evideniat, de regul, de un fond gri deschis. Numele unei comenzi care poate fi introdus n linia de comand. Numele unei variabile sau al unui indicator ce conine o variabil, precum n $VARNAME Opiune a unei comenzi, precum n: opiunea -a a comenzii ls. Argumentul unei comenzi, precum n citete man ls. Prompterul utilizatorului, urmat, de regul, de o comand pe care ai introdus-o n Terminal, precum n hilda@home>ls -l Sintaxa unei comenzi, scris ca linie separat. Numele unui fiier sau director, de exemplu Mergei la directorul /usr/bin. Taste care trebuie apsate, precum n tastai Q pentru renunare. Buton grafic care trebuie apsat, precum butonul OK. Alegere fcut dintr-un meniu grafic, de exemplu: Selectai Ajutor Despre Mozilla din browser-ul (navigatorul) dumneavoastr. Termen sau concept important: Kernelul Linux este inima sistemului. Acest caracter, ntr-o captur din Terminal sau sintax de comand, indic o linie neterminat. Cu alte cuvinte, dac vedei o comand mai lung, care este prezentat n mai multe linii, \ nseamn Nu tastai nc Enter. Sunt utilizate i urmtoarele imagini: Aceasta este o not. Conine informaii adiionale sau anumite remarci. Aceasta este o atenionare. nseamn s fii ateni. Aceasta este o avertizare. nseamn s fii foarte ateni. Sfaturi.

opiune argument prompt


comand opiune argumente

nume_fiier
Tast Buton MeniuAlege Terminologie \

10. Organizarea acestui document


Acest ghid este parte a Proiectului de documentaie pentru Linux i se dorete a fi punctul de plecare n studierea celorlalte materiale pe care le putei gsi n cadrul acestui proiect. Ca atare, v ofer cunotinele de baz necesare oricrei persoane care dorete s nceap s lucreze cu un sistem Linux, ncercnd, n acelai timp, s evite a inventa din nou apa cald. De aceea, ateptai-v ca acest ghid s nu fie complet, ci plin de legturi ctre surse adiionale de informaii despre sistemul dumneavoastr, pe Internet i ctre documentaia specific sistemului dumneavoastr.

Primul capitol este o introducere n subiectul Linux; n urmtoarele dou se discut comenzile de baz. n capitolele 4 i 5 se discut despre subiecte ceva mai avansate, dar, totui, de baz. De capitolul 6 avei nevoie pentru a continua cu restul, ntruct se discut despre editarea fiierelor, o abilitate de care avei nevoie pentru a face trecerea de la nou n Linux, ctre utilizator de Linux. Capitolele urmtoare trateaz subiecte mai avansate, de care avei nevoie n utilizarea de zi cu zi a Linux-ului. Toate capitolele au exerciii care v testeaz pregtirea n vederea abordrii urmtorului nivel.

Capitolul 1: Ce este Linux-ul, cum a aprut el, avantaje i dezavantaje, ce va aduce viitorul pentru
Linux, cine ar trebui s-l foloseasc, instalarea n calculatorul dumneavoastr.

Capitolul 2: S ncepem, autentificarea la sistem, comenzile de baz, unde s cutm ajutor. Capitolul 3: Sistemul de fiiere, fiiere i directoare importante, lucrul cu fiierele i directoarele,
protejarea datelor. Capitolul 4: nelegerea proceselor i lucrul cu acestea, procedurile de pornire i nchidere, amnarea sarcinilor, sarcini repetitive. Capitolul 5: Ce este o intrare standard, o ieire i o eroare i cum sunt folosite aceste elemente din prompterul de comand. Capitolul 6: De ce ar trebui s nvai s lucrai cu un editor de text, discutarea celor mai comune editoare de text. Capitolul 7: Configurarea mediului dumneavoastr, grafic, text sau audio, setri pentru utilizatorii de Linux pentru care engleza nu este limba matern, sfaturi pentru adugarea altor programe. Capitolul 8: Convertirea fiierelor n format pentru tiprire, scoaterea acestora la imprimant, sfaturi pentru rezolvarea problemelor legate de tiprire. Capitolul 9: Pregtirea datelor pentru copiile de rezerv, discutarea diverselor unelte, copii de rezerv la distan. Capitolul 10: Trecerea n revist a uneltelor de reea ale Linux-ului i a aplicaiilor pentru utilizatori, cu o scurt discuie axat pe programele tip servicii (service daemon) i reea securizat. Capitolul 11: Sunet i video, incluznd aici Voice over IP i nregistrarea sunetului. Appendix A: Ce cri s citii i ce saituri s vizitai dup terminarea acestei cri. Appendix B: O comparaie. Appendix C: Dac v blocai, acest tabel poate fi de ajutor. De asemenea, un bun argument atunci cnd eful insist ca DUMNEAVOASTR s folosii shell-ul SU favorit.

Capitolul 1. Ce este Linux-ul?


Vom ncepe cu o trecere n revist a modului n care Linux-ul a devenit sistemul de operare aa cum l cunoatem astzi. Vom discuta despre trecut i despre dezvoltarea acestui sistem pe viitor i ne vom apleca asupra avantajelor i dezavantajelor lui. Vom vorbi despre distribuii, despre Sursa deschis n general i vom ncerca s explicm pe scurt ce este GNU. Acest capitol rspunde la ntrebri precum:

Ce este Linux-ul? Unde i cum a luat natere Linux-ul? Nu este Linux-ul acel sistem n care totul este fcut n modul text? Are Linux-ul viitor, sau este doar o fantezie? Care sunt avantajele utilizrii Linux-ului? Care sunt dezavantajele? Cte feluri de Linux exist i cum aleg ceea ce mi se potrivete mie? Ce sunt micrile Sursa deschis i GNU?

1.1. Istoric
1.1.1. UNIX
Pentru a nelege popularitatea Linux-ului, trebuie s cltorim napoi n timp, cu aproape 30 de ani... Imaginai-v calculatoare att de mari precum casele sau chiar stadioanele. n timp ce doar mrimea acestora ridica probleme substaniale, exista ceva care fcea ca totul s fie i mai ru: fiecare calculator avea un sistem de operare diferit. Programele erau ntotdeauna dedicate unui scop anume, iar un program pentru un anume sistem nu rula pe un altul. A fi capabil s lucrezi cu un sistem nu nsemna c, automat, poi lucra cu un altul. Era dificil, att pentru utilizatori, ct i pentru administratorii de sistem. Calculatoarele erau deosebit de scumpe, iar sacrificii tot trebuiau fcute i dup achiziionarea acestora, doar pentru a face utilizatorii s neleag modul de lucru al acestor maini. Costul total pe unitatea de calcul era enorm. Din punct de vedere tehnologic, lumea nu era att de avansat, aa c mrimea a mai pus probleme pentru nc o decad. n 1969, o echip de dezvoltatori de la laboratoarele Bell Lab a nceput s lucreze la o soluie pentru problema programelor, pentru a rezolva aspectele de compatibilitate. Ei au dezvoltat un nou sistem de operare, care era: 1. Simplu i elegant. 2. Scris n limbajul de programare C n locul limbajului de asamblare. 3. Capabil s recicleze codul. Dezvoltatorii de la Bell Labs au numit acest proiect UNIX. Capabilitatea de reciclare a codului era foarte important. Pn atunci, toate sistemele de operare comerciale care se gseau erau scrise ntr-un cod dezvoltat pentru un anume sistem. UNIX-ul, pe de alt parte, avea nevoie doar de o poriune mic a acelui cod, care este numit acum kernel. Acest kernel este singura poriune de cod care trebuie adaptat pentru un anume sistem i formeaz baza unui sistem UNIX. Sistemul de operare i celelalte funcii au fost construite n jurul acestui kernel i scrise ntr-un limbaj de programare mai evoluat, C. Acest limbaj a fost dezvoltat n mod special pentru realizarea sistemului UNIX. Utiliznd noua tehnic, a fost mult mai uor s se dezvolte un sistem de operare care s ruleze pe echipamente diferite. Comercianii de programe s-au adaptat repede, deoarece puteau acum s vnd de zeci de ori mai mult, aproape fr efort. Situaii noi i ciudate au aprut: imaginai-v de exemplu calculatoare de la diferii productori care comunic n aceeai reea, sau utilizatori care lucreaz pe maini diferite fr a avea nevoie de instruire. UNIX-ul a ajutat mult pe utilizatori n privina compatibilitii cu calculatoare diferite. Pe parcursul urmtoarelor dou decade, dezvoltarea UNIX-ului a continuat. Mai multe lucruri au 7

devenit posibile, iar din ce n ce mai muli productori de echipamente i programe au adugat suport pentru UNIX n produsele lor. UNIX-ul se gsea iniial numai n medii dedicate, alctuite din servere i minicalculatoare (luai not de faptul c PC-ul este un micro calculator). Trebuia s lucrezi ntr-o universitate, pentru guvern sau pentru o mare corporaie financiar pentru a atinge un sistem UNIX. Dar calculatoare mai mici au aprut treptat i, pe la sfritul anilor 80, muli oameni aveau calculatoare acas. La acel timp, existau cteva versiuni de UNIX destinate arhitecturii PC, dar nici una din ele nu era cu adevrat liber sau gratuit i, ceea ce era mai important: toate erau extrem de ncete, aa c cei mai muli oameni rulau MS DOS sau Windows 3.1 pe calculatoarele de acas.

1.1.2. Linus i Linux


Pe la nceputul anilor 90, calculatoarele din segmentul PC erau, n sfrit, suficient de puternice pentru ca s ruleze un UNIX n ntregime. Linus Torvalds, un tnr care studia informatica la Universitatea din Helsinki, s-a gndit c ar fi o idee bun s aib un fel de versiune academic liber a UNIX-ului i s-a apucat s scrie cod pentru aceasta. El a nceput s pun ntrebri, s caute rspunsuri i soluii care l-ar putea ajuta s aib UNIX-ul pe calculatorul su. Mai jos v prezentm una din primele sale postri n comp.os.minix, datnd din 1991:

nc de la nceput, elul lui Linus a fost s aib un sistem care s fie pe deplin compatibil cu UNIXul original. De aceea ntreba despre standardul POSIX, acesta fiind i acum standardul pentru UNIX. n acele zile nu se inventase nc ceea ce cunoatem azi a fi plug-and-play, dar destul de muli oameni doreau un sistem UNIX al lor, nct acest lucru era considerat doar un mic obstacol. Drivere noi pentru tot felul de dispozitive au devenit disponibile, cu o vitez din ce n ce mai mare. Aproape c de ndat ce un nou dispozitiv era scos pe pia, cineva l cumpra i l supunea testrii n Linux, dup cum a nceput s fie cunoscut sistemul, conducnd la apariia codului liber destinat unei palete largi de echipamente. Aceti programatori nu se opreau la propriul PC; orice dispozitiv gseau era folositor Linux-ului. Pe atunci, aceti oameni erau numii ncuiai sau ciudai, dar asta nu conta pentru ei, att timp ct lista cu dispozitivele suportate devenea din ce n ce mai lung. Mulumit acestor oameni, Linux-ul nu numai c ruleaz ideal pe un calculator nou, dar este i singura alegere n cazul unor dispozitive vechi sau exotice, care ar fi inutilizabile dac Linux-ul nu ar fi existat. La doi ani dup aceast postare a lui Linus, existau 12000 de utilizatori de Linux. Proiectul, popular printre hobiti, a crescut constant, rmnnd n permanen n graniele standardului POSIX. Toate capabilitile UNIX-ului au fost adugate pe parcursul urmtorilor doi ani, rezultnd sistemul de operare matur care este astzi. Linux-ul este o clon complet a UNIX-ului, potrivit pentru staiile de lucru, dar i pentru zona de mijloc sau sectorul de vrf al serverelor. n zilele noastre, muli juctori importani de pe piaa de dispozitive i programe au propriile echipe de dezvoltatori Linux. Din magazinele aflate n zona dumneavoastr putei chiar cumpra sisteme care au Linux-ul preinstalat, cu suport tehnic asigurat, dup cum este adevrat i faptul c exist dispozitive i programe care nu sunt nc integrate.

1.1.3. Aplicaii curente pentru sisteme Linux


Astzi, Linux-ul s-a alturat produselor aflate pe piaa pentru desktop-uri. Dezvoltatorii de Linux, concentrai n reelistic i servicii la nceput, ct i n aplicaiile pentru birou, erau ultima barier care trebuia nlturat. Nu ne place s admitem c Microsoft dicteaz piaa, aa c mai multe alternative, care fac Linuxul o alegere demn de luat n seam pentru calculatoare personale, au fost lansate pe parcursul ultimilor ani, alternative care asigur o interfa cu utilizatorul uor de utilizat i aplicaii pentru birou compatibile cu MS 8

Office, precum procesoare de text, foi pentru calcul tabelar, prezentri i altele de acest gen. n ceea ce privete serverele, Linux-ul este binecunoscut ca o platform stabil i de ncredere, asigurnd baze de date i servicii de comer pentru companii precum Amazon, faimoasa librrie online, Serviciul potal al S.U.A., Armata german, i multe altele. n special, furnizorii de Internet i furnizorii de servicii pe Internet s-au dezvoltat ajutai de Linux ca firewall, server proxy sau web; vei gsi un sistem Linux la ndemna oricrui administrator de sisteme UNIX, care l apreciaz drept o staie confortabil de gestionare. Sistemele Linux au fost folosite n realizarea unor filme ca Titanic, Shrek i altele. n oficiile potale, ele sunt centrii nervoi care sorteaz corespondena, iar n marile motoare de cutare ele sunt folosite pentru a realiza cutrile pe Internet. Acestea sunt doar cteva din miile de lucruri complexe pe care le realizeaz Linux-ul zi de zi, n toat lumea. Este demn de menionat c Linux-ul modern nu ruleaz numai pe staii de lucru i servere din sectoarele de mijloc sau de vrf, ci i pe gadgeturi ca PDA-uri, telefoane mobile, multe echipamente dedicate, chiar i pe ceasuri de mn experimentale. Acest lucru face din Linux singurul sistem de operare din lume care acoper o att de larg varietate de echipamente.

1.2. Interfaa cu utilizatorul


1.2.1. Este Linux-ul dificil?
Rspunsurile la aceast ntrebare difer n funcie de cui te adresezi. Utilizatorii de UNIX vor spune nu, deoarece Linux-ul este sistemul de operare ideal pentru utilizatori avansai i programatori, pentru c a fost i este dezvoltat de ctre astfel de oameni. Tot ceea ce are nevoie un bun programator gsii aici: compilatoare, librrii, unelte pentru dezvoltare i reparare de erori. Aceste pachete vin cu orice distribuie standard de Linux. Compilatorul C inclus este gratuit lucru opus multor distribuii de UNIX, care impun o tax de licen pentru aceast unealt. Toat documentaia i manualele sunt incluse, iar adesea sunt oferite i exemple, pentru a v ajuta s ncepei imediat. Este perceput ca un UNIX, iar trecerea de la UNIX la Linux este un lucru natural. n zilele de nceput ale Linux-ului, a fi expert era un fel de cerin pentru a ncepe s utilizezi sistemul. Cei care stpneau Linux-ul se simeau superiori celorlali care nu fuseser iluminai...S spui unui nceptor RTFM (adic s citeasc ... manualele) era o practic des ntlnit la acea vreme. Manuale erau n orice sistem, dar documentaia era greu de gsit, i chiar dac cineva o gsea, explicaiile erau date n termeni att de tehnici, nct un nceptor era repede descurajat din nvarea sistemului. Comunitatea din jurul Linux-ului a nceput s neleag c, dac se dorea ca Linux-ul s devin un juctor important de piaa sistemelor de operare, atunci trebuia s apar schimbri serioase n accesibilitatea acestui sistem.

1.2.2. Linux pentru utilizatorii fr experien


Au aprut companii precum RedHat, SuSE i Mandriva, care au furnizat distribuii de Linux pregtite pentru consumul de mas. Ele au integrat n acestea interfaa grafic cu utilizatorul (GUI), dezvoltat de ctre comunitate, n ideea de a uura gestionarea programelor i serviciilor. Ca utilizatori ai Linux-ului din zilele noastre, avei toate mijloacele prin care s v cunoatei sistemul din toate punctele de vedere, dar nu mai este necesar s facei asta pentru a comunica sistemului cererile dumneavoastr. Acum v putei autentifica n modul grafic i lansa toate aplicaiile necesare fr s fii nevoii s introducei comenzi de la tastatur, avnd, n acelai timp, posibilitatea de a accesa inima sistemului, dac este necesar. Datorit structurii sale, Linux-ul permite utilizatorilor s descopere gradual posibilitile sistemului: se adreseaz n aceeai msur utilizatorilor nceptori i celor experimentai. Noii venii nu sunt forai s fac lucruri dificile, iar utilizatorii experimentai nu sunt forai s lucreze n acelai mod n care au nceput s nvee despre Linux. n timp ce dezvoltrile n acest domeniu continu, lucruri importante au fost fcute pentru utilizatorii de calculatoare personale, considerai a fi cei care cunosc cel mai puin modul de funcionare al unui sistem. Dezvoltatorii de aplicaii pentru PC fac eforturi incredibile pentru a realiza cel mai frumos spaiu de lucru sau pentru a face ca sistemul dumneavoastr Linux s arate ca fostul MS Windows sau Apple. Ultimele versiuni includ suport pentru acceleraie 3D i pentru dispozitive USB, realizarea de actualizri ale sistemului sau pachetelor printr-o singur apsare a butoanelor mausului, i altele de acest fel. Linux-ul are toate aceste 9

lucruri i se ncearc prezentarea tuturor serviciilor disponibile ntr-o nfiare logic pe care i oamenii obinuii o pot nelege. Mai jos este o list care conine cteva exemple excepionale; aceste saituri au multe capturi de ecran care v vor oferi o idee despre cum poate arta un Linux pe un calculator personal:

http://www.gnome.org http://www.kde.org/screenshots/ http://www.openoffice.org http://www.mozilla.org http://www.ubuntu.comn.t

1.3. Are Linux-ul viitor?


1.3.1. Sursa deschis
Ideea din spatele programelor Surs deschis este una destul de simpl: atunci cnd programatorii pot citi, distribui i schimba codul, codul se va maturiza. Oamenii l pot adapta, repara, explora defectele i pot face aceste lucruri la o vitez care spulber performanele dezvoltatorilor de programe din cadrul companiilor convenionale. Aceste programe vor fi mai flexibile i de o calitate mai bun dect programele care au fost dezvoltate pe canale convenionale, deoarece le-au testat mai multe persoane, n condiii diferite de cele n care dezvoltatorii de programe proprietare pot s o fac. Iniiativa Surs deschis (Open Source) a nceput s se impun n lumea comercial i, foarte ncet, distribuitorii neleg punctul de vedere al acesteia. n timp ce muli oameni din lumea academic i tehnic erau deja convini de aproape 20 de ani c acesta este drumul de urmat, distribuitorii din lumea comerului au avut nevoie de aplicaii ca Internetul pentru a realiza c i ei pot profita de pe urma Sursei deschise. Acum Linux-ul a trecut de stadiul n care era un sistem aproape exclusiv academic, folositor doar unei mini de oameni cu aptitudini tehnice. Linux-ul asigur mai mult dect un sistem de operare: exist o ntreag infrastructur care susine efortul concentrat necesar realizrii unui sistem de operare, scrierii i testrii de programe pentru acesta, aducerii roadelor ntregului efort ctre utilizatori, asigurarea ntreinerii, suportului, actualizrilor i personalizrilor, etc. Astzi, Linux-ul este gata s accepte provocrile unei lumi aflate ntr-o transformare rapid.

1.3.2. Zece ani de experien la dispoziia dumneavoastr


Pe cnd Linux-ul este, probabil, cea mai bine cunoscut iniiativ a Sursei deschise, exist un alt proiect care a contribuit enorm la popularitatea sistemului Linux. Acest proiect poart numele de SAMBA i contribuia lui este aplicarea ingineriei inverse asupra protocolului Server Message Block (SMB)/Common Internet File System (CIFS), utilizat la gestionarea fiierelor i tipririi pe mainile compatibile PC, integrat nativ de MS Windows NT i OS/2, precum i de Linux. Sunt disponibile pachete pentru aproape orice sistem, ele asigurnd soluii de interconectare n medii diferite, folosind protocoalele MS Windows: cu servere pentru transfer de fiiere i servere pentru tiprire, compatibile cu Windows (incluznd WinXP). Poate c mai de succes dect proiectul SAMBA este proiectul pentru server Apache HTTP. Serverul ruleaz pe UNIX, Windows NT i multe alte sisteme de operare. Cunoscut la nceput ca serverul A PatCHy, pe baza unui cod existent i a unei serii de fiiere de peticire, numele pentru codul ajuns la maturitate merit s fie legat de tribul de americani nativi Apache, bine cunoscui pentru nsuirile lor superioare n strategia confruntrilor i adaptarea extraordinar la mediu. Apache s-a dovedit a fi mult mai rapid, mai stabil i ofer mai multe faciliti dect alte programe pentru servere web. Apache ruleaz pe saituri care au milioane de vizitatori pe zi, n timp ce nu este asigurat suport oficial din partea dezvoltatorilor, ns rspunsuri la problemele ntlnite sunt furnizate de comunitatea utilizatorilor. Asisten contra cost este asigurat de tere pri. n categoria aplicaiilor pentru birou, sunt disponibile cteva clone ale suitei MS Office, care merg de la o implementare parial pn la cea total a programelor existente pe staiile de lucru MS Windows. Aceste iniiative au ajutat mult Linux-ul n efortul de a se face acceptabil pentru piaa calculatoarelor personale, deoarece utilizatorii nu au nevoie de pregtire suplimentar pentru a lucra cu noile sisteme. 10

Odat cu pachetele pentru calculatoarele personale vine i atenia acordat utilizatorilor de rnd, manifestat i prin implementarea cererilor acestora, care devin mai complexe i mai solicitante pe zi ce trece. Comunitatea Sursei deschise, format n principal din oameni care au contribuit mai bine de jumtate de deceniu, garanteaz poziia de juctor important a Linux-ului pe piaa calculatoarelor personale, precum i pe cea a aplicaiilor generale din domeniul IT. Angajai pltii, mpreun cu voluntari, lucreaz cu srguin pentru ca Linux-ul s-i menin poziia pe pia. Mai muli utilizatori nseamn mai multe ntrebri. Comunitatea Sursei deschise se asigur c rspunsurile vin nencetat i supravegheaz calitatea acestor rspunsuri cu o atitudine critic, adugnd astfel mai mult stabilitate i accesibilitate. Acest ghid nu i propune s listeze toate programele existente pentru Linux, deoarece exist zeci de mii de pachete. Prin acest curs v vom prezenta cele mai utilizate pachete, care sunt aproape n totalitate disponibile gratuit. Pentru a v elibera de teama pe care o simte un utilizator nceptor, v prezentm o captur a unui program foarte dorit de dumneavoastr. Putei observa c au fost depuse toate eforturile pentru ca cei care renun la Windows s se simt ca acas:
Figura 1-1. Foi de calcul OpenOffice compatibile cu MS Office

1.4. Proprietile Linux-ului


1.4.1. Avantajele Linux-ului
Multe din avantajele Linux-ului sunt o consecin a originilor sale, cu rdcini adnci n UNIX, cu excepia primului, desigur: Linux-ul este gratuit. Precum berea moca, se spune. Dac nu dorii s cheltuii nimic, nu trebuie s pltii nici mcar preul unui CD gol. Linux-ul poate fi descrcat n ntregime de pe Internet absolut gratuit. Nu exist taxe de nregistrare, costuri pe numr de utilizatori, iar actualizrile sunt gratuite i codul surs este disponibil n cazul n care dorii s schimbai comportamentul sistemului. Mai mult, Linux-ul este gratuit i liber, dup cum se afirm mai jos: Licena folosit n general este Licena public GNU (GPL). Ea spune c oricine dorete s schimbe Linux-ul i s, eventual, redistribuie aceast versiune modificat, are acest drept, cu o singur condiie, anume codul surs s fie disponibil i dup modificare. Concret, asta nseamn c putei lua o imagine a kernelului, s-i adugai, de exemplu, suport pentru un dispozitiv de teleportare sau de cltorie n timp i s vindei acest nou cod att timp ct clienii dumneavoastr pot avea o copie a acestui cod. Linux-ul poate fi portat pe orice fel de dispozitive. Un vnztor care dorete s comercializeze un tip nou de procesor i care nu tie ce fel de sistem de operare va rula pe acest echipament (s spunem c este vorba despre un procesor instalat n autoturismul dumneavoastr sau n maina de splat vase), poate lua i adapta echipamentului su un 11

kernel Linux, deoarece documentaia necesar este disponibil. Linux-ul este fcut pentru a funciona nentrerupt. La fel ca UNIX-ul, un sistem Linux este fcut pentru a rula fr s fim nevoii s-l repornim tot timpul. De aceea, o mulime de sarcini sunt executate noaptea sau programate automat pentru momentele de acalmie, ceea ce nseamn o mai mare disponibilitate pe parcursul perioadelor mai solicitante i o folosire echilibrat a sistemului. Aceast proprietate permite Linux-ului s fie potrivit pentru situaii n care oamenii nu au timpul sau posibilitatea de a controla sistemele lor zi i noapte. Linux-ul este de ncredere i versatil. Modelul de securitate folosit pentru Linux este bazat pe conceptul de siguran din UNIX, despre care se tie c este robust i de o calitate dovedit odat cu trecerea timpului. Dar Linux-ul nu este potrivit doar ca fortrea mpotriva atacurilor de pe Internet: el se va adapta n mod egal oricrei situaii, ns folosind aceleai standarde ridicate n privina securitii. Staia dumneavoastr folosit la dezvoltarea de programe sau pentru controlul reelei va fi la fel de securizat precum firewall-ul. Linux-ul este scalabil. De la un dispozitiv Palmtop cu 2 MO de memorie la un mediu de stocare de ordinul petaocteilor, care nglobeaz sute de noduri: adugai sau ndeprtai pachetele potrivite i Linux-ul se va potrivi tuturor. Nu mai avei nevoie de un supercalculator, deoarece putei folosi Linux-ul pentru lucruri deosebite, apelnd doar la pachetele furnizate mpreun cu sistemul. Dac dorii s facei lucruri mai puin solicitante, ca, de exemplu, s realizai un sistem de operare pentru un procesor dedicat sau s refolosii vechea dumneavoastr main 486, Linux-ul va putea fi folosit i pentru aceste lucruri. Sistemul de operare Linux i cele mai multe aplicaii pentru acesta se bucur de un timp scurt n care sunt puse la punct deficienele semnalate. Deoarece Linux-ul este dezvoltat i testat de mii de oameni, att erorile, ct i cei care le pot repara sunt foarte uor de gsit. Adesea se ntmpl s treac doar cteva ore ntre descoperirea i repararea unei erori.

1.4.2. Dezavantajele Linux-ului


Se poate spune c exist prea multe distribuii. Cte capete, attea preri, spune un vechi proverb roman. Cu ct mai muli oameni sunt implicai, vor exista mai multe preri. La o prim vedere, numrul distribuiilor de Linux poate prea nspimnttor sau ridicol, n funcie de convingerile fiecruia. Dar nseamn i c oricine poate gsi tot ceea ce dorete. Nu trebuie s fii un expert pentru a gsi ceea ce vi se potrivete. Atunci cnd ntrebai un utilizator de Linux care este cea mai bun distribuie, n general vi se va rspunde c aceea pe care o folosete el . Aa c pe care s o alegei? Nu v batei capul prea mult cu acest lucru: toate distribuiile conin, mai mult sau mai puin, acelai set de pachete de baz. Peste aceast baz sunt adugate programe speciale de la tere pri, pentru a face, de exemplu, TurboLinux mai potrivit pentru ntreprinderi mici i mijlocii, RedHat pentru servere i SuSE (sau Ubuntu n.t.) pentru staiile de lucru. Totui, diferenele sunt mai degrab superficiale. Cea mai bun strategie este s testai mai multe distribuii; din nefericire, nimeni nu are timp pentru aa ceva. Exist ns multe sfaturi pe marginea subiectului alegerii Linux-ului. O cutare rapid pe Google (http://www.google.com/linux) folosind cuvintele cheie alegei-v distribuia, va returna zeci de legturi ctre sfaturi demne de luat n considerare. Capitolul CUM S instalm va discuta, de asemenea, despre alegerea distribuiei. Linux-ul nu este foarte prietenos cu utilizatorii, fiind considerat confuz de ctre cei nceptori. Trebuie spus c Linux-ul i, n special, inima sistemului, sunt mai greu accesibile utilizatorilor dect MS Windows, chiar mai greu accesibile dect MacOS, dar, pentru a-i spori popularitatea, au fost depuse eforturi considerabile pentru a face Linux-ul mai uor de folosit de ctre utilizatorii nceptori. Zilnic sunt puse la dispoziie din ce n ce mai multe informaii, precum acest ghid, pentru a ajuta la umplerea golurilor din documentaia existent pentru utilizatorii de toate nivelurile. Sunt produsele Sursei deschise demne de ncredere? Cum poate ceva care este gratuit, s fie i de ncredere? Utilizatorii de Linux au mcar libertatea de a alege dac s foloseasc Linux sau nu, ceea ce le ofer un avantaj major n comparaie cu utilizatorii programelor proprietare, care nu se bucur de acest gen de libertate. Dup ndelungi perioade de testare, cei mai muli utilizatori ai Linux-ului au ajuns la concluzia c Linux-ul nu este doar la fel de bun, fiind chiar, n multe cazuri, mai bun i mai rapid dect soluiile tradiionale. Dac Linux-ul nu ar fi demn de ncredere, ar fi disprut de mult vreme, necunoscnd 12

popularitatea pe care o are, cu milioane de utilizatori. Acum utilizatorii pot s influeneze comportamentul sistemelor proprii i s mprteasc experiena lor comunitii, astfel sistemul fiind perfecionat zi dup zi. Este un proiect permanent, e adevrat, dar, ntr-un mediu aflat ntr-o continu schimbare, Linux-ul este un proiect care continu s urmreasc perfeciunea.

1.5. Aromele Linux


1.5.1. Linux i GNU
Cu toate c exist numeroase implementri ale Linux-ului, vei gsi multe similitudini n acestea, deoarece mainile Linux sunt ca un ntreg alctuit din piese pe care le alturai n funcie de nevoile pe care le avei sau de viziunea proprie. Instalarea sistemului este doar nceputul unei relaii pe termen lung. Atunci cnd credei c ai pus la punct un sistem care ruleaz superb, Linux-ul v va stimula imaginaia i creativitatea, iar cu ct nelegei mai multe despre ceea ce putei face cu sistemul, vei ncerca i mai mult s-i redefinii limitele. Linux-ul poate s v apar ca fiind diferit n funcie de distribuii, echipamentul fiecruia i preferinele personale, dar fundamentele de la care toate interfeele grafice i alte unelte sunt construite, sunt aceleai. Linux-ul se bazeaz pe uneltele GNU (GNU nu este UNIX), care asigur un set de standarde pentru alctuirea i gestionarea sistemului. Toate uneltele GNU sunt surs deschis, aa c pot fi instalate pe orice sistem. Cele mai multe distribuii v ofer pachete precompilate ale celor mai cunoscute unelte, cum ar fi pachetele RPM de la RedHat i pachetele Debian (denumite i deb sau dpkg) din distribuia cu acelai nume (sau din Ubuntun.t.), astfel c nu trebuie s fii un bun programator pentru a instala un pachet n sistem. Dac suntei i dac v place s facei lucrurile dumneavoastr niv, v vei bucura enorm de Linux, pentru c majoritatea distribuiilor vin cu un set complet de unelte pentru dezvoltatori, care permit instalarea de programe noi din codul surs pur. Aceast abordare v ajut s instalai i programele care nu sunt mpachetate ntr-o form potrivit sistemului dumneavoastr. Iat o list a unor programe GNU mai cunoscute: Bash: consola GNU GCC: compilatorul C al GNU GDB: unealta pentru cutarea erorilor Coreutils: un set de unelte de baz n stilul UNIX-ului, precum ls, cat i chmod Findutils: utilitar pentru cutarea i cercetarea fiierelor Fontutils: folositor la convertirea fonturilor dintr-un format n altul i realizarea de fonturi The Gimp: programul pentru gestionarea imaginilor din GNU Gnome: interfaa grafic cu utilizatorul Emacs: un editor puternic Ghostscript i Ghostview: interpretoare i interfa grafic pentru fiierele PostScripts GNU Photo: program pentru interaciunea cu aparatele foto digitale Octave: un limbaj de programare, destinat iniial pentru executarea de calcule numerice i procesri de imagine GNU SQL: baze de date relaionare Radius: server pentru autentificare la distan i gestiune reea ... Multe aplicaii comerciale sunt disponibile pentru Linux, dar pentru mai multe informaii despre ele v vom ndruma ctre documentaia acestora. Pe parcursul acestui ghid vom discuta numai programele disponibile liber, gratuit, care vin (de obicei) sub licena GNU. Pentru a instala pachetele lips sau pachete noi, avei nevoie de un tip de program pentru gestionarea pachetelor. Cele mai cunoscute implementri includ RPM i dpkg. RPM este numit Programul de gestionare a pachetelor RedHat (RedHat Package Manager), i este utilizat de mai multe sisteme Linux, dei numele nu sugereaz acest lucru. Dpkg este programul de gestionare a pachetelor Debian, care utilizeaz o interfa numit apt-get, care poate gestiona i pachete RPM. Novell Ximian Red Carpet este o 13

implementare a programului RPM, care dispune de o interfa grafic, realizat de ctre compania Novell. Alte companii implicate n comercializarea de programe pot pune la dispoziie propriile lor proceduri de instalare, cteodat asemntoare cu InstallShield-urile cunoscute din MS Windows sau alte platforme. Pe msur ce vei avansa n Linux, vei ajunge s cunoatei unul sau mai multe din aceste programe.

1.5.2. GNU/Linux
Kernelul Linux (coloana vertebral a sistemului, vezi Seciunea 3.2.3.1) nu este parte a proiectului GNU, dar utilizeaz aceeai licen cu programele GNU. Marea majoritate a utilitilor i uneltelor pentru dezvoltare (muchii sistemului), care nu sunt specifice Linux-ului, sunt luate din proiectul GNU. Deoarece orice sistem care se dorete a fi utilizabil trebuie s conin att kernelul, ct i un set minimal de utiliti, exist voci care cer ca un asemenea sistem s fie numit un sistem GNU/Linux. n ideea de a obine cel mai nalt grad de independen fa de sisteme, acesta este felul de Linux pe care-l vom discuta pe parcursul acestui curs. Dac nu vom vorbi despre un sistem GNU/Linux, vor fi menionate numele distribuiei, versiunii sau programului.

1.5.3. Ce distribuie trebuie s instalez?


nainte de instalare, factorul determinant este echipamentul de care dispunei. Deoarece fiecare distribuie de Linux conine pachetele de baz, i poate fi configurat pentru a rspunde aproape oricror cerine (deoarece toate utilizeaz kernelul Linux), trebuie doar s avei n vedere dac o distribuie anume va rula pe echipamentul dumneavoastr. LinuxPPC de exemplu, a fost destinat pentru Apple i alte PowerPC, aa c nu va rula pe calculatoare compatibile x86. LinuxPPC ruleaz pe noile Mac-uri, dar nu poate fi folosit pentru cteva din modelele mai vechi, cu o tehnologie bus nvechit. Alt caz care pune unele probleme este cel al echipamentelor Sun, care pot fi bazate pe un procesor mai vechi SPARC CPU sau pe mai noile UltraSparc, fiecare necesitnd versiuni diferite de Linux. Cteva distribuii sunt optimizate pentru un anumit procesor, cum ar fi procesoarele Athlon, avnd i posibilitatea de a rula decent pe procesoarele compatibile cu Intel 486, 586 i 686. Distribuiile pentru procesoare speciale pot fi mai puin fiabile, ntruct sunt testate de mai puini oameni. Cele mai multe distribuii ofer un set de programe pentru calculatoarele personale, n pachete speciale, care conin kernele optimizate pentru procesoarele compatibile Intel x86. Aceste distribuii sunt testate extensiv i actualizate periodic, cu o atenie mrit acordat implementrii n condiii de siguran pe servere i unei proceduri de instalare i actualizare care s nu ridice probleme deosebite. Exemple care pot fi date sunt Debian, Ubuntu, Fedora, SuSE i Mandriva, care sunt, de departe, cele mai populare sisteme Linux, considerate totodat uor de folosit de utilizatorii nceptori i care nu limiteaz profesionitii n dorina lor de a obine totul de la un sistem. Linux-ul ruleaz bine i pe laptopuri sau servere. Drivere pentru dispozitivele noi sunt incluse numai dup o testare ndelungat, ceea ce adaug stabilitate sistemului. Mediul de lucru cel mai des ntlnit este Gnome, dar alii pot furniza KDE preinstalat. Att Gnome, ct i KDE sunt disponibile tuturor distribuiilor principale de Linux. Ali administratori pentru spaiul de lucru sunt disponibili utilizatorilor mai avansai. Procesul standard de instalare permite utilizatorilor s aleag ntre mai multe configurri predefinite, ca, de exemplu, pentru staii de lucru, caz n care sunt instalate toate pachetele pentru sarcinile zilnice i dezvoltare, sau pentru servere, caz n care pot fi selectate mai multe unelte pentru serviciile de reea. Utilizatorii experimentai pot instala orice combinaie de pachete doresc pe parcursul procesului iniial de instalare. Scopul acestui ghid este ca el s fie util tuturor distribuiilor de Linux. Pentru confortul dumneavoastr, sftuim pe nceptori s se limiteze la o distribuie principal, care suport ct mai multe dispozitive i ofer ct mai multe aplicaii. Iat cteva alegeri foarte bune pentru acetia:

Fedora Core Debian Ubuntun.t.: un sistem de operare care ruleaz i de pe CD-ROM, fr instalare SuSE Linux Mandriva (fostul MandrakeSoft) Knoppix: un sistem de operare care ruleaz i de pe CD-ROM, fr instalare 14

Imagini ale CD-urilor pot fi descrcate de la LinuxISO.org. Distribuiile principale pot fi achiziionate din orice magazin pentru calculatoare care se respect.

1.6. Sumar
n acest capitol am nvat c:

Linux-ul este o implementare a UNIX-ului. Sistemul de operare Linux este scris n limbajul de programare C. "De gustibus et coloribus non disputandum est": exist cte un Linux pentru fiecare. Linux-ul folosete uneltele GNU, un set de unelte standard disponibile oricui, pentru sistemului de operare.

manipularea

1.7. Exerciii
Un exerciiu practic pentru nceptori: instalai Linux-ul pe calculatoarele dumneavoastr. Citii manualul distribuiei alese i/sau CUM S instalm i punei-v pe treab. Citii documentaia! Cele mai multe erori survin pentru c informaiile furnizate pe parcursul instalrii nu sunt citite. Citirea acestor mesaje cu atenie este primul pas pe drumul spre succes. Lucruri pe care trebuie s le tii NAINTE de a ncepe o instalare a Linux-ului:

Va rula aceast distribuie pe calculatorul meu? Verificai la http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html atunci cnd avei dubii despre compatibilitatea cu echipamentul dumneavoastr. Ce tip de tastatur am (numrul de taste, poziionarea acestora)? Ce fel de maus (serial, paralel, numrul de butoane)? Ci MO de RAM am? Voi alege o instalare pentru o staie de lucru sau pentru un server, ori va trebui s selectez pachetele necesare eu nsumi? Voi instala de pe discul fix (hard disk), de pe un CD-ROM, sau voi utiliza reeaua? Va trebui s adaptez BIOS-ul pentru oricare dintre acestea? Metoda de instalare necesit un disc de pornire? Linux-ul va fi singurul sistem instalat pe calculator, sau va fi o instalare dual-boot? Ar trebui s fac o partiie mai mare pentru a instala pe ea sisteme virtuale mai trziu, sau este o instalare virtual de la nceput? Calculatorul este legat la reea? Care este numele gazdei, adresele de IP? Exist servere tip gateway sau alte dispozitive importante de reea cu care sistemul meu ar trebui s comunice?
Linux-ul se ateapt s fie conectat Neutilizarea reelei sau configurarea incorect a acesteia poate ncetini pornirea sistemului.

Calculatorul acesta este un gateway/router/firewall? (Dac trebuie s v gndii prea mult la aceast
ntrebare, probabil c nu este.) Partiionarea: lsai programul de instalare s o fac pentru dumneavoastr de aceast dat, vom discuta partiionarea n detaliu n Capitolul 3. Exist documentaie specific fiecrui sistem, dac dorii s tii totul despre acest lucru. Dac distribuia aleas nu v ofer posibilitatea de partiionare automat, asta nseamn, de regul, c nu este potrivit nceptorilor. Calculatorul va porni n modul text sau n cel grafic? Gndii-v la o parol bun pentru administratorul acestui sistem (root). Facei un cont de utilizator obinuit (care nu are acces privilegiat la calculator nu este necesar pentru Ubuntu, deoarece aceast distribuie utilizeaz un sistem care cere autentificare pentru sarcinile realizate ca administrator n.t.). Am nevoie de un disc pentru recuperare? (recomandat).

15

Ce limb doresc pentru sistemul meu?


Lista ntreag cu verificrile pe care ar trebui s le parcurgei poate fi gsit la http://www.tldp.org/ HOWTO/Installation-HOWTO/index.html. n capitolele urmtoare vom afla dac instalarea este una reuit.

16

Capitolul 2. S ncepem
Pentru ca acest ghid s v fie cu adevrat folositor, vom ncepem imediat cu un capitol practic despre autentificarea ntr-un sistem Linux i anumite lucruri de baz. Vom discuta:

Autentificarea la sistem Ieirea din sistem Modul text i cel grafic Schimbarea parolei Navigarea prin sistemul de fiiere Determinarea tipului de fiiere Deschiderea fiierelor text Cutarea de ajutor

2.1. Autentificarea la sistem, activarea interfeei cu utilizatorul i deautentificarea


2.1.1. Introducere
Pentru a lucra direct cu un sistem Linux trebuie s i furnizai un nume de utilizator i o parol. ntotdeauna trebuie s v autentificai fa de sistem. Dup cum am artat deja n exerciiul de la Capitolul 1, cele mai multe calculatoare care au ca sistem de operare Linux-ul pot lucra n dou moduri de baz: ori n modul consolei text, rapid dar sobru, care arat ca un DOS cu maus, cu faciliti care asigur realizarea de sarcini multiple i conectarea mai multor utilizatori, ori n modul grafic, care arat mai bine, dar consum mai multe resurse.

2.1.2. Modul grafic


Acesta este modul normal pentru calculatoarele de astzi. Vei ti c v conectai la un calculator care folosete modul grafic atunci cnd prima dat v este cerut numele de utilizator, apoi, ntr-o alt fereastr, vi se cere s introducei parola. Pentru a v autentifica, punei cursorul mausului n fereastra de conectare, tastai numele de utilizator i parola, apsai OK sau tasta Enter. Fii foarte ateni cnd folosii contul de administrator (root)! n general, se consider c este o idee proast s v conectai n modul grafic folosind contul de root, contul administratorului de sistem, deoarece utilizarea modului grafic include rularea mai multor programe, ce vor avea mai multe permisiuni dac v autentificai ca root. Pentru a menine cota de risc ct mai jos posibil, folosii un cont de utilizator normal pentru a v autentifica n modul grafic. ns exist i alte motive pentru a v folosi de acest sfat, ca o regul a conectrii la un sistem Linux: autentificai-v ca administrator numai atunci cnd vi se solicit permisiuni speciale. Dup ce introducei numele de utilizator i parola, poate trece puin timp pn ce mediul grafic este pornit, n funcie de viteza procesorului, de programele pe care le folosii sau de setrile personale. Pentru a continua, trebuie s deschidei o fereastr terminal sau xterm pe scurt (X fiind numele prin care se arat c anumite programe suport interfaa grafic). Acest program poate fi gsit n Aplicaii Utiliti, Sistem sau Internet, n funcie de ce administrator grafic folosii. Pot exista iconie (pictograme) pe care s le folosii ca scurtturi pentru a obine terminalul, iar dac apsai pe butonul din dreapta al mausului, pe spaiul de lucru, vi se va prezenta un meniu care poate conine i o aplicaie terminal. Dac v plimbai prin meniu, vei observa c pot fi fcute foarte multe lucruri fr a introduce comenzi de la tastatur. Pentru cei mai muli utilizatori, vechea metod de lucru cu mausul va fi suficient pentru a lucra cu calculatorul. Dar acest ghid se adreseaz viitorilor administratori de sistem i de reea, care vor avea nevoie s lucreze cu mruntaiele sistemului. Ei au nevoie de o unealt mai puternic dect cele pe 17

care le pot aciona cu mausul, pentru a face fa tuturor sarcinilor. Aceast unealt este consola i, din mediul grafic, putei s o activai prin deschiderea unei ferestre terminal. Terminalul este panoul de control al sistemului dumneavoastr. Aproape orice lucru din cele ce urmeaz poate fi fcut folosind aceast unealt text, simpl dar puternic. O fereastr terminal ar trebui s arate ntotdeauna un prompter standard, care afieaz numele utilizatorului i directorul curent n care se lucreaz, reprezentat de simbolul :
Figura 2-1. Fereastra terminal

O alt form comun pentru un prompter este urmtoarea:

n exemplul de mai sus, user va fi numele dumneavoastr de utilizator, host numele calculatorului pe care lucrai i dir indic locul n care v aflai n sistemul de fiiere. Mai trziu vom vorbi despre promptere i despre comportamentul acestora n detaliu. Acum este suficient s tii c ele afieaz tot felul de informaii, dar nu sunt parte a comenzilor pe care le dai sistemului. Pentru a iei din sistem n mediul grafic, trebuie s nchidei toate ferestrele terminal i alte aplicaii pe care le-ai deschis. Dup care apsai pe iconia de Ieire (Log Out) din meniu. Nu este neaprat necesar s nchidei totul, sistemul poate face acest lucru n locul dumneavoastr, dar managerul de sesiune poate restaura acele aplicaii lsate deschise atunci cnd v reautentificai, ceea ce va lua mai mult timp, iar pe de alt parte, deschiderea lor nu este ntotdeauna ceea ce dorii s se ntmple. Acest comportament se poate configura, n funcie de preferinele fiecruia. Atunci cnd vedei din nou fereastra de autentificare, care v cere numele de utilizator i parola, nseamn c v-ai deconectat. Gnome sau KDE? Am menionat ambele medii grafice de lucru, Gnome i KDE, de mai multe ori. Ele sunt cei mai cunoscui administratori grafici prin care v putei gestiona spaiul de lucru, dei exist mult mai muli. Orice administrator grafic alegei este bun att timp ct tii s deschidei un terminal. Totui, noi vom continua s ne referim la Gnome i la KDE pentru a v prezenta unele metode prin care putei realiza anumite sarcini.

2.1.3. Modul text


Vei ti dac suntei n modul text atunci cnd tot ecranul este negru, afind litere (n cele mai multe cazuri, albe). Un ecran de autentificare n modul text va afia, de regul, anumite informaii despre calculatorul la care lucrai, numele acestuia i un prompter care v cere s v conectai:

Conectarea este diferit de cea din modul grafic, n acest caz trebuind s apsai tasta Enter dup ce introducei numele de utilizator, deoarece nu sunt butoane pe ecran pe care s le putei apsa cu mausul. 18

Apoi trebuie s introducei parola, urmat de apsarea din nou a tastei Enter. Nu vei observa nici o indicaie a ceea ce introducei de la tastatur, nici mcar asteriscuri i nu vei vedea cursorul micndu-se. Este un lucru normal n Linux i este aa din cauza cerinelor de securitate. Atunci cnd sistemul v recunoate ca utilizator legitim, putei primi mai multe informaii, numite mesajele zilei, care pot fi orice. n plus, este rspndit practica prin care sistemele UNIX s afieze o consideraie care s conin anumite gnduri, nelepte sau nu (depinde de fiecare). Dup acestea, va porni consola, indicat de acelai prompter pe care l primii n modul grafic. Nu v autentificai ca administrator (root) Este valabil i n modul text: autentificai-v ca root numai pentru a face setri i configurri ale sistemului care necesit privilegii de administrator, precum adugarea de utilizatori, instalarea pachetelor de programe, configurarea reelei i altele de acest fel. Odat ce ai terminat, prsii imediat contul special i continuai-v munca pe un cont de utilizator obinuit. Ca alternativ, unele sisteme, precum Ubuntu, v foreaz s folosii sudo, pentru a nu avea nevoie de acces direct la un cont de administrator. Deconectarea se face prin comanda logout, urmat de apsarea tastei Enter. Suntei deconectat atunci cnd este afiat din nou ecranul de autentificare. Butonul de oprire Deoarece Linux-ul nu a fost proiectat s fie oprit fr a trece prin procedurile adecvate de nchidere a sistemului, apsarea butonului de oprire lanseaz aceste proceduri pe sistemele mai noi. Oprirea unui sistem mai vechi fr a trece prin procedurile de nchidere poate duce la distrugerea sistemului. Dac dorii s fii siguri c acionai corect, folosii butonul de Oprire atunci cnd v aflai n interfaa grafic, iar atunci cnd suntei n ecranul de autentificare (n care trebuie s introducei un nume de utilizator i o parol) cutai un buton de oprire. Acum, pentru c tim cum s ne autentificm la sistem i s ieim din el, suntem gata pentru primele noastre comenzi.

2.2. Lucruri de baz


2.2.1. Comenzile
V prezentm cteva comenzi, de care avem nevoie pentru nceput. Le vom discuta mai trziu n detaliu. Tabelul 2-1. Comenzi de baz Comanda ls cd director passwd file filename cat textfile pwd exit sau logout man comand info comand apropos string Ce execut Afieaz o list cu fiierele din directorul de lucru, precum comanda dir din DOS schimb directorul schimb parola pentru utilizatorul curent afieaz tipul fiierului al crui nume este filename afieaz coninutul unui fiier text pe ecran afieaz directorul n care se lucreaz terminare sesiune citii paginile din manualul comenzii comand citii paginile de informaii asupra comenzii comand cutai n baza de date whatis

2.2.2. Generaliti
Aceste comenzi le vei introduce dup prompter, ntr-o fereastr terminal, dac suntei n modul 19

grafic, sau n modul text, urmate apoi de apsarea tastei Enter. Comenzile pot fi introduse ca atare, cum este cazul comenzii ls. O comand se comport diferit atunci cnd specificai o opiune, care este, de regul, precedat de caracterul (-), precum n ls -a. Acelai caracter al unei opiuni poate avea un alt neles dac este folosit n alt comand. Programele GNU pot avea opiuni lungi, precedate de dou caractere (-), precum ls --all. Alte comenzi nu au nici o opiune. Argumentele unei comenzi reprezint specificaii despre obiectul asupra cruia comanda trebuie s acioneze. Un exemplu ar fi ls /etc, unde directorul /etc este argument al comenzii ls. Aceast comand nseamn c dumneavoastr dorii s vedei coninutul acelui director, n loc de ceea ce afieaz comanda simpl ls urmat de tastarea Enter, adic listarea coninutului directorului n care ne aflm. Anumite comenzi au nevoie neaprat de argumente, aceste argumente fiind opionale n cazul altor comenzi. Putei verifica dac o comand suport opiuni i argumente i care dintre ele sunt valide, consultnd online paginile de ajutor pentru comanda dorit, vezi Seciunea 2.3. n Linux, la fel ca n UNIX, directoarele sunt separate de caracterul ( / ), la fel cu cel pe care l folosim n adresele web (URL). Vom discuta la obiect structura directoarelor mai trziu. Simbolurile ( . ) i ( .. ) au nelesuri speciale n directoare. Vom prezenta mai multe informaii despre aceste lucruri n exerciii i pe parcursul urmtorului capitol. ncercai s evitai folosirea contului de administrator, root. Putei lucra pe un cont de utilizator obinuit, care nu acord permisiuni speciale, pentru c majoritatea sarcinilor, incluznd verificarea sistemului, colectarea de informaii i altele, pot fi fcute n acest mod. Atunci cnd este nevoie s adugai un nou utilizator sau s instalai programe noi, modul preferat prin care obinei acces ca administrator este schimbarea identitii utilizatorului, precum se arat n Seciunea 3.2 (dup cum am mai spus, acest lucru este evitat n Ubuntu prin folosirea sudo, comand care acord privilegii de root pe o perioad limitatn.t.). Aproape toate comenzile din aceast carte pot fi executate fr privilegii de administrator. n cele mai multe cazuri, atunci cnd lansm ca utilizator obinuit o comand sau un program care necesit privilegii de root, sistemul va cere parola de administrator. Odat ce ai terminat, ncheiai sesiunea care v acord aceste privilegii imediat. Citirea documentaiei trebuie s v intre n snge. n special la nceput, este important s citii documentaia sistemului, manualele comenzilor de baz, CUM S-urile (HOWTO) i altele de acest fel. ntruct volumul documentaiei este enorm, este imposibil s includem toate referinele. Aceast carte ncearc s v ndrume ctre documentaia adecvat fiecrui subiect discutat, pentru a v stimula obiceiul de a citi paginile manualelor.

2.2.3. Utilizarea facilitilor Bash


Anumite combinaii de taste v permit s facei cteva lucruri mai uor n consola GNU, Bash, care vine pe aproape orice sistem Linux, vezi Seciunea 3.2.3.2. Tabelul 2-2. Combinaii de taste n Bash

Tast sau combinaii de taste Funcie Ctrl+A Ctrl+C Ctrl+D Ctrl+E Ctrl+H Ctrl+L Ctrl+R Ctrl+Z Sgeat stnga i Sgeat dreapta Mut cursorul la nceputul unei linii de comand. Termin programul care ruleaz i afieaz prompterul, vezi Capitolul 4. nchide sesiunea curent, similar cu tastarea exit sau logout. Mut cursorul la sfritul liniei de comand. terge poziia curent (similar cu Backspace). terge tot ce este afiat n consol. Caut n istoricul comenzilor, vezi Seciunea 3.3.3.4. Suspend un program, vezi Capitolul 4. Mut cursorul cu un caracter la stnga sau la dreapta n linia de comand, pentru a insera caractere n alt loc dect la nceputul sau sfritul liniei.

20

Sgeat n sus sau Sgeat n jos Shift+PageUp sau Shift+PageDown Tab

Navigare prin istoricul comenzilor. Mergei la linia pe care dorii s o repetai, editai-o dac este necesar, i apsai Enter. Navigare prin terminal (pentru a vedea textul care a ieit din ecran). Completarea comenzilor sau a numelor de fiiere; atunci cnd exist mai multe posibiliti, sistemul v avertizeaz cu un semnal audio sau video ori, dac posibilitile sunt prea multe, v ntreab dac dorii s le afieze pe toate. Arat posibilitile pentru completarea unei comenzi sau a unui nume de fiier.

Tab Tab

Ultimele dou intrri din tabelul de mai sus necesit cteva explicaii suplimentare. De exemplu, dac dorii s v mutai n directorul director_cu_un_nume_foarte_lung, nu trebuie s tastai tot acel nume foarte lung. Tastai doar comanda cd dir, apoi apsai tasta Tab i consola va completa numele n locul dumneavoastr, n cazul n care alte fiiere nu ncep cu primele trei litere din numele directorului dumneavoastr. Desigur, dac nu exist alte directoare care ncep cu d, putei tasta doar cd d i apoi apsa tasta Tab. n cazul n care numele mai multor fiiere ncep cu aceleai caractere, consola va semnala acest lucru, iar apsarea tastei Tab de dou ori ntr-un interval scurt de timp va afia posibilitile pe care le avei:

n exemplul de mai sus, dac tastai a dup primele dou litere i apsai tasta Tab, nu exist alte posibiliti dect completarea de ctre consol a numelui directorului, fr ca dumneavoastr s mai tastai literele rthere:

Desigur, trebuie s apsai tasta Enter pentru a confirma alegerea prezentat de consol. n acelai exemplu, dac tastai u i apoi apsai tasta Tab, consola va aduga literele ff n locul dumneavoastr, dar va protesta din nou, din pricin c sunt posibile mai multe alegeri. Dac apsai Tab Tab din nou, vei vedea care sunt acestea; dac vei introduce una sau mai multe caractere care fac sistemul s disting o posibilitate unic i apsai din nou Tab sau Enter atunci cnd v aflai la sfritul liniei cu numele pe care dorii s l alegei, consola completeaz numele fiierului i schimb directorul curent n cel dorit dac este, cu adevrat, un nume de director. Cele prezentate mai sus sunt valabile pentru toate numele de fiiere folosite ca argumente la comenzi. Acelai lucru se aplic i la completarea numelor comenzilor. Dac tastai ls i apsai tasta Tab de dou ori, vei primi o list cu toate comenzile disponibile (vezi Seciunea 3.2.1).

2.3. Cutarea de ajutor


2.3.1. Luai aminte
GNU/Linux ncurajeaz indivizii n atitudinea lor de a nu depinde de nimeni i de nimic. Caracteristica a acestui sistem este aceea c exist ntotdeauna mai multe ci pentru atingerea unui scop. O cale de a primi ajutor este gsirea cuiva care se pricepe, care are rbdare i dorete s fie de ajutor, din comunitatea Linux, dar oricine se ateapt ca dumneavoastr s fi ncercat una sau mai multe metode din aceast seciune, nainte de a ntreba pe altcineva, iar modul n care acest punct de vedere este exprimat poate fi mai degrab unul dur, dac se dovedete c nu ai urmat aceast regul de baz.

21

2.3.2. Paginile manualelor (man)


Muli utilizatori nceptori se tem de paginile man (manualelor), deoarece acestea conin prea multe informaii. Totui, ele sunt foarte bine structurate, dup cum vei vedea din exemplul de mai jos: man man. Citirea paginilor man se face ntr-un terminal, atunci cnd suntei n modul grafic sau direct n modul text, dac pe acesta l preferai. Tastai comanda urmtoare, urmat de Enter:

Documentaia pentru man va fi afiat n terminal, dup ce apsai Enter:

Navigai la pagina urmtoare folosind tasta Space. V putei ntoarce la pagina precedent folosind tasta b. Cnd ajungei la sfrit, man va da comanda de ieire i consola va returna prompterul. Tastai q dac dorii s ieii din paginile man nainte de a ajunge la sfritul lor sau dac programul nu se nchide automat la sfritul paginilor. Pagere Combinaiile de taste necesare pentru mnuirea paginilor man depind de pagerul folosit de distribuia dumneavoastr. Cele mai multe distribuii folosesc less pentru a vizualiza aceste pagini i pentru a naviga prin ele. Pentru mai multe informaii despre pagere, mergei la Seciunea 3.3.4.2. Fiecare pagin man conine mai multe seciuni standard, dup cum putem observa i n exemplul man man: Prima linie conine numele comenzii despre care citii i identificarea seciunii n care sunt localizate paginile man. Aceste pagini sunt organizate pe capitole. Comenzile pot avea pagini n mai multe seciuni, de exemplu paginile man din seciunea utilizatori, paginile din seciunea administratorului de sistem, paginile man din seciunea programatorilor. Este prezentat numele comenzii i o scurt descriere, folosite i la indexarea acestor pagini. Putei cuta n acest index orice dorii folosind comanda apropos. Sintaxa comenzii v furnizeaz notaiile tehnice ale tuturor opiunilor i/sau argumentele pe care le suport comanda respectiv. Putei s v gndii la o opiune ca la o cale de executare a comenzii. Prin argument nelegem asupra cui este exercitat comanda respectiv. Anumite comenzi nu au opiuni sau argumente. Opiunile i argumentele opionale, adic cele care pot fi lsate necompletate, sunt puse ntre simbolurile[ i ].

22

Este artat i o descriere mai detaliat a comenzii. Sunt listate opiunile, mpreun cu descrierea acestora. De regul, opiunile pot fi
combinate. Dac nu, n aceast seciune vi se va spune acest lucru. Sunt descrise variabilele care influeneaz comportamentul comenzii n consol (nu pentru toate comenzile). Cteodat exist i seciuni specifice comenzii discutate. Referine ctre alte pagini man sunt date n seciunea SEE ALSO. ntre paranteze este prezentat numrul seciunii n care gsim comanda despre care se vorbete. Utilizatorii experimentai merg la SEE ALSO prin utilizarea comenzii / urmat de SEE i apsarea tastei Enter. Sunt prezentate i informaii despre erorile (anomaliile) cunoscute i unde s raportai alte erori pe care le-ai putea descoperi. Pot fi afiate informaii despre autor i licen. Anumite comenzi au mai multe pagini man. De exemplu, comanda passwd are pagin man n seciunea 1 i alta n seciunea 5. Atunci cnd deschidei paginile man, v sunt prezentate cele din seciunea cu cel mai mic numr de identificare. Dac dorii s vedei o alt seciune dect cea prezentat automat, specificai acest lucru dup comanda man: man 5 passwd Dac dorii s v fie prezentate toate paginile man ale unei comenzi, una dup cealalt, folosii -a dup man: man -a passwd n acest mod, cnd ajungei la sfritul primei pagini, prin apsarea tastei SPACE, va fi deschis pagina man din seciunea urmtoare.

2.3.3. Mai multe informaii


2.3.3.1. Paginile Info n cazul comenzilor, ca o completare a paginilor man, putei citi paginile Info, folosind comanda info. Aceste pagini conin, de regul, informaii mai recente i, ntr-un fel, mai uor de utilizat. Paginile man ale anumitor comenzi fac trimitere la paginile Info. Putei ncepe prin tastarea comenzii info info ntr-un terminal:

23

Folosii tastele sgei pentru a naviga prin text i poziionai cursorul pe o linie care ncepe cu un asterisc i care conine cuvntul cheie despre care dorii informaii, apoi apsai Enter. Folosii tastele P i N pentru a merge la subiectul anterior sau urmtor. Tasta SPACE va afia urmtoarea pagin, indiferent dac pe pagina urmtoare se trateaz un subiect nou sau o nou comand. Folosii Q pentru ieire. Programul info v prezint mai multe informaii despre utilizarea sa.

2.3.3.2. Comenzile whatis i apropos Un index cu explicaii scurte despre comenzi este disponibil prin comanda whatis, precum n exemplul de mai jos:

Se observ explicaia, pe scurt, referitoare la comand (- listeaz coninutul directorului) i afiarea primei seciuni din colecia de pagini man care conine o pagin cu prezentarea comenzii ls. Dac nu tii de unde s ncepei i ce pagin de manual s citii, comanda apropos v d mai multe informaii. S spunem c nu tii cum s pornii un browser; n acest caz, putei introduce urmtoarea comand:

Dup apsarea tastei Enter vei vedea mai multe informaii legate de navigatoarele (browserele) care sunt n sistemul dumneavoastr; nu doar despre browsere web, ci i despre navigatoare de fiiere i FTP sau browsere pentru documentaie. Dac avei pachetele pentru dezvoltare instalate, se vor afia i paginile de manual care prezint programele n care au fost scrise aceste browsere. n general, o comand care arat o pagin man n seciunea nti, marcat cu (1), poate fi folosit de un utilizator nceptor. Utilizatorul care a folosit comanda de mai sus poate ncerca s introduc n terminal comenzile galeon, lynx sau opera, deoarece este limpede c acestea sunt legate de navigarea pe web.

2.3.3.3. Opiunea --help Cele mai multe comenzi GNU suport opiunea --help, care ofer explicaii scurte despre utilizarea comenzii i o list a opiunilor disponibile. Exemplul urmtor arat ce se ntmpl n cazul comenzii cat:

24

2.3.3.4. Ajutor n modul grafic Nu v nelinitii dac preferai o interfa grafic. Konqueror, administratorul de fiiere din KDE, asigur acces la paginile man i Info ntr-un mod plin de culoare i care nu d dureri de cap. Putei s introducei n cmpul Location (bara de adrese) comanda info:info pentru a obine o pagin Info n care v putei plimba n cutarea informaiilor despre comanda info. n acelai mod, man:ls va afia pagina man pentru comanda ls. V putei baza i pe autocompletarea numelui comenzii: sunt prezentate toate paginile man pentru comenzile care ncep cu ls ntr-un meniu pe care l putei parcurge n modul derulare (scrolldown). Dac introducei info:/dir n bara de adrese vei primi toate paginile Info, grupate pe utiliti. Un coninut excelent n privina ajutorului v este adus de Konqueror Handbook, de scurttura Startup din meniu sau prin introducerea comenzii konqueror ntr-un terminal, urmat de apsarea tastei Enter; vezi imaginea urmtoare.
Figura 2-2. Konqueror ca navigator pentru meniul de ajutor

Navigatorul pentru meniul de ajutor din Gnome este la fel de prietenos. l putei lansa prin selectarea Applications Help din meniul Gnome, prin apsarea iconiei care prezint un colac de salvare sau prin introducerea ntr-un terminal a comenzii gnome-help. Documentaia sistemului i paginile man sunt uor de accesat ntr-o interfa prin care putem naviga n cutarea ajutorului. Managerul de fiiere nautilus are un index din care putem cuta paginile man i Info, care sunt legate prin referine i prin care se poate naviga uor. Nautilus se pornete din linia de comand, prin apsarea iconiei care arat directorul tu personal (sau dosarul personal - home) ori din meniul Gnome. Marele avantaj al interfeelor grafice (GUI`s) legat de documentaia sistemului este acela c prezint toate informaiile ntr-un mod n care acestea sunt conectate prin legturi, astfel nct putei folosi seciunea SEE ALSO (VEZI I) pentru a naviga fr ntrerupere, cu orele chiar, n cutarea cunotinelor de care avei nevoie.

25

2.3.3.5. Excepii Cteva comenzi nu au documentaie separat, pentru c ele sunt parte ale altei comenzi. cd, exit, logout i pwd sunt astfel de excepii. Ele sunt pri ale consolei, programul dumneavoastr shell i sunt numite comenzi proprii consolei (shell built-in commands). Pentru mai multe informaii despre ele, cutai prin paginile man sau Info ale consolei pe care o folosii. Cei mai muli utilizatori nceptori de Linux folosesc o consol Bash. Consultai Seciunea 3.2.3.2 pentru mai multe detalii despre console. Dac ai schimbat configuraia original a sistemului, este posibil ca paginile man s fie nc n sistem, dar s nu le putei accesa, pentru c mediul n care ruleaz consola nu mai este acelai. n acest caz, trebuie s inei cont de variabila MANPATH. Detalii despre acest subiect sunt prezentate n Seciunea 7.2.1.2. Anumite programe sau pachete au doar un set de instruciuni sau referine n directorul

/usr/share/doc. Consultai Seciunea 3.3.4 pentru detalii.


n cel mai ru caz, exist posibilitatea ca documentaia s fie tears accidental (sperm c accidental, deoarece tergerea acesteia pentru c aa ai dorit este o idee foarte proast). n acest caz, verificai dac prin folosirea uneltelor de cutare vi se returneaz ceva legat de subiectul n cauz (Seciunea 3.3.3). Dac nu, va trebui s reinstalai pachetul care conine comanda asupra creia ai consultat documentaia, dup cum se arat n Seciunea 7.5.

2.4. Sumar
Sistemul de operare Linux lucreaz tradiional n modul text sau n modul grafic. Deoarece costul procesoarelor i al RAM-ului nu mai este exorbitant n zilele noastre, orice utilizator de Linux poate lucra n modul grafic i va face o regul din acest lucru. Asta nu nseamn ns c nu trebuie s tii nimic despre modul text: vom lucra n mediul liniei de comand pe parcursul acestui curs folosind o fereastr terminal. Linux-ul ncurajeaz utilizatorii s acumuleze cunotine i s devin independeni. Inevitabil, va trebui s citii mult documentaie pentru a reui; de aceea, dup cum vei vedea, v vom ndruma ctre alte surse de documentare pentru aproape orice comand, unealt sau problem prezentate n aceast carte. Cu ct citii mai mult documentaie, cu att mai repede v vei obinui cu manualele i vei nelege mai uor coninutul acestora. Facei-v ct mai curnd un obicei din citirea documentaiei. Atunci cnd nu tii rspunsul la o problem, cutarea prin documentaie ar trebui s fie prima dumneavoastr opiune. Am nvat cteva comenzi:
Tabelul 2-3. Comenzi noi n capitolul 2: S ncepem

Comanda apropos cat cd exit file info logout ls man passwd pwd

nelesul comenzii Caut informaii despre o comand sau un subiect Arat coninutul unui fiier sau a mai multora Schimb directorul Terminarea unei sesiuni a consolei Afieaz informaii despre coninutul unui fiier Citii paginile Info ale unei comenzi Terminarea unei sesiuni a consolei Arat coninutul unui director Citii paginile de manual ale unei comenzi Schimb parola dumneavoastr Afieaz directorul n care v aflai

26

2.5. Exerciii
Multe lucruri din cele pe care le nvm sunt despre cum se pot face greeli i cum putem s evitm s perseverm n a le face. Exerciiile urmtoare sunt importante pentru c v pune n situaia de a citi unele mesaje de eroare. Ordinea n care le facei este foarte important. Nu uitai s folosii facilitile oferite de Bash n ceea ce privete linia de comand: ncercai s facei exerciiile tastnd ct mai puine caractere posibile!

2.5.1. Autentificarea i deautentificarea Determinai modul n care lucrai, text sau grafic.
Eu lucrez n modul text/grafic. (Tiai ce este incorect)

Autentificai-v cu numele de utilizator i parola pe care le-ai stabilit pe parcursul instalrii. Deautentificai-v. Autentificai-v din nou cu un nume de utilizator inexistent.
Ce se ntmpl?

2.5.2. Parole
Autentificai-v din nou cu numele dumneavoastr de utilizator i cu parola.

Schimbai-v parola n P6p3.aa! i apsai tasta Enter.


Ce se ntmpl?

ncercai din nou cu o parol ridicol de simpl, precum 123 sau aaa .
Ce se ntmpl?

ncercai comanda psswd n locul passwd.


Ce se ntmpl? Parol nou Dac nu ai revenit la parola dumneavoastr pe care ai avut-o naintea exerciiului de mai sus, aceast parol va fi P6p3.aa!. Schimbai-v parola la loc dup efectuarea exerciiului! Anumite sisteme pot s nu permit reciclarea parolelor, adic schimbarea n cea original, n cazul dumneavoastr, dect dup un anumit timp sau dup un anumit numr de cicluri de schimbare a parolelor, ori chiar pot lua n calcul ambele variabile.

2.5.3. Directoarele
Iat cteva exerciii care v ajut s intrai n subiect:

Introducei comanda cd blah.


Ce se ntmpl?

Introducei comanda cd ..
Luai aminte la spaiul dintre cd i ..! Folosii comanda pwd. 27

Ce se ntmpl?

Listai coninutul directorului cu ajutorul comenzii ls.


Ce vedei? Ce credei c sunt acestea? Verificai folosind comanda pwd.

Introducei comanda cd.


Ce se ntmpl?

Repetai pasul 2 de dou ori.


Ce se ntmpl?

Afiai coninutul acestui director. ncercai comenzile cd root (pentru ubuntu cd /; ls; ls -a;cd .config n aceast
ordinen.t.). Ce se ntmpl? La care directoare avei acces?

Repetai pasul 4 (cd).


tii o alt posibilitate prin care s ajungei n acest loc?

2.5.4. Fiierele Schimbai directorul pe / i apoi pe etc. Tastai ls; dac rspunsul calculatorului este mai mare dect fereastra, facei-o mai lung sau ncercai Shift+PageUp i Shift+PageDown.
Fiierul inittab conine rspunsul la ntrebarea urmtoare. ncercai comanda file pe acesta. Fiierul inittab nu se regsete n Ubuntu Nu putei aplica acest exerciiu pentru aceast distribuie. Putei ncerca cu /etc/event.d/rcdefault dar nu este vorba despre acelai fiier, dup cum se vede, iar ceea ce se returneaz la comanda cat /etc/event.d/rc-default este dificil de nelesn.t.. Tipul fiierului inittab este .....

Folosii comanda cat inittab i citii rspunsul.


Care este modul de lucru n care pornete calculatorul dumneavoastr?

Mergei la directorul personal (home) cu comanda cd. Introducei comanda file .


V ajut s aflai nelesul lui .?

Putei s aflai ceva prin folosirea comenzii cat asupra lui .? Afiai ajutorul n cazul comenzii cat prin utilizarea opiunii - -help. Folosii opiunea de
28

numrare a liniilor returnate pentru a numra ci utilizatori sunt listai n fiierul /etc/passwd.

2.5.5. Cutarea de ajutor Citii man intro Citii man ls Citii info passwd Introducei comanda apropos pwd ncercai comanda man sau info asupra cd
Ce mai putei gsi n plus despre cd?

Citii i ncercai ceea ce v este returnat de comanda ls - -help

29

Capitolul 3. Despre fiiere i sistemul de fiiere


Dup explorarea iniial din Capitolul 2, suntem gata s discutm mai n detaliu despre fiierele i directoarele dintr-un sistem Linux. Muli utilizatori au dificulti n utilizarea Linux-ului, deoarece nu au o vedere de ansamblu asupra a ce fel de date sunt pstrate n anumite locuri. Vom ncerca s explicm organizarea fiierelor n sistemul de fiiere. Vom arta, de asemenea, cele mai importante fiiere i directoare, vom folosi metode diferite prin care putem privi coninutul acestora i vom nva cum pot fi create, mutate sau terse fiierele i directoarele. Dup terminarea exerciiilor din acest capitol, vei putea:

S descriei structura de fiiere a unui sistem Linux S citii i s scriei calea ctre un fiier S descriei cele mai importante fiiere, inclusiv kernelul i shell-ul S gsii fiierele ascunse sau pierdute S creai, s mutai i s tergei fiiere i directoare S afiai coninutul unui fiier S nelegei i s folosii mai multe tipuri de legturi S afiai proprietile fiierelor i s schimbai permisiunile acestora

3.1. O privire asupra sistemului de fiiere din Linux


3.1.1. Fiierele
3.1.1.1. Generaliti O descriere simpl a unui sistem UNIX, care se aplic i Linux-ului, este urmtoarea: ntr-un sistem UNIX, orice este un fiier; dac ceva nu este un fiier, atunci este un proces. Aceast propoziie este adevrat deoarece exist fiiere speciale care sunt mai mult dect nite simple fiiere (cele numite pipes conexiuni i sockets, de exemplu), dar pentru simplicitate, a spune c orice este un fiier constituie o generalizare acceptat. Un sistem Linux, la fel ca UNIX-ul, nu face nici o diferen ntre un director i un fiier, deoarece un director este doar un fiier care conine numele altor fiiere. Programele, serviciile, textele, imaginile i aa mai departe, sunt toate fiiere. Dispozitivele, n general, sunt considerate i ele fiiere, din punctul de vedere al sistemului. Pentru a ne descurca cu toate aceste fiiere ntr-o manier ordonat, suntem obinuii s le vedem organizate pe discul fix ntr-o structur arborescent, pe care o cunoatem din MS-DOS (Disk Operating System), de exemplu. Din trunchi pleac ramurile groase care au alte ramuri, iar ramurile din vrf se termin cu frunzele copacului, care sunt fiiere obinuite. Pentru nceput vom folosi aceast imagine a unui copac, dar vom afla mai trziu c nu este o imagine care corespunde ntocmai cu realitatea.

3.1.1.2. Felurile fiierelor Cele mai multe fiiere sunt fiiere simple, numite fiiere obinuite; ele conin date normale, de exemplu fiierele text, fiierele executabile sau programele, comenzile i rspunsurile unui program, i altele. n mod normal este rezonabil s presupunem c tot ceea ce ntlnim ntr-un sistem Linux este un fiier, cu cteva excepii.

Directoarele: fiiere care sunt o list a altor fiiere. Fiiere speciale: mecanismele folosite pentru introducerea comenzilor i returnarea rspunsurilor.
Cele mai multe fiiere speciale se gsesc n /dev, le vom discuta mai trziu. Legturi: un sistem pentru a face un fiier sau un director vizibil n mai multe pri ale sistemului de fiiere. Vom discuta n detaliu despre aceste legturi. 30

Socket-uri (de domenii): un fel special de fiiere, asemntoare cu socket-urile TCP/IP, care asigur
desfurarea proceselor n reea, protejate prin controlul asupra accesului la sistemul de fiiere. Numite conexiuni (pipe): se comport mai mult sau mai puin ca socket-urile i formeaz o cale pentru comunicarea ntre procese, fr a utiliza semantica socket-urilor de reea. Opiunea -l a comenzii ls v afieaz tipul fiierului, utiliznd primul caracter al fiecrei linii:

Tabelul 3-1. Felul fiierelor n listarea amnunit

Simbol nelesul simbolului d l c s p b Fiier obinuit Director Legtur Fiier special Socket Numite conexiuni (pipe) Dispozitiv

Pentru a nu afia mereu listarea amnunit doar pentru a vedea felul fiierelor, mai multe sisteme, n mod normal, utilizeaz i comanda ls -F, care pune naintea fiecrui nume de fiier unul din caracterele / =*l@ pentru a indica felul fiierului. Pentru a face totul mai accesibil utilizatorului nceptor, ambele opiuni, -F i --color sunt combinate, precum se arat n Seciunea 3.3.1.1. Noi vom folosi ls -F pe parcursul acestui document, pentru o afiare a tipului de fiier mai la obiect. Pentru Ubuntu, rspunsul la comanda ls ia n considerare din oficiu opiunea --color, felul fiierelor fiind evideniat prin culorin.t.. Ca utilizator, vei folosi doar fiiere obinuite, fiiere executabile, directoare i legturi. Tipurile speciale de fiiere sunt gndite pentru a face sistemul s execute ceea ce dorii dumneavoastr i sunt mnuite de administratorii de sistem i de programatori. Acum, nainte de a ne apleca asupra directoarelor i fiierelor importante, trebuie s nvm mai multe despre partiii.

3.1.2. Despre partiionare


3.1.2.1. De ce partiionarea? Cei mai muli oameni au o idee, chiar dac doar vag, despre partiionare, pentru c orice sistem de operare poate face sau terge partiii. Pentru c Linux-ul folosete mai mult de o partiie pe acelai disc, chiar dac este instalat prin procedura automat, poate prea ciudat unora, aa c se cere o explicaie. Unul dintre scopurile pentru care sunt fcute mai multe partiii este obinerea unei securizri mai puternice a datelor, n eventualitatea unui dezastru. Prin mprirea discului fix (hard disk-ului) n partiii, datele pot fi grupate i separate. Atunci cnd se ntmpl accidente, numai datele din partiia atacat vor fi distruse, n timp ce datele din celelalte partiii vor scpa neatinse. Acest principiu dateaz din zilele n care Linux-ul nu avea un sistem de fiiere de tip jurnalier iar cderile de tensiune puteau conduce la un dezastru. Utilizarea n continuare a partiiilor se datoreaz raiunilor de securitate i robustee, pentru c, n acest mod, o bre ntr-o parte a sistemului nu va pune n pericol ntregul calculator. Acesta este principalul motiv pentru care se fac partiionri. Iat un exemplu simplu: un utilizator creeaz un script, un program sau o aplicaie web care ncepe s umple discul. Dac 31

sistemul are o singur partiie, el nu va mai funciona atunci cnd discul este plin. Dac utilizatorul stocheaz acel program pe o alt partiie, atunci numai datele coninute de partiia n cauz vor fi afectate, pe cnd celelalte partiii, de sistem sau de date, vor funciona n continuare. Trebuie artat faptul c sistemul de fiiere de tip jurnalier v protejeaz datele numai n cazurile de cdere de tensiune sau deconectrii improprii ale dispozitivelor de stocare. Nu v protejeaz mpotriva blocurilor defecte sau erorilor logice din sistemul de fiiere. Pentru acestea din urm, ar trebui s folosii o soluie RAID (Redundant Array of Inexpensive Disks).

3.1.2.2. Feluri i tipuri de partiii Sunt dou feluri principale de partiii ntr-un sistem Linux:

partiiile de date: pe ele sunt stocate datele normale ale unui sistem Linux, care includ i partiia root,
care conine toate datele care permit pornirea i rularea sistemului; i partiia swap: o expandare a memoriei fizice a calculatorului, memorie n plus pe discul fix.

Cele mai multe sisteme au o partiie root, una sau mai multe partiii de date i una sau mai multe partiii swap. Sistemele mixte pot avea partiii de date proprii altui sistem, precum partiii care folosesc FAT sau VFAT ca sisteme de fiiere pentru datele specifice MS Windows. Cele mai multe sisteme Linux folosesc fdisk n momentul instalrii pentru partiionare. Dup cum probabil ai observat din exerciiul de la Capitolul 1, acest lucru se ntmpl, de regul, automat. n anumite ocazii, totui, s-ar putea s nu fii aa de norocoi. n asemenea situaii, trebuie s selectai tipul partiiei manual i s facei tot manual partiionarea n sine. Partiiile standard ale Linux-ului au numrul 82 pentru swap i 83 pentru cele de date, care pot fi jurnaliere (ext3) sau normale (ext2, pe sistemele mai vechi). Utilitarul fdisk conine i partea de ajutor, aa c nu trebuie s memorai aceste valori. n afar de aceste dou tipuri, Linux-ul poate lucra cu mai multe tipuri de sisteme de fiiere, precum relativ mai noul Reiser, JFS, NFS, FATxx i alte sisteme de fiiere proprii altor sisteme de operare (proprietare). O partiie root standard (artat prin caracterul / ) are mrimea de 100-500 MO i conine fiierele de configurare ale sistemului, comenzile principale i programele serviciilor, librriile sistemului, un spaiu temporar i directorul personal (home) al utilizatorului cu drepturi administrative. O instalare standard solicit n jur de 250 MO pentru partiia de root. Spaiul swap (indicat prin swap) este accesibil doar sistemului, fiind ascuns n timpul operrii. Swap-ul este acel lucru prin care ne asigurm c, precum n sistemele UNIX, putem continua s lucrm indiferent de ceea ce se ntmpl. Pe sistemele Linux, putem spune c, practic, nu vei fi deranjat niciodat de mesaje iritante precum Memorie depit, v rugm s nchidei unele aplicaii mai nti i ncercai din nou, deoarece aceast memorie n plus este mereu la dispoziie. Memoria swap sau virtual a fost implementat, n zilele noastre, i de alte sisteme de operare care nu au nimic de-a face cu UNIX-ul. Folosirea memoriei de pe discul fix este un proces mai lent dect folosirea cipurilor de memorie propriu-zise, dar disponibilitatea memoriei swap asigur o fiabilitate mrit. Vom discuta mai multe despre swap odat cu prezentarea proceselor, n Capitolul 4. Linux-ul se bazeaz, n general, pe alocarea unui spaiu pe discul fix destinat memoriei swap de o mrime egal cu dublul memoriei fizice. Atunci cnd instalai un sistem, trebuie s tii cum s facei acest lucru. Iat un exemplu pentru un sistem cu o memorie fizic de 512 MO:

prima posibilitate: o partiie swap de 1 GO a doua posibilitate: dou partiii swap de 512 MO a treia posibilitate: pe dou discuri fixe: o partiie swap de 512 MO pe fiecare disc fix.
Ultima opiune v garanteaz cel mai bun rezultat n cazul n care solicitai intensiv sistemul. Citii documentaia programelor pentru aspectele specifice. Anumite aplicaii, cum ar fi bazele de date, pot s v solicite mai mult spaiu pentru partiia swap. Alte sisteme pot s nu aib deloc acest swap, din cauz c nu au, prin construcie, discuri fixe. Spaiul alocat memoriei swap poate depinde i de versiunea de kernel. Kernelul se afl pe o partiie separat n multe distribuii, deoarece este cel mai important fiier al 32

sistemului. Dac este i cazul distribuiei alese de dumneavoastr, vei gsi o partiie /boot, care conine kernelul i fiierele de date care l acompaniaz. Restul discului fix este mprit n partiii de date, dei este posibil ca toate informaiile care nu sunt deosebit de importante pentru funcionarea sistemului, s se gseasc pe o singur partiie, cum ar fi n cazul unei instalri standard pentru staii de lucru. Atunci cnd astfel de informaii sunt mprite pe mai multe partiii, putei gsi urmtorul tipar:

o partiie pentru programele utilizatorului (/usr) o partiie folosit pentru datele care aparin utilizatorului (/home) o partiie pentru stocarea datelor temporare, precum fiierele de tiprit sau mail-urile (/var) o partiie pentru programele dezvoltate de tere pri sau alte surse (/opt)

Odat ce ai fcut partiiile, mai putei doar aduga altele. Schimbarea capacitii sau tipului partiiilor existente este posibil dar nu v sftuim s facei acest lucru. mprirea discului fix n partiii este fcut de administratorul de sistem. Pe sistemele mai mari, el sau ea va expanda o partiie pe mai multe discuri fixe, folosind programe adecvate. Cele mai multe distribuii permit setri prestabilite, optimizate pentru staii de lucru (utilizatori de nivel mediu) sau servere cu scop general, acceptnd, n acelai timp, i partiionarea manual. Pe parcursul procesului de instalare putei defini propriul tipar de partiionare, folosind fie unealta specific distribuiei alese, care este prezentat n interfa grafic, fie fdisk, o unealt bazat pe modul text, cu care putei face partiii i alege tipul acestora. O instalare ca staie de lucru standard este destinat folosirii, n principal, de ctre una i aceeai persoan. Programele selectate pentru instalare reflect acest lucru i greul apas asupra pachetelor utilizate n mod curent, precum teme atrgtoare pentru spaiul de lucru, unelte pentru dezvoltare, programe pentru clientul de pot electronic, programe multimedia, internet i alte servicii. Totul este pus laolalt pe o partiie mare, spaiul alocat pentru swap este setat la o mrime de dou ori mai mare dect memoria fizic i iat c staia ta de lucru este gata, asigurnd cel mai mare spaiu disponibil pe discul fix pentru folosina personal, dar cu dezavantajul posibilelor pierderi de date n cazul situaiilor care ridic probleme. Pe servere, datele sistemului sunt inute separat de datele utilizatorilor. Programele care ofer servicii sunt inute separat de datele necesare acestor servicii. Partiionarea este fcut diferit pe astfel de sisteme:

o partiie care conine toate datele necesare pentru pornirea sistemului o partiie care conine fiierele de configurare i programele serverului una sau mai multe partiii care conin date stocate n server, precum tabele din bazele de
date, mail-urile utilizatorilor, arhiva ftp, etc o partiie care conine programele i aplicaiile utilizatorului una sau mai multe partiii care conin fiiere specifice utilizatorilor (directoarele personale) una sau mai multe partiii swap (memoria virtual) Serverele au mai mult memorie fizic i, deci, mai mult spaiu alocat pentru swap. Anumite procese asigurate de server, cum ar fi bazele de date, pot solicita mai mult swap dect de obicei; citii documentaia specific pentru informaii detaliate. Pentru a mri performanele, swap-ul este divizat n mai multe partiii.

3.1.2.3. Punctele de montare Toate partiiile sunt ataate la sistem prin punctele de montare. Punctul de montare definete locul unui set anume de date n sistemul de fiiere. De regul, partiiile sunt conectate prin partiia root. n aceast partiie, care este indicat prin caracterul ( / ), sunt create nite directoare. Aceste directoare goale vor fi punctul de start al partiiilor care vor fi ataate la ele. De exemplu: se d o partiie care are urmtoarele directoare:

Dorim s atam aceast partiie n sistemul de fiiere ntr-un director numit /opt/media. Pentru a face acest lucru, administratorul de sistem trebuie s se asigure c directorul /opt/media exist n sistem. Este de preferat ca acest director s fie i gol. Despre cum se face acest lucru vom vorbi tot n acest 33

capitol. Apoi, utiliznd comanda mount, administratorul poate ataa partiia la sistem. Dac verificai coninutul directorului /opt/media, care era gol, vei constata c el conine acum fiierele i directoarele care exist pe mediul montat (disc fix sau partiie a discului fix, CD, DVD, memorie flash, USB sau alte dispozitive de stocare). Putei obine informaii despre partiii i punctele lor de montare prin comanda df (care vine de la disk full - disc plin sau disk free disc liber). n Linux, df este versiunea GNU i suport opiunea -h sau human readable inteligibil, care ofer date mai prietenoase cu utilizatorul. Reinei c mainile UNIX au propria versiune a comenzii df i propriile versiuni ale altor comenzi. Comportamentul acestora este acelai, n mod obinuit, dar versiunile GNU ale uneltelor de baz au mai multe faciliti i, n general, sunt mai bune. Comanda df afieaz informaii doar despre partiiile active i care nu sunt de tipul swap. Ele pot include partiii ale altor sisteme din reea, precum n exemplul de mai jos, n care directoarele personale sunt montate dintr-un server de fiiere accesat prin reea, o situaie des ntlnit n mediile corporatiste.

3.1.3. Mai multe despre tiparul sistemului de fiiere


3.1.3.1. Reprezentare Fiierele din Linux sunt prezentate, prin convenie, ca o structur arborescent. Pe un sistem Linux standard vei gsi c tiparul sistemului de fiiere se ncadreaz n schema prezentat mai jos.
Figura 3-1. Tiparul sistemului de fiiere din Linux

34

Acesta este tiparul unui sistem RedHat. n funcie de administratorul sistemului, de distribuie i de destinaia calculatorului n cauz, structura poate varia pentru c directoarele pot fi adugate sau scoase dup dorin. Nici numele directoarelor prezentate mai sus nu sunt neaprat necesare n aceast form; ele sunt doar o convenie. Structura arborescent a sistemului de fiiere ncepe cu trunchiul, indicat de caracterul ( / ). Acest director, care conine toate directoarele i fiierele sistemului, este numit directorul root sau rdcina sistemului de fiiere. Directoarele care se afl pe palierul imediat urmtor directorului rdcin (root) sunt adesea precedate de caracterul ( / ), pentru a indica poziia acestora i pentru a evita confuzia cu alte directoare care pot avea acelai nume. Atunci cnd ncepei s lucrai pe un sistem nou, este o idee bun s explorai directorul rdcin al acestuia. Iat ce putei obine:

Tabelul 3-2. Subdirectoarele directorului rdcin (root)

Director /bin /boot /dev /etc /home /initrd /lib /lost+found /misc /mnt /net /opt /proc

Coninut Programe obinuite, folosite de sistem, de administratorul sistemului i de utilizatori. Fiierele necesare pornirii sistemului i kernelul, vmlinuz. n unele distribuii recente, datele grub. Grub vine de la GRand Unified Boot Loader i este o ncercare de a scpa de diversele ncrctoare de sistem care exist azi. Conine referine la toate echipamentele periferice, care sunt reprezentate ca fiiere cu proprieti speciale. Cele mai importante fiiere de configurare ale sistemului sunt n directorul /etc, acest director coninnd date asemntoare cu cele din Panoul de control al Windows-ului. Directoarele personale ale utilizatorilor obinuii. (n anumite distribuii) Informaii pentru pornirea sistemului. Nu l tergei! Fiierele librriilor, care includ fiierele programelor folosite de sistem sau de utilizatori. Fiecare partiie are un lost+found (pierdute i gsite) n directorul principal. Fiierele salvate n urma avariilor sunt n acest director. Pentru scopuri diverse Punctul standard de montare pentru sisteme de fiiere externe, cum ar fi CD-ROM sau camere digitale. Punctul standard de montare pentru sistemele de fiiere din reea Conine n mod normal programe de la tere pri Un sistem de fiiere virtual care conine informaii despre resursele sistemului. Mai multe informaii despre nelesul fiierelor din proc sunt obinute prin comanda man proc introdus ntr-o fereastr terminal. Fiierul proc.txt discut sistemul de fiiere virtual n detaliu. Directorul personal al administratorului de sistem. Remarcai diferena dintre /, directorul rdcin, i /root, directorul personal (home) al utilizatorului root, cel cu privilegii administrative. Programele folosite de sistem i de administratorului sistemului. Spaiu pentru folosina temporar a sistemului, care este ters la repornire, aa c nu l folosii pentru a salva ceva! Programe, librrii, documentaie .a. pentru toate programele folosite de utilizatori. Loc de stocare pentru toate fiierele variabile i temporare create de utilizatori, precum fiiere jurnal, pot electronic n ateptare, fiiere care ateapt s fie tiprite, fiiere descrcate de pe Internet, sau fiiere care pstreaz imaginea unui CD nainte de scrierea acestuia. Cum putei afla crei partiii i aparine un director? Folosind comanda df cu un punct (.) drept 35

/root /sbin /tmp /usr /var

opiune, se afieaz partiia creia aparine directorul n care ne aflm i informaii despre spaiul utilizat pe aceast partiie:

Ca regul, fiecare director care se afl imediat sub directorul rdcin se afl pe partiia root, cu o singur excepie: s nu fie afiat ca intrare separat n listarea complet returnat la comanda df (sau df -h fr alte opiuni). Citii mai multe despre acest subiect n man hier.

3.1.3.2. Sistemul de fiiere aa cum este n realitate Pentru cei mai muli utilizatori i n cazul sarcinilor obinuite de administrare a sistemului, este suficient s se accepte c fiierele i directoarele sunt ordonate ntr-o structur arborescent. Calculatorul ns nu nelege nimic din noiunea de copac sau structur arborescent. Fiecare partiie are un sistem de fiiere propriu. Dac ne imaginm toate aceste sisteme de fiiere mpreun, ne putem forma o idee despre structura arborescent a ntregului sistem, dar nu este chiar aa de simplu. ntr-un sistem de fiiere, un fiier este reprezentat de un punct sau nod (inode), un fel de serie care conine informaii despre datele care individualizeaz acel fiier: cui aparine i unde se afl stocat pe discul fix. Fiecare partiie are seturi proprii de noduri; pe un sistem cu mai multe partiii pot exista fiiere cu numere de serie identice. Fiecare nod descrie structura datelor aflate pe discul fix, pstrnd informaii despre proprietile fiierului, inclusiv locul fizic de pe discul fix n care se afl un anume fiier. Atunci cnd un disc fix este iniializat ca mediu de stocare, n mod obinuit pe parcursul procesului de instalare a sistemului sau atunci cnd sunt adugate discuri noi unui sistem, este creat mulimea acestor noduri, o mulime care are un numr fix, limitat, de elemente. Elementele acestei mulimi corespund numrului maxim de fiiere, de toate tipurile (se regsesc aici directoarele, fiierele speciale, legturile, etc.) care pot exista pe aceeai partiie. Putem socoti c ne bazm pe existena unui nod la fiecare 2 pn la 8 ko de memorie ai mediului de stocare. Atunci cnd facem un fiier nou, el primete un nod liber. n acest nod sunt urmtoarele informaii:

Deintorul i grupul cruia acesta aparine. Tipul fiierului (obinuit, director,...). Permisiunile care sunt ataate fiierului, consultai Seciunea 3.4.1. Data i ora la care fiierul a fost creat, deschis i editat. Data i ora la care aceste informaii coninute de nod au fost schimbate. Numrul de legturi ctre fiierul respectiv (subiect detaliat pe parcursul acestui capitol). Mrimea fiierului. O adres care arat locul fizic pe discul fix ocupat de fiier.

Singurele informaii care nu sunt incluse ntr-un nod sunt cele referitoare la numele fiierului i directorul su. Aceste informaii sunt pstrate ntr-un director special dedicat fiierelor. Prin compararea numelor fiierelor i a nodurilor, sistemul construiete o structur arborescent, pe care utilizatorii o pot nelege. Utilizatorii pot afia numrul nodurilor prin opiunea -i a comenzii ls. Nodurile au alocat un spaiu special pe discul fix.

3.2. Orientarea prin sistemul de fiiere


3.2.1. Trasee (path adres, cale)
Atunci cnd dorii ca sistemul s execute o comand, nu trebuie s dai adresa ei complet pentru 36

executarea acelei comenzi. De exemplu, tim despre comanda ls c se afl n directorul /bin (verificai cu which -a ls), totui nu trebuie s folosim aceast comand n formatul /bin/ls pentru a lista coninutul directorului curent. Variabila de mediu PATH se ocup de aceste situaii. Aceast variabil listeaz acele directoare din sistem n care se gsesc fiiere executabile, pentru ca utilizatorii s nu fie obligai s memoreze adresele comenzilor sau s tasteze foarte multe caractere. Astfel, PATH conine multe directoare care au n numele lor bin, dup cum ne arat imaginea de mai jos. Comanda echo este folosit pentru afiarea coninutului ($) variabilei PATH:

n acest exemplu, directoarele /opt/local/bin, /usr/X11R6/bin, /usr/bin, /usr/sbin i /bin sunt explorate frecvent n cutarea programelor solicitate. De ndat ce este gsit o potrivire, cutarea este oprit, chiar dac nu toate directoarele din variabila de mediu au fost cercetate. Acest lucru poate s conduc la situaii neateptate. n exemplul urmtor, utilizatoarea tie c exist un program numit sendsms prin care poate trimite mesaje SMS i c un alt utilizator al aceluiai sistem l poate folosi, dar ea nu l poate accesa. Diferena este datorat configuraiei variabilei PATH (adic ordinea n care sunt dispuse directoarele coninute de variabil):

V rugm s remarcai folosirea comenzii su (schimb utilizatorul), care v permite s deschidei o consol n mediul altui utilizator, cu condiia s cunoatei parola acelui utilizator. Caracterul ( \ ) ne arat c linia curent se continu cu urmtoarea, fr a fi separate prin apsarea tastei Enter. Iat un exemplu n care un utilizator dorete s verifice numrul de linii dintr-un fiier prin comanda wc (word count numr cuvintele), dar trebuie s anuleze comanda prin combinaia de taste Ctrl+C, deoarece nu se ntmpl nimic:

Comanda which ne arat c acest utilizator are un director bin n directorul su personal, care conine un program numit tot wc. Deoarece programul wc, care se afl n directorul su personal, este gsit primul la cutarea prin variabila de mediu, acest program este cel executat, iar ceea ce i se spune s execute nu este recunoscut, aa c trebuie oprit. Pentru a rezolva aceast problem exist mai multe ci (ntotdeauna exist mai multe ci pentru a rezolva o problem n Linux): una ar fi redenumirea programului wc propriu utilizatorului sau utilizatorul poate s furnizeze adresa complet a comenzii pe care o dorete, care poate fi aflat prin folosirea comenzii which cu opiunea -a. Dac un utilizator folosete mai frecvent programe din alte directoare, el poate schimba comportamentul variabilei de mediu, pentru ca aceasta s caute n directorul personal la sfrit: 37

Schimbrile nu sunt permanente! Trebuie s tii c atunci cnd folosii comanda export ntr-o consol, schimbrile sunt temporare, ele fiind valide doar pentru sesiunea curent (pn ce v deautentificai). Deschiderea unei noi sesiuni, chiar n cazul n care sesiunea curent este n desfurare, va pstra comportamentul iniial al variabilei de mediu. n Seciunea 7.2 vom nva cum putem face ca aceste schimbri s devin permanente, prin adugarea liniilor n cauz la fiierele de configurare ale consolei.

3.2.2. Trasee absolute i relative


O adres, care este traseul pe care trebuie s-l urmai n structura de fiiere pentru a ajunge la un anumit fiier, poate fi descris ca pornind de la trunchiul copacului ( / sau directorul rdcin root). n acest caz, traseul ncepe cu caracterul ( / ) i este denumit traseu absolut, deoarece nu pot fi fcute confuzii: numai un singur fiier din sistem corespunde acestui traseu. n situaia n care traseul nu ncepe cu caracterul ( / ), pot exista confuzii, precum aceea dintre

~/bin/wc (fiier care se afl n directorul personal al utilizatorului) i bin/wc, care se gsete n directorul /usr, confuzie reflectat de exemplul pe care l-am oferit mai sus. Traseele care nu ncep cu /
sunt considerate trasee relative. Pentru traseele relative vom folosi ntotdeauna caracterele (.) i (..) pentru directorul curent i directorul superior. Iat cteva exemple:

Atunci cnd dorii s compilai din codul-surs, documentaia de instalare v ofer adesea
instruciuni care v spun s rulai comanda ./configure, care pornete programul configure din directorul curent (cel care vine cu noul cod) i nu alt program configure care se gsete n alt parte a sistemului. n fiierele HTML, traseele relative sunt folosite la realizarea unor pagini care pot fi uor mutate n alte locuri:

Remarcai diferenele din captura de ecran de mai jos:

3.2.3. Cele mai importante fiiere i directoare


3.2.3.1. Kernelul Kernelul este inima sistemului. El asigur comunicaiile dintre dispozitivele sistemului. De asemenea, kernelul pornete i oprete procesele i serviciile exact atunci cnd este nevoie. O mulime de alte sarcini importante sunt executate de kernel, att de multe nct exist o list special de discuii, destinat dezvoltatorilor kernelului, numai pe acest subiect, prin care se trateaz un volum impresionant de informaii. Discutarea kernelului n detaliu ne-ar purta prea departe de scopul acestui ghid. Pentru moment, este suficient s tii despre acesta c este cel mai important fiier al sistemului.

3.2.3.2. Consola (shell-ul) 3.2.3.2.1. Ce este o consol? Atunci cnd am cutat o definiie potrivit conceptului de consol, am ntmpinat multe greuti.

38

Exist tot felul de definiii, care ncep cu simpla comparaie care spune consola este precum volanul unei maini, includ definiia destul de vag din manualul Bash: consola este un interpretor de comenzi compatibil cu limbajul sh i se termin cu expresia, i mai obscur, consola asigur interaciunea dintre sistem i utilizatorii acestuia. Consola este mai mult dect att. Cea mai potrivit imagine este aceea potrivit creia consola este o cale de comunicare cu sistemul, un limbaj. Cei mai muli utilizatori folosesc alt limbaj, cel al clicului de maus, dezvoltat pentru spaiul de lucru. Dar n acest limbaj calculatorul conduce conversaia, utilizatorul avnd doar un rol pasiv, n care poate alege doar dintre sarcinile care i sunt oferite. Este greu pentru un programator s includ toate opiunile i toate comenzile, cu posibilitile lor, ntr-o interfa grafic. De aceea, interfeele grafice (GUI`s) sunt mai puin capabile dect comanda sau comenzile care sunt incluse n suportul (backend-ul) sistemului. Consola, pe de alt parte, este o cale avansat prin care comunicai cu sistemul, deoarece permite o comunicare n ambele sensuri, n care dumneavoastr putei chiar prelua iniiativa. Ambii parteneri sunt egali, aa c pot fi testate noi idei. Consola permite utilizatorilor s foloseasc sistemul ntr-un mod flexibil. O nsuire suplimentar este aceea prin care se poate realiza automatizarea sarcinilor. 3.2.3.2.2. Tipuri de console Dup cum oamenii cunosc mai multe limbi i dialecte, calculatorul nelege i el mai multe tipuri de console:

sh sau consola Bourne: consola original din sistemele UNIX, folosit nc n aceste sisteme sau n mediile nrudite cu UNIX-ul. Este o consol de baz, un program mic cu cteva faciliti. Atunci cnd este n modul compatibil POSIX, consola bash emuleaz comportamentul consolei sh. bash sau consola Bourne Again (Bourne Again SHell): este consola standard GNU, intuitiv i flexibil. Recomandat pentru utilizatorii nceptori, este, n acelai timp, o unealt puternic la ndemna celor avansai sau profesioniti. n Linux, bash este consola standard pentru utilizatorii obinuii. Aceast consol mai este numit superconsola Bourne, deoarece conine mai multe suplimente i module. Deci consola Bourne Again este compatibil cu consola Bourne: comenzile care merg n sh vor funciona i n bash. Inversul nu este valabil ntotdeauna. Toate exemplele i exerciiile din aceast carte folosesc consola bash. csh sau consola C: sintaxa acestei console este asemntoare cu cea a limbajului de programare C. Este solicitat ndeosebi de programatori. tcsh sau consola Turbo C: este o dezvoltare a consolei C, mai prietenoas cu utilizatorii i mai rapid. ksh sau consola Korn: este apreciat mai mult de persoanele care au experien n mediul UNIX. Este o dezvoltare a consolei Bourne; n configuraia standard, este un comar pentru utilizatorii nceptori.
Fiierul /etc/shells v arat consolele existente ntr-un sistem Linux:

Consol Bourne simulat Luai aminte c directorul /bin/sh conine, de regul, o legtur ctre consola Bash, executat n modul de compatibilitate cu consola Bourne, atunci cnd este adresat n acest fel. Consola implicit a sistemului dumneavoastr se afl n fiierul /etc/passwd i este artat de o linie asemntoare cu urmtoarea:

Pentru a schimba o consol cu alta, introducei numele consolei pe care o dorii ntr-un terminal activ. Sistemul gsete directorul n care apare numele introdus de dumneavoastr prin utilizarea setrilor din PATH i, fiind vorba despre un fiier executabil (program), consola curent l activeaz i execut. Va fi afiat un alt prompter, deoarece fiecare consol se manifest ntr-un mod aparte:

39

3.2.3.2.3. Ce consol folosesc? Dac nu tii ce consol folosii, fie verificai linia care aparine contului dumneavoastr din /etc/

passwd, fie tastai:


echo $SHELL

3.2.3.3. Directorul (dosarul) dumneavoastr personal (home directory) Directorul personal este destinaia implicit dup conectarea la sistem. n cele mai multe cazuri, este un subdirector al directorului /home, dei acest lucru poate s difere la unele distribuii. Acelai director poate s se afle pe discul fix al unui server de fiiere din reea; n acest caz, directorul personal poate fi gsit la /nethome/numele_dumneavoastr_de_utilizator (/nethome/your_user_name). Alt posibilitate ar fi aceea n care administratorul de sistem opteaz pentru un tipar mai puin inteligibil i directorul personal ar putea exista n /disk6/HU/07/jgillard. Oricare ar fi traseul directorului personal, nu trebuie s v batei capul prea mult cu el. Traseul corect al directorului dumneavoastr personal este stocat n variabila de mediu HOME, pentru ca programele care solicit acest traseu s l poat gsi. Comanda echo va afia coninutul acestei variabile:

Putei face absolut orice dorii n directorul personal. Putei face ct de multe fiiere dorii n tot attea directoare, ceea ce v limiteaz fiind doar posibilitile fizice ale echipamentului i mrimea partiiei sau, cteodat, administratorul, care poate s aloce o cot fiecrui utilizator. Limitarea accesului la discurile fixe era o practic obinuit pe vremea cnd preul pe unitatea de stocare era destul de ridicat. n zilele noastre, cotele sunt alocate aproape exclusiv n cazul mediilor de stocare foarte mari. Putei vedea dac este alocat o cot cu ajutorul comenzii quota:

n cazul n care sunt alocate cote, vei vedea o list cu partiiile restricionate i limitrile specifice. Depirea limitelor poate fi tolerat pe o perioad de graie cu puine restricii sau fr nici un fel de restricie. Informaii detaliate pot fi gsite prin comenzile info quota sau man quota. Nu gsii quota? Dac sistemul nu poate gsi quota, atunci nu este aplicat nici o limitare n utilizarea sistemului de fiiere. Directorul personal este indicat de caracterul (~), care reprezint prescurtarea de la /traseul ctre directorul personal/numele tu de utilizator (/path_to_home/user_name). i prescurtarea se afl stocat n variabila de mediu HOME, aa c nu trebuie s facei nimic pentru a o activa. Iat o aplicaie foarte simpl i la obiect: utilizatorul de mai jos se mut din directorul

/var/music/albums/arno/2001 n directorul images, care se afl n directorul su personal,


folosind o comand elegant:

Pe parcursul acestui capitol vom vorbi despre comenzile pe care le folosim n gestionarea fiierelor 40

i directoarelor pentru a menine directorul personal curat.

3.2.4. Cele mai importante fiiere de configurare


Dup cum am mai spus, cele mai multe fiiere de configurare se gsesc n directorul /etc. Coninutul poate fi afiat prin comanda cat, care trimite fiierele text la ieirea standard (de regul, monitorul). Sintaxa este simpl: cat fiier1 fiier2....fiierN Vom ncerca s v prezentm n aceast seciune o trecere n revist a celor mai importante fiiere de configurare. Cu siguran c lista nu e complet. Prin adugarea pachetelor suplimentare, sunt adugate i fiierele de configurare pentru aceste pachete n /etc. Cnd vei citi fiierele de configurare, vei observa c ele sunt bine comentate i foarte bine explicate. Anumite fiiere au chiar pagini de manual, care conin documentaie n plus, precum man group.
Tabelul 3-3. Cele mai ntlnite fiiere de configurare

Fiier

Informaii/servicii Fiier pentru aliasurile de pot electronic utilizat cu serverele Sendmail i Postfix. Existena unui server de mail pe fiecare sistem este o practic comun n lumea UNIX-ului, iar aproape fiecare distribuie de Linux conine un pachet Sendmail. n acest fiier, numele utilizatorilor locali sunt comparate cu numele reale, aa cum apar ele n adresele de e-mail sau cu alte adrese locale. Fiierele de configurare pentru serverul web Apache. Fiier de configurare extins pentru consola Bourne Again. Definete funciile i aliasurile pentru toi utilizatorii. Alte console pot avea propriile fiiere de configurare extinse, precum cshcr.

aliases

apache bashrc

directoarele crontab i Configurrile sarcinilor care trebuie executate periodic executarea copiilor de siguran, actualizri ale sistemului, curarea sistemului, actualizarea cron.* rapoartelor, etc.

default filesystems fstab ftp* group

Opiunile implicite ale anumitor comenzi, precum useradd. Sistemele de fiiere cunoscute: ext3, vfat, iso9660, etc. Listarea partiiilor cu punctele lor de montare. Configurrile serverului ftp: cine se poate conecta, ce pri ale sistemului sunt accesibile, etc. Fiierul de configurare pentru grupurile de utilizatori. Folosii utilitarele securizate groupadd, groupmod i groupdel pentru editarea acestor fiiere. Editai manual numai dac avei experien. O list a calculatoarelor care pot fi contactate folosind reeaua, fr a avea nevoie de DNS-uri. Nu are nimic de-a face cu configurrile de reea ale sistemului, care se gsesc n /etc/sysconfig. Informaii pentru pornirea sistemului: mod, numrul consolelor text, etc. Informaii despre distribuie (versiune i/sau informaii despre kernel). Localizarea fiierelor biblioteci. Informaii pentru pornirea sistemului necesare ncrctorului de sisteme din Linux, LILO (Linux Loader), dar care este nlocuit gradual cu GRUB. Actualizarea (rotirea) fiierelor jurnal, un sistem care previne acumularea n exces a fiierelor tip jurnal. Director care conine instruciuni pentru comportamentul serverului de mail. Configurri ale modulelor care asigur nsuiri speciale (drivere module de nucleu). Mesajul zilei: este artat oricui se conecteaz la sistem (n modul text), poate fi

hosts inittab issue ld.so.conf lilo.conf, silo.conf, aboot.conf, etc. logrotate.* mail modules.conf motd

41

folosit de administratorul de sistem pentru a anuna nchiderea sistemului pentru ntreinere, etc.

mtab nsswitch.conf pam.d passwd printcap profile rc* resolv.conf sendmail.cf services

Sistemele de fiiere montate. V sftuim s nu editai acest fiier niciodat. Ordinea n care trebuie contactate numele de aplicaia de soluionare a echivalenei, cnd un proces solicit apelarea unei gazde (host name). Configurrile modulelor de autentificare. Listeaz utilizatorii locali. Folosii utilitarele securizate useradd, usermod i userdel pentru a edita acest fiier. Editai manual numai dac avei experien. Fiier depit, dar nc utilizat, de configurare a imprimantei. Nu editai manual dect dac suntei un utilizator experimentat. Fiier de configurare extins al mediului consolei: variabile, proprieti implicite ale fiierelor noi, limitri ale resurselor, etc. Director care definete serviciile active pentru fiecare nivel de executare (runlevel). Ordinea n care sunt contactate serverele DNS (Domain Name Servers). Fiierul principal de configurare pentru serviciul Sendmail. Conexiunile acceptate de sistemul respectiv (porturile deschise). Directorul care conine fiierele de configurare ale consolei securizate client i server. Director care conine fiierele de configurare ale sistemului: maus, tastatur, reea, spaiu de lucru, frecvena sistemului, administrarea consumului, etc (specific distribuiei RedHat). Setrile serverului grafic X. RedHat folosete Xfree, ceea ce se reflect n numele principalului fiier de configurare, Xfree86Config. Conine i indicaiile generale pentru administratorii de ferestre disponibili n sistem, de exemplu gdm, fvwm, twm, etc. Fiiere de configurare pentru servicii Internet care ruleaz prin serviciile (extinse) de Internet ale sistemului (servere care nu ruleaz un serviciu independent).

sndconfig sau sound Configurrile plcii de sunet i ale evenimentelor conexe. ssh sysconfig

X11 xinetd.* sau inetd.conf

Pe parcursul acestui ghid vom afla mai multe lucruri despre aceste fiiere i vom studia cteva n detaliu.

3.2.5. Cele mai ntlnite dispozitive


Dispozitivele, n general orice periferice ataate la un calculator n afar de procesorul propriu-zis, sunt vzute de sistem ca intrri n directorul /dev. Unul din avantajele modului n care UNIX-ul lucreaz cu dispozitivele este acela c nici utilizatorul i nici sistemul nu trebuie s-i bat prea mult capul cu specificaiile acestor dispozitive. Cei nou venii n Linux, sau UNIX n general, sunt adesea copleii de volumul de concepte i termeni pe care trebuie s le nvee. De aceea v prezentm mai jos o list cu dispozitivele despre care vom vorbi pe parcursul acestui ghid.
Tabelul 3-4. Dispozitive des ntlnite

Nume

Dispozitiv Unitate CD Intrare special pentru consola folosit n mod curent Porturi seriale Dispozitive pentru eantionare i nregistrare

cdrom console cua* dsp*

42

fd* hd [a-t] [1-16] ir* isdn* js* lp* mem midi* mixer* i music modem
psmouse, input/mice, psaux)

Intrri pentru dispozitivele floppy (dischete), intrarea implicit fiind / dev/fd0, unitatea de dischete de 1,44 MO Asisten pentru unitile IDE, care asigur numrul maxim de partiii Dispozitive infrarou Administrarea legturilor ISDN Joystick-uri Imprimante Memorie Player midi Model ideal al unui mixer (combin sau adaug semnale audio) Modem

mouse (sau msmouse, logimouse, Toate felurile de mausuri null par* pty* radio* ram* sd* sequencer tty* usb* video*
Sac fr fund de gunoi Intrri pentru asistena porturilor paralele Pseudoterminale Pentru dispozitive radioamatori (HAM`s) Dispozitive de pornire a sistemului Asisten discuri i partiii SCSI Pentru aplicaii audio care folosesc facilitile de sintetizare ale plcii audio (controller-e ale dispozitivelor MIDI) Console virtuale care simuleaz terminale vt100 Dispozitive USB i scannere De utilizat pentru plcile grafice care includ video

3.2.6. Cele mai ntlnite fiiere variabile


n directorul /var se gsete un set de directoare pentru stocarea datelor care nu sunt, prin specificul lor, constante (opuse celor din programul ls sau celor cuprinse n fiierele de configurare ale sistemului, care se schimb foarte rar sau chiar deloc). Toate fiierele care se schimb frecvent, precum fiierele raport (log files), csuele de mail, cozile n ateptare, etc, sunt pstrate n subdirectoare ale directorului /var. Ca msur de securitate, aceste fiiere sunt pstrate, de regul, separat de fiierele principale ale sistemului, pentru a le ine sub supraveghere strict, cu nsprirea permisiunilor acolo unde este cazul. O mare parte a acestor fiiere au nevoie de mai multe permisiuni dect n mod normal, precum /var/tmp, care trebuie s fie scris de oricine. Multe din activitile utilizatorilor pot fi gsite aici i chiar activiti generate de utilizatori necunoscui, conectai la sistemul dumneavoastr prin Internet. Iat deci un motiv pentru care directorul /var, cu toate subdirectoarele sale, se afl, de regul, pe o partiie separat. n acest mod nu exist riscul ca o bomb de mail, de exemplu, s poat umple tot sistemul de fiiere, afectnd datele importante, cum ar fi programele i fiierele de configurare. /var/tmp i /tmp Fiierele din /tmp pot fi terse de ctre sistem fr preaviz, ca parte a sarcinilor obinuite sau la repornirea calculatorului. Pe unele sisteme (personalizate) i /var/tmp poate s se comporte imprevizibil. Totui, pentru c nu este un comportament implicit, v sftuim s folosii directorul /var/tmp pentru salvarea fiierelor temporare. Dac avei dubii, ntrebai administratorul de sistem. Dac acest administrator suntei chiar dumneavoastr, putei fi ndeajuns de sigur c directorul despre care vorbim se comport

43

normal dac nu ai schimbat contient nsuirile /var/tmp (ca root, deoarece un utilizator obinuit nu o poate face). Orice ai face, ncercai s v limitai la privilegiile asociate unui utilizator obinuit nu salvai fiiere direct n seciunea de root ( / ) a sistemului de fiiere, nu le punei n directorul /usr sau n subdirectoarele acestuia ori n alt loc dedicat. Astfel v este limitat accesul doar la fiierele sigure, care nu implic modificri majore n sistem. Unul dintre principalele sisteme de securitate dintr-un sistem UNIX, implementat, de asemenea, pe toate mainile Linux, este facilitatea de pstrare a fiierelor jurnal, care nregistreaz toate aciunile utilizatorilor, procesele, evenimentele din sistem, etc. Fiierul de configurare al aa-numitului syslogdaemon determin unde i pentru ct timp vor fi pstrate informaiile din fiierele jurnal. Locul implicit pentru fiierele jurnal este /var/log, i conine jurnalele de acces, jurnalele serviciilor, mesajele de sistem, .a.. n directorul /var sunt i datele serverelor, care sunt inute aici pentru a fi separate de datele sensibile, precum programele n sine i fiierele de configurare. Un exemplu tipic sistemelor Linux este directorul /var/www, care conine paginile HTML, scripturile i imaginile pe care le ofer serverul. V sftuim ca i sistemul de fiiere FTP care se afl pe un server FTP (datele care pot fi descrcate de un client aflat la distan) s fie pstrate ntr-un subdirector al lui /var. Pentru c aceste date sunt accesibile publicului i schimbate adesea de utilizatori necunoscui, este mai sigur s le pstrai aici, departe de partiiile i directoarele care conin date sensibile. n cazul celor mai multe instalri ca staii de lucru, /var/spool va conine cel puin un director at i altul cron, n care vom gsi sarcinile programate. Pe staiile de lucru pe care sunt instalate programele pentru birou, acest director conine i lpd, care pstreaz informaii despre lucrrile care ateapt tiprirea, fiierele de configurare ale imprimantei, ct i fiierele jurnal ale acesteia. Pe sistemele folosite ca servere vom gsi, n general, directorul /var/spool/mail, care conine mailurile primite de utilizatorii locali, stocate n fiiere separate pentru fiecare utilizator, aa numita csu a utilizatorului (user`s inbox). Un director nrudit este mqueue, coada de ateptare pentru mesajele de pot electronic netrimise nc. Aceste pri ale sistemului pot fi foarte solicitate n cazul serverelor de mail care au foarte muli utilizatori. Serverele de tiri folosesc i ele directorul /var/spool din cauza cantitilor enorme de mesaje pe care le proceseaz. Directorul /var/lib/rpm este specific distribuiilor bazate pe RPM (Administratorul de pachete din RedHat); este locul n care sunt stocate informaiile despre pachetele RedHat. Ali administratori de pachete pstreaz datele specifice tot n acest director /var.

3.3. Manipularea fiierelor


3.3.1. Consultarea proprietilor fiierelor 3.3.1.1. Mai multe lucruri despre comanda ls n afar de numele unui fiier, ls v poate oferi mult mai multe informaii, cum ar fi tipul fiierului, despre care am vorbit deja. V poate arta, de asemenea, permisiunile asociate unui fiier, mrimea fiierului, numrul de nod (inode), data i ora la care a fost fcut, deintori i numrul de legturi ctre acel fiier. Dac asociem comenzii ls opiunea -a, sunt afiate i fiierele care sunt n mod normal ascunse. Numele acestor fiiere ncepe cu un punct (caracterul .). Fiierele de configurare din directorul dumneavoastr personal sunt exemple tipice. Dup ce vei lucra o perioad de timp pe un anume sistem, vei observa c exist zeci de fiiere i directoare care nu sunt indexate. n afar de acest lucru, fiecare director conine un fiier al crui nume conine doar un punct (.) i altul care conine doar dou puncte (..), care sunt folosite n combinaie cu numrul nodului asociat lor pentru a determina poziia directorului n sistemul arborescent de fiiere. Trebuie neaprat s citii paginile Info despre ls, deoarece este o comand des utilizat, care are multe opiuni folositoare. Opiunile pot fi combinate, comportament care este specific multor comenzi i opiuni ale UNIX-ului. O combinaie des ntlnit este ls -al; ea arat lista ntreag a fiierelor cu proprietile lor precum i destinaiile spre care intesc eventualele legturi simbolice. ls -latr afieaz aceleai fiiere, doar c n ordine invers, n aa fel nct fiierele care au fost modificate recent apar la baza listei. Iat cteva exemple:

44

n cele mai multe distribuii de Linux, comanda ls este executat implicit sub forma aliasului colorls. Aceast facilitate v permite vizualizarea tipului fiierelor fr a folosi vreo opiune asupra ls. Pentru a v arta aceste informaii, fiecare tip de fiier este prezentat printr-o culoare distinct. Schema standard se afl n /etc/DIR_COLORS:
Tabelul 3-5. Schema implicit de culori pentru color-ls

Culoare albastru rou alb roz cyan galben verde

Tip de fiier directoare arhive comprimate fiiere text imagini legturi dispozitive executabile

rou intermitent legturi deteriorate Mai multe informaii vei gsi n paginile man. Aceste informaii erau afiate, la nceputuri, prin ataarea unui sufix fiecrui fiier de tip special. Pentru utilizarea n medii monocolor (cum ar fi printarea unei liste a directoarelor) i pentru accesibilitate, aceast schem este nc n uz:
Tabelul 3-6. Schema implicit pentru sufixele ls

Caracter nimic / @ = |

Tip de fiier fiier obinuit director fiier executabil legtur socket conexiuni (named pipe)

O descriere complet a funciilor i facilitilor comenzii ls poate fi citit prin comanda info

coreutils ls.

45

3.3.1.2. Mai multe unelte Pentru a afla mai multe despre tipul de date cu care lucrai, folosii comanda file. Prin teste care verific proprietile fiierelor, numere magice i teste de limbaj, file ncearc s afieze proprietile unui fiier ntr-un format mai elaborat. Iat cteva exemple:

Comanda file poate fi folosit cu mai multe opiuni; opiunea -z v permite s v uitai n fiierele comprimate. Utilizai comanda info file pentru o descriere detaliat. S nu uitai c rezultatul comenzii file nu este unul absolut, ci o presupunere. Cu alte cuvinte, file poate fi pclit. De ce se acord o atenie att de mare tipului i proprietilor fiierelor? Pe scurt, vom discuta cteva unelte proprii liniei de comand pentru a privi n fiierele text simplu. Aceste unelte nu vor funciona dac sunt folosite pe tipuri greite de fiiere. n cel mai ru caz, ele vor determina nchiderea consolei i/sau vei auzi multe proteste pe ieirea audio. Dac vi se ntmpl acest lucru, nchidei sesiunea curent a terminalului i deschidei una nou. ns ncercai s evitai producerea 46

evenimentelor de acest tip, deoarece pot fi considerate suprtoare de ctre ceilali.

3.3.2. Crearea i tergerea directoarelor


3.3.2.1. Dezordinea... ...nu este greu de atins. n zilele noastre aproape orice sistem se afl ntr-o reea, aa c fiierele sunt copiate cu uurin dintr-un sistem n altul. n special atunci cnd lucrai n mediul grafic, crearea de fiiere noi nu pune nici o problem i se realizeaz adesea fr a se cere aprobarea utilizatorului. Pentru a v prezenta problema, v prezentm coninutul complet al unui director personal nou creat pe un sistem standard RedHat:

La prima vedere, nici coninutul unui director personal folosit ndelung nu arat prea ru:

Dar dac sunt incluse n aceast list toate directoarele i fiierele care ncep cu un punct, vom avea mult mai multe poziii n aceast list, 185 n cazul de fa. Acest lucru se ntmpl deoarece cele mai multe aplicaii au propriile directoare i/sau fiiere, care conin opiunile de configurare ale utilizatorului, n directorul personal al acestuia. Aceste fiiere sunt create, de regul, atunci cnd pornim o aplicaie pentru prima dat. Cteodat, vei fi notificai atunci cnd un director va fi creat, dar de cele mai multe ori totul se face automat. n plus, ntotdeauna sunt create noi fiiere, deoarece utilizatorii doresc s salveze date, s pstreze mai multe versiuni a ceea ce au lucrat, s foloseasc aplicaiile pentru Internet i s descarce fiiere i ataamente n calculatorul propriu. i aceste activiti sunt de neoprit. Este de neles c avem nevoie de o schem care s ne ajute s controlm aceste probleme. n seciunea urmtoare vom discuta mijloacele prin care putem pstra ordinea. Vom vorbi numai despre uneltele text din consol, deoarece uneltele grafice sunt intuitive i au aceeai prezentare i mod de lucru precum binecunoscuii administratori de fiiere MS Windows, incluznd funcii de ajutor n modul grafic i alte faciliti care vin n mod normal cu astfel de aplicaii. Lista de mai jos este o prezentare a celor mai cunoscui administratori de fiiere din GNU/Linux. Cei mai muli pot fi pornii din meniul administratorului spaiului de lucru, prin apsarea iconiei care arat directorul dumneavoastr personal sau din linia de comand, astfel:

nautilus: este administratorul de fiiere implicit din Gnome, spaiul de lucru GNU. O documentaie
excelent pentru aceast unealt poate fi gsit la: http://www.gnome.org. konqueror: este administratorul de fiiere utilizat implicit n spaiul de lucru KDE. Manualul poate fi gsit la: http://docs.kde.org. mc: Midnight Commander, administratorul de fiiere din UNIX, n stilul Norton Commander. Documentaia este disponibil la http://www.gnu.org/directory/ sau la un sait-oglind precum http://www.ibiblio.org.

Merit s v familiarizai cu aceste aplicaii, pentru c ele impresioneaz de obicei pe cei nou venii n Linux, iar despre faptul c avei de unde alege, v putem spune c aplicaiile prezentate mai sus sunt doar 47

cele mai ntrebuinate unelte de administrare a directoarelor i fiierelor, multe alte proiecte aflndu-se n dezvoltare. Acum vom ptrunde n esena lor i vom vedea cum aceste unelte grafice folosesc comenzile obinuite ale UNIX-ului.

3.3.2.2 Uneltele 3.3.2.2.1. Crearea directoarelor O cale prin care putei pstra lucrurile sub control este s alocai anumitor fiiere locuri implicite prin crearea de directoare i subdirectoare (sau foldere i subfoldere, dac preferai s le numii astfel). Acest lucru se face prin comanda mkdir:

Crearea directoarelor i subdirectoarelor ntr-un singur pas se realizeaz prin opiunea -p:

Dac noul fiier are nevoie de alte permisiuni dect cele alocate implicit, noile drepturi de acces pot fi configurate ntr-un singur pas, tot prin comanda mkdir; consultai paginile Info pentru mai multe detalii. Vom discuta modurile de acces n seciunea referitoare la securitatea fiierelor. Numele unui director trebuie alocat dup aceleai reguli care se aplic fiierelor normale. Una din cele mai importante restricii este c nu putei avea dou fiiere cu acelai nume ntr-un director (dar amintiiv ca Linux-ul trateaz, precum UNIX-ul, majusculele ca fiind semnificative). Teoretic, nu exist limite n numrul de caractere care pot compune numele unui director, dar n practic sunt folosite maxim 80 de caractere, pentru ca numele directorului s poat fi afiat pe o linie a terminalului. Putei folosi orice caracter dorii n alctuirea numelui unui fiier, dar v sftuim s excludei caracterele care au un neles special n consol. Dac avei dubii, verificai Appendix C.

3.3.2.2.2. Mutarea fiierelor Dup ce ne-am structurat directorul personal, este timpul s punem fiecare fiier rzle n locul potrivit cu ajutorul comenzii mv:

Aceast comand se aplic i n cazul redenumirii fiierelor:

48

Este clar pentru oricine c, n exemplul de mai sus, doar numele fiierului s-a schimbat. Toate celelalte proprieti rmn aceleai. Informaii detaliate despre sintaxa i facilitile comenzii mv pot fi gsite n paginile man sau Info ale acestei comenzi. Folosirea documentaiei trebuie s devin un act reflex pentru dumneavoastr n cazul n care v confruntai cu o problem. Rspunsurile la problemele pe care le ntlnii sunt coninute, de cele mai multe ori, n documentaia sistemului. Chiar i utilizatorii experimentai consult pagini man n fiecare zi, aa c cei nou venii n Linux ar trebui s le citeasc ntotdeauna. Dup un timp, vei cunoate cele mai utilizate comenzi i opiunile lor, dar tot vei avea nevoie de documentaie, ca surs primar de informare. Menionm c informaiile coninute de CUM S-uri, ntrebri frecvente (FAQ`s), paginile man i alte surse, sunt nglobate n ultimul timp, gradual, n paginile Info, care se constituie astfel n cea mai actualizat surs de documentare.

3.3.2.2.3. Copierea fiierelor Copierea fiierelor i directoarelor se face prin comanda cp. O opiune folositoare a acestei comenzi este copiere recursiv (copierea tuturor fiierelor i subdirectoarelor dintr-un director), atand -R comenzii cp. Sintaxa, n cazul general, este: cp [-R] fiier_de_copiat destinaia_nou (cp [-R] fromfile tofile) V prezentm drept exemplu cazul unui utilizator newguy care dorete s aib aceleai configurri ale spaiului de lucru Gnome pe care le are utilizatorul oldguy. O cale prin care poate fi rezolvat aceast problem este copierea configurrilor care aparin utilizatorului oldguy n directorul personal al utilizatorului newguy:

Vor exista nite erori legate de permisiunile ataate fiierelor, dar toate au de-a face cu fiiere personale, de care utilizatorul newguy nu are nevoie. Vom discuta n alt parte despre cum s schimbm aceste permisiuni n cazul n care devin o problem.

3.3.2.2.4. tergerea fiierelor Pentru a terge fiiere folosii comanda rm iar pentru tergerea directoarelor goale, folosii comanda rmdir (folosii ls -a pentru a verifica dac un director este gol sau nu). Comanda rm are opiuni pe care le putem folosi n tergerea directoarelor care nu sunt goale, adic putem terge directorul cu toate subdirectoarele sale. Consultai paginile Info pentru lmuriri n privina acestor opiuni destul de periculoase. Ct de gol poate fi un director? Este un lucru normal ca directoarele . (punct) i .. (punct-punct) s fie imposibil de ters, deoarece ele sunt absolut necesare ntr-un director, chiar gol, pentru a determina rangul acelui director n sistemul de fiiere. n Linux, la fel ca n UNIX, nu exist co de gunoi cel puin, nu n cazul consolei, pentru c n cazul interfeei grafice, exist destule alternative. Aa c odat ters, un fiier este pierdut i, n general, nu exist o cale prin care s l putei recupera, n afar de cazurile n care avei copii de siguran ale fiierului respectiv sau suntei foarte rapid i avei un administrator de sistem foarte bun. Pentru a proteja utilizatorii nceptori se poate activa comportamentul interactiv n cazul comenzilor rm, cp i mv prin opiunea -i. n acest mod sistemul nu va reaciona doar la cererea simpl a utilizatorului. n schimb, va cere confirmare, aa c este nevoie de o a doua apsare a tastei Enter pentru a produce vreo pagub, dac este cazul:

Vom discuta n Capitolul 7, n care vom prezenta detalii despre personalizarea consolelor, modul n 49

care putei configura ca implicit acest comportament.

3.3.3. Cutarea fiierelor


3.3.3.1. Utilizarea facilitilor consolei Din exemplul n care am tratat mutarea fiierelor ai observat cum consola poate lucra cu mai multe fiiere n acelai timp. n acel exemplu consola tie ce i se cere prin caracterele cuprinse ntre parantezele drepte [ i ] . Consola poate substitui serii de numere i caractere, majuscule ori nu. Poate substitui orict de multe caractere dorii cu un astersic i un singur caracter cu un semn de ntrebare. Toate substituirile pot fi folosite simultan; consola are o logic imbatabil n aceast privin. Consola Bash, de exemplu, nu are nici o problem n a trata expresii precum ls dirname/*/*/*[2-3]. n alte console asteriscul este folosit pentru a uura munca utilizatorilor, prin reducerea numrului de caractere care trebuie tastate: astfel putei introduce cd dir* n loc de cd directory. n consola Bash nu este necesar s facem acest lucru, deoarece aceast unealt GNU are o facilitate numit autocompletarea numelui fiierelor. Concret, dac tastai doar primele caractere ale comenzii (oriunde v aflai n structura de fiiere) sau ale unui fiier (care aparine directorului curent) i dac nu este posibil nici o confuzie, consola va gsi ceea ce dumneavoastr dorii. De exemplu, dac v poziionai ntr-un director care conine multe fiiere, putei verifica dac exist fiiere care ncep cu litera A prin comanda ls A urmat de apsarea tastei Tab de dou ori n loc de apsarea tastei Enter. Dac exist doar un singur fiier al crui nume ncepe cu A, acest fiier v fi prezentat imediat ca argument al comenzii ls (sau al oricrei comenzi).

3.3.3.2. Which O cale foarte simpl prin care putem cuta fiiere este comanda which, prin care putem cuta n directoarele listate n variabila PATH a utilizatorului respectiv dup fiierul dorit. Trebuie s tim c, deoarece variabila listeaz numai traseele directoarelor care conin fiiere executabile, which nu ne spune nimic despre fiierele obinuite. Comanda which este folositoare atunci cnd v confruntai cu probleme de genul command not found - comand lips, de negsit. n exemplul de mai jos, utilizatoarea tina nu poate folosi programul acroread, n timp ce colegul ei nu are nici o problem pe acelai sistem. Chestiunea este similar cu cea explicat n cazul variabilei PATH, ntr-o seciune precedent: colegul Tinei i spune acesteia c programul exist n /opt/acroread/bin, dar directorul nu este listat n variabila ei PATH:

Problema poate fi rezolvat prin tastarea comenzii ca traseu complet sau prin re-exportarea coninutului variabilei PATH:

Folosii comanda which i pentru a verifica dac o comand este un alias al altei comenzi:

n cazul n care comanda nu este executat de sistemul dumneavoastr, folosii comanda alias:

3.3.3.3. Find i locate (Gsete i localizeaz) Acestea sunt uneltele cele mai bune, care pot fi folosite i n cutarea fiierelor care nu sunt listate n traseele coninute de variabila PATH. find, aa cum este cunoscut din UNIX, este o unealt foarte 50

puternic, poate cu preul unei sintaxe mai dificile. Dar comanda find din GNU se poate descurca cu problemele ridicate de sintax. Nu numai c v permite cutarea dup numele fiierelor, ci accept criterii ca mrimea fiierelor, data ultimei modificri precum i alte proprieti ale fiierelor. Cea mai rspndit form este cea prin care se caut fiiere:

find <path> -name <criterii_de_cutare>


Aceast expresie poate fi interpretat astfel: Caut n toate subdirectoarele i fiierele determinate de traseul dat i afieaz numele fiierelor care conin n numele lor (nu n coninutul acestora) criteriul de cutare introdus). Alt mod n care putem folosi comanda find este cutarea fiierelor de o mrime determinat, dup cum se observ n exemplul de mai jos, n care utilizatorul peter dorete s gseasc toate fiierele din directorul curent sau din subdirectoarele acestuia care sunt mai mari de 5 MO:

Dac vei cuta n paginile man, vei afla c find poate executa anumite operaii asupra fiierelor pe care le gsete. Ca exemplu putem vorbi despre tergerea fiierelor. Cel mai bine este s verificai dac fiierul gsit este cel dorit de dumneavoastr, adic nu lansai comanda file cu opiunea de execuie -exec, i doar dup aceea reintroducei comanda prin care tergei fiierul respectiv. Mai jos v prezentm o cutare a fiierelor de tipul .tmp:

Optimizai! Aceast comand va apela rm ori de cte ori este gsit un fiier ale crui proprieti se potrivesc cu criteriile de cutare. n cel mai ru caz, pot fi zeci de mii sau milioane de fiiere. Acest lucru va determina ncrcarea sistemului. Un mod de lucru mai realist este folosirea unei conexiuni (pipe I) i a uneltei xargs mpreun cu rm ca argument. n acest fel, comanda rm este apelat atunci cnd linia de comand este plin, n loc s fie apelat la fiecare fiier gsit. Consultai Capitolul 5 pentru mai multe amnunte despre utilizarea redirecionrii I/O pentru a v uura sarcinile de zi cu zi. Mai trziu (n 1999, dac ne lum dup paginile man, dup 20 de ani de find), a fost dezvoltat comanda locate. Este un program mai uor de utilizat, dar cu mai multe restricii dect find, deoarece rezultatul afiat de aceast comand este bazat pe un fiier care conine un index al unei baze de date actualizat o singur dat pe zi. Pe de alt parte, o cutare n baza de date a comenzii locate folosete mai puine resurse dect find, aa c rezultatele sunt afiate aproape instantaneu. Cele mai multe distribuii de Linux folosesc acum slocate, adic o cutare care ia n considerare i aspecte legate de securitate, care nu permite utilizatorilor s aib acces la un rezultat pe care nu au dreptul s-l citeasc. Fiierele din directorul personal al administratorului (root`s home directory) de exemplu, nu sunt, n mod normal, accesibile publicului. Un utilizator care dorete s gseasc pe cineva care folosete consola C, poate introduce comanda locate .cshrc, pentru a i se afia toi utilizatorii care dein un fiier personalizat pentru consola C. Presupunnd c utilizatorii root i jenny folosesc consola C, atunci numai fiierul /home/jenny/.cshcr va fi afiat, nu i acela din directorul personal al administratorului. Pe cele mai multe sisteme, locate este o legtur simbolic pentru programul slocate:

Utilizatoarea tina poate s foloseasc locate pentru a gsi aplicaia de care are nevoie, dup cum v este prezentat n imaginea urmtoare:

51

Directoarele care nu conin numele bin nu pot avea programul ele nu conin fiiere executabile. Mai rmn trei posibiliti. Fiierul din /usr/local/bin este cel pe care l dorete tina: este o legtur ctre un script care pornete programul n sine:

Pentru a pstra traseele ct mai scurte posibil, astfel nct sistemul s nu caute prea mult atunci cnd un utilizator dorete se execute o comand, adugm /usr/local/bin variabilei PATH i nu celelalte directoare, care conin doar fiierele binare ale unui program anume, pe cnd /usr/local/bin conine i alte programe folositoare. V spunem din nou c o descriere complet a facilitilor comenzilor find i locate poate fi gsit n paginile Info.

3.3.3.4. Comanda grep 3.3.3.4.1. Sortarea liniar general Un program simplu dar foarte puternic, grep, este folosit pentru sortarea liniilor introduse i afiarea anumitor tipare ca rezultat al procesrii. Exist mii de aplicaii ale programului grep. n exemplul de mai jos, jerry folosete grep pentru a vedea cum stau lucrurile cu find:

Cutarea n istoricul consolei Foarte folositoare n aceste cazuri este funcia de cutare a consolei bash, activat de apsarea tastelor Ctrl+R o singur dat, precum n exemplul care urmeaz, n care se dorete verificarea traseului apelat de ultima cutare realizat prin comanda find:

Introducei irul care conine criteriile dumneavoastr dup prompterul de cutare. Cu ct tastai mai multe caractere, cutarea devine mai precis. Se citete istoricul comenzilor pentru aceast sesiune a consolei (care este scris n .bash_history din directorul dumneavoastr personal la nchiderea sesiunii). Este afiat cea mai bun potrivire cu criteriile dumneavoastr de cutare. Dac dorii s vedei comenzile anterioare care conin acelai ir, apsai din nou Ctrl+R. Apelai la paginile Info despre bash pentru detalii.

52

Toate sistemele de operare UNIX care se respect conin un dicionar. La fel i Linux-ul. Dicionarul este o list a cuvintelor cunoscute ntr-un fiier numit words, care se gsete n /usr/share/ dict (n cazul Ubuntu, directorul este /etc/dictionaries-common/words). Pentru a verifica rapid ortografia unui cuvnt, nu este necesar nici o aplicaie grafic:

Dicionar vs. list de cuvinte Sunt i distribuii care ofer comanda dict, care ofer mai multe faciliti dect cutarea unui cuvnt ntr-o list. Cine este deintorul celuilalt director personal? Hei, iat numrul su de telefon!

i care era adresa de mail a lui Arno?

find i locate sunt folosite adesea n combinaie cu programul grep pentru a defini cutri mai rafinate. Pentru mai multe informaii, consultai Capitolul 5, partea despre redirecionarea I/O.

3.3.3.4.2. Caractere speciale Atunci cnd folosii n alte scopuri caracterele care au un neles aparte pentru consol, ele trebuie s fie separate de acest neles special (escaped). Caracterul din Bash, precum i n alte console, care face acest lucru este linia oblic invers ( \ ); prin el se eludeaz nelesul special al caracterului urmtor. Consola recunoate aceste caractere speciale, printre care cele mai des ntlnite sunt /,.,? i *. Lista complet poate fi gsit n paginile Info i n documentaia proprie consolei pe care o folosii. De exemplu, s spunem c dorii s afiai fiierul * n loc de a afia toate fiierele dintr-un director; atunci trebuie s folosii less \* Acelai lucru se aplic i numelor de fiiere care conin un spaiu: cat This\ File

3.3.4. Mai multe moduri n care putei afia coninutul unui fiier
3.3.4.1. Generaliti n afar de comanda cat, care nu prea face altceva n afar de a trimite fiierele la ieirea standard, exist alte unelte pentru a vizualiza coninutul unui fiier. Cea mai uoar cale este, desigur, utilizarea interfeei grafice pentru utilizator n locul uneltelor linie de comand. n introducerea acestei lucrri am aruncat o privire asupra unei aplicaii de birou, OpenOffice.org. Alte exemple sunt GIMP (putei s-l pornii cu gimp din linia de comand), programul de manipulare a imaginilor din GNU ( GNU Image Manipulation Program); xpdf pentru a vizualiza documentele n format PDF (Portable Document Format); GhostView (gv) pentru fiierele PostScript; Mozilla/Firefox, links (un navigator n modul text), Konqueror, Opera i multe altele pentru coninutul web; XMMS, Cdplay i altele pentru fiiere multimedia; AbiWord, Gnumeric, Koffice, etc. pentru tot felul de aplicaii pentru birou i tot aa. Exist mii de aplicaii pentru Linux; pentru a le meniona pe toate avem nevoie de cteva zile. 53

n schimb, ne vom concentra pe aplicaiile pentru consol sau aplicaiile pentru mediul text, pentru c ele formeaz baza tuturor celorlalte aplicaii. Aceste comenzi se aplic n mediul text acelor fiiere care conin text. Dac avei dubii legate de un fiier, verificai-l prin comanda file. S cunoatem deci uneltele text pe care le avem la dispoziie pentru a privi n coninutul fiierelor. Probleme legate de fonturi Uneltele text simplu, precum cele pe care le vom discuta acum, au adesea probleme cu fiierele care conin text simplu, din cauza codrii folosite pentru fonturile din aceste fiiere. Caracterele speciale, cum sunt caracterele alfabetice care sunt accentuate, caracterele chinezeti i alte caractere ale unor limbi ce folosesc un tipar diferit de codarea implicit en_US, sunt afiate incorect sau nlocuite cu gunoaie care nu pot fi citite. Aceste probleme sunt discutate n Seciunea 7.4.

3.3.4.2. less nseamn mai mult Fr ndoial c vei auzi pe cineva spunnd aceast propoziie mai devreme sau mai trziu dac lucrai ntr-un mediu UNIX. Puin istorie a UNIX-ului este necesar pentru a explica acest lucru:

La nceput a fost cat. Rezultatul comenzii era difuzat ntr-un mod incontrolabil. Apoi a fost pg, care poate fi gsit i acum pe unele UNIX-uri mai vechi. Aceast comand
afieaz textul la ieirea standard pagin cu pagin. Programul more a fost o versiune revizuit a lui pg. Aceast comand este nc disponibil pe orice sistem Linux. less este versiunea GNU a comenzii more i dispune de mai multe faciliti care permit evidenierea criteriilor de cutare, derularea, etc. Sintaxa este foarte simpl: less numele_fiierului (less name_file) Mai multe informaii sunt coninute de paginile Info. Despre pagere avei deja o idee deoarece ele sunt folosite pentru a vizualiza paginile de manuale.

3.3.4.3. Comenzile head i tail Aceste dou comenzi afieaz primele/ultimele n linii din fiierul respectiv. Pentru a afia ultimele 10 comenzi introduse, tastai:

head lucreaz asemntor. Comanda tail are o opiune folositoare prin care arat continuu ultimele n linii ale unui fiier care are un coninut n permanent schimbare. Aceast opiune -f este utilizat de administratorii de sisteme pentru a verifica fiierele jurnal. Mai multe informaii putei gsi n fiierele de documentaie ale sistemului.

54

3.3.5. Fiiere de legtur


3.3.5.1. Tipuri de legturi ntruct tim acum mai multe lucruri despre fiiere i reprezentarea acestora n sistemul de fiiere, nelegerea legturilor (sau scurtturilor) este floare la ureche. O legtur nu este altceva dect o cale prin care potrivim dou sau mai multe nume de fiiere n acelai set de date. Sunt dou ci prin care obinem acest lucru:

Legturi fizice: asociaz dou sau mai multe nume de fiiere aceluiai nod. Legturile fizice mpart
aceleai blocuri de date pe discul fix, n timp ce continu s se comporte ca fiiere independente. Exist un dezavantaj care sare n ochi: legturile fizice nu pot sri peste partiii, deoarece numrul asociat nodului este unic doar pentru partiia n cauz. Legturi simbolice - numite i soft links (sau, pe scurt, symlink): un fiier mic care este un indicator ctre alt fiier. O legtur simbolic conine traseul ctre fiierul int, n schimbul locului fizic de pe discul fix al fiierului int. Deoarece nodurile nu sunt folosite n aceast metod, legturile simbolice pot traversa partiii. Cele dou tipuri de legturi se comport la fel, dar nu sunt acelai lucru, dup cum putei observa din schema de mai jos:
Figura 3-2. Mecanismul legturilor fizice i simbolice

Trebuie s v spunem c dac tergei fiierul int al unei legturi simbolice, acea legtur nu mai este folositoare. Fiecare fiier obinuit este, n principiu, o legtur fizic. Legturile fizice nu pot traversa partiiile, deoarece ele au ca referin nodurile (inodes), iar numrul unui nod este unic doar n interiorul unei partiii date. Se poate argumenta c exist un al treilea tip de legtur, legtura utilizator-spaiu, care este similar unei scurtturi din sistemul MS Windows. Ele sunt fiiere care conin meta-date care pot fi interpretate doar de administratorul grafic de fiiere. Pentru kernel i consol, aceste fiiere sunt fiiere normale. Ele se pot termina cu sufixul (extensia) .desktop sau .lnk; exemple pot fi gsite n ~/ .gnomedesktop:

55

Iat un exemplu dintr-un sistem cu mediul grafic KDE:

Este uor s facei astfel de legturi, folosind facilitile puse la dispoziie de mediul grafic. Dac avei nevoie de ajutor, documentaia sistemului trebuie s fie prima dumneavoastr resurs. n seciunea urmtoare vom studia realizarea legturilor simbolice n stilul UNIX, folosind linia de comand.

3.3.5.2. Realizarea legturilor simbolice Legturile simbolice sunt interesante ndeosebi pentru utilizatorii nceptori: ele sunt uor de vzut i nu trebuie s v facei griji n privina partiiilor. Comanda prin care facem legturi este ln. Pentru a realiza o legtur simbolic se folosete opiunea -s: ln -s fiier_int nume_legtur (ln -s targetfile linkname) n exemplul de mai jos, utilizatorul freddy realizeaz o legtur simbolic ntr-un subdirector al directorului su personal cu alt parte a sistemului:

Legturile simbolice sunt fiiere foarte mici, pe cnd legturile fizice au aceeai mrime ca fiierul original. Aplicaiile legturilor simbolice sunt variate. Ele sunt folosite pentru a salva spaiu pe disc, pentru a face o copie a unui fiier n ideea de a satisface cerinele de instalare ale unui program care se ateapt ca un anume fiier s se afle ntr-un alt loc, sunt folosite pentru scripturile care trebuie s ruleze pe neateptate n medii noi i v pot scuti, n general, de mult munc. Un administrator de sistem poate decide s mute directorul personal al unui utilizator ntr-un loc nou, discul 2 (disk 2), de exemplu, dar, dac dorete ca totul s funcioneze ca nainte, cum ar fi fiierul /etc/passwd, cu un efort minim va realiza o legtur simbolic din directorul /home ctre noul loc /disk2/home.

3.4. Securitatea fiierelor


3.4.1. Drepturile de acces: prima linie de aprare a Linux-ului Modelul de securitate din Linux este bazat pe cel folosit n sistemele UNIX i este la fel de rigid (cteodat chiar mai rigid) ca modelul UNIX-ului, care este oricum destul de robust. ntr-un sistem Linux, orice fiier este deinut de un utilizator i un grup de utilizatori. Exist, de asemenea, o a treia categorie de utilizatori, aceia care nu sunt utilizatori deintori i nici nu aparin unui grup care deine un anume fiier. Pentru fiecare categorie de utilizatori pot fi acordate sau nu (interzise) permisiunile legate de citire, scriere 56

sau executare ale unui fiier. Ai folosit deja opiunea complet pentru a lista fiierele folosind comanda ls -l, dei din alte motive. Aceast comand afieaz permisiunile ataate fiierelor pentru aceste trei categorii de utilizatori; ele sunt indicate prin nou caractere care urmeaz dup primul caracter a crui funcie este aceea de indicator al tipului de fiier, la nceputul liniei care arat proprietile fiierului. Dup cum se poate observa din exemplul urmtor, primele trei caractere din seria de nou afieaz drepturile de acces ale utilizatorului care deine fiierul. Urmtoarele trei sunt pentru grupul cruia aparine utilizatorul, iar ultimele trei, pentru ceilali utilizatori. Permisiunile sunt listate ntotdeauna n aceeai ordine: citire, scriere i executare pentru utilizator, grupul cruia aparine utilizatorul i pentru ceilali. Iat cteva exemple:

Primul fiier este un fiier obinuit (proprietate artat de primul caracter, - ). Utilizatoarea cu numele marise sau utilizatorii care aparin grupului users pot citi i scrie (adic schimba/muta/terge) acest fiier, dar nu pot rula acest fiier ca program (a doua i a treia liniu). Toi ceilali utilizatori au doar permisiunea de a citi acest fiier, dar nu l pot scrie sau rula/executa (cea de-a patra i a cincea liniu). Cel de-al doilea exemplu este un fiier executabil, diferena: oricine poate rula acest program, dar trebuie s fii root, administrator, pentru a-l schimba. Paginile Info explic n ce mod comanda ls afieaz permisiunile n detaliu; consultai seciunea Ce informaii sunt listate. Pentru ca utilizarea comenzilor mpreun cu fiierele s fie ct mai facil, att permisiunile sau modurile, drepturile de acces, ct i grupurile de utilizatori, au un cod. Consultai tabelul de mai jos.
Tabelul 3-7. Codurile care arat drepturile de acces.

Cod 0 sau 4 sau r 2 sau w 1 sau x

neles Drepturile de acces asociate fiierului nu sunt acordate. Categoria de utilizatori definit are drepturi de citire. Categoria de utilizatori definit are drepturi de scriere. Categoria de utilizatori definit poate rula fiierul.

Tabelul 3-8. Codurile care arat grupurile de utilizatori.

Cod u g o

neles Permisiunile acordate utilizatorilor. Permisiunile acordate grupurilor. Permisiunile acordate celorlali.

Aceast schem este aplicat foarte strict, ceea ce permite un nivel destul de ridicat al securitii, chiar dac reeaua nu este securizat. Printre alte funcii, schema de securitate asigur accesul utilizatorilor la programe, pune la dispoziie anumite fiiere considerate necesare tuturor utilizatorilor i protejeaz date sensibile, cum ar fi directoarele personale i fiierele de configurare ale sistemului. Ar trebui s tii ntotdeauna numele dumneavoastr de utilizator. Dac nu, acesta poate fi afiat prin comanda id, care v arat i grupul iniial de care aparinei, eventual celelalte grupuri al cror membru suntei:

De asemenea, numele dumneavoastr de utilizator este stocat n variabila de mediu USER:

57

3.4.2. Uneltele
3.4.2.1. Comanda chmod O consecin normal a aplicrii unor permisiuni stricte n privina drepturilor asupra fiierelor, care poate fi considerat cteodat chiar neplcere, este aceea c drepturile de acces vor trebui schimbate din mai multe motive. Folosim comanda chmod pentru a face acest lucru, iar to chmod aproape c a devenit un verb acceptat al limbii engleze, nsemnnd schimbarea modului de acces asupra unui fiier. Comanda chmod poate fi folosit cu opiuni numerice sau alfanumerice, n funcie de care v plac mai mult. Exemplul de mai jos arat opiunile alfanumerice folosite pentru rezolvarea unei probleme cu care se confrunt utilizatorii nceptori:

Operanzii + i sunt folosii pentru a acorda sau interzice drepturile unui grup. Combinaiile separate prin virgule sunt permise. Paginile Info i man conin exemple foarte folositoare. V prezentm nc unul, care arat cum fiierul din exemplul anterior este transformat ntr-un fiier privat al utilizatorului asim:

Problema legat de mesajul de eroare care spune c nu ai permisiuni se datoreaz, n cele mai multe cazuri, aspectelor legate de drepturile de acces. Comentarii precum ieri a funcionat sau dac rulez acest fiier ca root, merge sunt datorate, n principal, permisiunilor greit alocate. Atunci cnd folosim chmod cu argumente numerice, valorile fiecrui drept de acces acordat trebuie aplicate la nivelul grupului. De aceea avem un numr format din trei cifre, care conine valorile simbolice ale setrilor pe care chmod trebuie s le aplice. Tabelul urmtor v arat cele mai ntlnite combinaii:
Tabelul 3-9. Protejarea fiierelor cu chmod

Comanda chmod 400 fiier chmod 500 director chmod 600 fiier chmod 644 fiier chmod 660 fiier chmod 700 fiier

nelesul comenzii Pentru protejarea unui fiier de o suprascriere accidental. Pentru a v opri pe dumneavoastr s tergei, redenumii sau s mutai accidental fiiere care aparin acestui director. Un fiier privat, care poate fi schimbat doar de utilizatorul care a introdus aceast comand. Un fiier care poate fi accesat public dar care poate fi schimbat doar de utilizatorul care a introdus aceast comand. Utilizatorii care aparin grupului tu pot schimba acest fiier pe cnd ceilali nu au nici un fel de drepturi asupra lui. Numai utilizatorul are drepturi depline, ceilali, indiferent de grupul aparintor, nu au nici un fel de drepturi.

58

chmod 755 director chmod 775 fiier chmod 777 fiier

Pentru fiierele care trebuie s fie citite sau rulate i de ctre ali utilizatori, dar scrise (schimbate) doar de utilizatorul care a introdus comanda descris. Modul standard de acordare a permisiunilor pentru un grup. Oricine poate face orice cu acest fiier.

3.4.2.2. Autentificarea ntr-un alt grup Atunci cnd tastai comanda id ntr-o linie de comand, primii o list a tuturor grupurilor crora este posibil s le aparinei, precedate de numele dumneavoastr de utilizator plus ID-ul i numele grupului plus ID-ul cu care suntei conectat n acel moment. ns, n multe sisteme Linux, poi fi activ doar ntr-un singur grup. Iniial, acest grup activ sau primar este acela care i este asociat de fiierul /etc/passwd. Cel de-al patrulea cmp al acestui fiier arat ID-ul grupului primar al utilizatorului, care este verificat prin fiierul /etc/group. Iat un exemplu:

Cel de-al patrulea cmp n linia din fiierul /etc/passwd conine valoarea 501, care reprezint grupul asim n exemplul de mai sus. Din /etc/group putem afla numele care corespunde acestui ID de grup. Acestui grup, i nu altuia, va aparine asim la autentificarea iniial n sistem. Schema de grup privat al utilizatorului Pentru a permite o flexibilitate mrit, cele mai multe sisteme Linux folosesc o aa numit schem de grup privat al utilizatorului, care asociaz fiecare utilizator cu grupul su primar. Acest grup este un grup care conine numai acest utilizator particular, de unde numele de grup privat. De regul, acest grup are acelai nume cu numele utilizatorului, ceea ce poate genera anumite confuzii. n afar de acest grup privat, utilizatorul asim poate aparine i grupurilor user i web. Deoarece aceste grupuri sunt grupuri secundare pentru utilizatorul nostru, el trebuie s foloseasc newgrp pentru a se autentifica n oricare din ele (folosii mai nti gpasswd pentru a stabili parole pentru aceste grupuri). n exemplul care urmeaz, asim dorete s creeze fiiere care s fie deinute de grupul web.

Acum, n momentul n care asim creeaz fiiere noi, acestea vor fi deinute de grupul web n loc s fie deinute de grupul asim:

Autentificarea ntr-un grup nou v ajut s prentmpinai folosirea comenzii chown (vezi Seciunea 3.4.2.4) sau chemarea administratorului de sistem pentru a schimba permisiunile asupra fiierelor pentru dumneavoastr. Consultai paginile man ale comenzii newgrp pentru mai multe informaii.

3.4.2.3. Masca fiierelor Cnd un fiier nou este salvat undeva, devine, n primul rnd, subiectul procedurilor standard de securitate. Fiiere care s nu aib alocate permisiuni nu exist n Linux. Permisiunile standard, care sunt 59

alocate implicit fiierelor noi, sunt determinate de masc (mask). Valoarea numeric a mtii poate fi afiat prin comanda umask:

n loc de a aduga valori simbolice fiecrui fiier, cum se ntmpl prin folosirea chmod, pentru a calcula permisiunile asociate unui nou fiier, ele sunt sczute din numrul care arat drepturile de acces posibile. n exemplul de mai sus, totui, observm afiate patru valori, n timp ce tim c exist doar trei categorii crora li se aplic permisiuni: utilizator, grup i alii. Primul zero este parte a atributelor speciale de configurare ale unui fiier, despre care vom discuta n Seciunea 3.4.2.4 i Seciunea 4.1.6. Se poate ntmpla ca acest prim zero s nu fie afiat de sistemul dumneavoastr atunci cnd introducei comanda umask i s vedei doar trei numere care arat masca implicit pentru crearea de fiiere. Orice sistem asemntor UNIX-ului are o funcie pentru crearea de noi fiiere, care este apelat ori de cte ori un utilizator folosete un program care creeaz fiiere noi, de exemplu cnd descrcai un fiier de pe Internet, cnd salvai un nou document text i aa mai departe. Aceast funcie creeaz att fiiere ct i directoare. La crearea unui director nou, aceast funcie va acorda permisiuni pentru citire, scriere i executare pentru toate categoriile de utilizatori. La crearea unui fiier nou, funcia va acorda permisiuni de citire i scriere pentru toi, dar nici o categorie de utilizatori nu va avea permisiunea de executare a acelui fiier. De aceea, nainte ca masca s fie aplicat, un director are permisiunea 777 sau rwxrwxrwx, un fiier obinuit 666 sau rw-rw-rw-. Valoarea umask este sczut din aceste permisiuni implicite dup ce funcia a creat un fiier sau un director nou. Astfel, un director va avea permisiunea implicit 775 i un fiier 664, dac valoarea mtii este (0)002. Acest lucru v este demonstrat n exemplul de mai jos:

Fiiere vs. directoare Un director va primi implicit mai multe permisiuni: el va avea ntotdeauna permisiuni de executare. Dac nu le-ar avea, directorul nu ar fi accesibil. ncercai acest lucru prin schimbarea permisiunilor unui director (chmodding) n 644! Dac v autentificai ntr-un alt grup folosind comanda newgrp, masca rmne neschimbat. De aceea, n cazul n care este stabilit ca 002, fiierele i directoarele pe care le creai n timp ce suntei n grupul nou vor fi accesibile i celorlali membri ai grupului; nu trebuie s folosii chmod. Utilizatorul root are, de obicei, permisiuni iniiale asociate fiierelor noi mai stricte:

Aceast valoare implicit este extins asupra ntregului sistem prin fiierele de configurare a resurselor consolei, de exemplu /etc/bashrc sau /etc/profile. O putei schimba din fiierul de configurare a consolei, vezi Capitolul 7, despre personalizarea mediului consolei.

3.4.2.4. Modificarea apartenenei la un utilizator sau la un grup Cnd un fiier figureaz ca fiind deinut de un utilizator sau un grup despre care credei c nu ar fi ndreptii s o fac, putei repara eroarea prin comenzile chown (schimb utilizatorul) sau chgrp (schimb grupul). Schimbarea deintorilor unui fiier este o sarcin des ntlnit de administratorii de sistem n mediile n care este nevoie ca fiierele s fie partajate de ctre grupuri de utilizatori. Ambele comenzi sunt flexibile, dup cum putei afla prin opiunea - -help. Comanda chown poate fi aplicat pentru a schimba deintorii unui fiier att la nivel de utilizator, 60

ct i la nivel de grup, pe cnd chgrp schimb doar grupul care deine acel fiier. Desigur, sistemul va verifica dac utilizatorul care introduce aceste schimbri are suficiente permisiuni asupra fiierului sau fiierelor asupra crora dorete s foloseasc aceste comenzi. Pentru a modifica doar utilizatorul deintor al unui fiier, folosii sintaxa de mai jos: chown utilizator_nou fiier Dac folosii dou puncte dup numele de utilizator (consultai paginile Info), va fi modificat i grupul deintor, n grupul primar al utilizatorului care introduce comanda. Pe sistemele Linux, fiecare utilizator are propriul su grup, astfel c aceast form a comenzii poate fi folosit pentru a crea fiiere private:

Dac jacky va dori s partajeze acest fiier, fr s ofere oricui permisiuni de scriere, poate folosi comanda chgrp:

Astfel, utilizatorii din grupul project vor putea s lucreze cu acest fiier. Utilizatorii care nu aparin grupului menionat nu au nici o treab cu acest fiier. Ambele comenzi, chown i chgrp, pot fi folosite pentru schimbarea deintorilor recursiv, prin opiunea -R. n acest caz, toate subdirectoarele i fiierele coninute ntr-un director vor aparine utilizatorului sau/i grupului dat. Restricii Pe cele mai multe sisteme, folosirea comenzilor chown i chgrp este restricionat n cazul utilizatorilor obinuii. Dac nu suntei administratorul sistemului, nu putei schimba utilizatorul sau grupul care deine un anumit fiier, din motive care in de securitatea sistemului. Dac utilizarea acestor comenzi nu ar fi restricionat, utilizatorii ru-intenionai pot modifica apartenena fiierelor la un utilizator sau la un grup i ar putea schimba mediul de lucru al utilizatorilor legitimi sau chiar distruge fiierele celorlali utilizatori.

3.4.2.5. Moduri speciale Pentru ca administratorii de sistem s nu fie deranjai tot timpul pentru a rezolva probleme legate de drepturile de acces, drepturi speciale pot fi alocate directoarelor n ntregime sau numai programelor. Exist trei moduri speciale:

Modul bit-ului lipicios (persistent sticky bit mode): dup executarea unei sarcini, comanda este
pstrat n memoria sistemului. La nceputuri, acest mod era folosit pe scar larg pentru a salva memorie: sarcinile mari erau ncrcate n memorie doar o singur dat. n zilele noastre, memoria nu mai este aa de scump i exist tehnici mai bune de gestionare a acesteia, aa c nu mai este folosit, pentru capacitile de optimizare coninute, asupra fiierelor singulare. Totui, aplicat asupra 61

unui ntreg director, acest mod are un alt neles. n acest caz, un utilizator poate schimba fiierele coninute de directorul n cauz doar dac este deintorul acelui fiier sau dac permisiunile asociate fiierului acord dreptul de a face modificri. Acest mod este utilizat pentru directoare ca / var/tmp, care trebuie s fie accesibile tuturor, dar n care un utilizator oarecare nu are voie s schimbe sau s tearg datele care aparin celorlali. Bit-ul lipicios este indicat printr-un t la sfritul liniei care arat permisiunile alocate unui fiier:

Modul este aplicat prin comanda chmod o+t directory. Originile istorice ale lui t se gsesc n facilitatea proprie UNIX-ului save Text acces. SUID (stabilii identitatea utilizatorului set user ID) i SGID (stabilii identitatea grupului set group ID): sunt reprezentate de caracterul s n linia care arat permisiunile alocate unui fiier. Cnd acest mod este aplicat unui fiier executabil, el va rula cu permisiunile utilizatorului i ale grupului, n loc de acelea ale utilizatorului care introduce comanda, oferind acces la resursele sistemului. Vom aprofunda aceste lucruri n Capitolul 4. SGID (stabilii identitatea grupului) asupra unui director: n acest caz aparte, fiierele create n directorul n cauz vor aparine aceluiai grup cruia aparine directorul care le conine (n timp ce comportamentul normal este ca fiierele noi s fie deinute de utilizatorii care le creeaz). Astfel, utilizatorii nu trebuie s se gndeasc la aparintorii unor fiiere care trebuie partajate:

Acesta este modul standard prin care se partajeaz fiierele n UNIX. Fiierele existente nu sunt modificate! Fiierele care sunt mutate ntr-un director SGID, dar care sunt create n alt parte, pstreaz utilizatorul i grupul deintor (aparintor) iniial. Acest comportament poate produce confuzii.

3.5. Sumar
n UNIX, ct i n Linux, toate entitile sunt prezentate sistemului, ntr-un fel sau altul, ca fiiere care au asociate anumite proprieti. Utilizarea traseelor (predefinite) permite utilizatorilor i administratorilor de sistem s gseasc, citeasc i s mnuiasc fiierele. Am fcut primii pai pe calea care ne va transforma n experi: am discutat structura adevrat i cea presupus a unui sistem de fiiere i v-ai format o imagine despre modelul de securitate a fiierelor din Linux, ct i despre alte cteva precauii de securitate care sunt aplicate implicit n orice sistem. Consola este cea mai important unealt prin care interacionm cu sistemul. n acest capitol ai nvat cteva comenzi pentru consol, pe care vi le prezentm din nou n tabelul de mai jos:

Comanda bash cat fiier(e) cd director chgrp grup_nou fiier(e) chmod mod fiier(e)

nelesul comenzii Consola GNU. Trimite coninutul unui fiier (unor fiiere) la ieirea standard. Schimb directorul. Schimb grupul deintor al unui fiier cu grupul nou. Modific permisiunile de acces asupra fiierului.

chown utilizator_nou [:[grup_nou]] fiier(e) Schimb utilizatorul i grupul deintor. 62

cp fiierul_surs fiierul_int df fiier echo ir export file nume_fiier find traseu expresie grep TIPAR fiier head fiier id info comand less fiier ln fiier_int nume_legtur locate criteriu_cutare ls fiier(e) man comand mkdir director_ nou mv fiier_vechi fiier_nou newgrp nume_grup pwd quota rm fiier rmdir fiier tail fiier umask [valoare] wc fiier which comand

Copiaz fiierul surs n fiierul int. Prezint spaiul utilizat pe partiia discului care conine fiierul n cauz. Afieaz irul de caractere introdus. Parte a comenzilor proprii consolei care anun sistemului variabilele i valorile acestora. Determin tipul unui fiier. Gsete fiierele n ierarhia sistemului de fiiere. Afieaz liniile din fiier care conin tiparul introdus. Trimite prima parte a unui fiier la ieirea standard. Afieaz numele reale i efective ale utilizatorilor i grupurilor. Afieaz documentaia disponibil pentru comanda n cauz. Este artat fiierul cu ajutorul unui vizualizator mai puternic. Realizeaz o legtur numit nume_legtur ctre un fiier_int Afieaz toate fiierele accesibile care au n nume elemente ale criteriului de cutare. Afieaz coninutul directorului. Afieaz manualele sistemului pentru comanda n cauz. Creeaz un director nou, gol. Redenumete sau mut un fiier. Autentificare ntr-un grup nou. Prezint directorul curent n care lucrai. Arat limitele alocate i gradul de utilizare a discului. terge fiiere i directoare. terge directoare. Afieaz ultima parte a unui fiier. Arat sau schimb modul n care sunt create fiiere noi. Numr liniile, cuvintele i caracterele dintr-un fiier. Arat traseul complet al comenzii n cauz.

Subliniem iari c ar trebui S CITII PAGINILE DE MANUALE. Documentaia este trusa dumneavoastr de prim-ajutor i ea conine rspunsuri la multe ntrebri. Lista de mai sus prezint comenzile de baz, cu care v vei ntlni n fiecare zi, dar acestea pot face mult mai multe lucruri dect cele pe care vi le-am artat aici. Citirea documentaiei v ofer posibilitatea de a controla totul aa cum dorii. n sfrit, dar avnd destul importan, o trecere n revist a permisiunilor asociate fiierelor:
Tabelul 3-11. Permisiunile asociate fiierelor

63

Cine\Ce

r(ead) citire 4 4

w(rite) scriere 2 2 2

(e)x(ecute) execut 1 1 1

u(ser) - utilizator 4 g(roup) - grup o(thers) - alii

3.6. Exerciii
Autentificai-v ca utilizator obinuit (neprivilegiat).

3.6.1. Partiii Afiai traseul dumneavoastr de cutare. Exportai o cale inexistent, de exemplu export PATH=blah i ncercai s listai coninutul
directorului. Care este traseul directorului dumneavoastr personal? Cum poate un alt utilizator s ajung la directorul dumneavoastr personal, folosind un traseu relativ? Mergei n directorul tmp din var. Mergei n directorul share din usr folosind o singur comand. Schimbai directorul cu doc. Care este directorul curent de lucru?

3.6.3. Turul sistemului


Mergei n directorul /proc. Pe ce procesor ruleaz sistemul dumneavoastr? Ct de mult RAM (memorie cu acces aleator) folosete acum? Ct spaiu alocat pentru swap avei? Ce drivere sunt ncrcate? De cte ore ruleaz sistemul? Ce sisteme de fiiere sunt recunoscute n sistem? Mutai-v n /etc/rc.d | /etc/init.d | /etc/runlevels i alegei directorul potrivit nivelului de executare (rulare) al sistemului dumneavoastr. Ce servicii ar trebui s ruleze n acest nivel? Ce servicii ruleaz n modul grafic i nu ruleaz n modul text? Mutai-v n /etc. Ct timp pstreaz sistemul fiierele jurnal n care sunt monitorizate autentificrile utilizatorilor? Ce versiune folosii? Exist alte notificri sau mesaje ale zilei? Ci utilizatori exist pe sistemul dumneavoastr? Nu i numrai, lsai calculatorul s fac acest lucru n locul dumneavoastr. Cte grupuri? Unde este pstrat informaia referitoare la zona de timp? Sunt instalate n calculator informaii de tipul CUM S? Mutai-v n usr/share/doc. Numii trei programe care sunt incluse n pachetul GNU coreutils. Ce versiune a consolei (bash) este instalat n sistemul dumneavoastr?

64

3.6.4. Mnuirea fiierelor


Creai un director nou n directorul dumneavoastr personal. Putei muta acest director pe acelai nivel cu directorul personal? Copiai toate fiierele XPM din /usr/share/pixmaps n directorul cel nou. Ce nseamn XPM? Afiai toate fiierele n ordine alfabetic invers. Mutai-v n directorul personal. Creai un director nou i copiai toate fiierele din directorul /etc n acesta. Asigurai-v c ai copiat i toate fiierele i directoarele care sunt subdirectoare ale lui /etc! (copiere recursiv) Mergei n directorul nou i creai un director pentru fiierele care ncep cu liter mare i un altul pentru fiierele care ncep cu o liter mic. Mutai toate fiierele n directorul potrivit. Folosii ct mai puine comenzi posibil. tergei fiierele care v-au rmas. tergei tot directorul i coninutul acestuia printr-o singur comand. Folosii grep pentru a afla care script pornete serviciul fonturi (Font Server) n nivelul de rulare grafic. Unde se afl programul serviciului sendmail? Creai o legtur simbolic n directorul dumneavoastr personal ctre /var/tmp. Verificai i dac funcioneaz. Creai alt legtur simbolic n directorul personal ctre legtura existent. Verificai dac funcioneaz. tergei prima legtur i listai coninutul directorului. Ce s-a ntmplat cu cea de-a doua legtur?

3.6.5. Permisiunile asociate fiierelor


Putei schimba permisiunile asociate directorului personal /home? Care este modul implicit pentru crearea fiierelor n cazul dumneavoastr? Schimbai deintorii directorului /etc n utilizatorul i grupul asociate dumneavoastr. Schimbai permisiunile asociate fiierului ~/.bashrc n aa fel nct numai dumneavoastr i grupul dumneavoastr primar s l poat citi. Introducei comanda locate root. Observai ceva deosebit? Creai o legtur simbolic care este ndreptat ctre /root. Poate fi folosit?

65

Capitolul 4. Procesele
Alturi de fiiere, procesele sunt cele mai importante lucruri ntr-un sistem UNIX/Linux. n acest capitol, vom prezenta ndeaproape aceste procese. Vom studia mai multe lucruri despre:

Procesarea multi-utilizatori i multi-sarcini Tipuri de procese Controlarea proceselor cu semnale diferite Atributele proceselor Ciclul de via al unui proces Pornirea i oprirea sistemului SUID i SGID Viteza sistemului i rspunsul Procese programate Sistemul cron Vixie Cum s obinei cele mai bune performane de la sistemul dumneavoastr

4.1. Anatomia proceselor


4.1.1. Multi-utilizatori i multi-sarcini (multi-user i multi-tasking)
Pentru c acum v-ai obinuit cu mediul de lucru i suntei capabili s comunicai ct de ct cu sistemul, a venit vremea s studiem mai n detaliu procesele pe care le putem porni. Nu toate comenzile pornesc un singur proces. Anumite comenzi iniiaz o serie de procese, cum este mozilla; altele, precum ls, sunt executate ca o singur comand. Mai mult, Linux-ul este bazat pe UNIX, n care comportamentul obinuit este acela prin care mai muli utilizatori lanseaz comenzi diferite, n acelai timp, pe acelai sistem. Devine evident faptul c a trebuit s fie luate msuri pentru ca procesorul (CPU) s poat gestiona toate procesele i s fie asigurat o cale prin care utilizatorii s dispun de aceste procese. n anumite cazuri, procesele trebuie s ruleze chiar i atunci cnd utilizatorul care le-a iniiat se deautentific. De asemenea, utilizatorii au nevoie de mijloace prin care s reactiveze procesele ntrerupte. Vom explica structura proceselor din Linux n seciunile urmtoare.

4.1.2. Tipuri de procese


4.1.2.1. Procese interactive Procesele interactive sunt iniializate i controlate printr-o sesiune terminal. Cu alte cuvinte, trebuie ca cineva s fie conectat la sistem pentru a porni aceste procese; ele nu pot porni automat ca parte a funciilor sistemului. Aceste procese pot rula n prim-plan, ocupnd terminalul care a pornit programul i nu putei porni alte procese att timp ct procesele existente n prim-plan ruleaz. Alternativ, ele pot rula n fundal, astfel nct consola n care ai pornit programul poate accepta comenzi noi n timp ce programul este n desfurare. Pn acum, ne-am concentrat n principal pe programele care ruleaz n prim-plan timpul necesar pentru execuia lor a fost prea scurt pentru a fi observate, dar vizualizarea unui fiier cu ajutorul comenzii less este un bun exemplu de comand care ocup o sesiune a consolei. n acest caz, programul activat ateapt ca dumneavoastr s facei ceva. Programul este conectat la terminal din momentul n care a fost pornit i acest terminal este folositor numai dac introducei comenzi pe care programul le poate nelege. Alte comenzi vor returna erori sau sistemul nu va da nici un rspuns. ns n cazul n care un proces ruleaz n fundal, utilizatorul poate face alte lucruri n consola din care a pornit acel program, chiar dac programul este n desfurare. Consola dispune de o funcie numit controlul sarcinilor (job control), prin care gestioneaz cu uurin mai multe procese. Funcia conine un mecanism care comut procesele din prim-plan n fundal. Prin acest sistem, programele pot fi pornite n fundal imediat.

66

Rularea unui proces n fundal este folositoare doar programelor care nu folosesc instruciuni de la utilizator (prin intermediul consolei). Plasarea unei sarcini n fundal se face, ndeosebi, atunci cnd executarea acelei sarcini necesit o perioad de timp mai mare. Pentru a elibera un terminal dup introducerea unei comenzi, adugai dup comand caracterul & . n exemplul urmtor, n care se lucreaz n mediul grafic, este deschis un alt terminal din interiorul precedentului:

Toate facilitile funciei de control a sarcinilor sunt explicate n detaliu n paginile Info ale consolei (bash), aa c doar cele mai folosite aplicaii de control ale sarcinilor sunt listate aici:
Tabelul 4-1. Controlul proceselor

(partea de) comand comand_obinuit comand & jobs Ctrl+Z Ctrl+C %n bg fg kill

Semnificaie Ruleaz aceast comand n prim-plan. Ruleaz aceast comand n fundal (elibereaz terminalul). Arat comenzile care sunt executate n fundal. Suspend (dar nu ntrerupe, nu termin) un proces care ruleaz n prim-plan. ntrerupe (termin i stopeaz) un proces care ruleaz n prim-plan. Fiecare proces care ruleaz n fundal primete un numr prin care poate fi identificat. Folosind expresia % putei s apelai acea sarcin, precum n fg %2. Reactiveaz un program care a fost suspendat n fundal. Trece o sarcin din fundal n prim-plan. Termin procesul (consultai i seciunea Shell Builtin Commands - comenzile proprii consolei din paginile Info despre bash - console, terminale).

Mai multe exemple vei gsi n exerciiile care vor urma. Cele mai multe sisteme UNIX au posibilitatea de a rula programul screen, care se dovedete folositor n cazul n care dorii s introducei o comand n alt consol. Atunci cnd apelai acest program, este iniiat o alt sesiune a terminalului, mpreun cu eventuala comand specificat, pe care le putei detaa. n aceast sesiune putei face orice dorii. Toate programele i operaiile vor rula independent de consola primar. Putei detaa sesiunea n timp ce programele pe care le-ai pornit vor continua s ruleze, chiar dac v vei deautentifica din consola originar, pentru ca, oricnd dorii, s restaurai acel screen. Acest program a fost dezvoltat mai demult, cnd nu se inventaser consolele virtuale i totul trebuia fcut ntr-un singur terminal text. Pentru cei dependeni, a fost pstrat pe sistemele Linux, dei exist console virtuale de aproape zece ani.

4.1.2.2. Procese automate Procesele automate (sau periodice, intermitente, continue/discontinue - batch) nu sunt executate n terminal. Acestea sunt sarcini care pot fi gestionate ntr-o zon de ateptare, de unde vor fi lansate n execuie pe criteriul primul venit - primul plecat (FIFO first-in, first-out basis). Astfel de sarcini pot fi executate lund n considerare unul din urmtoarele dou criterii:

La un moment de timp bine determinat: se face prin folosirea comenzii at, pe care o vom discuta n
partea a doua a acestui capitol.

n momentele n care sistemul este mai puin solicitat, astfel nct poate prelua i alte sarcini,
alegere care se face prin comanda batch. Implicit, sarcinile sunt aranjate ntr-o coad de ateptare pn ce sistemul coboar la un nivel de ocupare mai mic de 0,8. n reelele mari, administratorul de sistem prefer mai degrab acest mod, pentru c sistemele trebuie s prelucreze mari cantiti de date sau pentru a se evita ca sarcini care solicit multe resurse de sistem s fie executate de un sistem deja ncrcat. Procesarea bach este folosit i pentru optimizarea performanelor sistemului.

67

4.1.2.3. Daemons (Procese daemon) Daemon-ii sunt procese care ruleaz nencetat. De cele mai multe ori, ele sunt iniializate la pornirea sistemului i apoi ateapt n fundal pn ce sunt solicitate. Un exemplu tipic este procesul de reea xinetd, care este pornit aproape la orice procedur de boot. Dup ce sistemul este pornit, acest proces de reea ateapt pn ce un program client, precum un client FTP, solicit conectarea.

4.1.3. Atributele proceselor


Un proces are o serie de caracteristici, care pot fi vzute cu ajutorul comenzii ps:

ID-ul procesului sau PID: un numr unic de identificare folosit pentru apelarea procesului. ID-ul procesului printe sau PPID: numrul procesului (PID) care a pornit procesul n cauz. Numrul de amiciie: gradul de atitudine prietenoas al acestui proces fa de celelalte procese (a nu
se confunda cu prioritatea procesului, care este calculat pe baza acestui numr de amiciie i pe utilizarea recent a procesorului). Terminal sau TTY: terminalul la care este conectat procesul. Numele de utilizator al utilizatorului real i efectiv (RUID i EUID): deintorul procesului. Deintorul real este utilizatorul care a introdus comanda, deintorul efectiv fiind cel care determin accesul la resursele sistemului. RUID i EUID sunt, de regul, aceleai, iar procesul are drepturile de acces pe care le are utilizatorul care l-a pornit. Exemplul de mai jos clarific aceste aspecte: navigatorul mozilla din /usr/bin/ este deinut de root:

Cnd utilizatorul theo pornete acest program, procesul n sine i toate procesele care sunt pornite de procesul iniial vor fi deinute de utilizatorul theo i nu de administratorul sistemului. Cnd mozilla solicit accesul la anumite fiiere, el va fi determinat pe baza permisiunilor pe care le are theo i nu pe cele ale administratorului de sistem, root. Grupul real i efectiv care deine procesul (RGID i EIGID): Grupul real care deine procesul este grupul primar al utilizatorului care a pornit procesul. Grupul efectiv este, n aproape toate cazurile, acelai, exceptnd pe cel n care modul de acces SGID a fost aplicat unui fiier.

4.1.4. Afiarea informaiilor despre procese


Comanda ps este una din uneltele cu care afiai procesele. Aceast comand are cteva opiuni care pot fi combinate pentru afiarea diverselor atribute ale proceselor. Dac nu specificai nici o opiune, ps va oferi doar informaii despre consola curent i procesele existente:

ntruct nu ofer informaii suficiente n general, cel puin cteva sute de procese rulnd pe calculatorul dumneavoastr vei selecta procesele care v intereseaz din lista cu toate procesele, folosind comanda grep ntr-o conexiune pipe, consultai Seciunea 5.1.2.1, precum n linia pe care o prezentm mai jos, comand care va selecta i afia toate procesele deinute de un anume utilizator:

68

ps -ef | grep bash nume_de_utilizator Acest exemplu arat toate procesele cu numele bash, consola cea mai ntlnit pe sistemele Linux:

n aceste cazuri, comanda grep, care caut linii coninnd irul bash, este afiat adesea pe sistemele ale cror resurse nu sunt solicitate. Dac nu vrei ca acest lucru s se ntmple, folosii comanda pgrep. Consolele bash reprezint un caz special: lista proceselor arat, de asemenea, care dintre ele sunt autentificate n consol (pentru care trebuie s furnizai numele de utilizator i parola, precum autentificarea n modul text sau autentificarea la distan, diferite de cele care nu sunt autentificate n consol, pornite, de exemplu, prin apsarea pictogramei ferestrei terminal). Procesele autentificate n consol sunt precedate de caracterul - . |? Vom explica operandul | n capitolul care urmeaz, consultai Capitolul 5. Mai multe informaii pot fi obinute, ca de obicei, pe cile obinuite: ps --help sau man ps. Comanda GNU ps poate lucra cu mai multe stiluri de formate ale opiunilor. Exemplele urmtoare nu conin erori. Trebuie s inei minte c ps arat doar procesele active la momentul n care ai introdus aceast comand, adic este o fotografie a proceselor la momentul respectiv. Programul top afieaz informaii mai precise, actualiznd informaiile obinute cu ps (cu multe opiuni) la fiecare 5 secunde, genernd o list nou cu procesele care ncarc substanial sistemul, integrnd n acelai timp mai multe informaii despre utilizarea memoriei swap i despre starea procesorului (CPU), din fiierul proc:

69

Prima linie din listarea generat de comanda top conine aceleai informaii pe care le putei obine prin comanda uptime:

Datele pentru aceste programe sunt stocate laolalt cu altele n /var/run/utmp (informaii despre utilizatorii conectai) i n sistemul de fiiere virtual /proc, de exemplu /proc/loadavg (informaii despre gradul de solicitare a sistemului). Exist tot felul de aplicaii grafice care arat aceste date, precum Gnome System Monitor i lavaps. De la Fresh Meat i SourceForge vei putea instala zeci de aplicaii care centralizeaz aceste informaii laolalt cu alte date specifice serverelor i jurnale de la mai multe servere pe un singur server (web), ceea ce v permite monitorizarea ntregii infrastructuri IT de la o singur staie de lucru. Relaiile dintre procese pot fi afiate prin comanda pstree:

70

Opiunile -u i -a ofer informaii adiionale. Pentru mai multe opiuni i ceea ce fac ele, consultai paginile Info. n seciunea urmtoare vei afla cum un proces poate crea altul.

4.1.5. Viaa i moartea unui proces


4.1.5.1. Crearea unui proces Un proces nou este creat deoarece un proces existent face o copie exact a lui nsui. Acest proces copil dispune de acelai mediu ca printele su, numai numrul ID este diferit. Aceast procedur este numit forking (bifurcaie). Dup procesul de bifurcaie, spaiul de adresare al procesului copil este suprascris cu datele noului proces. Acest lucru este realizat printr-o apelare exec ctre sistem. Mecanismul fork-and-exec schimb aadar o comand veche cu una nou, n timp ce mediul n care este executat noul program rmne neschimbat, incluznd configuraia dispozitivelor de intrare i ieire, variabilele de mediu i prioritile. Acest mecanism este folosit pentru crearea tuturor proceselor UNIX, aplicndu-se astfel i sistemelor de operare Linux. Chiar primul proces, init, care are numrul ID 1, este bifurcat pe parcursul procedurilor de pornire (boot) n aa-numita procedur bootstrapping. Schema urmtoare ilustreaz mecanismul fork-and-exec. ID-ul proceselor sunt schimbate dup procedura de bifurcaie:
Figura 4-1. Mecanismul fork-and-exec

71

n cteva cazuri, init devine printe al unui proces chiar dac acest proces copil nu este pornit de init, dup cum se vede n exemplul pstree. Multe programe, de exemplu, transform (daemonize) procesele pornite de ele (procesele-copil) n servicii, pentru ca ele s poat rula i dup ce procesul-printe se oprete sau este oprit. Administratorul de ferestre este exemplul tipic; el pornete un proces xterm care genereaz o consol n care putei introduce comenzi. Apoi administratorul de ferestre respinge orice responsabilitate ulterioar i paseaz procesul copil ctre init. Prin folosirea acestui mecanism, administratorii de ferestre pot fi schimbai fr ntreruperea aplicaiilor n desfurare. Cteodat lucrurile pot merge prost, chiar n familiile bune. n cazuri extrem de rare, un proces poate fi stopat nainte ca printele care l-a pornit s atepte completarea ciclului normal. Un astfel de proces terminat anormal, nengropat, se numete zombie.

4.1.5.2. Terminarea proceselor Cnd un proces se termin normal (nu este omort, stopat killed sau ntrerupt pe neateptate), programul returneaz printelui semnalul de ieire exit status. Acest semnal este un numr returnat de program care conine informaii despre execuia sarcinii. Sistemul prin care se returneaz informaii despre execuia sarcinilor are originile n limbajul de programare C, n care a fost scris UNIX-ul. Codurile de ieire returnate pot fi interpretate de procesele printe sau n scripturi. Valorile acestor coduri sunt specifice fiecrui program. Aceste informaii pot fi gsite de obicei n paginile man ale programelor n cauz, programul grep returnnd, de exemplu, -1 dac nu este gsit nici o potrivire, pe baza cruia este afiat linia care conine masajul No files found - Nu am gsit nici un fiier. Un alt exemplu este cel al comenzii proprii consolei Bash, true, care nu face nimic n afar de returnarea semnalului de ieire 0, al crui neles este ncheierea cu succes.

4.1.5.3. Semnale Procesele se termin deoarece ele primesc un semnal. Sunt multe semnale pe care le putei trimite unui proces. Folosii comanda kill pentru a trimite semnale proceselor. Comanda kill -l arat o list care conine mai multe semnale. Cele mai multe sunt folosite de sistem pentru uzul intern sau de programatori atunci cnd scriu coduri. Ca utilizator, vei avea nevoie de urmtoarele semnale:
Tabelul 4-2. Semnale comune

Numele semnalului SIGTERM SIGINT SIGKILL SIGHUP

Numrul semnalului 15 2 9 1

nelesul semnalului Termin procesele ntr-o manier ordonat. ntrerupe procesele. Un proces poate s ignore acest semnal. ntrerupe procesele. Un proces poate s ignore acest semnal. Pentru servicii: recitete fiierele de configurare.

Putei citi mai multe despre aciunile implicite care sunt aplicate unui proces prin trimiterea unui semnal n man 7 signal.

4.1.6. SUID i SGID


Dup cum am promis n capitolul anterior, vom discuta modurile speciale SUID i SGID mai n detaliu. Aceste moduri exist pentru a oferi utilizatorului obinuit posibilitatea de a executa sarcini pe care, n mod normal, nu ar putea s le ndeplineasc din cauza sistemului de permisiuni asociate fiierelor pe sistemele asemntoare cu UNIX-ul. n situaia ideal, modurile speciale sunt utilizate ct mai rar, ntruct ele includ riscuri legate de securitatea sistemului. Dezvoltatorii Linux au ncercat s le evite pe ct de mult posibil. Versiunea pentru Linux a comenzii ps, de exemplu, folosete informaia stocat n fiierul /proc, care este accesibil tuturor, prin aceasta evitndu-se expunerea datelor confideniale i a resurselor. nainte de asta i nc valabil pentru sistemele UNIX mai vechi, programul ps avea acces la fiiere precum /dev/mem i /dev/kmem, dezavantajul major fiind legat de permisiunile asociate lor i deintorii acestor fiiere, dup cum se poate observa din exemplul de mai jos:

72

n cazul versiunilor mai vechi ale comenzii ps, nu era posibil pornirea programului ca utilizator obinuit, dect dac se aplicau moduri speciale. nelegem faptul c este bine s evitm aplicarea modurilor speciale dar, cteodat, apare necesitatea aplicrii unui SUID. Un exemplu bun este mecanismul schimbrii parolelor. Desigur c utilizatorii vor dori s fac ei nii acest lucru, n locul administratorului de sistem. Dup cum tim, numele de utilizatori i parolele sunt listate n fiierul /etc/passwd, care are asociate urmtoarele permisiuni i deintori:

Totui, utilizatorii trebuie s poat schimba informaiile referitoare la propriul cont, coninute de acest fiier. Putei obine acest lucru prin aplicarea unor permisiuni speciale programului passwd:

Atunci cnd este apelat, programul passwd va rula folosind permisiunile asociate contului de root, prin aceasta asigurndu-se utilizatorului obinuit posibilitatea de a edita fiierul care conine parolele, care este deinut de administratorul de sistem. Modul SGID al unui fiier nu apare la fel de des ca modul SUID, ntruct SGID implic adesea crearea unor grupuri noi. n anumite cazuri, totui, trebuie s trecem prin aceste inconveniente n ideea de a pune la dispoziie o soluie elegant (nu v facei prea multe griji grupurile necesare sunt create pe parcursul instalrii). Este cazul programelor write i wall, care sunt folosite pentru a trimite mesaje utilizatorilor altor terminale (ttys). Comanda write scrie un mesaj pentru un singur utilizator, n timp ce wall scrie tuturor utilizatorilor conectai. Trimiterea de text ctre terminalul altui utilizator sau ctre alt interfa grafic nu este permis n mod normal. Pentru a trece de aceast problem, a fost creat un grup care deine toate dispozitivele terminal. Atunci cnd se aloc permisiuni SGID comenzilor write i wall, ele vor rula folosind drepturile de acces care sunt asociate acestui grup care le deine, n exemplul nostru fiind vorba despre tty. Deoarece acest grup are drepturi de scriere asupra terminalului de destinaie, un utilizator care nu are nici o permisiune asociat cu terminalul de destinaie, poate trimite mesaje ctre acesta. n exemplul de mai jos, utilizatorul joe afl n primul rnd la care terminal este conectat corespondenta sa, folosind comanda who. Dup aceasta, i trimite un mesaj folosind comanda write. Sunt ilustrate n imagine i drepturile de acces asociate programului write, ct i cele asociate terminalului ocupat de utilizatoarea care va primi mesajul lui joe: este clar c nimeni n afar de utilizatorul deintor nu are nici un fel de permisiune asupra dispozitivului, cu excepia grupului deintor, care are drepturi de scriere.

73

Utilizatoarea jenny primete pe ecranul ei urmtoarele:

Dup primirea unui mesaj, terminalul poate fi eliberat prin combinaia de taste Ctrl+L. Pentru a nu primi deloc mesaje (cu excepia celor din partea administratorului de sistem), folosii comanda mesg. Pentru a consulta lista cu utilizatorii care accept mesaje, folosii who -w. Toate aspectele fiecrei comenzi sunt explicate n amnunt n paginile Info ale comenzii respective. Numele grupurilor pot fi altele Schema grupurilor este specific fiecrei distribuii. Alte distribuii pot folosi alte nume sau alte soluii.

4.2. Procesul de pornire (boot), iniiere (init) i oprire (shut-down)


4.2.1. Introducere
Un aspect aparte al Linux-ului este metoda sa deschis prin care pornete i oprete sistemul de operare. La pornire sunt ncrcate programe specifice, folosind configuraia particular a acestora, permindu-v s schimbai aceast configuraie pentru a controla procesul de pornire, nchiderea fiind fcut, de asemenea, ntr-o manier organizat i elegant. n afar de aspectele legate de controlul proceselor de pornire i oprire, natura Linux-ului face mai uoar determinarea exact a surselor celor mai multor probleme asociate cu pornirea sau oprirea sistemului. O nelegere de baz a acestor procese este benefic pentru oricine care utilizeaz un sistem Linux. Multe sisteme Linux folosesc lilo, Linux Loader (ncrctorul de sisteme al Linux-ului), pentru pornirea sistemului. Noi vom discuta doar despre GRUB, totui, care este mai uor de folosit i mai flexibil (n ultimul timp, tendina de a folosi GRUB-ul ctig teren n cazul majoritii distribuiilor de Linux n.t.). Dac avei nevoie de informaii despre lilo, consultai paginile man i HOWTO-urile. Ambele sisteme pot gestiona instalri dual-boot (mai multe sisteme de operare pe acelai calculatorn.t.); ne vom referi la HOWTO-uri pe marginea acestui subiect pentru exemple practice i informaii de baz.

4.2.2. Procesul de pornire (boot)


Cnd este pornit un calculator x86, procesorul caut n zona de la sfritul memoriei de sistem BIOS-ul (Basic Input/Output System) i l ruleaz. Programul Bios este scris n memoria permanent i este mereu gata de utilizare. BIOS-ul asigur interfaa primar cu dispozitivele periferice i controleaz primul pas al procesului de pornire. BIOS-ul testeaz sistemul, caut i verific perifericele i apoi caut un disc pentru a-l folosi la pornirea sistemului. De regul caut prezena mediilor bootabile n unitatea de dischet (sau n unitatea CDROM la sistemele mai noi), dup care caut pe discul fix. Ordinea dispozitivelor folosite la pornire este controlat, de obicei, de un submeniu al BIOS-ului. Odat instalat Linux-ul pe discul fix al sistemului, BIOS-ul caut Master Boot Record (MBR-ul) care se afl n primul sector al primului disc fix, l ncarc n memorie i paseaz controlul procesului acestuia din urm. MBR-ul conine instruciuni despre ncrcarea GRUB-ului (sau a LILO), folosind un sistem de operare prestabilit. MBR-ul ncarc apoi ncrctorul de sisteme, care va prelua procesul (dac ncrctorul de sisteme este instalat n MBR). n configuraia implicit din distribuia Linux RedHat ( i Ubuntun.t.), GRUB-ul folosete setrile din MBR pentru afiarea opiunilor de pornire ntr-un meniu. Cnd GRUB-ul a primit instruciunile corecte de pornire ale sistemului de operare ales, ori din linia de comand, ori dintr-un fiier de configurare, gsete fiierele necesare pentru pornire i pred controlul mainii acelui sistem de operare. 74

4.2.3. Facilitile GRUB-ului


Aceast metod de pornire se numete ncrcare direct (direct loading) din cauz c instruciunile sunt folosite pentru ncrcarea nemijlocit a sistemului de operare, fr cod intermediar ntre ncrctorul de sisteme i fiierele principale ale sistemului de operare (cum ar fi kernelul). Procesul de pornire existent n cazul altor sisteme de operare difer foarte puin de cel pe care vi l-am prezentat mai sus. De exemplu, sistemele de operare de la Microsoft, DOS i Windows, rescriu complet MBR-ul la instalare, fr a ncorpora nimic din configuraia existent pe MBR. Acest lucru distruge orice informaie stocat n MBR de alte sisteme de operare, precum Linux. Sistemele de operare Microsoft, ca i alte sisteme proprietare, sunt ncrcate folosind o metod de ncrcare n lan. Prin aceast metod, MBR-ul intete primul sector al partiiei pe care se afl sistemul de operare, unde gsete fiierele necesare pentru pornirea sistemului. GRUB-ul poate gestiona ambele metode de pornire, permindu-v s folosii aproape orice sistem de operare, cele mai folosite sisteme de fiiere i aproape orice disc fix recunoscut de BIOS. GRUB-ul are multe alte caracteristici; cele mai importante sunt:

GRUB-ul asigur un mediu pre-sistem de operare, bazat pe linia de comand, pentru mainile
x86, care permite flexibilitate maxim n procesul de ncrcare al sistemelor de operare, avnd posibilitatea de a folosi anumite opiuni i de a aduna informaii despre sistem. GRUB-ul poate gestiona modul Logical Block Addressing (LBA), care este necesar pentru accesarea multor discuri fixe IDE i a tuturor discurilor fixe SCSI. nainte de LBA, discurile fixe aveau o limit de 1024 de cilindri, impus de faptul c peste aceasta BIOS-ul nu putea gsi un fiier. Fiierul de configurare al GRUB-ului este citit de pe disc de fiecare dat cnd sistemul este pornit, prentmpinnd rescrierea MBR-ului de fiecare dat cnd modificai opiunile de pornire.

Descrierea complet a GRUB-ului poate fi gsit prin introducerea comenzii info grub sau pe saitul GRUB. Proiectul de documentare pentru Linux are un Mini-CUM S realizai o instalare dual-boot cu ajutorul GRUB-ului.

4.2.4. Iniierea (Init)


Kernelul, odat ncrcat, caut fiierul init din sbin i l execut. Cnd init pornete, el devine printele sau bunicul tuturor proceselor care pornesc automat pe sistemul dumneavoastr Linux. Primul lucru pe care l face init este s citeasc fiierul de iniializare, /etc/inittab. Acest fiier de iniializare d instruciuni programului init s citeasc un script care conine o configuraie iniial a mediului, prin care sunt stabilite traseele, se pornete memoria swap, se verific sistemul de fiiere, i aa mai departe. Pe scurt, acest pas gestioneaz tot ceea ce trebuie fcut la iniializarea sistemului: potrivirea ceasului, pornirea porturilor seriale i altele. Apoi init continu s citeasc fiierul /etc/inittab, care descrie cum trebuie setat sistemul n fiecare nivel de rulare i stabilete nivelul de rulare (default runlevel) implicit. Nivelul de rulare este configuraia unui proces. Toate sistemele asemntoare UNIX-ului pot rula n diverse configuraii ale proceselor, cum ar fi modul single user (un singur utilizator), care este cunoscut ca runlevel 1 sau runlevel S (ori s). n acest mod, doar administratorul de sistem se poate autentifica la sistem. Este folosit la ducerea la bun sfrit a sarcinilor de ntreinere, pentru a elimina alterarea datelor sistemului sau ale utilizatorilor. Normal, n acest mod nu se permite accesul utilizatorilor obinuii, aa c serviciile disponibile acestora sunt dezactivate. Alt nivel de rulare este cel de repornire (reboot runlevel) sau runlevel 6, care oprete conform procedurilor corecte toate serviciile care ruleaz i restarteaz sistemul. Folosii comanda who pentru a afia nivelul de rulare curent:

Mai multe despre nivelurile de rulare vom vorbi n seciunea urmtoare, Seciunea 4.2.5. Dup ce determin nivelul de rulare implicit al sistemului dumneavoastr, init pornete toate procesele necesare sistemului, care ruleaz n fundal, prin citirea directorului rc potrivit nivelului de rulare desemnat. init ruleaz fiecare script de oprire (numele fiierelor acestora ncep cu un K) cu un parametru de stopare. Apoi ruleaz toate scripturile de pornire (numele acestora ncep cu un S) n directorul potrivit 75

nivelului de rulare, astfel nct toate serviciile i aplicaiile sunt pornite corect. Putei executa aceleai scripturi manual dup ce sistemul termin procedurile de pornire printr-o comand ca /etc/init.d/httpd stop sau service httpd stop, autentificai ca root, comand referitoare, n acest caz, la oprirea serverului web. Cazuri speciale La pornirea sistemului, sunt executate, n mod normal, scripturile aflate n rc2.d i rc3.d. n acest caz, nu este oprit nici un serviciu (cel puin, nu permanent). Exist doar servicii care sunt pornite. Nici unul din scripturile care pornesc i opresc de fapt serviciile nu se afl n /etc/rc<x>.d. Mai degrab toate fiierele din directorul /etc/rc<x>.d sunt legturi simbolice care intesc ctre scripturile propriu-zise, aflate n /etc/init.d. O legtur simbolic nu este altceva dect un fiier care intete alt fiier i este folosit n acest caz deoarece poate fi creat i tears fr a modifica scriptul n sine care oprete sau pornete un serviciu. Legturile simbolice ctre scripturi diferite sunt numerotate ntr-o ordine prestabilit, pentru ca acestea s fie pornite n acea ordine. Putei schimba ordinea n care sunt pornite sau oprite serviciile prin redenumirea legturii simbolice care se refer la scriptul care controleaz serviciul. Putei folosi acelai numr de mai multe ori dac dorii ca un anume serviciu s fie pornit sau oprit chiar naintea sau dup alt serviciu, precum n exemplul de mai jos, care listeaz coninutul directorului /etc/rc5.d, n care cron i xfs sunt pornite amndou de o legtur al crei nume ncepe cu S90. n acest caz, scripturile sunt pornite dup ordinea alfabetic.

Dup ce init a trecut prin nivelurile de rulare pentru a ajunge n cel implicit, scriptul

/etc/inittab bifurc un proces getty pentru fiecare consol virtual (prompterul de autentificare din
modul text). getty deschide liniile tty, stabilete modul acestora, afieaz prompterul de autentificare, obine numele de utilizator i apoi iniiaz procesul de autentificare pentru acel utilizator. Astfel se permite autentificarea utilizatorilor la sistem i folosirea sistemului de ctre acetia. Implicit, cele mai multe sisteme ofer 6 console virtuale, dar acest comportament este configurabil, dup cum putei afla din fiierul inittab.

/etc/inittab poate spune, de asemenea, programului init cum s gestioneze un utilizator care apas taste Ctrl+Alt+Del n consol. Pentru ca un sistem s fie oprit i restartat corespunztor, n loc s alegei dintre modurile puse la dispoziie prin apsarea pictogramei Ieire, i putei transmite lui init s execute comanda /sbin/shutdown -t3 -r now, de exemplu, atunci cnd apsai tastele menionate. n plus, /etc/inittab determin comportamentul lui init n cazul ntreruperii alimentrii, dac sistemul dumneavoastr are ataat o unitate UPS.
Pe cele mai multe sisteme bazate pe RPM, ecranul de autentificare n modul grafic este pornit n nivelul de rulare 5, n care /etc/inittab ruleaz un script numit /etc/X11/prefdm. Scriptul prefdm ruleaz administratorul grafic preferat, pe baza coninutului directorului /etc/sysconfig/desktop. Acesta este de regul gdm dac folosii GNOME sau kdm n cazul n care folosii KDE, dar ele pot fi amestecate, existnd chiar i xdm, care vine odat cu instalarea standard a serverului X. Dar mai sunt i alte posibiliti. n Debian, de exemplu, exist cte un script de iniializare pentru fiecare administrator grafic i este folosit coninutul directorului /etc/X11/default-displaymanager pentru a determina care dintre acestea este folosit. Mai multe lucruri despre interfaa grafic pot fi citite n Seciunea 7.3. Mai mult, documentaia proprie sistemului dumneavoastr explic n detaliu aspectele legate de init. Directoarele /etc/default i/sau /etc/sysconfig conin intrri pentru mai multe funcii i servicii care sunt citite la pornirea sistemului. Locul n care se afl directorul care conine setrile implicite ale sistemului poate fi ntructva diferit, el depinznd de distribuia de Linux aleas.

76

n afar de interfaa grafic aleas, multe alte servicii pot fi pornite. Dar dac totul merge aa cum trebuie, dumneavoastr vei avea n fa prompterul de autentificare sau ecranul de autentificare la sfritul procesului de pornire. Alte proceduri Am explicat n ce mod SysV init lucreaz pe calculatoarele compatibile x86. Procedurile de pornire pot fi diferite n cazul altor arhitecturi sau distribuii. Alte sisteme pot folosi stilul init BSD, n care fiierele de pornire nu sunt mprite n mai multe directoare /etc/rc<LEVEL>.d. Este posibil ca sistemul dumneavoastr s foloseasc directorul /etc/rc.d/init.d n locul directorului /etc/init.d.

4.2.5. Nivelurile de rulare init


Ideea de a opera servicii diferite pe niveluri de rulare diferite rezid, n principiu, din faptul c sisteme diferite pot fi folosite n moduri diferite. Anumite servicii nu pot fi folosite dect atunci cnd sistemul se afl ntr-o stare particular, sau mod (mode), de exemplu atunci cnd este pregtit pentru mai muli utilizatori sau cnd este disponibil legtura la Internet. Exist, de asemenea, momente n care dorii s folosii sistemul ntr-un mod care solicit mai puin resursele acestuia. Exemple sunt destule, precum repararea discurilor fixe n nivelul de rulare 1, pentru ca nici un alt utilizator s nu fie autentificat n sistem, sau punerea unui server n nivelul de rulare 3 fr ca s ruleze vreo sesiune a serverului X (modul grafic). n aceste cazuri, serviciile care depind de un mod superior al sistemului nu sunt rulate, deoarece nu are nici un sens, ele nefuncionnd corect pe un nivel inferior de rulare. Prin faptul c fiecare serviciu este desemnat deja s porneasc n momentul n care nivelul su de rulare este atins, obinei un proces de pornire ordonat i putei schimba repede modul n care se afl calculatorul dumneavoastr fr s v gndii la ce servicii trebuie s pornii sau s oprii manual. Nivelurile de rulare disponibile sunt descrise n general n /etc/inittab, un caz particular fiind prezentat mai jos:

Putei configura nivelurile de rulare nefolosite (n mod obinuit este cazul nivelului 4) dup cum dorii. Muli utilizatori configureaz aceste niveluri n moduri care li se potrivesc mai mult, lsnd nivelurile de rulare standard neschimbate. Acest lucru le permite s se mute n i din configuraia lor particularizat fr s modifice aranjamentul implicit al nivelurilor de rulare standard. Dac sistemul dumneavoastr ajunge ntr-o stare n care nu poate porni datorit unui fiier /etc/ inittab necorespunztor sau dac nu v putei autentifica din cauz c fiierul /etc/passwd este distrus (sau dac v-ai uitat pur i simplu parola), pornii sistemul n modul corespunztor unui singur utilizator. Fr grafic? Atunci cnd lucrai n modul text din cauz c nu vi s-a prezentat un ecran grafic de autentificare n consola calculatorului dumneavoastr, v putei muta n consola 7 sau mai sus pentru a obine un ecran grafic de autentificare. Dac nu v aflai n acest caz, verificai nivelul de rulare curent prin comanda who -r. Dac este stabilit pe altceva dect cel desemnat implicit n fiierul /etc/inittab, exist posibilitatea ca sistemul s nu porneasc implicit n modul grafic. Luai legtura cu administratorul de sistem sau citii 77

paginile man init. Schimbarea nivelurilor de rulare este bine s fie fcut folosind comanda telinit; trecerea din modul text ntr-o consol grafic sau invers nu implic schimbarea nivelului de rulare. Discutarea nivelurilor de rulare, scripturilor i configuraiilor fcut n acest ghid este una care se dorete ct mai general. Exist multe variaii. De exemplu, Gentoo Linux pstreaz scripturile n /etc/runlevels. Alte sisteme pot trece mai nti prin unul sau mai multe niveluri de rulare pentru a executa toate scripturile de acolo, nainte de a ajunge la nivelul de rulare final i a executa scripturile coninute de acesta. Apelai la documentaia sistemului propriu pentru mai multe informaii. Putei, de asemenea, s citii scripturile la care face referire /etc/inittab pentru a nelege mai bine ceea ce se ntmpl cu sistemul dumneavoastr.

4.2.5.1. Uneltele Utilitile chkconfig i update-rc.d, cnd sunt instalate n sistemul dumneavoastr, asigur o unealt simpl n linie de comand, care este folositoare la verificarea ierarhiei directorului /etc/init.d. Ele scutesc pe administratorul de sistem de la gestionarea manual a numeroaselor legturi simbolice care se afl n subdirectoarele directoarelor /etc/rc[x].d. n plus, anumite sisteme ofer unealt ntsysv, care asigur o interfa n modul text; vei afla c aceasta este mai uor de folosit dect interfaa stil linie de comand a chkconfig. n SuSE Linux, vei gsi uneltele yast i insserv. Pentru configuraia adresat utilizatorilor obinuii, putei ncerca DarkConf, care, printre alte faciliti, ofer posibilitatea schimbrii nivelurilor de rulare ntre 3 i 5. n Mandriva, aceast utilitate devine Mandriva Linux Control Center. Cele mai multe distribuii ofer o interfa grafic pentru configurarea proceselor, verificai aadar documentaia sistemului dumneavoastr. Toate aceste utiliti trebuie rulate ca administrator. Tot administratorul de sistem poate crea manual legtura potrivit n orice director de pe orice nivel de rulare, pentru a porni sau opri un serviciu pe un nivel de rulare anume.

4.2.6. Oprirea
UNIX-ul nu a fost proiectat s fie nchis, dar dac trebuie neaprat, folosii comanda shutdown. Dup completarea procedurilor de nchidere, opiunea -h va opri sistemul, n timp ce -r l va reporni. Comenzile reboot i halt sunt disponibile pentru a apela comanda shutdown atunci cnd sistemul se afl n nivelurile de rulare de la 1 la 5, asigurndu-se prin ele oprirea corect a sistemului, dar v facei un obicei prost, ntruct nu toate versiunile de UNIX/Linux dispun de aceste faciliti. Dac sistemul dumneavoastr nu se oprete definitiv, nu trebuie s-l oprii dect dup ce primii un mesaj prin care vi se spune c sistemul este oprit sau c a terminat procedurile de oprire, pentru a da timp sistemului s demonteze partiiile. Dac suntei nerbdtor, putei cauza pierderi de date.

4.3. Gestionarea proceselor


4.3.1. Munc pentru administratorul de sistem
Cu toate c gestionarea resurselor sistemului, inclusiv a proceselor, este o sarcin care cade n grija administratorului de sistem, este bine ca utilizatorul obinuit s aib mcar o idee despre acest subiect, n special despre procesele proprii i despre condiiile optime de executare ale acestora. Vom explica cteva aspecte din punct de vedere teoretic despre performanele sistemului, dar nu vom atinge subiecte legate de optimizarea dispozitivelor sau alte proceduri avansate. n schimb, vom studia problemele zilnice cu care se confrunt utilizatorii obinuii i ceea ce pot face acetia pentru folosirea optim a resurselor disponibile. Dup cum vei nva n seciunea urmtoare, acest lucru este, n principal, o abordare de genul gndete nainte de a aciona. Figura 4-2. Nu poi merge mai repede?

78

4.3.2. Ct dureaz?
Consola ofer o comand proprie, time, care afieaz timpul necesar pentru executarea unei comenzi. Rspunsul este foarte precis i o putei folosi asupra oricrei comenzi. n exemplul care urmeaz este necesar un minut i jumtate pentru a face acea carte.

Comanda time din GNU care se afl n /usr/bin (opus versiunii proprii consolei) afieaz mai multe informaii care pot fi dispuse n mai multe moduri. Arat i semnalul de ieire al comenzii, precum i timpul total care a fost necesar. Aceeai comand dar folosind versiunea independent time va genera 79

urmtoarele:

Pentru toate informaiile, apelai la paginile Info.

4.3.3. Performan
Pentru utilizator, performana nseamn executarea rapid a unei comenzi. Pentru un gestionar de sistem, pe de alt parte, nseamn mult mai mult: administratorul de sistem trebuie s optimizeze performanele sistemului pentru acel sistem ca ntreg, incluznd utilizatori, toate programele i serviciile. Performanele sistemului pot depinde de mii de lucruri mrunte, care nu sunt contabilizate de comanda time:

programul care este executat este scris prost sau nu folosete corect calculatorul accesul la discuri, controlere, monitor, alte dispozitive, etc. accesibilitatea sistemelor la distan (performanele reelei) numrul utilizatorilor din sistem, numrul celor care lucreaz simultan perioada efectiv din zi ...

4.3.4. ncrcarea (nivelul de solicitare a) sistemului


Pe scurt: ncrcarea depinde de ceea ce este normal pentru sistemul dumneavoastr. Vechiul meu P133 care ruleaz ca firewall, server SSH, server de fiiere, router, server de mail, server proxy i care asigur alte cteva servicii, nu se plnge cu 7 utilizatori autentificai; nivelul de solicitare este tot 0, n medie. Anumite sisteme (multi-procesor) pe care le-am vzut suportau destul de bine un nivel de solicitare de 67. Putei afla ntr-un singur mod verificai periodic nivelul de solicitare, pentru a ti care este cel normal. Dac nu o facei, putei msura nivelul de solicitare a sistemului dup rspunsul liniei de comand, a crei vitez este influenat de sute de factori. Nu uitai c sisteme diferite se comport aparte n cazul aceluiai nivel de solicitare. De exemplu, un sistem care are o plac grafic care asigur accelerare nu va avea probleme la randarea imaginilor 3D, n timp ce acelai sistem cu o plac VGA ieftin va fi ncetinit substanial la randare. Vechiul meu P133 va reaciona greoi la pornirea serverului X (modul grafic), n timp ce pe sistemele moderne vei observa cu greu diferene n nivelul de solicitare a sistemului.

4.3.5. Ca utilizator, pot face ceva?


Un mediu stufos v poate ncetini. Dac avei stabilite multe variabile de mediu (n schimbul variabilelor consolei), traseele mai lungi de cutare care nu sunt optimizate (erori n stabilirea variabilei de mediu PATH) i alte asemenea reglaje fcute din zbor, sistemul va avea nevoie de mai mult timp pentru a cuta i citi datele. n X, administratorii de ferestre i mediul spaiului de lucru pot mnca mult din puterea procesorului. Un spaiu de lucru mai atractiv are un pre, chiar dac l putei descrca gratuit, deoarece cele mai multe dintre ele pot integra tot felul de suplimente (add-ons). Modestia este o virtute atunci cnd nu suntei dispus s cumprai un calculator nou n fiecare an.

80

4.3.5.1. Prioriti Prioritatea sau importana unui serviciu este determinat de numrul su amical. Un program cu un numr amical mare este prietenos fa de alte programe, ali utilizatori i fa de sistem; nu este o sarcin important. Cu ct numrul amical este mai mic, cu att este mai important sarcina i vor fi folosite mai multe resurse fr a le mpri cu alte programe. Mrirea numrului amical al programelor pentru a le face mai prietenoase este folositoare pentru procesele care solicit mult procesorul (compilatoare, aplicaii matematice i altele de acest fel). Procesele care folosesc intensiv timpii I/O sunt rspltite automat de ctre sistem prin acordarea de prioritate (li se asociaz un numr amical mai mic), un exemplu fiind cel al tastaturii, care are cea mai ridicat prioritate ntrun sistem. Definirea prioritii unui program se face prin comanda nice. Cele mai multe sisteme asigur i comanda BSD renice, care v permite s schimbai gradul de amiciie (niceness) a unei comenzi care se afl n execuie. V ndrumm din nou ctre paginile de documentaie specific sistemului dumneavoastr. Programe interactive Nu v sftuim s schimbai prin nice sau renice numrul amical al programelor sau sarcinilor care ruleaz n prim-plan. Folosirea acestor comenzi este rezervat administratorului de sistem. Citii paginile de manual sau cele Info despre funciile disponibile administratorului de sistem.

4.3.5.2. Resursele procesorului (CPU) Pe orice sistem Linux, multe programe doresc s foloseasc procesorul n acelai timp, chiar dac dumneavoastr suntei singurul utilizator autentificat n sistem. Fiecare program are nevoie de un anumit numr de cicluri ale procesorului pentru a rula. Pot exista momente n care nu sunt disponibile suficiente cicluri deoarece procesorul este ocupat. Comanda uptime este mai degrab orientativ (ea afieaz doar media, pe cnd dumneavoastr avei nevoie s cunoatei situaia normal), dar departe de a fi nefolositoare. Sunt cteva aciuni pe care le putei ntreprinde dac dumneavoastr credei c procesorul este vinovat de faptul c sistemul nu v rspunde la comenzi aa cum ar trebui:

Rulai programele care ncarc sistemul atunci cnd sistemul este mai puin solicitat. Momentele n
care sistemul este mai puin solicitat se ntlnesc, de regul, noaptea. Consultai seciunea urmtoare, care prezint programarea sarcinilor. Evitai ca sistemul s execute sarcini care nu sunt necesare: oprii serviciile i programele pe care nu le folosii, folosii comanda locate n loc de mai solicitanta find,... Rulai sarcinile mari consumatoare de resurse cu o prioritate sczut.

Dac nici una din aceste soluii nu este o opiune viabil n cazul sistemului dumneavoastr, ar trebui s luai n considerare schimbarea procesorului. Pe o main UNIX, acest lucru este o sarcin care cade n grija administratorului de sistem.

4.3.5.3. Resursele de memorie n situaia n care procesele aflate n desfurare au nevoie de mai mult memorie dect dispune fizic sistemul, un sistem Linux nu va nghea; va ncepe s pagineze, sau s fac ceea ce se numete swapping, adic procesul va folosi memorie de pe discul fix sau din spaiul swap, mutnd coninutul memoriei fizice (fragmente din programul rulat sau tot programul n cazul swapping-ului) pe disc, permind n acest mod memoriei fizice s gestioneze alte procese. n acest mod se ncetinete destul de mult sistemul, deoarece accesul la disc este mai lent dect accesul la memorie. Comanda top poate fi folosit pentru afiarea memoriei folosite, fizice ct i swap. Sistemele care folosesc glibc ofer pentru afiarea memoriei n uz comenzile memusage i memusagestat. Dac avei convingerea c este folosit mult memorie fizic i swap, putei ncerca:

Terminarea, stoparea sau mrirea numrului amical al programelor care folosesc mult memorie. Adugarea de memorie sistemului (n unele cazuri, mrirea spaiului swap). mbuntirea performanelor sistemului, lucru care nu face obiectul acestui ghid. Citii lista din
81

Appendix A pentru mai multe informaii.

4.3.5.4. Resursele I/O n timp ce limitrile impuse de I/O sunt cauza principal de stres pentru administratorii de sistem, Linux-ul nu ofer utiliti foarte precise pentru msurarea performanelor I/O. Programele ps, vmstat i top dau anumite indicaii despre ct de multe programe solicit resursele I/O; netstat afieaz statistici ale interfeei de reea, dar practic nu exist unelte care s msoare rspunsul I/O la ncrcarea sistemului, iar comanda iostat ofer doar o scurt descriere a folosirii I/O n general. Exist numeroase interfee grafice care organizeaz datele afiate de aceste programe ntr-o form inteligibil pentru dumneavoastr. Fiecare dispozitiv are problemele sale, dar limea de band disponibil interfeelor de reea i limea de band disponibil discurilor sunt principalele cauze ale gtuirilor care afecteaz performanele I/O. Problemele de reea ale I/O:

Suprancrcarea reelei: cantitatea de date transportat pe reea este mai mare dect capacitatea
reelei, lucru care duce la executarea cu ncetineal a sarcinilor care implic reeaua, pentru toi utilizatorii. Pot fi rezolvate prin reducerea solicitrii reelei (care nseamn, n principal, dezactivarea protocoalelor i serviciilor de care nu avei nevoie) sau prin reconfigurarea reelei (de exemplu, folosirea reelelor intranet, nlocuirea hub-urilor cu switch-uri, actualizarea programelor i modernizarea echipamentelor). Problemele cauzate de integritatea reelei: apar atunci cnd datele sunt transferate incorect. Rezolvarea acestor probleme se face doar prin identificarea elementului defect i nlocuirea acestuia. Problemele I/O cauzate de disc:

rata de transfer per proces prea mic: viteza de citire sau scriere per proces este prea mic. rata de transfer global prea mic: limea de band total pe care o pune la dispoziie sistemul
tuturor programelor care ruleaz la un moment dat este prea mic. Acest fel de probleme sunt mai greu de depistat i au nevoie de echipamente suplimentare care s redistribuie fluxul de date pe magistrale, controller-e i discuri, dac se confirm c echipamentele suprasolicitate sunt cauza problemelor. O soluie ar fi o configuraie RAID, optimizat pentru aciunile de intrare i ieire. Astfel, v putei pstra acelai echipament. O trecere la magistrale, controller-e i discuri mai rapide este cealalt cale prin care putei rezolva problemele de acest gen. Dac suprancrcarea nu este cauza problemelor, este posibil ca echipamentele dumneavoastr s nu mai funcioneze cum trebuie sau s nu fie conectate corect la sistem. Putei s ncepei cu verificarea contactelor, conectorilor i cuplajelor.

4.3.5.5. Utilizatorii Utilizatorii pot fi mprii n cteva categorii, dup comportamentul lor fa de folosirea resurselor:

Utilizatori care ruleaz un numr (mare) de sarcini care nu solicit foarte mult sistemul:
dumneavoastr, utilizatorul nceptor de Linux, de exemplu. Utilizatorii care ruleaz doar cteva sarcini, dar care solicit sistemul: cei care ruleaz simulri, calcule, emulatoare sau alte programe care au nevoie de mult memorie, aceti utilizatori folosind, de regul, i fiiere de date foarte mari. Utilizatori care ruleaz puine sarcini, dar folosesc foarte multe resurse ale procesorului (dezvoltatorii i cei cu preocupri asemntoare). Vei observa c cerinele de sistem difer cu fiecare categorie de utilizatori i c a-i mulumi pe toi este un lucru dificil. Dac lucrai pe un sistem cu mai muli utilizatori, v este de folos (i este amuzant, totodat) s cunoatei obiceiurile celorlali i sistemul, pentru a folosi ct mai bine resursele pentru scopurile dumneavoastr.

82

4.3.5.6 Unelte grafice Pentru mediul grafic sunt disponibile destule unelte pentru monitorizare. Mai jos este o captur de ecran care arat Gnome System Monitor (Monitorul de sistem pentru mediul Gnome), care poate cuta i afia informaii despre procese i resursele sistemului:

Sunt disponibile, de asemenea, mai multe aplicaii pe care le putei instala n bara de sarcini, ca pictograme, care monitorizeaz discurile fixe, memoria i nivelul de solicitare a sistemului. xload, de exemplu, este o alt miniaplicaie pentru monitorizarea sistemului. Cutai pe acelea care v plac mai mult!

4.3.5.7. ntreruperea proceselor Ca utilizator obinuit, putei influena doar procesele dumneavoastr. Am artat deja cum putei afia procesele i cum putei filtra pe acelea care aparin unui anume utilizator i am vorbit despre restriciile pe care le putei ntlni. Cnd realizai c unul din procesele dumneavoastr ocup prea multe resurse ale sistemului, sunt dou lucruri pe care le putei face: 1. Asigurai-v c procesul va folosi mai puine resurse fr a fi ntrerupt; 2. Oprii definitiv procesul. n cazul n care dorii ca acel proces s ruleze n continuare, dar s acordai, n acelai timp, i altor procese o ans, putei oricnd s modificai numrul amical (renice) al procesului care solicit sistemul. n afar de utilizarea comenzilor nice sau renice, top este ntotdeauna o cale uoar prin care putei observa procesele care produc necazuri, pentru a le reduce prioritatea. Identificai procesele problem n coloana NI printre cele care au o prioritate negativ. Tastai r i introducei ID-ul procesului cruia dorii s-i redefinii prioritatea. Apoi introducei valoarea numrului amical, de exemplu 20. Acest lucru nseamn c cel mult numai 1/5 din ciclurile procesorului vor fi folosite de acest proces. Emulatoarele, mainile virtuale, compilatoarele i altele de acest fel sunt exemple de procese pe care nu ai dori s le oprii, ci doar s le redefinii prioritatea. 83

Dac dorii s oprii un proces deoarece este ngheat sau pentru c solicit prea mult resursele I/O sau alte resurse ale sistemului, folosii comanda kill. Dac avei posibilitatea, ncercai s oprii procesul ntrun mod mai puin brutal, trimind semnalul SIGTERM. Acesta este o instruciune care cere oprirea n concordan cu procedurile descrise n codul programului:

n exemplul de mai sus, utilizatorul joe a oprit Mozilla deoarece rspundea greu la comenzi. De anumite procese scpai mai greu. Dac avei rbdare, le putei trimite semnalul SIGINT pentru a le opri. Dac nici acesta nu reuete, folosii cel mai puternic semnal, SIGKILL. n exemplul de mai jos, joe oprete Mozilla deoarece nghease:

n astfel de cazuri, ai putea s verificai dac procesul este cu adevrat oprit, folosind filtrarea grep asupra PID. Dac este returnat doar procesul grep, putei fi siguri c ai reuit oprirea procesului. Printre procesele care sunt greu de oprit se numr i consola. Este un lucru bun: dac ar fi uor de terminat, ai fi pierdut consola de fiecare dat cnd ai fi apsat accidental Ctrl-C n linia de comand, ntruct combinaia de taste menionat trimite semnalul SIGINT. UNIX-ul fr conexiuni (pipes) este de neconceput Folosirea conexiunilor (|) n aa fel nct ieirea unei comenzi s devin intrare pentru alt comand este explicat n capitolul urmtor, Capitolul 5. n mediul grafic, programul xkill este foarte uor de folosit. Introducei numele comenzii, apsai Enter i alegei fereastra aplicaiei pe care dorii s o oprii. Este o abordare periculoas, deoarece comanda trimite implicit semnalul SIGKILL, aa c folosii-o numai n cazurile n care aplicaiile nu mai rspund.

4.4. Programarea proceselor


4.4.1. Folosii acel timp disponibil!
Un sistem Linux poate suferi din multe cauze, dar sufer, de regul, doar pe parcursul programului de lucru. Fie c se afl ntr-un mediu de birouri, ori camera serverelor sau acas, cele mai multe sisteme Linux sunt n ateptare dimineaa, seara, noaptea i la sfritul sptmnii. Folosirea acestui timp disponibil se dovedete a fi mult mai ieftin dect cumprarea unor echipamente de care avei neaprat nevoie dac dorii ca toate lucrurile s fie fcute n acelai timp. Se disting trei tipuri de execuie ntrziat:

Sarcin pus n ateptare pentru puin timp i apoi relansat n execuie, prin comanda sleep.
Timpul de execuie depinde de timpul sistemului n momentul introducerii. Rularea unei comenzi la un moment de timp specificat, folosind comanda at. Executarea sarcinii depinde de timpul sistemului, nu de cel al introducerii. Rularea unei comenzi regulat, lunar, sptmnal sau din or n or, prin folosirea comenzii cron. Seciunea urmtoare va discuta fiecare posibilitate.

84

4.4.2. Comanda sleep


Paginile Info despre aceast comand sunt, probabil, cele mai scurte din cte exist. Tot ceea ce face sleep este s atepte. Implicit, timpul de ateptare este exprimat n secunde. Pentru ce exist atunci? Iat cteva exemple practice: V caut cineva la telefon i i spunei Voi fi la dumneavoastr ntr-o jumtate de or, dar suntei absorbit de munca dumneavoastr i nu vrei s uitai de ntlnire: (sleep 1800; echo ntlnire cu X... ) & Cnd nu putei folosi comanda at din diverse motive, s zicem c este ora cinci, dorii s plecai acas dar nc avei de lucru i chiar n aceste momente cineva folosete resursele sistemului: (sleep 10000; programul_meu) & n aceste cazuri trebuie s avei activat o modalitate de autodeautentificare i inei minte s v deautentificai, s ncuiai desktop-ul ori biroul sau rulai astfel de sarcini ntr-o sesiune screen. Dac avei foarte multe lucrri de tiprit dar dorii ca i alii s poat tipri n acest timp: lp foarte_mult_text; sleep 900; lp fiier_imens; sleep 900; lp alt_fiier_imens Tiprirea fiierelor este discutat n Capitolul 8. Programatorii folosesc adesea comanda sleep pentru a opri execuia unui script sau a unui program pe o anume perioad de timp.

4.4.3. Comanda at
Comanda at execut programele desemnate la timpul precizat, folosind consola dumneavoastr implicit, dac nu precizai alt opiune (consultai paginile man). Opiunile comenzii at sunt destul de prietenoase, dup cum v prezentm n exemplul de mai jos:

Apsarea tastelor Ctrl+D determin ieirea din utilitarul at i afieaz mesajul EOT. Utilizatorul steven, n exemplul urmtor, face un lucru mai puin ntlnit, combinnd dou comenzi; vom studia aceste practici n Capitolul 5, Redirectarea Intrrilor i Ieirilor (Redirecting I/O).

Opiunea -m trimite un mail utilizatorului la terminarea sarcinii sau ofer explicaii n cazurile n care sarcina nu poate fi executat. Comanda atq listeaz sarcinile; introducei aceast comand nainte de programarea unor sarcini pentru a nu introduce n execuie sarcini care s porneasc la acelai moment de timp. Prin comanda atrm putei terge sarcinile programate, dac este necesar. V sftuim s nu programai sarcini la ore fixe, deoarece aceste momente sunt folosite adesea pentru execuia sarcinilor de sistem, dup cum vei observa n seciunea urmtoare, Seciunea 4.4.4. De exemplu, astfel de sarcini sunt rulate la ora 01.00 (unu dimineaa de pild cutarea i indexarea de ctre 85

sistem a unei baze de date standard), aa c programarea unei alte sarcini la aceeai or poate duce lesne la ncetinirea sistemului, n loc s-l accelereze. Pentru a preveni situaiile n care sarcinile sunt rulate n acelai timp, putei folosi i comanda batch, care verific procesele i asigur executarea acestora de ctre sistem ntr-o manier echilibrat, eliminnd solicitarea maxim a resurselor sistemului. Consultai paginile Info pentru mai multe informaii.

4.4.4. Cron i crontab


Sistemul cron este gestionat de serviciul (daemon) cron. Acest program adun informaii despre programe i despre momentele n care acestea sunt programate s ruleze, folosind intrrile din fiierul crontab, generate de sistem sau de utilizatori. Numai administratorul de sistem are dreptul s acceseze fiierele crontab ale sistemului, utilizatorii fr privilegii speciale avnd propriile fiiere crontab n care pot introduce sarcini care vor fi executate la un anumit moment. Pe anumite sisteme, utilizatorii obinuii pot s nu aib deloc acces la facilitile cron. La pornirea sistemului, serviciul cron caut n directorul /var/spool/cron intrri n fiierele crontab care sunt denumite dup conturile existente n /etc/passwd, caut n /etc/cron.d/ i /etc/crontab, apoi folosete aceste informaii n fiecare minut, pentru a verifica dac are ceva de fcut. Va executa comenzile cu drepturile asociate utilizatorului care deine fiierul crontab i trimite mesaje care conin ieirile generate de programele executate acestor utilizatori. Pe sistemele care folosesc Vixie, sarcinile care se repet la fiecare or, zilnic, sptmnal i lunar au intrri separate, n directoarele /etc, pentru a putea fi trecute n revist mai uor, comportament care este opus funciilor cron standard din UNIX, care folosete un singur fiier, mai mare, pentru toate intrrile. Iat un exemplu de fiier crontab Vixie:

Alternativ Putei folosi oricnd comanda crontab -l pentru afiarea fiierelor crontab. Sunt stabilite cteva variabile, dup care sunt afiate sarcinile programate, fiecare pe o linie separat, ncepnd cu cinci cmpuri care arat ora i data. Primul cmp conine minutele (de la 0 la 59), urmtorul arat ora la care sarcina va fi rulat (0-23), cel de-al treilea cmp arat ziua din lun (1-31),apoi numrul lunii (1-12), ultimul cmp fiind pentru ziua sptmnii (0-7, att 0 ct i 7 fiind duminica). Un asterisc prezent n aceste cmpuri reprezint acceptarea tuturor valorilor aplicabile acelui cmp. Sunt permise i listele; pentru a rula o sarcin de luni pn vineri, introducei 1-5 n ultimul cmp, iar pentru a rula o sarcin luni, miercuri i vineri, introducei 1,3,5. Apoi este artat utilizatorul pentru care trebuie s ruleze procesele, listat n ultima coloan. Exemplul de mai sus arat o configuraie cron Vixie, n care administratorul ruleaz programul run-parts la intervale regulate, avnd ca opiuni directoarele potrivite. n aceste directoare, sarcinile propriu-zise care trebuie s fie rulate n momentele stabilite, sunt stocate ca scripturi shell, precum urmtorul, care ruleaz zilnic, pentru a actualiza baza de date folosit de comanda locate:

86

Utilizatorii sunt sftuii s editeze fiierele crontab ntr-un mod adecvat, prin folosirea comenzii crontab -e. Ea prentmpin deschiderea a mai mult de o copie a fiierului crontab. Editorul implicit este vi (consultai Capitolul 6), dar putei folosi orice editor de text, precum gvim sau gedit dac v place mai mult un editor propriu modului grafic. La ncheierea editrii, sistemul v va anuna c este instalat un nou fiier crontab. Urmtoarea imagine prezint o intrare crontab care amintete lui billy s mearg la clubul de sport n fiecare mari sear:

Dup adugarea unei noi sarcini programate, sistemul v va spune c este instalat un nou fiier crontab. Nu trebuie s restartai serviciul cron pentru ca schimbrile s-i fac efectul. Mai jos, billy a adugat o linie care intete ctre un script care face copii de rezerv:

Scriptul backup.sh este executat n fiecare joi i duminic. Consultai Seciunea 7.2.5 pentru noiuni introductive n scriptingul shell. Reinei c ieirile unei comenzi (dac exist) sunt trimise prin mail deintorului fiierului crontab. Dac nu este configurat nici un serviciu de pot electronic, putei gsi aceste ieiri generate de comenzi n directorul care pstreaz mesajele mail locale, /var/spool/mail/ <numele_dumneavoastr>, ca fiiere text simplu. Cine ruleaz comenzile mele? Nu trebuie s specificai utilizatorul care trebuie s execute comenzile pe care le programai. Ele vor fi rulate implicit folosind permisiunile deintorului.

4.5. Sumar
Linux-ul este un sistem de operare multi-utilizatori i multi-sarcini care gestioneaz procesele n stilul UNIX-ului. Viteza de executare a proceselor depinde de mii de lucruri mrunte. Printre altele, ai nvat multe comenzi noi care v ajut la vizualizarea i gestionarea proceselor. V prezentm o list cu cele mai des folosite comenzi n gestionarea proceselor:
Tabelul 4-3. Comenzi noi n Capitolul 4: Procesele

Comanda at atq atrm batch crontab halt init run level

nelesul comenzii Ordoneaz sarcinile pentru rularea programat. Arat sarcinile care ateapt s fie rulate. terge sarcinile care ateapt s fie rulate, dup numrul asociat lor. Execut sarcinile atunci cnd nivelul de solicitare a sistemului permite acest lucru. Gestioneaz fiierele crontab pentru utilizatorii individuali. Oprete sistemul. Iniializeaz controlul procesului.

87

jobs kill mesg netstat nice pgrep ps pstree reboot renice shutdown sleep time top uptime vmstat w wall who write

Listeaz sarcinile care ruleaz n acel moment. Termin un proces. Controleaz trimiterea de mesaje ctre terminalul tu. Afieaz legturile de reea, tabela de routing, statisticile de reea, conexiunile deghizate (masquerade) i difuzrile multiple (multicast). Rularea unui program cu modificarea prioritii acestuia. Afieaz procesele. Arat statutul proceselor. Afieaz o imagine arborescent a proceselor. Oprete sistemul. Modific prioritatea proceselor aflate n desfurare. Oprete definitiv sistemul. Determin o ntrziere cu un anumit timp specificat. Cronometreaz o comand sau afieaz folosirea resurselor. Afieaz procesele care solicit procesorul. Arat de cnd ruleaz sistemul. Afieaz statistici referitoare la memoria virtual. Arat cine este autentificat i ce face. Trimite un mesaj terminalelor celorlali utilizatori. Arat cine este autentificat. Trimite un mesaj altui utilizator.

4.6. Exerciii
V propunem cteva exerciii care v vor ajuta s v formai o idee despre procesele care ruleaz pe sistemul dumneavoastr.

4.6.1. Generaliti
Rulai comanda top ntr-un terminal i facei-v exerciiile ntr-altul. Rulai comanda ps. Citii n paginile man cum putei s afiai toate procesele. Rulai comanda find /. Ce efect are asupra nivelului de solicitare a sistemului? Oprii aceast comand. n modul grafic, pornii programul xclock n prim-plan. Apoi mutai-l n fundal. Oprii programul prin comanda kill. Rulai comanda xcalc direct n fundal, pentru ca prompterul terminalului n care ai introdus comanda s fie eliberat. Ce face comanda kill -9 -1? Deschidei dou terminale sau ferestre terminal i folosii write ca s trimitei mesaje dintr-unul n cellalt. Introducei comanda dmesg. Ce v spune? Ct dureaz rularea comenzii ls n directorul curent? Folosindu-v de intrrile proceselor din /proc, deinute de UID-ul dumneavoastr, cum putei afla ce reprezint de fapt aceste procese? De ct timp este pornit sistemul dumneavoastr? Care este terminalul (TTY) pe care-l folosii n acest moment? Numii trei procese care nu au fost generate de init ca printe iniial. 88

Numii trei comenzi care folosesc modul SUID. Explicai de ce. Numii comenzile care determin, n general, un nivel de solicitare mrit n sistemul dumneavoastr. 4.6.2. Pornirea (booting), iniializarea (init) etc. Putei restarta sistemul ca utilizator obinuit? De ce? n funcie de nivelul de rulare n care v aflai, numii paii care sunt fcui pe parcursul opririi. Cum putei schimba nivelul de rulare? Trecei din nivelul de rulare implicit n nivelul de rulare 1 i
napoi. Facei o list cu toate serviciile i sarcinile care sunt rulate la pornirea sistemului. Ce kernel este ncrcat la pornire? S presupunem c trebuie s rulai un serviciu neobinuit la pornirea sistemului. Pn n acest moment, v autentificai dup pornirea sistemului i rulai acest serviciu manual, folosind un script numit livreaz_pizza din directorul personal. Ce trebuie s facei pentru ca acest serviciu s fie pornit automat n nivelul de rulare 4, pe care l-ai definit numai n acest scop?

4.6.3. Programarea Folosii sleep pentru a crea un anun care v amintete c pastele dumneavoastr sunt gata n zece
minute. Creai o sarcin at care copiaz toate fiierele din directorul personal n /var/tmp peste o jumtate de or. Va trebui s creai un subdirector n /var/temp, dac dorii ca s pstrai uor ordinea pe discul fix. Creai o sarcin cron care face acelai lucru n fiecare sptmn, de luni pn vineri, n timpul prnzului. Verificai dac funcioneaz. Facei o greeal ntr-o intrare crontab, precum indicarea comenzii inexistente coppy, n locul cp. Ce se ntmpl la executarea sarcinii?

89

Capitolul 5. Redirecionarea I/O


Acest capitol prezint mai multe detalii despre mecanismul puternic al UNIX-ului prin care sunt redirecionate intrrile, ieirile i erorile. Aspectele discutate includ:

Intrrile standard, ieirile i erorile. Operanzii de redirecionare. Cum s folosii ieirea unei comenzi ca intrare pentru alta. Cum s punei ieirea unei comenzi ntr-un fiier pentru consultare ulterioar. Cum s adugai ieirile mai multor comenzi ntr-un fiier. Redirecionarea intrrilor. Gestionarea mesajelor standard de eroare. Combinarea redirecionrilor intrrilor, ieirilor i fluxurilor de erori. Filtrarea ieirilor.

5.1. Redirecionri simple


5.1.1. Ce sunt intrrile standard i ieirile standard?
Cele mai multe comenzi Linux citesc intrrile, precum un fiier sau alte atribute ale comenzii i scriu ieirile. Implicit, intrrile sunt generate de la tastatur, iar ieirile sunt afiate pe ecranul dumneavoastr. Tastatura este dispozitivul dumneavoastr standard de intrare (stdin), iar ecranul, sau o anume fereastr terminal, dispozitivul dumneavoastr standard de ieire (stdout). Totui, deoarece Linux-ul este un sistem flexibil, aceste opiuni de configurare implicite nu sunt aplicate n toate cazurile. Ieirea standard, de exemplu, n cazul unui server monitorizat ndeaproape, aflat ntr-un mediu dezvoltat, poate fi o imprimant.

5.1.2. Operanzii de redirecionare


5.1.2.1. Redirecionarea ieirilor cu > i | Cteodat trebuie s punei ieirea unei comenzi ntr-un fiier sau dorii ca ieirea unei comenzi s devin intrare pentru alt comand. Aceste lucruri sunt cunoscute sub numele de redirecionri ale ieirilor. Redirecionrile sunt fcute prin > (simbolul mai mare dect) sau prin folosirea operandului | (conexiune), care trimite ieirea standard a unei comenzi ca intrare standard pentru alt comand. Dup cum am vzut, comanda cat conexeaz (nlnuie) fiierele i le afieaz la ieirea standard. Prin redirectarea acestor ieiri ctre un fiier, el va fi creat sau suprascris dac exista deja, aa c fii foarte ateni cu aceast comand.

Nu suprascriei! Avei grij s nu suprascriei fiierele (importante) existente atunci cnd redirecionai ieirile. Multe 90

console, printre care i Bash, dispun de o facilitate care v protejeaz de acest risc: noclobber. Consultai paginile Info pentru mai multe informaii. n Bash, putei aduga comanda set -o noclobber la fiierul de configurare .bashrc pentru a preveni suprascrierea accidental a unui fiier. Redirecionarea a nimic ctre un fiier existent este acelai lucru cu tergerea coninutului acelui fiier:

Acest proces este numit trunchiere (truncating). Acelai tip de redirecionare ctre un fiier inexistent va crea un nou fiier, gol, cu numele pe care lai introdus n comanda de redirecionare:

Capitolul 7 va oferi mai multe exemple despre cum s folosii acest tip de redirecionare. Iat cteva exemple despre folosirea conexiunilor n comenzi: Pentru a gsi un cuvnt n cadrul unui text, afiai toate liniile care conin criteriul1 i excludei liniile care conin criteriul2: grep criteriul1 fiier | grep -v criteriul2 Pentru a afia coninutul unui director cu listarea paginilor una cte una: ls -la | less Pentru a cuta un fiier ntr-un director: ls -l | grep nume_parial_fiier

5.1.2.2. Redirecionarea intrrilor n alte cazuri, poate c dorii ca un fiier s devin intrare pentru o comand care, n mod normal, nu ar accepta un fiier ca opiune. Aceast redirecionare a intrrilor se face folosind ca operand simbolul < (mai mic dect). V prezentm un exemplu care arat cum putei trimite un fiier cuiva, folosind redirecionarea intrrilor.

Dac utilizatorul mike exist n sistem, nu trebuie s introducei adresa ntreag. Dac dorii s trimitei fiierul cuiva pe Internet, introducei ntreaga adres de pot electronic ca argument al comenzii mail. Poate c este mai dificil dect folosirea comenzii preferate de nceptori cat fiier | mail cuiva, dar este, fr ndoial, o modalitate elegant prin care folosii uneltele pe care le avei la dispoziie.

91

5.1.2.3. Combinarea redirecionrilor Urmtorul exemplu arat cum pot fi combinate redirecionrile intrrilor i ieirilor. Fiierul

text.txt este verificat mai nti din punct de vedere al ortografiei, iar ieirea generat este trimis la un
fiier jurnal de erori: spell <text.txt> error.log Comanda urmtoare listeaz toate comenzile pe care le putei folosi pentru examinarea fiierelor atunci cnd folosii less:

Opiunea -i este folosit pentru cutrile care nu in cont de literele mari sau mici amintii-v c sistemele UNIX sunt case-sensitive. Dac dorii s pstrai ieirea acestei comenzi pentru a o folosi mai trziu, redirectai-o:

Ieirea unei comenzi poate fi conexat (piped) altei comenzi ori de cte ori dorii, att timp ct aceste comenzi vor citi intrrile de la intrarea standard i vor afia ieirile la ieirea standard. Cteodat nu fac acest lucru, dar n aceste cazuri exist opiuni speciale care spun acestor comenzi s se comporte n concordan cu definiiile standard; citii documentaia (paginile man i Info) comenzilor pe care le folosii n cazul n care ntmpinai dificulti. V atragem din nou atenia asupra folosirii numelor unor fiiere existente de care mai avei nevoie. Redirecionarea ieirilor ctre acestea va nlocui coninutul lor.

5.1.2.4. Operandul >> Pentru a nu suprascrie datele dintr-un fiier putei aduga text la un fiier existent, folosind dou caractere > (mai mare dect): Exemplu:

Comanda date va pune, n mod normal, ultima linie pe ecran; acum ea este ataat fiierului

wishlist.

92

5.2. Faciliti avansate de redirecionare


5.2.1. Utilizarea descriptorilor de fiiere
Sunt trei tipuri de I/O, fiecare avnd propriul identificator, denumit descriptor de fiiere:

intrarea standard: 0 ieirea standard: 1 eroarea standard: 2


n descrierile urmtoare, dac numrul descriptorului de fiiere este omis i primul caracter este operandul <, redirecionarea se refer la intrarea standard (descriptorul de fiiere 0). Dac primul caracter este operandul >, redirecionarea se refer la ieirea standard (descriptorul de fiiere 1). Cteva exemple practice vor clarifica lucrurile: ls > dirlist 2>&1 va direciona att ieirile ct i erorile standard ctre fiierul dirlist, n timp ce comanda ls 2>&1 >dirlist va direciona doar ieirea standard ctre fiierul dirlist. Aceast opiune este folositoare programatorilor. Lucrurile se complic din acest moment, de exemplu nu confundai folosirea semnului & cu sensul pe care l are acesta n Seciunea 4.1.2.1, unde era folosit pentru rularea n fundal a unui proces. Aici el servete ca indicator care arat faptul c numrul care urmeaz nu este un nume de fiier, ci un loc ctre care intete fluxul de date. V atragem atenia asupra faptului c semnul mai mare dect nu este separat prin spaii de numrul descriptorului de fiiere. Dac ar fi separat, am fi intit din nou ctre ieirea unui fiier. Exemplul de mai jos v demonstreaz acest lucru:

Prima comand introdus de nancy este corect (nu este generat nici o eroare, astfel nct fiierul ctre care este redirecionat eroarea standard este gol). Cea de-a doua comand consider 2 ca fiind numele unui fiier, care, n cazul nostru, nu exist, aa c este afiat o eroare. Toate aceste faciliti sunt explicate n detaliu n paginile Info Bash.

5.2.2. Exemple
5.2.2.1. Analizarea erorilor Dac procesele genereaz multe erori, iat o cale prin care le putei examina: comand 2>&1 | less Este utilizat pe larg atunci cnd sunt realizate programe noi prin comanda make, precum n:

93

5.2.2.2. Separarea ieirilor standard de erorile standard Construcii ca acestea sunt folosite adesea de programatori, pentru ca ieirile s fie afiate ntr-o fereastr terminal, iar erorile n alta. Stabilii mai nti ce pseudoterminal folosii, prin comanda tty:

5.2.2.3. Scrierea simultan a ieirilor n fiiere Putei folosi comanda tee pentru a copia intrrile la ieirea standard i ntr-unul sau mai multe fiiere ntr-un singur pas. Cu opiunea -a aplicat lui tee intrrile vor fi adugate fiierului (fiierelor). Comanda este folositoare n cazurile n care dorii att s consultai ct i s salvai ieirile generate. Operanzii > i >> nu permit executarea ambelor aciuni simultan. Unealta este apelat printr-o conexiune (|), dup cum v arat exemplul urmtor:

5.3. Filtre
Realizarea de ctre un program a unei operaii prin citirea intrrii i afiarea rezultatului la ieirea standard, se numete filtrare. Cea mai utilizat filtrare este cea prin care sunt restructurate ieirile. Vom discuta cteva filtre mai importante n cele ce urmeaz.

5.3.1. Mai multe despre grep


Dup cum am artat n Seciunea 3.3.3.4, grep scaneaz ieirile, linie cu linie, n cutarea tiparelor. Toate liniile care conin tiparul vor fi afiate la ieirea standard. Comportamentul poate fi inversat prin opiunea -v. Cteva exemple: s presupunem c dorim s tim ce fiiere dintr-un anumit director au fost modificate n februarie:

Comanda grep, ca majoritatea comenzilor, face deosebire ntre literele mari i cele mici. Folosii opiunea -i pentru ca aceast comand s nu fac diferena ntre majuscule i literele mici. Multe extensii ale GNU sunt disponibile, precum --color, care v ajut la evidenierea tiparelor de cutare n liniile prea lungi i --after-context, care afieaz numrul liniilor dup ultima linie care se potrivete. Putei introduce o comand grep recursiv care caut n toate subdirectoarele unui director prin opiunea -r. Opiunile pot fi combinate, ca n mai toate cazurile. Expresiile regulate pot fi folosite pentru detalierea pn la potrivirea exact a caracterelor pe care dorii s le selectai din toate liniile de intrare. Cea mai bun cale de a ncepe n privina expresiilor regulate este citirea documentaiei grep. Un capitol excelent este inclus n paginile Info ale comenzii grep. Deoarece 94

discutarea intrrilor i ieirilor expresiilor regulate ne-ar purta prea departe, v sftuim s ncepei cu acel capitol dac dorii s cunoatei mai multe despre acest subiect. Jucai-v puin cu grep, deoarece merit efortul i timpul petrecut cu deprinderea acestei puternice comenzi de filtrare. Exerciiile de la sfritul acestui capitol vor fi un bun nceput, consultai aadar Seciunea 5.5.

5.3.2. Filtrarea ieirilor


Comanda sort aranjeaz implicit liniile n ordine alfabetic:

Dar sort poate face multe alte lucruri. Poate spune mrimea fiierului, de exemplu. Cu ajutorul acestei comenzi putei sorta fiierele dup mrime, de la cele mai mici la cele mai mari: ls -la | sort -nk 5 Sintaxa veche Este posibil s obinei acelai rezultat prin folosirea comenzii ls -la | sort +4n, dar este o form veche care nu este conform cu standardele de azi. Comanda sort poate fi folosit n combinaie cu programul uniq (sau sort -u) pentru a sorta ieirile i a filtra intrrile duble:

5.4. Sumar
n acest capitol ai nvat cum putei cupla comenzile i cum ieirea unei comenzi poate fi folosit ca intrare pentru alt comand. Redirecionarea intrrilor/ieirilor este o sarcin obinuit pe sistemele UNIX i Linux. Acest mecanism puternic permite folosirea flexibil a crmizilor, prilor din care este constituit UNIX-ul. 95

Tabelul 5-1. Comenzi noi n Capitolul 5: Redirecionarea I/O

Comanda date set sort uniq

nelesul comenzii Afieaz informaii despre or i dat. Configureaz consola (opiunile acesteia). Sorteaz liniile de text. Exclude duplicatele liniilor dintr-un fiier sortat.

5.5. Exerciii
Exerciiile care urmeaz sunt exemple despre cum putei combina comenzile. Scopul principal este folosirea ct mai redus a tastei Enter. Facei toate exerciiile folosind un cont obinuit i nu fii surprini dac unele comenzi vor returna erori. Cnd le ntlnii, nu uitai s citii paginile man referitoare la comenzile n cauz!

Folosii comanda cut pe ieirea generat de listarea unui director care conine multe fiiere pentru a
afia doar permisiunile asociate fiierelor. Apoi realizai o conexiune cu sort i uniq pentru a filtra orice duplicate. Folosii apoi wc pentru a numra permisiunile diferite din acel director. Trimitei ieirea comenzii date ntr-un fiier. Adugai ieirea comenzii ls acelui fiier. Trimitei acest fiier ctre csua de pot electronic local (nu specificai nici un <@domeniu>, doar numele de utilizator va fi suficient). n cazul n care folosii Bash, vei observa o notificare de mesaj nou n csua local dac ai efectuat corect exerciiul. Listai dispozitivele din /dev care sunt folosite de UID-ul dumneavoastr. Conexai prin less pentru a le viziona cum se cuvine. Introducei urmtoarele comenzi ca utilizator obinuit. Determinai intrarea, ieirea i eroarea standard pentru fiecare comand. cat fiier_inexistent file /sbin/ifconfig grep root /etc/passwd /etc/fiier_inexistent >rezultat_grep /etc/init.d/sshd start > /var/tmp/output /etc/init.d/cron start > /var/tmp/output 2>&1 Verificai rezultatele prin introducerea din nou a acelorai comenzi, redirectnd ieirea standard ctre fiierul /var/tmp/output i erorile standard ctre fiierul /var/tmp/error. Cte procese ruleaz n acest moment pe sistemul dumneavoastr? Cte fiiere ascunse sunt n directorul personal? Folosii locate pentru a gsi documentaia despre kernelul folosit. Spunei ce fiier conine intrarea urmtoare:

i aceasta:

Spunei ce se ntmpl cnd introducei comanda urmtoare:


> time; date >> time; cat < time

Ce comand vei folosi pentru a verifica care script din directorul /etc/init.d pornete un
anume proces? 96

Capitolul 6. Editoare de text


n acest capitol vom discuta importana stpnirii unui editor de text. Ne vom concentra ndeosebi asupra editorului mbuntit vi. Dup terminarea acestui capitol, vei putea s: Deschidei i nchidei fiierele n modul text. Editai fiiere. Cutai n fiierele text. Revenii la starea iniial (repararea erorilor). Alturai fiiere. Recuperai fiiere pierdute. Gsii un program sau suit pentru birou.

6.1. Editoare de text


6.1.1. De ce trebuie s folosesc un editor de text?
Este foarte important s stpnii mcar un editor care lucreaz n modul text. Deprinderea folosirii unui astfel de editor de text este primul pas ctre independen. Va trebui s v obinuii cu un editor pn la nceputul urmtorului capitol, deoarece va fi necesar s editai fiiere care influeneaz mediul sistemului dumneavoastr. Ca utilizatori avansai, poate c vei dori s scriei scripturi sau cri, s dezvoltai saituri web sau programe noi. Stpnirea unui editor va mbunti enorm productivitatea dumneavoastr, laolalt cu abilitile de care dispunei.

6.1.2. Ce editor ar trebui s folosesc?


Vom vorbi mai multe despre editoarele de text, care pot fi folosite pe sisteme care nu dispun de interfa grafic sau a cror interfa grafic nu poate fi accesat, care lucreaz i n ferestrele terminal. Un avantaj n plus care v este asigurat de astfel de editoare este vizibil atunci cnd lucrai la distan, pe alte sisteme. ntruct nu este nevoie s transferai ntregul mediu grafic pe reea, lucrul cu editoarele de text mbuntete substanial viteza reelei. Sunt, ca de obicei, mai multe ci prin care s abordai aceast problem. V prezentm cele mai ntlnite editoare: 6.1.2.1. Emacs GNU Emacs este un editor extensibil, care poate fi personalizat, ce conine documentaia necesar, cu afiare n timp real, cunoscut pe multe sisteme UNIX i non-UNIX. Textul care este editat este vizibil pe ecran i este actualizat automat n timp ce introducei comenzile. Este cu afiare n timp real deoarece ecranul este actualizat foarte frecvent, de regul imediat dup introducerea unui caracter sau a unei perechi de caractere. Acest lucru minimalizeaz cantitatea de informaie pe care trebuie s o reinei n timp ce editai. Este avansat deoarece asigur faciliti care trec de simpla inserare i tergere: controleaz subprocesele; indenteaz automat programele; afieaz dou sau mai multe fiiere deodat; editeaz text formatat; gestioneaz dup caractere, cuvinte, linii, propoziii, paragrafe i pagini, ca i dup expresii i comentarii proprii ctorva limbaje de programare. Documentat nseamn c oricnd tastai anumite caractere, de regul Ctrl+H, vi se prezint opiunile pe care le avei. Poate fi personalizat pentru c putei schimba anumite definiii ale comenzilor Emacs. De exemplu, dac folosii un limbaj de programare n care comentariile ncep cu <** i se termin cu **>, putei spune editorului Emacs s foloseasc aceste iruri (tipare) n comenzile de gestionare ale comentariilor. Alt tip de personalizare este posibilitatea de rearanjare a introducerii comenzilor. De exemplu, dac preferai ca cele patru direcii principale de micare ale cursorului (sus, jos, stnga i dreapta) s fie reprezentate pe tastatur ntr-un model de diamant, putei realoca tastele n acest scop. Extensibil nseamn c putei trece de simpla personalizare ctre scrierea de comenzi n ntregime noi, programe n limbajul Lisp care sunt rulate de propriul interpretor Lisp al Emacs. Emacs este un sistem 97

extensibil n timp real deoarece este divizat n mai multe funcii care pot comunica, fiind posibil redefinirea oricrei funcii chiar n mijlocul unei sesiuni de editare. Aproape orice parte a Emacs poate fi nlocuit fr a fi necesar realizarea unei copii separate a ntregului Emacs. Cele mai multe comenzi de editare ale Emacs sunt scrise deja n Lisp; exist cteva excepii n care comenzi care ar fi putut fi scrise n Lisp au fost scrise n limbajul C pentru eficien. Cu toate c doar un programator poate scrie o extensie, oricine o poate folosi dup ce a fost scris. Cnd ruleaz n interfa grafic X Window System (pornit ca xemacs) Emacs furnizeaz un meniu propriu i dispuneri convenabile ale butoanelor mausului. Dar Emacs asigur multe din beneficiile unei interfee grafice chiar n mediul text. De exemplu, putei afia sau edita mai multe fiiere n acelai timp, putei muta text dintr-un fiier n altele i putei edita fiiere n timp ce rulai comenzi shell.

6.1.2.2. Vi(m) Vim nseamn Vi IMproved - Vi Mbuntit. Era cunoscut drept Vi IMitation - Vi IMitat, dar exist att de multe mbuntiri, nct schimbarea de nume este justificat. Vim este un editor de text care include aproape toate comenzile din programul UNIX vi, precum i multe altele, noi. Comenzile sunt introduse n editorul vi folosind numai tastatura, ceea ce are avantajul c putei ine minile pe tastatur i ochii pe ecran, n loc s v mutai n mod repetat mna pe maus. Pentru cei care nu consider introducerea doar de la tastatur a comenzilor ca fiind un avantaj, pot fi activate att integrarea mausului, ct i o versiune grafic, care asigur meniuri i bar de derulare. Vom face referire la vi sau vim n aceast carte cnd vom vorbi despre editarea fiierelor, dumneavoastr avnd libertatea de a alege orice editor dorii. Totui, noi v recomandm s asimilai mcar noiuni elementare legate de vi, deoarece este editorul standard pe aproape toate sistemele UNIX, Emacs fiind un pachet opional. Pot exista diferene mici ntre diverse calculatoare sau terminale, dar ideea principal este aceea c dac putei lucra cu vi, avei toate ansele s v descurcai cu orice sistem UNIX. n afar de comenzile vim, pachetul vIm poate conine gvim, versiunea Gnome a lui vim. Utilizatorii nceptori l consider mai uor de folosit, deoarece meniurile le ofer ajutor n cazurile n care uit sau nu tiu cum s ndeplineasc o anumit sarcin folosind comenzile standard ale vim.

6.2. Utilizarea editorului Vim


6.2.1. Dou moduri
Editorul vi este o unealt puternic care dispune de un manual cuprinztor, care poate fi activat prin comanda :help cnd programul este pornit (n loc s folosii man sau info, care nu conin att de multe informaii). Vom discuta doar comenzile principale care v permit s ncepei s lucrai cu vim. Ceea ce face ca vi s fie confuz pentru nceptori este faptul c poate opera n dou moduri: modul comand i modul inserare. Modul comand v permite s navigai prin text, s cutai, s nlocuii, s marcai poriuni i s realizai alte sarcini de editare care pot s treac editorul n modul inserare. Acest lucru nseamn c orice tast are nu unul, ci mai degrab dou nelesuri: poate ori s reprezinte o comand a editorului atunci cnd v aflai n modul comand, ori un caracter pe care l dorii inserat n text n cazul n care v aflai n acest mod. Pronunie Se pronun vee-eye.

6.2.2. Comenzile principale


6.2.2.1. Navigarea prin text Navigarea prin text se face, de regul, cu tastele sgei. Dac nu reuii, folosii:

h pentru a muta cursorul ctre stnga


98

l pentru a-l muta ctre dreapta k pentru a-l muta n sus j pentru a-l muta n jos
SHIFT G v va duce la sfritul documentului.

6.2.2.2. Operaii de baz Iat cteva comenzi vi foarte des folosite:

n dd va terge n linii ncepnd din poziia curent a cursorului. n dw va terge n cuvinte din partea dreapt a cursorului. x va terge caracterul asupra cruia este poziionat cursorul. :n v mutai pe linia n a fiierului :w va aplica modificrile va salva (scrie) fiierul. :q vei iei din editor. :q! foreaz ieirea atunci cnd dorii s ieii dintr-un fiier care conine schimbri neaplicate. :wq va aplica modificrile i vei iei din editor. : fiier_nou va salva textul n fiierul fiier_nou. :wq! trece peste permisiunile asociate fiierelor (dac avei, la rndul dumneavoastr, permisiunea s facei acest lucru, de exemplu dac utilizai un cont de root). /air (/astring) va cuta irul n fiier i va poziiona cursorul la prima potrivire gsit, dedesubtul poziiei sale. / va repeta cutarea aceluiai ir, mutnd cursorul la potrivirea urmtoare. :1, $s/cuvnt/alt_cuvnt/g va nlocui cuvnt cu alt_cuvnt n tot fiierul. yy va copia un bloc de text. :recover va recupera un fiier n cazul unei ntreruperi neateptate.

6.2.3. Calea mai uoar


n loc s citii tot textul, un lucru plicticos, putei folosi vimtutor pentru a nva primele comenzi Vim. Este un tutorial de treizeci de minute care v nva cele mai ntlnite comenzi Vim n opt exerciii uoare. Nu putei nva chiar totul despre vim doar ntr-o jumtate de or, dar vei cunoate destul comenzile care v ajut s folosii Vim ca editor de text potrivit tuturor scopurilor. n UNIX i MS Windows, dac Vim este instalat cum trebuie, putei porni programul din consol sau linia de comand, prin introducerea comenzii vimtutor. Ea va face o copie a fiierului tutore, aa c o putei edita fr teama c distrugei originalul. Exist i cteva traduceri ale tutorialului. Pentru a afla dac este disponibil i n limba dumneavoastr, folosii cele dou litere ale codului de limb. Pentru francez, introducei vimtutor fr (dac este instalat n sistem).

6.3. Linux la birou


6.3.1. Istorie
Pe parcursul ultimei decade domeniul biroticii a fost dominat fr tgad de MS Office, i, s recunoatem: formatele Microsoft Word, Excel i PowerPoint sunt standarde ale industriei cu care vei avea de-a face mai devreme sau mai trziu. Aceast situaie n care Microsoft are o poziie monopolist s-a dovedit a fi un mare dezavantaj n atragerea de noi utilizatori ctre Linux, aa c un grup de dezvoltatori germani au nceput proiectul StarOffice, care a fost, i nc este, gndit pentru a deveni o clon a suitei MS Office. Compania lor, StarDivision, a fost achiziionat de Sun Microsystems pe la sfritul anilor 90, chiar nainte de lansarea versiunii 5.2. Sun continu dezvoltarea, dar restrnge accesul la surse. ns dezvoltarea setului original de 99

surse este continuat de comunitatea Sursei deschise (Open Source community), care a trebuit s redenumeasc proiectul OpenOffice. OpenOffice este disponibil acum pentru mai multe platforme, inclusiv pentru MS Windows, Linux, MacOS i Solaris. V-am prezentat o imagine n Seciunea 1.3.2. Aproape simultan, alte proiecte cunoscute acum, au fost demarate. O alternativ apreciat este Koffice, suita de birou care este foarte popular printre utilizatorii distribuiei SuSE. La fel cu originalul, aceast clon ncorporeaz programe compatibile cu MS Word i Excel i multe altele. Proiecte mai mici sunt destinate unor programe particulare ale suitei MS Office, precum Abiword i MS Wordview pentru compatibilitatea cu documentele MS Word i Gnumeric pentru vizualizarea i crearea foilor de calcul compatibile cu Excel.

6.3.2. Suite i programe


Distribuiile curente vin cu toate uneltele necesare. ntruct acestea asigur o documentaie excelent, indexat pentru cutri n meniurile de ajutor, nu le vom discuta n detaliu. Consultai aadar documentaia sistemului sau saiturile proiectelor, precum:

http://www.openoffice.org/ http://www.koffice.org/ Freshmeat i Sourceforge pentru alte proiecte. 6.3.3. Remarci


6.3.3.1. Utilizarea general a documentelor de birou ncercai s limitai folosirea documentelor de birou la scopurile pentru care au fost create: biroul. Iat un exemplu: dac trimitei un mail care spune cam aa: Salut, vreau s v spun ceva, vezi ataamentul, iar ataamentul se dovedete a fi un document compatibil MS Word precum: Salut, prieteni, cum merge treaba la noul loc de munc? Avei timp pentru a lua prnzul mpreun mine? este tocmai ceea ce trebuie ca un utilizator de Linux s devin extrem de furios. De asemenea este o idee proast s ataai semntura dumneavoastr unui astfel de fiier. Dac dorii s semnai mesajele sau fiierele, folosii GPG, GNU Privacy Guard compatibil PGP sau certificate SSL (Secure Socket Layer). Aceti utilizatori nu sunt furioi pentru c nu pot citi aceste documente sau pentru c sunt ngrijorai deoarece aceste formate genereaz, de regul, fiiere mai mari, ci pentru c trebuie s foloseasc MS Windows sau pentru c trebuie s porneasc alte programe.

6.3.3.2. Fiierele de configurare ale sistemului i ale utilizatorilor. n capitolul care urmeaz vei ncepe s configurai mediul sistemului dumneavoastr i acest lucru include editarea a tot felul de fiiere care determin modul n care se comport programele. Nu editai aceste fiiere cu nici un component al suitelor de birou! Specificaiile formatului implicit al fiierelor vor determina programul s adauge cteva linii de cod, care definesc formatul fiierului i fonturile utilizate. Aceste linii nu vor fi interpretate corect de ctre programele de care depind, genernd astfel erori sau blocri ale programului care citete aceste fiiere. n anumite cazuri, putei salva fiierul ca text simplu, dar vei avea probleme dac acest lucru devine un obicei.

6.3.3.3. Dar eu doresc un editor grafic de text! Dac insistai, ncercai gedit, kedit, kwrite sau xedit; aceste programe sunt doar pentru fiiere text, exact ceea ce avei nevoie. Dac ns dorii s facei ceva serios, atunci oprii-v la un editor propriu modului text, precum vim sau Emacs. O alternativ acceptabil este gvim, versiunea Gnome a lui vim. Tot va trebui s folosii comenzile vim, dar dac ntmpinai dificulti, aceste comenzi sunt disponibile prin meniuri.

100

6.4. Sumar
n acest capitol ai nvat cum s folosii un editor. Cu toate c preferinele individuale primeaz n alegerea editorului de text, este necesar s cunoatei cum se folosete cel puin un editor de text. Editorul vi este disponibil pe orice sistem UNIX. Cele mai multe distribuii Linux includ o suit pentru birou i un editor grafic de text.

6.5. Exerciii
Acest capitol are doar un exerciiu: pornii tutorialul Vim prin introducerea comenzii vimtutor ntr-o sesiune terminal i parcurgei-l. Putei porni, alternativ, emacs i tastai Ctrl + H pentru a lansa tutorialul propriu al Emacs. Practica este singura cale!

101

Capitolul 7. Home sweet /home


Acest capitol trateaz configurarea mediului dumneavoastr de lucru. Acum, pentru c tii cum se folosete un editor, putei modifica tot felul de fiiere pentru a v simi mai bine acas. Dup terminarea acestui capitol, vei ti mai multe despre:

Organizarea mediului dumneavoastr Fiierele comune de configurare ale consolei Configurarea consolei Configurarea prompterului Configurarea mediului grafic Aplicaii legate de sunet i video Administratorii de ecran i ferestre Cum lucreaz sistemul X client-server Opiunile de configurare pentru limb i fonturi Instalarea de programe noi Actualizarea pachetelor existente

7.1. Pstrarea ordinii i cureniei


7.1.1. Introducere
Dup cum am mai artat, este foarte uor s aducei dezordine n sistem. Nu vom putea sublinia ndeajuns necesitatea pstrrii cureniei n sistem. Dac nvai acest lucru de la nceput, vei cpta o deprindere folositoare care v va economisi timp n cazul n care vei programa pe sisteme Linux sau UNIX sau n cazurile n care va trebui s executai sarcini care in de gestionarea sistemului. V prezentm cteva ci prin care putei s v uurai munca:

Creai un director bin pentru fiierele programelor dumneavoastr i pentru scripturi. Organizai fiierele ne-executabile n directoare potrivite i facei ct de multe directoare
credei de cuviin. Exemplele includ directoare separate pentru imagini, documente, proiecte, fiiere descrcate de pe web, foi de calcul, fiiere personale, i aa mai departe. Restrngei permisiunile alocate directoarelor. Comanda chmod 700 nume_director v ajut n acest sens. Numii sugestiv fiierele, precum Plngere ctre primul-ministru 050302, n loc de scrisoare1.

7.1.2 Facei loc


Pe anumite sisteme, programul quota v foreaz s tergei date de pe disc din timp n timp sau limitele fizice ale discului fix v determin s eliberai spaiu chiar dac nu rulai nici un program de monitorizare. Aceast seciune v prezint cteva moduri n care putei face rost de spaiu pe disc, altele dect comanda rm. Introducei comanda quota -v pentru a afia spaiul disponibil pe discul fix.

7.1.2.1. Golirea fiierelor Cteodat, coninutul unui fiier mai prezint interes, dar dorii s pstrai numele acelui fiier ca marker (de exemplu, avei nevoie doar de data i ora la care a fost creat fiierul respectiv, dorii s tii c acel fiier a existat sau poate c avei nevoie de acesta n viitor). Redirecionarea ieirii unei comenzi nule este metoda prin care golii un fiier n consolele Bourne i Bash:

102

Procesul prin care se reduce un fiier existent la un fiier cu acelai nume dar care conine 0 octei este numit trunchiere. Pentru a crea un fiier nou, gol, acelai efect l obinei prin comanda touch. n cazul unui fiier existent, comanda touch va actualiza doar data i ora la care a fost creat. Consultai paginile Info ale comenzii touch pentru mai multe detalii. Pentru a goli parial un fiier utilizai comanda tail. S presupunem c lista de dorine a utilizatorului andi devine din ce n ce mai lung pentru c el adaug noi dorine dar nu terge niciodat lucrurile pe care le-a obinut. Acum dorete s pstreze doar ultimele cinci poziii:

7.1.2.2. Mai multe despre fiierele jurnal Anumite programe din Linux in mori s scrie tot felul de date ntr-un fiier jurnal. De regul sunt configurate s scrie doar erorile sau o cantitate minim de informaii, cum ar fi revenirea dintr-o eroare. Chiar i n aceste condiii, informaiile coninute pot fi neinteresante pentru dumneavoastr. V prezentm cteva metode prin care putei scpa de aceste fiiere jurnal sau, cel puin, limita mrimea lor:

ncercai s tergei fiierele jurnal atunci cnd programul nu ruleaz, dac suntei sigur c nu v
trebuie. Unele programe, atunci cnd sunt repornite, constat lipsa fiierului jurnal i nu vor mai scrie date jurnaliere. Dac tergei fiierul jurnal iar programul l recreeaz, citii documentaia acelui program pentru a identifica opiunea care spune programului s nu mai creeze fiiere jurnal. ncercai s realizai fiiere jurnal mai mici, prin configurarea scrierii informaiilor care sunt relevante pentru dumneavoastr sau a celor cu adevrat importante. ncercai nlocuirea fiierelor jurnal cu legturi simbolice ctre /dev/null; dac avei noroc, programul nu se va plnge. Nu facei acest lucru pentru programele care ruleaz la pornirea sistemului sau a programelor care sunt rulate prin cron (consultai Capitolul 4). Aceste programe pot nlocui legtura simbolic cu un fiier mic, dar care va ncepe s creasc n timp.

7.1.2.3. Pota electronic Curai cu regularitate csua de pot electronic (mailbox), creai subdirectoare i redirectai automat folosind procmail (consultai paginile Info) sau filtrele programului dumneavoastr favorit de citire a mesajelor de pot electronic. Dac avei un director pentru coul de gunoi, golii-l regulat. Pentru redirecionarea mesajelor folosii fiierul .forward din directorul personal. Serviciul de pot electronic al Linux-ului caut acest fiier de fiecare dat cnd trebuie s livreze mesaje. Coninutul fiierului spune serviciului de pot electronic ce s fac cu mesajele dumneavoastr. Poate conine o singur linie care definete o adres de E-mail valid. n acest caz, sistemul va trimite toate mesajele la aceast adres. De exemplu, cnd nchiriai spaiu pentru un sait web, pentru a nu irosi spaiu pe disc, putei redireciona mesajele de pot electronic adresate webmaster-ului ctre contul dumneavoastr. n acest caz, directorul .forward poate arta precum urmtorul exemplu:

103

Folosirea redirecionrii mesajelor este util i atunci cnd avei mai multe adrese de pot electronic, evitnd n acest mod verificarea pe rnd a tuturor acestor adrese. Putei face ca fiecare adres s nainteze mesajele ctre un singur cont centralizator, uor accesibil. Putei cere administratorului de sistem s defineasc o redirecionare n fiierul local de mail, n acelai mod n care un cont este nchis dar E-mail-ul rmne activ pentru un timp.

7.1.2.4. Economisii spaiu cu o legtur Atunci cnd mai muli utilizatori au nevoie de acelai fiier sau program, cnd numele fiierului original este prea lung sau greu de inut minte, folosii o legtur simbolic n loc de o copie separat pentru fiecare utilizator sau scop. Legturi simbolice multiple pot avea nume diferite, de exemplu o legtur se poate numi

fiierul_meu ntr-un director personal al unui utilizator i legtura_mea n altul. Legturi multiple (cu
nume diferite) ctre acelai fiier pot exista chiar n acelai director. Acest lucru se ntmpl n directorul /lib: dac introducei comanda ls -l /lib vei observa c directorul este plin de legturi care intesc ctre acelai fiier. Ele sunt create pentru ca programele care caut un nume s nu nghee, ele fiind direcionate ctre numele corect/curent al librriilor de care au nevoie.

7.1.2.5. Limitarea mrimii fiierelor Consola dispune de o comand proprie prin care putei limita mrimea fiierelor, ulimit, care poate fi folosit i la afiarea limitrilor resurselor sistemului:

Cindy nu este dezvoltatoare de programe i nu-i pas de fiierele care conin informaii pentru depanarea programelor (core dumps). Dac dorii s beneficiai de informaiile coninute de aceste fiiere, putei stabili mrimea lor prin comanda ulimit. Citii paginile Info ale consolei (bash) pentru explicaii detaliate. Fiiere de depanare? Un fiier de depanare sau renunare (core file, core dump) este un fiier generat atunci cnd ceva nu merge aa cum ar trebui n timpul executrii unui program. El conine o copie a memoriei sistemului, aa cum era n momentul n care a aprut eroarea.

7.1.2.6. Fiiere comprimate Fiierele comprimate sunt folositoare deoarece ele ocup mai puin spaiu pe discul fix. Alt avantaj este acela c aceste fiiere ocup necesit o lime de band mai mic n cazurile n care sunt transferate pe reea. Multe fiiere, inclusiv paginile de manuale, sunt stocate ntr-un format comprimat n sistemul dumneavoastr. ns despachetarea acestora pentru a consulta informaiile i comprimarea lor din nou sunt aciuni care consum timp. Nu dorii s despachetai o pagin de manual, pentru a citi despre opiunea unei comenzi, apoi s comprimai din nou pagina man respectiv. Cei mai muli oameni vor uita probabil s fac curenie dup ce gsesc informaiile de care au nevoie. 104

Exist ns unelte care acioneaz asupra fiierelor comprimate, despachetndu-le doar n memorie. Fiierul comprimat de pe discul fix nu este modificat. Cele mai multe sisteme pot lucra cu zgrep, zcat, bzless i ali membrii ai familiei z pentru prevenirea decomprimrilor i comprimrilor inutile. Consultai directorul binar al sistemului i paginile Info. Capitolul 9 trateaz comprimarea fiierelor i v ofer exemple despre construirea arhivelor.

7.2. Mediul dumneavoastr text


7.2.1 Variabilele de mediu
7.2.1.1. Generaliti Am prezentat deja cteva variabile de mediu, precum PATH i HOME. Pn la acest moment, am prezentat exemple n care aceste variabile serveau anumitor scopuri ale consolei. ns exist alte utiliti ale Linux-ului care solicit informaii despre dumneavoastr pentru a-i face treaba. Ce alte informaii solicit programele, n afar de cele coninute de directoarele variabilei path i home? Multe programe au nevoie s cunoasc ce fel de terminal folosii; aceast informaie este stocat n variabila TERM. n modul text, este vorba despre emulatorul de terminal linux, n mediul grafic probabil c vei folosi xterm. Multe programe vor s cunoasc care este editorul dumneavoastr favorit, n cazul n care trebuie s porneasc un editor solicitat de un anume subproces. Consola pe care o folosii este stocat n variabila SHELL, tipul sistemului de operare n OS, i aa mai departe. O list a tuturor variabilelor definite pentru sesiunea dumneavoastr curent poate fi obinut prin introducerea comenzii printenv. Variabilele de mediu sunt gestionate de consol. n opoziie cu variabilele obinuite ale consolei, variabilele de mediu sunt motenite de oricare program pe care l pornii, inclusiv o alt consol. O copie a acestor variabile este furnizat noilor procese, pe care o pot citi, modifica i transmite proceselor pe care ele le genereaz (procese-copil). Nu este nimic special n numele variabilelor, cu excepia faptului c exist convenia potrivit creia cele comune sunt scrise cu litere mari. Putei scorni orice nume, dei exist i variabile standard care sunt destul de importante pentru a se regsi pe orice sistem Linux, precum PATH i HOME.

7.2.1.2. Exportarea variabilelor Coninutul unei variabile individuale poate fi afiat prin comanda echo:

Dac dorii s schimbai coninutul unei variabile pentru a folosi celorlalte programe, trebuie s exportai noile valori din mediul dumneavoastr n mediul n care ruleaz acele programe. Un exemplu des ntlnit este exportarea variabilei PATH. Pentru a putea folosi n condiii optime simulatorul de zbor care se gsete n /opt/FlightGear/bin trebuie s declarai urmtoarele:

Aceast linie d instruciuni consolei s caute nu doar n variabila curent, $PATH, ci i n directorul /opt/FlightGear/bin. Totui, att timp ct noua valoare a variabilei PATH nu este cunoscut mediului, programele nu vor lucra:

105

Exportarea variabilelor se face prin comanda proprie consolei export:

n consola Bash, putei face acest lucru ntr-un singur pas: export VARIABLE=value Aceeai tehnic o putei folosi n cazul variabilei MANPATH, care spune comenzii man unde s caute pentru paginile arhivate man. Dac adugai noi programe sistemului n directoare noi sau nepotrivite, documentaia acestuia se poate gsi tot n aceste directoare. Dac dorii s citii paginile de manual ale acestor programe, extindei variabila MANPATH:

Putei evita reintroducerea acestei comenzi n fiecare fereastr pe care o deschidei prin adugarea ei unui fiier de configurare a consolei, consultai Seciunea 7.2.2.

7.2.1.3. Variabile rezervate Tabelul urmtor trece n revist cele mai ntlnite variabile predefinite:
Tabelul 7-1. Variabile comune de mediu

Numele variabilei

Informaia stocat Folosit de sistemul X Window pentru identificarea serverului grafic Numele domeniului Stocheaz editorul dumneavoastr favorit Dimensiunea fiierului arhiv al consolei, n numr de linii Traseul ctre directorul dumneavoastr personal Numele gazdei (calculatorului) Localizarea fiierului de definire a dispozitivelor de intrare, precum tastatura Limba preferat Traseul de cutare a librriilor Numele de autentificare Localizarea directorului de pot electronic Traseul de cutare a paginilor de manuale ir care descrie sistemul de operare Mai multe informaii despre versiune, etc Folosit de programe ca man care au nevoie s tie ce trebuie s fac n cazul n care ieirea generat este adresat la mai mult de o fereastr terminal Caut traseele comenzilor Prompterul primar Prompterul secundar Directorul de lucru curent

DISPLAY DOMAIN EDITOR HISTSIZE HOME HOSTNAME INPUTRC LANG LD_LIBRARY_PATH LOGNAME MAIL MANPATH OS OSTYPE PAGER PATH PS1 PS2 PWD

106

SHELL TERM UID USER (NAME) VIZUAL XENVIRONEMENT XFILESEARCHPATH

Consola curent Tipul de terminal Identitatea utilizatorului Numele utilizatorului Editorul dumneavoastr favorit n modul full-screen Localizarea configurrilor personale ale comportamentului serverului X Traseele de cutare ale librriilor grafice

Multe alte variabile nu sunt doar predefinite, ci i preconfigurate, prin fiierele de configurare. Le vom discuta n seciunea urmtoare.

7.2.2. Fiierele de configurare ale consolei


Atunci cnd introducei comanda ls -al pentru a obine lista lung (cuprinztoare) a tuturor fiierelor, inclusiv a celor care ncep cu un punct, din directorul dumneavoastr personal, vei observa unul sau mai multe fiiere care ncep cu un punct (.) i se termin n rc. n cazul consolei bash acesta este .bashrc. Acest fiier este oglinda fiierului de configurare lrgit a sistemului /etc/bashrc. La autentificarea ntr-o consol interactiv, login va realiza autentificarea, va configura mediul i va porni consola. n cazul bash, pasul urmtor este citirea profilului general profile din /etc, dac acest fiier exist. bash caut apoi fiierele ~/.bash_profile, ~/.bash_login i ~/.profile, n aceast ordine, i citete i execut comenzile din primul fiier care le conine, dac sunt valide. Dac ele nu exist n nici un fiier, se aplic cele din /etc/bashrc. Cnd consola primete comanda de ieire, bash citete i execut comenzile din fiierul

~/.bash_logout, dac exist.


Procedura este explicat n detaliu n paginile man ale login i bash.

7.2.3. nfiarea tipic a fiierelor de configurare


7.2.3.1. Exemplul /etc/profile Vom arunca o privire n cele ce urmeaz asupra ctorva dintre aceste fiiere de configurare. Primul este citit /etc/profile, n care sunt configurate variabile importante precum PATH, USER i HOSTNAME:

107

Aceste linii marcheaz configurarea traseelor: dac root deschide o consol (ID-ul de utilizator 0), se verific dac /sbin, /usr/sbin i /usr/local/sbin sunt n variabila PATH. Dac nu, ele sunt adugate. Pentru orice utilizator se verific dac /usr/X11R6/bin se regsete n trasee.

Tot gunoiul merge ctre /dev/null dac utilizatorul nu schimb aceast cale.

Aici le sunt alocate variabilelor generale valorile potrivite.

Dac variabila INPUTRC nu este configurat i nu exist nici un fiier .inputrc n directorul personal al utilizatorului, este ncrcat fiierul implicit de control.

Toate variabilele sunt exportate, pentru a fi disponibile programelor care au nevoie de informaii despre mediul dumneavoastr.

7.2.3.2. Directorul profile.d

Toate scripturile shell valide din directorul /etc/profile.d sunt citite i executate. Ele fac lucruri precum activarea color-ls, atribuirea aliasului vi lui vim, configurarea localizrii, i altele. Variabila temporar i nu este luat n considerare pentru a preveni alterarea comportamentului consolei.

7.2.3.3. Exemplul .bash_profile Apoi bash caut n directorul personal al utilizatorului fiierul .bash_profile:

Acest fiier de direcionare d instruciuni consolei s citeasc prima dat ~/.bashrc i apoi ~/.bash_login. Vei ntlni comanda proprie consolei source cu regularitate dac lucrai n mediul consolei: este folosit la modificarea configuraiei mediului curent. 108

7.2.3.4. Exemplul .bash_login Fiierul ~/.bash_login definete nivelul implicit de protecie prin configurarea valorii umask, consultai Seciunea 3.4.2.2. Fiierul ~/.bashrc este folosit pentru definirea mai multor aliasuri i funcii specifice utilizatorului precum i a variabilelor personale de mediu. Este citit n primul rnd /etc/bashrc, care descrie prompterul implicit (PS1) i valoarea implicit umask. Dup aceasta putei aduga propriile configurri. Dac nu exist fiierul ~/.bashrc, este citit implicit /etc/bashrc.

7.2.3.5. Exemplul /etc/bashrc Fiierul dumneavoastr /etc/bashrc ar putea arta precum acesta:

Aceste linii configureaz valoarea umask. Apoi, n funcie de tipul consolei pe care o folosii, este configurat prompterul:

7.2.3.6. Exemplul .bash_logout La deautentificare, sunt executate comenzile din ~/.bash_logout, care pot, de exemplu, cura terminalul, pentru ca dumneavoastr s avei o fereastr goal la ieirea dintr-o sesiune la distan sau la prsirea consolei sistemului: 109

Modul n care lucreaz aceste scripturi v este prezentat n seciunea care urmeaz. Trebuie s v spunem c vei avea nevoie de comanda info bash.

7.2.4. Prompterul Bash


7.2.4.1. Introducere Prompterul Bash poate face mai multe lucruri dect s afieze informaiile simple ca numele de utilizator, numele calculatorului i indicaiile despre directorul de lucru curent. Putei aduga alte informaii, precum data i ora curent, numrul utilizatorilor autentificai, etc. nainte de a ncepe, totui, facei o copie de rezerv a prompterului curent ntr-alt variabil de mediu:

n cazul n care schimbai prompterul, de exemplu prin comanda PS1=->, putei recpta oricnd prompterul original dac introducei comanda PS1=$MYPROMPT. l vei avea napoi, de asemenea, la reautentificare, att timp ct v-ai jucat cu prompterul doar n linia de comand, evitnd scrierea lui ntr-un fiier de configurare al consolei.

7.2.4.2. Cteva exemple Pentru a nelege aceste promptere i secvena de ieire folosit, apelai la paginile Info sau man.

export PS1=[\t \j] Afieaz ora i numrul sarcinilor care ruleaz. export PS1=[\d] [\u@\h \w] : Afieaz data, numele utilizatorului, al calculatorului i directorul curent de lucru. Opiunea \W afieaz doar numele de baz al directorului curent. export PS1="{\!} " Afieaz date despre folosirea fiecrei comenzi. export PS1="\[\033[1;35m\]\u@\h\[\033[0m\] " Afieaz irul care conine numele utilizatorului i cel al calculatorului n roz. export PS1="\[\033[1;35m\]\u\[\033[0m\] \[\033[1;34m\]\w\[\033[0m\] " Afieaz numele utilizatorului n roz i directorul de lucru curent n albastru. export PS1="\[\033[1;35m\]\u\[\033[0m\] \[\033[1;34m\]\w\[\033[0m\] " Prompter pentru persoanele care au dificulti n remarcarea diferenelor dintre prompter i textul introdus de la tastatur. export PS1="\[\033[4;34m\]\u@\h \w \[\033[0m\]" Prompter subliniat. export PS1="\[\033[7;34m\]\u@\h \w \[\033[0m\] " Caractere albe pe fundal albastru.
110

export PS1="\[\033[3;35m\]\u@\h \w \[\033[0m\]\a"


Prompter roz care i schimb strlucirea pentru a v ateniona despre terminarea comenzii.

export PS1=...
Variabilele trebuie exportate, pentru ca mediul de lucru s fie cunoscut de comenzile ce vor fi executate. Dac dorii s pstrai o configuraie particular a prompterului, cel mai bine este ca aceast configuraie s fie pus n fiierul de configurare al consolei, ~/.bashrc. Dac dorii, prompterele pot executa scripturi shell i se pot comporta diferit n condiii deosebite. Putei configura prompterul s cnte o melodie de fiecare dat cnd introducei o comand, chestie de care ns v vei plictisi repede...Mai multe informaii pot fi gsite n Bash-Prompt HOWTO.

7.2.5. Scripturi shell


7.2.5.1. Ce sunt scripturile? Un script shell este, dup cum ai observat din exemplele care tratau configurarea consolei, un fiier text care conine comenzi pentru aceasta. Cnd este folosit un asemenea fiier ca prim argument fr opiuni ce invoc Bash i nu sunt prezente nici opiunile -c sau -s, Bash citete i execut comenzile din fiier i apoi se nchide. Acest mod de operare creeaz o consol non-interactiv. Cnd Bash ruleaz un script de shell, asociaz parametrul special 0 numelui de fiier, n detrimentul numelui consolei, iar parametrul de poziionare (tot ceea ce urmeaz numelui scriptului) este asociat argumentelor disponibile, dac sunt furnizate. Dac nu sunt furnizate argumente adiionale, parametrii de poziionare rmn nestabilii. Un script de shell poate fi fcut executabil folosind comanda chmod care determin luarea n considerare a bit-ului care marcheaz scriptul ca executabil. Atunci cnd Bash gsete un astfel de fiier n timp ce caut comenzi n PATH, deschide o subconsol pentru rularea acestuia. Cu alte cuvinte, executarea nume_fiier ARGUMENTE este echivalent cu executarea bash nume_fiier ARGUMENTE dac nume_fiier este un script shell executabil. Aceast subconsol se reiniializeaz, astfel c efectul este acelai cu invocarea unei noi console care s interpreteze scriptul, cu excepia c localizarea comenzilor executate de consola printe este reinut i de consola copil (citii despre hash n paginile Info). Cele mai multe versiuni de UNIX includ acest lucru n mecanismul de executare a comenzilor propriu sistemului de operare. Dac prima linie a unui script ncepe cu dou caractere #!, restul liniei specific interpretorul acelui program. Astfel, putei specifica bash, awk, perl sau alt interpretor sau consol i putei scrie restul scriptului n acel limbaj de programare. Argumentele pentru interpretor constau de fapt ntr-un singur argument opional poziionat dup numele interpretorului, n prima linie a scriptului, urmat de restul argumentelor. Bash realizeaz aceste aciuni pe sistemele care nu gestioneaz ele nsele acest gen de activiti. Scripturile Bash ncep, de regul, cu

(presupunem aici c Bash este instalat n /bin), deoarece aceast expresie spune c acel script va fi interpretat de Bash, chiar dac este executat ntr-o alt consol.

7.2.5.2. Cteva exemple simple Iat un script foarte simplu, care const ntr-o singur comand, care spune hello utilizatorului care-l execut:

111

Se observ c scriptul conine doar comanda echo, care folosete valoarea variabilei de mediu ($)

USER pentru a afia un ir personalizat pentru fiecare utilizator care l ruleaz.


V prezentm un altul, tot de o singur linie, folosit pentru afiarea utilizatorilor autentificai:

Mai jos este un script care conine mai multe linii folosit pentru realizarea de copii ale tuturor fiierelor dintr-un director. Scriptul listeaz mai nti toate fiierele din directorul curent i pune aceast list n variabila LIST. Apoi stabilete numele copiei fiecrui fiier, copiind n cele din urm fiierele. Este afiat un mesaj pentru fiecare fiier prelucrat:

Prin simpla introducere a unei linii ca mv **.old nu vei obine nici un rezultat, lucru uor de verificat pe cteva fiiere de test. Comanda echo a fost adugat pentru afiarea desfurrii activitilor. echo este folositoare n general n cazurile n care un script nu lucreaz cum trebuie: introducei cte una dup fiecare pas despre care avei dubii i vei afla eroarea imediat. Directorul /etc/rc.d/init.d conine multe exemple de scripturi. V prezentm pe acela care controleaz serverul fictiv ICanSeeYou:

112

n primul rnd, prin comanda . (punct) sunt ncrcate anumite funcii ale consolei, folosite de aproape fiecare script din /etc/rc.d/init.d. Apoi este executat comanda case, care definete patru moduri n care poate fi executat scriptul. Unul dintre acestea poate fi ICanSeeYou start. Alegerea unuia din aceste moduri se face prin citirea argumentului (prim) al scriptului, cu expresia $1. Dac nu se regsete nici o intrare, este aplicat cazul implicit, cel marcat cu un asterisc, situaie n care scriptul genereaz un mesaj de eroare. Listarea case este ncheiat cu declaraia esac. n cazul start programul este pornit ca serviciu, fiindu-i alocat un ID de proces i blocat (ncuiat). n cazul stop, procesul care a fost pornit este cutat i oprit, nlturndu-se blocajul (ncuietoarea) i PID-ul. Opiunile, ca, de exemplu, opiunea daemon i funciile, ca, de exemplu, killproc, sunt definite n fiierul /etc/rc.d/init.d/functions. Configuraia prezentat este specific distribuiei alese pentru acest exemplu. Scripturile rulate la iniierea sistemului dumneavoastr pot folosi alte funcii, definite n alte fiiere, sau nici unul. Scriptul returneaz codul de ieire 0 ctre printele su dac a rulat fr probleme. Acest script este un exemplu foarte bun n privina folosirii funciilor, care fac ca scriptul s fie citit mai uor, munca fiind terminat mai repede. Observai c a fost folosit sh n loc de bash, pentru ca acest script s fie folositor pe mai multe sisteme. ntr-un sistem Linux, rularea bash ca sh are ca rezultat o consol care lucreaz n modul compatibil POSIX. Paginile de manuale referitoare la bash conin multe informaii despre combinarea comenzilor, ciclurile for- i while- i expresiile regulate, precum i exemple. Un curs de baz despre Bash, pentru administratorii de sisteme i utilizatori care doresc mai multe puteri n relaia cu sistemul, scris de autoarea prezentului ghid, poate fi gsit la http://tille.garrels.be/training/bash/. Descrieri detaliate ale facilitilor Bash i aplicaii ale acestora putei gsi n ghidul Advanced Bash Scripting.

7.3. Mediul grafic


7.3.1. Introducere
Utilizatorului de nivel mediu poate s nu-i pese foarte mult de configurrile mediului de lucru, dar Linux-ul ofer o varietate nsemnat de ferestre i administratori ai spaiului de lucru (desktop managers) care sunt folosii n mediul X, mediul grafic. Folosirea i configurarea gestionarelor de ferestre i a spaiilor de lucru este direct i poate fi asemntoare cu spaiile de lucru standard MS Windows, Apple sau UNIX CDE, dei muli utilizatori de Linux prefer spaii de lucru i administratori de ferestre mai elaborai. Nu vom discuta aici configurrile specifice utilizatorilor. Dumneavoastr putei experimenta dup citirea documentaiei, folosind funciile integrate de ajutor care sunt integrate n aceste gestionare i v asigurm c v vei descurca de minune. Totui, noi v vom prezenta sistemul n linii generale.

7.3.2. Sistemul X Window


Sistemul X Window este un sistem de tip client-server care ruleaz pe o gam larg de calculatoare i dispozitive grafice. Serverul X Window ruleaz pe calculatoare cu grafic tip hart de pixeli (imagine raster bitmap). Serverul X distribuie intrrile de la utilizatori i accept solicitrile ieirilor generate de mai multe programe client prin mai multe canale de comunicaie interprocese. Dei cazul cel mai des ntlnit este acela n care programele client ruleaz pe aceleai calculatoare cu serverul, ele pot rula foarte bine i pe alte calculatoare (inclusiv calculatoare cu arhitecturi i sisteme de operare diferite). Vom prezenta aceste aspecte n Capitolul 10, n care tratm reele i aplicaii la distan. Sistemul X integreaz suprapunerea ierarhic a sub-ferestrelor, operaiilor text i grafice, att n sistemele monocrome ct i n cele color. Numrul programelor client X care folosesc serverul grafic X este foarte mare. Iat cteva din programele furnizate ca parte a distribuiei Consoriului X:

xterm: un emulator de terminal twm: un gestionar de ferestre minimalist xdm: administrator de ecran xconsole: un program de redirectare a consolei bitmap: editor pentru harta de pixeli

113

xauth, xhost i iceauth: programe pentru controlul accesului xset, xmodmap precum i altele de acest tip: programe pentru configurri personale xclock: un ceas xlsfonts i altele: un afior de fonturi, utiliti care listeaz informaii despre fonturi, ferestre i ecrane xfs: server pentru fonturi ...

V ndrumm din nou ctre paginile de manuale ale acestor comenzi pentru informaii detaliate. Mai multe explicaii asupra funciilor disponibile putei gsi n manualul coninut de distribuia dumneavoastr X, Xlib C language X Interface , n specificaiile protocolului Sistemului de ferestre X i n alte manuale ale componentelor acestui sistem grafic. Directorul /usr/share/doc conine documentaie asupra acestui subiect. Multe alte progrmele, administratori de ferestre, jocuri, unelte i altele sunt incluse n distribuiile Consoriului X ca programe realizate de utilizatori contributori sau se gsesc pe saiturile anonime FTP. Locuri n care putei ncepe cutrile sunt http://www.x.org i http://www.xfree.org. Mai mult, toate aplicaiile dumneavoastr grafice, precum navigatorul de internet, programul de pot electronic, programul de vizualizare a fotografiilor, uneltele pentru redarea sunetului i aa mai departe, sunt clieni ai serverului X. n cazul unei utilizri obinuite a modului grafic, clienii X i serverul X se afl pe acelai calculator.

7.3.2.1. Numele ecranelor Din punctul de vedere al utilizatorului, fiecare server X are un nume de ecran n forma: gazd: numrul afiajului.numrul ecranului Aceast informaie este folosit de aplicaii pentru determinarea modului n care se conecteaz la serverul X i ce ecran vor folosi implicit (pe sistemele cu mai multe monitoare):

numele gazdei: numele gazdei este numele calculatorului client la care ecranul este conectat fizic.
Dac acest nume nu este dat, este folosit cea mai eficient modalitate de comunicare cu un serviciu de pe acelai calculator. numrul afiajului: cuvntul afiaj este folosit pentru a descrie un grup de monitoare care mpart aceeai tastatur i dispozitive indicatoare (maus, tablet, etc.). Cele mai multe staii de lucru au, n mod normal, o singur tastatur i un singur monitor. Sistemele mai mari, multi-utilizatori, au totui mai multe afiaje, pentru ca lucrul n modul grafic s fie posibil pentru mai multe persoane. Pentru evitarea situaiilor confuze, fiecare afiaj al acestui tip sistem are asociat un numr de afiaj (care ncepe cu 0) la pornirea serverului X. Numrul afiajului trebuie s fie mereu prezent n numele acestuia. numrul de ecran: anumite afiaje mpart o singur tastatur i un singur dispozitiv indicator la dou sau mai multe monitoare. ntruct fiecare dintre ele are propriul set de ferestre, fiecrui ecran i este dat un numr de ecran (care pornete de la 0) n momentul pornirii serviciului grafic. Dac acest numr nu este alocat, va fi folosit afiajul 0.

Pe sistemele POSIX, numele ecranului implicit este stocat n variabila de mediu DISPLAY. Aceast variabil este configurat automat de ctre emulatorul de terminal xterm. n cazul conectrii la alt calculator, prin reea, poate fi necesar s configurai aceast variabil manual pentru a indica afiajul dumneavoastr, consultai Seciunea 10.4.3.2. Mai multe informaii pot fi gsite n paginile de manual ale serverului X.

7.3.2.2. Administratorii de ferestre i de ecran Afiarea ferestrelor pe ecranul monitorului este controlat de programe speciale, numite administratori de ferestre. Dei muli administratori de ferestre se vor descurca cu specificaiile geometrice existente, alii pot ignora aceste specificaii (ele vor solicita utilizatorului desenarea explicit a regiunii ferestrei pe ecran, folosind un dispozitiv indicator, de exemplu). 114

ntruct administratorii de ferestre sunt, n general (dei complexe), programe client, pot fi construite numeroase interfee cu utilizatorul. Distribuia Consoriului X conine un administrator de ferestre numit twm, dar muli utilizatori prefer ceva mai sofisticat, atunci cnd configuraia sistemelor permite acest lucru. Sawfish i Enlightenment sunt exemple apreciate, care permit fiecrui utilizator s dispun de un spaiu de lucru n concordan cu stilul i personalitatea sa. Un administrator de ecran (spaiu de lucru) folosete un administrator de ferestre pentru a aranja spaiul de lucru grafic ntr-un mod convenabil, cu bare de meniu, meniuri contextuale, mesaje informative, ceas, administrator de programe, administrator de fiiere, etc. Printre cei mai cunoscui administratori de ecran menionm Gnome i KDE, care ruleaz pe aproape orice distribuie de Linux i pe multe sisteme UNIX. Aplicaii KDE n Gnome/aplicaii Gnome n KDE Nu este necesar s pornii spaiul de lucru n KDE pentru a rula aplicaiile specifice KDE. Dac avei instalate librriile KDE (pachetul kdelibs), putei rula aceste aplicaii din meniul Gnome sau dintr-un terminal Gnome. Rularea aplicaiilor Gnome n mediul KDE este puin mai deosebit, deoarece nu exist un singur set de librrii de baz ale Gnome-ului. Totui, prin instalarea dependinelor i a unor pachete extra, care vor fi cerute, vei putea face acest lucru.

7.3.3. Configurarea serverului X


Distribuia care este folosit de obicei n Linux, Xfree86, folosete fiierul de configurare

XF86Config pentru configurarea implicit. Acest fiier configureaz placa video i poate fi gsit n mai multe locuri, cel mai des fiind /etc/X11.
Dac observai c fiierul /etc/X11/XF86Config este prezent n sistemul dumneavoastr, descrierea complet a acestuia poate fi gsit n paginile Info sau man ale XF86Config. Din cauza aspectelor legate de liceniere n cazul Xfree86, sistemele mai noi vin cu distribuia de server X i unelte pentru acesta a X.Org. Fiierul principal de configurare este xorg.conf, pe care-l putei gsi n /etc/X11. Fiierul conine o serie de seciuni care pot fi dispuse n orice ordine. Aceste seciuni conin informaii despre monitor, placa video, configurrile afiajului, tastatur, etc. Ca utilizator, nu trebuie s v batei capul prea mult cu ceea ce este n acest fiier, ntruct este configurat la momentul instalrii sistemului. Dac trebuie s schimbai configurrile serverului grafic, putei rula uneltele de configurare sau edita fiierele de configurare care menin infrastructura serverului XFree86. Consultai paginile man pentru mai multe informaii; n unele cazuri, distribuia folosit de dumneavoastr are propriile unelte de configurare. Deoarece o configurare greit poate duce la afiarea, n modul grafic, a unor gunoaie de neneles, v sftuim s realizai o copie de siguran a fiierelor de configurare pe care dorii s le editai, pentru a putea fi restaurate.

7.4. Configurri regionale specifice


7.4.1. Configurarea tastaturii
Configurarea modelului de tastatur se face prin comanda loadkeys n cazul consolei text. Folosii unealta specific distribuiei dumneavoastr sau editai seciunea Keyboard (Tastatur) din XF86Config (sau xorg.conf cum ar fi n cazul Ubuntun.t.), pentru configurarea tastaturii pentru modul grafic. n configurarea implicit, este posibil s avei configurat urmtorul caz:

Dup cum am spus, acesta ar putea fi cazul implicit. Schimbarea aspectului tastaturii n concordan cu regiunea n care v aflai se face prin nlocuirea valorii dintre ghilimele cu oricare alta listat n subdirectoarele directorului keymaps. Dac nu-l putei gsi, ncercai afiarea de ctre sistem a locului acestuia prin comanda urmtoare:

115

locate keymaps Este posibil combinarea aspectului tastaturii, dup cum v prezint urmtorul exemplu:

Facei o copie a fiierului /etc/X11/XF86Config (sau, dup cum am mai artat, a /etc/X11/xorg.conf) nainte de a-l edita! Trebuie s folosii contul de root pentru acest lucru. Deconectai-v i autentificai-v din nou pentru a folosi noile configurri ale serverului X. Applet-ul pentru tastatur din Gnome asigur schimbarea imediat a aspectului tastaturii; nu este nevoie de permisiuni speciale pentru folosirea acestui progrmel. KDE are o unealt similar pentru schimbarea aspectului tastaturii.

7.4.2. Fonturi
Folosii unealta setfont pentru a ncrca fonturile n mediul text. Cele mai multe sisteme vin cu un fiier standard inputrc care permite combinarea caracterelor, cum ar fi franuzescul "" (metacaractere). Administratorul de sistem ar trebui s adauge linia

la fiierul /etc/bashrc.

7.4.3. Data i zona de timp


Configurarea informaiilor legate de timp se face la instalare. Dup aceea, pot fi actualizate folosind un client NTP (Network Time Protocol). Cele mai multe sisteme Linux folosesc implicit ntpd:

Putei rula ntpdate manual pentru configurarea ceasului, dac, evident, putei accesa un server de timp. Serviciul ntpd nu trebuie s ruleze atunci cnd folosii ntpdate pentru ajustarea ceasului. Folosii un server de timp ca argument al comenzii:

Consultai manualul sistemului dumneavoastr i documentaia coninut de pachetul NTP. Cei mai muli administratori ai spaiului de lucru au unelte proprii pentru configurarea timpului sistemului, cu solicitarea privilegiilor speciale. Pentru configurarea corect a zonei de timp, putei folosi comenzile tzconfig sau timezone. Zona de timp este i ea configurat la instalarea sistemului pe calculatorul dumneavoastr. Multe sisteme au unelte specifice distribuiei pentru configurarea acestor opiuni, aa c v ndreptm ctre documentaia specific sistemului pe care l folosii.

7.4.4 Limba
Dac primii mesaje de la sistem n olandez sau francez, i nu dorii acest lucru, v sftuim s configurai variabilele LANG i LANGUAGE, acestea asigurnd infrastructura pentru limba dorit, configurrile locale i fonturile legate de caracterele speciale ale respectivei limbi. n cazul celor mai multe ecrane grafice de autentificare, cum ar fi gdm sau kdm, avei posibilitatea de a configura limba folosit n sistem nainte de autentificare. Pe cele mai multe sisteme, en_US.UTF-8 tinde s fie alegerea implicit n zilele noastre. Acest 116

lucru nu reprezint o problem, deoarece sistemele pe care aceast configurare este implicit, vin cu toate programele pentru aceast codare. Astfel, vi poate edita toate fiierele din sistem, cat nu se va comporta ciudat, etc. Necazurile ncep atunci cnd v conectai la un sistem mai vechi care nu se descurc cu acest sistem de codare, sau atunci cnd deschidei un fiier codat n UTF-8 pe un sistem care nelege numai caractere ale fonturilor pe 1 bit. Utilitarul recode se poate dovedi folositor n aceste cazuri, cu ajutorul lui fiind posibil conversia dintr-un set de caractere n altul. Citii paginile man pentru o vedere de ansamblu a facilitilor care le avei la ndemn. O alt soluie ar fi lucrul temporar cu o alt definiie a codrii, prin configurarea variabilei LANG:

Consultai saitul Mozilla pentru a afla cum putei avea Firefox n limba dumneavoastr. Saitul OpenOffice.org are informaii despre localizarea suitei de birou OpenOffice.

7.4.5. Informaii specifice pentru alte ri


Lista Cum s urmtoare cuprinde referine despre localizarea n limbile bangla, bielorus, chinez, esperanto, finlandez, francez, greac, lituanian, polonez, srb, slovac, sloven, spaniol, thai i turc.

7.5. Instalarea de noi programe


7.5.1. Generaliti
Foarte muli oameni sunt surprini de faptul c, dup instalarea Linux-ului, au un calculator care ruleaz bine, i, mai mult dect att, gata de folosire; cele mai multe distribuii conin drivere pentru plcile video sau cele de reea, monitoare i alte dispozitive externe, astfel nct, de obicei, nu mai trebuie s instalai alte drivere. De asemenea, unelte comune, cum ar fi suite pentru birou, navigatoare de Internet, clieni de pot electronic i ali clieni de reea sunt incluse n distribuiile principale. Chiar i aa, o instalare implicit poate s nu acopere necesitile dumneavoastr. Dac nu putei gsi ceea ce avei nevoie, poate c acel lucru nu este instalat n sistemul dumneavoastr. Sau poate c avei programul necesar, dar acesta nu face ceea ce ar trebui s fac. Amintii-v c Linux-ul progreseaz rapid iar programele sunt mbuntite zi de zi. Nu v irosii timpul cutnd rezolvarea unor probleme pentru care au muncit alii. V putei actualiza sistemul i aduga pachete oricnd dorii. Cele mai multe programe vin n pachete. Programe n plus fa de instalarea implicit pot fi gsite pe CD-ul de pe care ai instalat sistemul sau pe Internet. Saitul web al distribuiei dumneavoastr este un loc bun n care putei ncepe cutarea de programe adiionale care conin i instruciunile despre cum se face aceast instalare pe tipul de Linux pe care-l folosii, consultai Appendix A. ntotdeauna citii documentaia care este coninut de programele noi, precum i orice indicaii referitoare la instalare, coninute de acel pachet. Toate programele vin cu un fiier README, pe care v sftuim s-l citii neaprat.

7.5.2. Tipuri de pachete


7.5.2.1. Pachete RPM

117

7.5.2.1.1. Ce este RPM? RPM, Administratorul de pachete RedHat, este un administrator de pachete puternic pe care-l putei folosi la instalarea, actualizarea i tergerea pachetelor de programe. V permite s cutai pachete i s urmrii fiierele care sunt incluse de fiecare pachet. Are coninut un sistem de verificare a autenticitii pachetelor descrcate de pe Internet. Utilizatorii avansai pot s-i construiasc propriile pachete cu ajutorul RPM. Un pachet RPM consist ntr-o arhiv de fiiere i meta-date folosite la instalarea i tergerea fiierelor arhivate. Meta-datele includ scripturi ajuttoare, atribute ale fiierelor i informaii care descriu pachetul n sine. Pachetele pot exista n dou varieti: pachete binare, care ncapsuleaz programele de instalat, i pachete surs, care conin codul surs i reeta necesar producerii pachetelor binare. Multe alte distribuii folosesc pachete RPM, n afar de mai cunoscutele RedHat Enterprise Linux, Mandriva (fostul Mandrake), Fedora Core i SuSE Linux. n afar de sfaturile specifice distribuiei alese, putei citi man rpm.

7.5.2.1.2. Exemple de pachete RPM Cele mai multe pachete sunt instalate cu opiunea de upgrade, -U, chiar dac un pachet n sine este instalat sau nu. Pachetele RPM conin versiunea complet a programului, care suprascrie versiunea existent sau este instalat ca pachet nou. Utilizarea tipic este urmtoarea: rpm -Uvh /path/to/rpm-package(s) Opiunea -v genereaz mai multe date de ieire, iar -h afieaz o bar de stare care arat progresul aciunii:

Pachetele care conin un kernel nou v sftuim s le instalai cu opiunea -i, pentru a nu suprascrie versiunea existent a pachetului. Astfel, vei putea s pornii calculatorul cu vechiul kernel, dac cel nou nui face treaba. Putei folosi rpm i pentru a verifica dac un pachet este instalat n sistem:

Sau putei afla care pachet conine un anumit fiier sau un executabil:

Nu trebuie s accesai cu privilegii de administrator comanda rpm pentru a cuta n baza de date RPM. Aceste privilegii sunt necesare numai n cazul n care adugai, modificai sau tergei pachete. V prezentm mai jos un ultim exemplu, care ilustreaz modul n care putei terge un pachet gestionat de rpm:

118

tergerea pachetelor nu afieaz implicit date de ieire, este normal s nu observai nimic. Cnd avei dubii, folosii rpm -qa din nou pentru a verifica dac un anume pachet a fost ters. RPM poate face multe alte lucruri, n afara funciilor de baz pe care le-am prezentat n aceast introducere. Cum s-ul despre RPM conine multe alte informaii.

7.5.2.2. Pachetele DEB (.deb) 7.5.2.2.1. Ce sunt pachetele Debian? Acest tip de pachete este cel implicit pe sistemele Debian GNU/Linux, n care dselect i, mai nou, aptitude, sunt uneltele standard pentru administrarea lor. Sunt folosite la selectarea pachetelor pe care le dorii instalate sau actualizate, dar vor rula i pe parcursul instalrii unui sistem Debian pentru a v ajuta s definii metoda de acces folosit, pentru listarea pachetelor disponibile i pentru configurarea lor. (Un exemplu de sistem bazat pe Debian este Ubuntu Linux, care, n modul grafic, dispune de doi administratori de pachete deb foarte bune, Synaptic n cazul Gnome i Adept n cazul KDE, care permit consultarea bazei de date, instalarea, actualizarea i tergerea pachetelor ntr-un mod simplu, intuitivn.t.). Saitul Debian conine toate informaiile de care avei nevoie, incluznd o documentaie adresat nceptorilor pentru dselect ("dselect Documentation for Beginners"). n ultima vreme, pachetele Debian ctig tot mai mult teren, devenind din ce n ce mai populare. La momentul scrierii acestei cri, le foloseau cinci distribuii majore din topul celor zece. De asemenea, aptget (consultai Seciunea 7.5.3.2) este foarte folosit, chiar i pe sisteme non-DEB.

7.5.2.2.2. Exemple de unelte DEB Verificai dac un pachet este instalat sau nu cu dpkg. De exemplu, dac dorii s tii ce versiune a programului Gallery este instalat pe sistemul dumneavoastr:

Prefixul ii nseamn c pachetul este instalat. Ar trebui s vedei afiat prefixul un n cazul n care pachetul nu este instalat, dar exist n lista gestionat de calculatorul dumneavoastr. Aflai crui pachet aparine un fiier prin opiunea -S a lui dpkg:

Mai multe informaii gsii n paginile Info ale dpkg.

7.5.2.3. Pachete surs Cea mai mare parte a programelor pentru Linux sunt Libere/Surs deschis, aa c pachete care conin sursa programelor sunt disponibile, ele fiind destul de rspndite. Fiierele surs sunt necesare pentru compilarea versiunii dumneavoastr de program. Sursele unui program pot fi descrcate de pe saitul propriu, adesea ca arhiv compresat tarball (program-versiune.tar.gz sau similare). Pentru distribuiile bazate pe RPM, sursa este adesea furnizat n program-versiune.src.rpm. Debian i cele mai multe distribuii bazate pe acesta asigur sursa adaptat care poate fi obinut folosind comanda apt-get source. Cerine specifice, dependine i instruciuni de instalare se gsesc n fiierul README. Vei avea nevoie de un compilator C, gcc. Acest compilator C GNU este inclus n cele mai multe sisteme Linux i poate fi portat pe multe alte platforme. 119

7.5.3. Automatizarea administrrii pachetelor i a actualizrilor


7.5.3.1. Generaliti Primul lucru pe care l facei dup instalarea unui sistem nou este actualizarea acestuia; este un fapt care se aplic tuturor sistemelor de operare i Linux-ul nu este diferit. Actualizrile pentru cele mai multe sisteme Linux se gsesc de cele mai multe ori pe un sait apropiat, un sait-oglind al distribuiei dumneavoastr. O list a saiturilor care ofer acest serviciu poate fi gsit pe saitul principal al distribuiei dumneavoastr, consultai Appendix A. Actualizrile trebuie aplicate cu regularitate, zilnic chiar dac este posibil dar i dou sptmni este un termen rezonabil. Trebuie s ncercai s avei cea mai recent versiune a distribuiei, deoarece Linux-ul se afl ntr-o continu schimbare. Dup cum am mai spus, faciliti noi i rezolvri ale unor probleme sunt puse la dispoziie ntr-un ritm constant i, cteodat, sunt vizate aspecte importante legate de securitate. Vestea bun este aceea c cele mai multe distribuii de Linux asigur unelte care v scutesc de actualizarea a zeci de pachete manual, zi de zi. Seciunea urmtoare trece n revist administratorii administratorilor de pachete. Sunt foarte multe de discutat pe marginea acestui subiect, chiar actualizri regulate a pachetelor surs fiind administrate automat; vom lista doar cele mai ntlnite sisteme. ntotdeauna apelai la documentaia specific sistemului ales de dumneavoastr pentru nelegerea corect a procedurilor.

7.5.3.2. APT The Advanced Package Tool este un sistem pentru pachetele de programe. Unealta pentru linia de comand este apt-get, care dispune de pagini man excelente, care descriu cum s instalai i s actualizai pachetele i cum s instalai ultima versiune a unui pachet sau a ntregii distribuii. APT i are rdcinile n distribuia Debian GNU/Linux, n care este administratorul implicit pentru pachetele Debian. APT a fost portat i pe sistemele care folosesc pachete RPM. Principalul avantaj al APT este acela c este liber i flexibil n utilizare. V permite s configurai sisteme ntr-un mod asemntor cu unele unelte specifice anumitor distribuii (n unele cazuri, comerciale), listate n seciunea urmtoare. n general, la prima utilizare a apt-get, trebuie s obinei un index al pachetelor disponibile. Acest lucru se face prin comanda apt-get update Dup aceasta, putei folosi apt-get pentru actualizarea sistemului dumneavoastr: apt-get upgrade Facei acest lucru des, este o cale simpl prin care v meninei sistemul la zi i n siguran. n afar de acest mod general de utilizare, apt-get este foarte rapid n instalarea pachetelor individuale. Iat cum lucreaz:

Observai opiunea -c a comenzii su, care indic consolei root s execute doar aceast comand, 120

apoi s se revin la mediul utilizatorului. n acest mod nu putei spune c ai uitat s prsii contul de root. Dac exist dependine fa de alte pachete, apt-get va descrca i instala i aceste pachete necesare. Mai multe informaii putei gsi n APT HOWTO.

7.5.3.3. Sisteme care folosesc pachete RPM Update Agent, care a fost disponibil iniial doar pentru pachetele RedHat RPM, este acum portat pentru o gam larg de programe, inclusiv arhive (repozitoare) non-RedHat. Aceast unealt asigur un sistem complet pentru actualizarea pachetelor RPM pe sistemele RedHat i Fedora Core. n linia de comand, tastai up2date pentru a actualiza sistemul dumneavoastr. Pe spaiul de lucru este activat implicit o pictogram (iconi) care v spune dac exist sau nu actualizri disponibile pentru sistemul dumneavoastr. Yellowdog`s Updater Modified (yum) este o alt unealt care este din ce n ce mai apreciat. Este un program interactiv dar automat pentru instalarea, actualizarea i tergerea pachetelor RPM. Este unealta implicit pe sistemele Fedora. Pe sistemele SuSE Linux, totul este fcut cu ajutorul YaST, Yet another Setup Tool, care integreaz mai multe sarcini de administrare a sistemului, printre care actualizarea pachetelor RPM. ncepnd cu SuSE Linux 7.1, putei actualiza sistemul folosind o interfa web i YOU, Yast Online Update. Mandrake Linux i Mandriva asigur o unealt numit URPMI, un set de programe strnse laolalt, care au rolul de a simplifica instalarea de noi programe. Aceste unelte lucreaz mpreun cu RPMDrake i Mandrake Update pentru asigurarea celor necesare pentru instalarea i tergerea n bune condiii a pachetelor de programe. MandrakeOnline ofer o gam extins de servicii i poate notifica automat administratorii de sisteme atunci cnd sunt disponibile actualizri pentru distribuia Mandrake. Consultai man urpmi, printre altele, dac dorii mai multe informaii. De asemenea, administratorii spaiului de lucru KDE i Gnome dispun de propriile versiuni (grafice) ale administratorilor de pachete (Adept i Synaptic, menionate mai susn.t.).

7.5.4. Actualizarea kernelului


Cele mai multe instalri ale Linux-ului sunt n regul dac actualizai periodic distribuia pe care ai ales-o. Prin aceste actualizri de distribuie se va instala un kernel nou atunci cnd este nevoie i sunt fcute toate schimbrile necesare n sistemul dumneavoastr. Compilai i instalai un kernel nou numai n cazul n care avei nevoie de faciliti care nu sunt cuprinse n kernelul implicit al distribuiei Linux alese. Indiferent dac folosii un kernel compilat i optimizat de dumneavoastr sau dac l folosii pe cel pus la dispoziie de distribuie, instalai un nou kernel n coexisten cu cel vechi pn n momentul n care suntei sigur c funcioneaz aa cum trebuie. Creai un sistem dual boot care v permite s alegei ce kernel s fie ncrcat prin configurarea ncrctorului dumneavoastr de sisteme, cu ajutorul fiierului grub.conf. Iat un exemplu simplu:

121

Dup ce noul kernel se dovedete a fi stabil i fiabil, putei terge liniile care definesc kernelul vechi din fiierul de configurare al GRUB-ului, dei v sftuim s ateptai mcar cteva zile, pentru a fi siguri.

7.5.5. Instalarea de pachete aflate pe CD-ul de instalare


7.5.5.1. Montarea unui CD Se face, n principiu, n acelai mod n care instalai manual pachetele, cu excepia faptului c trebuie s adugai sistemul de fiiere al CD-ului la calculatorul dumneavoastr pentru a-l face accesibil. Pe cele mai multe sisteme, este un proces automat, lansat la inserarea CD-ului n unitatea optic, deoarece serviciul automount este pornit la iniierea sistemului. Dac CD-ul dumneavoastr nu este disponibil automat, introducei comanda mount ntr-o fereastr terminal. n funcie de configuraia sistemului, o linie similar cu cea care urmeaz face acest lucru: mount /dev/cdrom /mnt/cdrom Pe unele sisteme, doar folosind contul de root putei monta medii de stocare externe; este un lucru care depinde de configuraia sistemului. Pentru automatizarea acestor procese, unitatea optic are o intrare n directorul /etc/fstab, care listeaz sistemele de fiiere i punctele lor de montare, care formeaz sistemul arborescent de fiiere. Iat o astfel de linie:

Ea indic faptul c sistemul nelege comanda mount /mnt/cdrom. Opiunea noauto nseamn c pe acest sistem, CD-urile nu sunt montate automat. Putei ncerca un clic dreapta pe pictograma CD-ului aflat pe spaiul de lucru pentru a monta CDul, dac administratorul de fiiere nu face acest lucru pentru dumneavoastr. Comanda mount fr argumente verific dac aciunea a avut succes:

7.5.5.2. Folosirea CD-ului Dup montarea unui CD, putei schimba directorul, de regul n punctul de montare

/mnt/cdrom, unde putei accesa coninutul CD-ului. Folosii aceleai comenzi pe care le utilizai n lucrul
cu fiierele aflate pe discul fix.

7.5.5.3. Ejectarea CD-ului Pentru a scoate CD-ul din unitate, dup ce ai terminat, sistemul de fiiere al CD-ului trebuie s figureze ca nefolosit. Chiar dac v aflai doar ntr-unul din subdirectoarele punctului de montare, n cazul nostru, /mnt/cdrom, CD-ul figureaz ca folosit fa de sistem, aa c trebuie mai nti s ieii de acolo. Facei acest lucru prin introducerea comenzii cd fr argumente, ceea ce v duce n directorul dumneavoastr personal. Dup aceasta, putei folosi comanda unmount /mnt/cdrom sau eject cdrom Dispozitive blocate NICIODAT s nu forai unitile optice. Trucul cu agrafa pentru hrtie este o idee proast, deoarece v scoate, ntr-adevr CD-ul, dar sistemul va crede c acesta este nc acolo, deoarece nu au fost urmate procedurile corecte. De cele mai multe ori, doar repornirea sistemului v ajut s aducei sistemul 122

ntr-o stare normal. Dac primii mesajul device busy (dispozitiv ocupat), verificai n primul rnd dac toate sesiunile consolei au prsit fiierele CD-ului sau dac acesta este folosit de aplicaiile grafice. Dac avei ndoieli, folosii unealta lsof pentru a gsi procesele care folosesc resursele aflate pe CD.

7.6. Sumar
Cnd toate sunt n locul potrivit, jumtate de treab este fcut. Pstrarea ordinii este important i la fel de important este s v organizai bine mediul directorului personal, n modul text sau grafic. Mediul text este controlat de fiierele de configurare a consolei. Mediul grafic depinde n primul rnd de configurarea serverului X, n care sunt integrate mai multe aplicaii, cum ar fi administratorii de ferestre i ai spaiului de lucru, fiecare avnd propriile fiiere de configurare. Trebuie s citii documentaia specific sistemului i programelor dumneavoastr pentru a afla modul corect de configurare a acestora. Configurrile regionale, cum ar fi cele ale tastaturii, instalarea fonturilor potrivite i limba folosit de sistem sunt, cel mai bine, fcute la instalarea sistemului. Programele sunt administrate n mod automat sau manual prin pachetele de programe. Urmtoarele comenzi au fost tratate n acest capitol:
Tabelul 7-2. Comenzi noi n Capitolul 7: Facei-v comod acas

Comand aptitude automount dpkg dselect loadkeys lsof mount ntpdate quota recode rpm setfont timezone tzconfig ulimit up2date urpmi yum

nelesul comenzii Administreaz pachete Debian. Monteaz automat sisteme de fiiere nou inserate. Administratorul de pachete Debian. Administreaz pachete Debian. ncarc configuraia tastaturii. Identific procesele. Monteaz sisteme noi de fiiere. Configureaz timpul sistemului folosind un server de timp. Afieaz informaii despre folosirea spaiului pe discul fix. Convertete fiierele la un alt set de caractere. Administreaz pachetele RPM. Alege un font. Configureaz zona de timp. Configureaz zona de timp. Configureaz sau afieaz limitarea resurselor. Administreaz pachete RPM. Administreaz pachete RPM. Administreaz pachete RPM.

7.7. Exerciii
7.7.1. Mediul consolei Afiai mediul consolei. Ce variabil poate fi folosit pentru stocarea tipului de procesor al
123

calculatorului dumneavoastr? Realizai un script care poate afia ceva de genul unei linii hello, world. Acordai-i permisiunile necesare pentru a-l rula. Testai acest script. Realizai un director n directorul dumneavoastr personal i mutai acest script n el. Adugai directorul creat la traseul de cutare al sistemului, n mod permanent. Testai dac scriptul poate fi executat fr a-i da traseul complet al locului n care se afl. Realizai subdirectoare n directorul dumneavoastr personal pentru pstrarea de fiiere diverse, de exemplu un director muzic pentru pstrarea fiierelor audio, un director documente pentru notele dumneavoastr, i aa mai departe. Folosii-le! Configurai un prompter personalizat. Afiai limitele aplicate resurselor. Le putei modifica? ncercai s citii paginile de manuale fr a le decompresa. Realizai un alias lll care s execute de fapt ls -la. De ce nu funcioneaz comanda tail testfile > testfile? Montai un CD cu date, cum ar fi discul de instalare al distribuiei dumneavoastr de Linux i explorai-l. Nu uitai s-l ejectai cnd nu mai avei nevoie de acesta. Scriptul care se gsete la Seciunea 7.2.5.2 nu este perfect. El genereaz erori pentru fiierele care sunt directoare. Adaptai scriptul astfel nct s selecteze doar fiierele simple pentru copiere. Folosii find pentru selecie. Nu uitai s facei scriptul executabil nainte de a-l rula.

7.7.2 Mediul grafic


ncercai toate butoanele mausului n regiuni diferite (terminal, fundal, barele de meniuri). Explorai meniul. Personalizai-v fereastra terminal. Folosii butoanele mausului pentru copierea de text dintr-un terminal ntr-altul. Configurai administratorul de ferestre; ncercai diferite spaii de lucru (ecrane virtuale). Adugai applet-uri, cum ar fi un monitor de sistem, barei de meniu. Schimbai tema. Activai opiunea prin care ferestrele sunt activate prin micarea cursorului mausului pe deasupra acesteia, astfel nct nu mai este necesar s facei clic pe fereastr pentru ca aceasta s fie activ (sloppy focus). Schimbai administratorul de ferestre. Deautentificai-v i selectai un alt tip de sesiune, de exemplu KDE dac ai folosit Gnome. Repetai pasul.

124

Capitolul 8. Imprimante i tiprirea


n acest capitol vom prezenta lucruri legate de imprimante i tiprirea fiierelor. Dup citirea acestei pri, vei putea s:

Formatai documente. Vizualizai documentele nainte de a le trimite la tiprire. Alegei o imprimant bun, care s fie recunoscut de sistemul dumneavoastr Linux. Tiprii fiiere i verifica statutul imprimantei. Rezolvai problemele legate de imprimante. Gsii documentaia necesar instalrii unei imprimante.

8.1. Tiprirea fiierelor


8.1.1. Tiprirea n linie de comand
8.1.1.1. Trimiterea fiierului la imprimant Tiprirea din interiorul unei aplicaii este simpl, cu ajutorul opiunii Print (Tiprete) din meniu. Din linia de comand, folosii comenzile lp sau lpr. lp fiier(e) lpr fiier(e) Aceste comenzi pot citi o conexiune (pipe), astfel nct putei tipri ieirea unei comenzi folosind comand | lp Avei la dispoziie multe opiuni pentru configurarea aspectului paginii, numrului de copii, imprimanta pe care dorii s o folosii, dac exist mai multe, alegerea tipului hrtiei, tiprirea pe o fa sau pe ambele fee, dac imprimanta asigur acest lucru, configurarea marginilor, etc. Citii paginile manualelor pentru mai multe informaii.

8.1.1.2. Statutul lucrrilor trimise la tiprire Odat ce fiierul este acceptat n coada de ateptare pentru tiprire, i este alocat un numr de identificare:

Pentru a verifica stadiul lucrrilor, folosii comenzile lpq sau lpstat. La introducerea acestora fr argumente, vor afia coninutul implicit:

8.1.1.3. Statutul imprimantei Care este imprimanta implicit folosit de un sistem care are acces la mai multe imprimante?

125

lpstat -d

Care este statutul imprimantei mele? lpstat -p

8.1.1.4. tergerea din coada de ateptare a lucrrilor trimise la imprimat Dac nu v place ceea ce vedei prin comenzile care afieaz stadiul imprimrii lucrrilor, folosii lprm sau cancel pentru a terge sarcinile legate de tiprirea documentelor.

n mediul grafic, poate s apar o fereastr care v spune c o anumit sarcin legat de tiprire a fost anulat. n medii mai mari, comanda lpc este folosit pentru controlarea mai multor imprimante. Consultai paginile Info ale fiecrei comenzi. Avei la dispoziie mai multe interfee grafice pe care le putei folosi pentru comanda lp, iar cele mai multe aplicaii grafice au o funcie de tiprire care folosete lp. Cutai n paginile de ajutor integrate i n documentaia specific fiecrui program pentru mai multe informaii. De ce exist dou comenzi pentru fiecare sarcin legat de tiprire? Tiprirea pe sistemele UNIX i pe cele asemntoare are o istorie lung. Au existat dou abordri: stilul de tiprire BSD i stilul SystemV. Din motive de compatibilitate, serviciul CUPS al Linux-ului lucreaz cu ambele. De asemenea, lp nu se comport exact ca lpr, lpq are ntructva opiuni diferite de cele ale lpstat i lprm este aproape acelai lucru, dar nu exact acelai cu cancel. Nu este important pe care-l folosii, alegei comenzile care v sunt mai la ndemn sau pe cele cu care suntei obinuit de pe alte sisteme asemntoare UNIX-ului.

8.1.2. Formatarea
8.1.2.1. Unelte i limbaje Dac dorii s obinei ceva anume de la imprimant, fiierele trebuie mai nti formatate. n afara programelor pentru formatare, care exist din abunden, Linux-ul conine uneltele de baz ale UNIX-ului pentru formatare i limbaj. Sistemele moderne Linux asigur tiprirea direct, fr o formatare prealabil executat de ctre utilizator, pentru o gam larg de fiiere: text, PDF, PostScript i pentru cteva formate de imagini precum PNG, JPEG, BMP i GIF. Pentru acele fiiere care au nevoie de formatare, Linux-ul integreaz unelte de formatare precum comenzile pdf2ps, fax2ps i a2ps, care convertesc alte formate n PostScript. Aceste comenzi pot crea fiiere care apoi pot fi folosite pe alte sisteme care nu dispun de uneltele de conversie. n afar de aceste comenzi ale liniei de comand avei la dispoziie multe unelte grafice pentru procesarea textului. Exist numeroase suite pentru birou, multe dintre acestea fiind libere i gratuite. Acestea realizeaz automat formatarea n momentul iniierii unei sarcini pentru tiprire. Pentru a numi doar cteva: OpenOffice.org, KOffice, AbiWord, WordPerfect, etc. Iat cteva limbaje comune n contextul sarcinilor pentru tiprire:

groff: versiunea GNU a comenzii UNIX roff. Este o interfa a sistemului de formatare groff. n mod
126

normal, ruleaz comanda troff i un post-procesor convenabil pentru dispozitivul selectat. Permite generarea fiierelor PostScript. TeX i pachetul macro LaTeX: unul dintre cele mai rspndite limbaje de marcare pe sistemele UNIX. Invocat de regul ca tex, formateaz fiiere i le trimite ctre un dispozitiv corespondent o reprezentare independent de tipul documentului.

Lucrurile care in de domeniul tehnic sunt fcute cu LaTeX deoarece acesta integreaz formule matematice, fiind depuse eforturi de ctre W3C (Consoriul World Wide Web) pentru includerea acestei faciliti i n alte aplicaii.

SGML i XML: sunt disponibile formate libere pentru UNIX i Linux. XML este noua generaie SGML,
care formeaz baza pentru DocBook XML, un sistem pentru documente (aceast carte este scris n XML, de exemplu cartea originaln.t.). Tiprirea documentaiei Paginile de manuale conin date pre-formatate troff care trebuie s fie formatate nainte de a le trimite la imprimant. Tiprirea se face folosind opiunea -t pentru comanda man: man -t command > man-command.ps Apoi tiprii fiierul PostScript. Dac este configurat o destinaie implicit pentru tiprire n cazul sistemului/contului dumneavoastr, putei introduce comanda man -t comand pentru a trimite pagina formatat direct la imprimant.

8.1.2.2. Vizualizarea fiierelor formatate Orice trimitei la imprimant poate fi afiat i pe ecran. n funcie de formatul fiierului, putei folosi una din comenzile de mai jos:

Fiiere PostScript: prin comanda gv (GhostView). Fiiere TeX dvi: prin xdvi sau kdvi, propriu KDE-ului. Fiiere PDF: xpdf, kpdf, gpdf sau vizualizatorul Adobe, acroread, care care este disponibil gratuit
dar nu este un program liber. Adobe`s reader este destinat versiunilor PDF 1.6, celelalte funcioneaz numai pentru versiunile pn la 1.5. Versiunea unui PDF poate fi aflat prin comanda file. Din interiorul unor aplicaii, cum ar fi Firefox sau OpenOffice, putei alege opiunea Vizualizare nainte de tiprire (Print Preview) din meniurile acestora.

8.2. Serviciul n sine


8.2.1. Generaliti
Pn acum civa ani, alegerea utilizatorilor de Linux era una simpl: toat lumea rula acelai vechi program pentru tiprire, Net-2 code al BSD. Apoi LPRng a devenit mai folosit, dar n zilele noastre, cele mai moderne distribuii de Linux folosesc CUPS, Common UNIX Printing System (Sistemul de tiprire comun UNIX). CUPS este o implementare a Internet Printing Protocol (IPP), un protocol standard RFC, asemntor HTTP-ului, nlocuitor al venerabilului (i demodatului) protocol LPD. CUPS este distribuit sub licena public GNU. CUPS este i sistemul pentru tiprire implicit pe calculatoarele MacOSX.

8.2.2. Configurarea imprimantei n modul grafic


Cele mai multe distribuii dispun de o interfa grafic pentru configurarea imprimantelor locale (pe porturile paralele sau USB) sau de reea. V permit s alegei tipul imprimantei dintr-o list pus la dispoziie i chiar putei testa acea imprimant. Nu avei de ce s v batei capul cu sintaxa comenzii sau cu localizarea fiierelor de configurare. ntotdeauna, nainte de instalarea unei imprimante, verificai documentaia sistemului dumneavoastr.

127

CUPS poate fi configurat cu ajutorul unei interfee web care ruleaz pe portul 631 al calculatorului dumneavoastr. Pentru a verifica dac aceast opiune este disponibil, ncercai adresa localhost:631/help sau localhost:631/.

8.2.3. Cumprarea unei imprimante pentru Linux


Tot mai muli productori de imprimante pun la dispoziie drivere pentru CUPS astfel nct acest serviciu se va conecta cu uurin la o imprimant care folosete un port serial,paralel sau USB ori la o imprimant de pe reea. CUPS va asigura o prezentare uniform pentru toate tipurile de imprimante. Imprimantele care vin doar cu drivere pentru Win9x pot pune probleme dac nu au un driver pentru Linux scris pentru acestea. Verificai ntotdeauna la adresa http://linuxprinting.org/ atunci cnd avei ndoieli. n trecut, cea mai bun alegere ar fi fost o imprimant care are integrat n firmware facilitatea PostScript, deoarece aproape toate programele UNIX sau Linux care genereaz ieiri pentru tiprire o fac n PostScript, limbajul de control ales de industria imprimantelor. Imprimantele PostScript sunt puin mai scumpe, dar sunt dispozitive independente, care folosesc un limbaj de programare liber i putei fi siguri 100% c vor funciona. n zilele noastre, importana acestei reguli de bun sim este trecut cu vederea.

8.3. Probleme legate de tiprire


n aceast seciune vom discuta despre ce putei face ca utilizator atunci cnd ceva merge prost. Nu ne vom referi la problemele care au de-a face cu partea de serviciu n sine a sistemului de tiprire, ntruct acest lucru este o sarcin pentru administratorii de sistem.

8.3.1. Fiier greit


Dac este tiprit un fiiere greit, putei anula cu ajutorul comenzii lprm IDsarcin, unde IDsarcin este afiat sub forma numele_imprimantei-numrul_sarcinii_de_tiprit (poate fi gsit printre informaiile afiate de lpq i lpstat). Aceast abordare este posibil numai n cazul n care fiierul dumneavoastr ateapt n coada pentru tiprire. Trebuie s fii ndeajuns de rapizi dac suntei singurul care utilizeaz imprimanta, ntruct documentele sunt trimise la imprimant n cteva secunde. Odat ce au ajuns la imprimant, este prea trziu s tergei sarcina folosind uneltele Linux-ului. Tot ceea ce putei ncerca n aceste cazuri sau n cele n care ai configurat un driver greit i din imprimant ies doar gunoaie, este s oprii imprimanta. Nu este chiar o metod foarte bun, deoarece poate cauza blocarea hrtiei i alte nereguli.

8.3.2. Tipritura nu iese din imprimant


Folosii comanda lpq pentru a gsi sarcina care nu este finalizat:

Foarte multe imprimante dispun de interfee web, care pot afia informaii despre statutul imprimantei, prin introducerea adresei imprimantei n navigatorul dumneavoastr de Internet. Pe pagina care urmeaz v prezentm o astfel de interfa.
Figura 8-1. Statutul imprimantei afiat de o interfa web.

128

Interfaa web CUPS versus interfaa web a imprimantei Reinei c ceea ce avei prezentat n imaginea de mai sus nu este interfaa web CUPS, ci o interfa web specific unei imprimante care integreaz aceast facilitate. Verificai documentaia imprimantei pe care o folosii pentru a afla dac poate lucra n acest mod. Dac ID-ul sarcinii dumneavoastr nu este de gsit nici la imprimant, contactai administratorul de sistem. Dac ID-ul este listat, verificai dac imprimanta tiprete. Dac da, ateptai, va sosi i rndul documentelor dumneavoastr. Dac imprimanta nu tiprete nimic, verificai dac are hrtie, verificai conexiunile fizice cu reeaua de electricitate i cablul de date. Este posibil s aib nevoie de o repornire. ntrebai i administratorul de sistem dac avei frecvent probleme de acest gen. n cazul unei imprimante de reea, ncercai s tiprii de pe alt calculator. Dac imprimanta este gsit de calculatorul dumneavoastr (consultai Capitolul 10 n care se vorbete despre utilitatea ping),

129

ncercai s trimitei un fiier formatat, cum ar fi un fiier.ps n cazul unei imprimante PostScript, folosind un client FTP. Dac imprimanta lucreaz, nseamn c sistemul dumneavoastr de tiprire nu este configurat aa cum trebuie. Dac nu, imprimanta nu nelege formatul n care ai realizat documentul trimis la tiprire. Saitul GNU/Linux Printing conine mai multe sfaturi pe marginea acestui subiect.

8.4. Sumar
Serviciul de tiprire din Linux integreaz o serie de unelte pentru tiprire bazate pe uneltele standard UNIX LPD, fie c vorbim despre implementarea System V sau cea BSD. V prezentm mai jos mai multe comenzi legate de tiprire:
Tabelul 8-1. Comenzi noi n Capitolul 8: Tiprirea

Comanda lpr sau lp lpq sau lpstat lprm sau cancel acroread groff gv printconf xdvi xpdf *2ps

nelesul comenzii Tiprete un fiier Afieaz documentele trimise la tiprire, aflate n ateptare terge documentele trimise n ateptare pentru tiprire Vizualizator PDF Unealt pentru formatare Vizualizator PostScript Configureaz imprimantele Vizualizator DVI Vizualizator PDF Convertete fiierele n PostScript

8.5. Exerciii
Configurarea i testarea imprimantei implic existena uneia i accesul la contul de root. Dac sunt ndeplinite aceste condiii, putei ncerca urmtoarele:

Instalai imprimanta folosind interfaa grafic (GUI) a sistemului dumneavoastr. Tiprii o pagin de test folosind aceeai interfa grafic. Tiprii o pagin de test folosind comanda lp. Tiprii din interiorul unei aplicaii, de exemplu Mozilla sau OpenOffice, selectnd Fiier -> Tiprete (File -> Print) din meniu. Deconectai imprimanta de la reea sau de la calculator/server de imprimare. Ce se ntmpl cnd ncercai s tiprii ceva? Urmtoarele exerciii pot fi fcute fr imprimant sau accesarea contului de administrator.

ncercai s facei fiiere PostScript din diferite fiiere surs (cum ar fi HTML, PDF, pagini man).
Testai rezultatul cu vizualizatorul gv. Verificai dac serviciul de tiprire ruleaz. Tiprii oricum fiierul. Ce se ntmpl? Facei un fiier PostScript folosind Mozilla. Testai-l cu gv. Convertii acel fiier n format PDF. Testai-l cu xpdf. Cum ai putea tipri un fiier GIF din linia de comand? Folosii a2ps pentru a tipri fiierul /etc/profile ntr-un fiier de ieire. Testai-l din nou cu gv. Ce se ntmpl dac nu specificai un fiier de ieire?

130

Capitolul 9. Tehnici fundamentale pentru crearea copiilor de siguran


Mai devreme sau mai trziu, se pot ntmpla accidente. n acest capitol vom discuta despre cum s trimitei datele ntr-un loc sigur folosind un alt calculator, dischete, CD-uri i benzi. Vom discuta i despre cele mai folosite programe de comprimare i comenzi de arhivare. La terminarea acestui capitol, vei ti cum s: Creai, explorai i despachetai fiiere arhivate. Lucrai cu dischetele i cum s creai o dischet de pornire pentru sistem. Scriei CD-uri. Realizai copii de siguran incrementale. Creai arhive Java. Cutai documentaia necesar pentru utilizarea altor dispozitive i programe pentru copiile de siguran. Criptai (cifrai) datele dumneavoastr.

9.1. Introducere
Cu toate c Linux-ul este unul din cele mai sigure sisteme de operare existente, fiind proiectat s lucreze non-stop, mai pot fi pierdute date. Pierderile de date sunt de cele mai multe ori o consecin a erorilor n utilizare, rareori fiind generate de o disfuncionalitate a sistemului, cum ar fi o cdere de tensiune sau defectarea discului fix, aa c pstrarea unor copii ale datelor importante este o idee foarte bun.

9.1.1. Pregtirea datelor


9.1.1.1. Arhivarea cu tar De cele mai multe ori, datele care trebuie arhivate sunt colectate ntr-un singur fiier, pe care l vei comprima mai trziu. Procesul de arhivare implic concatenarea tuturor fiierelor listate i scoaterea spaiilor goale. n Linux acest lucru este fcut prin comanda tar. Comanda tar a fost creat la nceput pentru arhivarea datelor pe benzi, dar poate crea i arhive, cunoscute ca tarballs. tar are multe opiuni, cele mai importante fiind prezentate mai jos:

-v: genereaz informaii. -t: testeaz, arat coninutul unei arhive tarball. -x: extrage arhiva. -c: creeaz arhiv. -f dispozitiv_de_arhivare: folosete dispozitiv_de_arhivare ca surs/destinaie a arhivei, implicit fiind primul dispozitiv cu band (de regul /dev/st0 sau similare). -j: filtreaz prin bzip2, consultai Seciunea 9.1.1.2.
n mod normal, prefixul dash (-) este pstrat n opiunile tar, dup cum vei observa din exemplele care urmeaz. Pentru compatibilitate, folosii comanda tar GNU Arhivele create cu versiunea proprietar a tar pe un anume sistem pot fi incompatibile cu alt versiune proprietar tar aflat pe alt sistem. Acest lucru v poate da multe bti de cap, legate de necesitatea decomprimrii arhivei pe un sistem care nu mai exist. Folosii pe toate sistemele versiunea GNU a programului tar, pentru a scuti administratorul de sistem de probleme n plus. Linux-ul folosete ntotdeauna programul tar GNU. Atunci cnd lucrai pe sisteme UNIX, introducei comanda tar --help pentru a verifica cu ce versiune lucrai. Luai legtura cu administratorul de sistem dac nu observai niciunde acronimul GNU.

131

n exemplul de mai jos este creat i despachetat o arhiv:

Exemplul ilustreaz, de asemenea, diferena dintre un director arhivat i o aduntur de fiiere arhivate. V sftuim s arhivai directoare, pentru ca fiierele s nu se mprtie peste tot la despachetarea arhivei tarball (v folosete foarte mult n momentul despachetrii pe alte sisteme, n cazul crora nu cunoatei ce fiiere au existat pe acele sisteme i ce fiiere ai despachetat din arhiv). Dac exist o unitate cu band conectat la calculator i configurat de administratorul de sistem, fiierele care se termin n .tar sunt nlocuite cu numele dispozitivului cu band, de exemplu: tar cvf /dev/tape mail/ Directorul mail i toate fiierele care sunt coninute de acesta sunt comprimate ntr-un fiier care este scris imediat pe o band. Este listat i coninutul acestuia pentru c a fost folosit opiunea verbose.

9.1.1.2. Copii de siguran incrementale cu ajutorul tar Programul tar poate s creeze copii de siguran incrementale prin introducerea opiunii -N. Cu aceast opiune putei specifica o dat, iar tar verific modificrile fiierelor asociate. Dac aceste fiiere au fost modificate dup data introdus, ele vor fi incluse n copia de siguran. Exemplul de mai jos folosete o not de timp aplicat unei arhive ca valoare pentru dat. n primul rnd, este creat arhiva iniial i este artat nota de timp. Apoi, la apariia unui fiier nou, va fi fcut o copie de siguran nou, care conine doar acest fiier, nou aprut. Imaginea care urmeaz ilustreaz situaia descris mai sus:

132

Erorile standard sunt redirecionate ctre /dev/null. Dac nu facei acest lucru, tar va afia un cte mesaj pentru fiecare fiier care nu a suferit modificri, spunndu-v c acestea nu vor fi incluse. Acest mod de lucru are dezavantajul c se caut notele de timp ale fiierelor. S spunem c descrcai o arhiv ntr-un director care conine copiile dumneavoastr de siguran, iar arhiva conine fiiere care au fost create cu doi ani n urm. La compararea notei de timp asociate acestor fiiere cu nota de timp a arhivei iniiale, noile fiiere vor apare pentru tar ca fiind vechi, i nu vor fi incluse n copia de siguran incremental realizat cu opiunea -N. O alegere mai bun ar fi opiunea -g, prin care se genereaz o list a fiierelor ce vor fi incluse n copia de siguran. La realizarea copiilor de siguran incrementale, sunt verificate fiierele din aceast list. Iat cum lucreaz opiunea n cauz:

n ziua urmtoare, utilizatorul jimmy modific fiierul file3 i creeaz fiierul file4. La sfritul zilei, el face o nou copie de siguran:

V-am prezentat cteva comenzi simple, dar le putei folosi ntr-o sarcin programat (cronjob consultai Seciunea 4.4.4), n care s specificai, de exemplu, un fiier int pentru copia de siguran sptmnal i un altul pentru copia de siguran zilnic. Fiierele int vor fi nlocuite la realizarea unei copii de siguran integrale. 133

Mai multe informaii putei gsi n documentaia tar. De reinut Dup cum probabil ai observat, tar este de un real folos atunci vorbim despre directoare normale, adic un set de fiiere de acelai fel. Exist ns i unelte care sunt mai uor de administrat atunci cnd dorii s arhivai partiii ntregi, discuri sau proiecte mai mari. Am vorbit despre tar deoarece este foarte utilizat n distribuirea arhivelor. Se ntmpl adesea s v lovii de instalarea unui program care vine sub forma aa numitor arhive tarball. Consultai Seciunea 9.3 pentru ci mai uoare de realizare a copiilor de siguran regulate.

9.1.1.3. Arhivarea i despachetarea cu gzip sau bzip2 Datele, inclusiv arhivele tarball, pot fi compresate folosind uneltele zip. Comanda gzip va aduga sufixul .gz la numele fiierului i va terge fiierul original.

Despachetai fiierele folosind opiunea -d pentru comanda gzip. bzip2 lucreaz ntr-un mod asemntor, dar folosete un algoritm complex de comprimare, rezultnd fiiere mai mici. Consultai paginile info bzip2 pentru mai multe informaii. Pachetele de programe pentru Linux sunt distribuite adesea n arhive tarball create cu gzip. Dup despachetarea unor astfel de arhive, primul lucru pe care ar trebui s-l facei este s citii fiierul README. El conine, n general, informaii despre instalarea programului n cauz. Comanda tar GNU recunoate fiierele create cu gzip. Folosii comanda tar zxvf fiier.tar.gz pentru despachetarea fiierelor .tar.gz sau .tgz. Folosii tar jxvf fiier.tar.bz2 pentru despachetarea arhivelor tar care au fost mpachetate cu bzip2.

9.1.1.4. Arhivele Java Proiectul GNU pune la dispoziie unealta jar pentru crearea arhivelor Java. Este o aplicaie Java care combin mai multe fiiere ntr-un singur fiier arhivat JAR. n timp ce poate fi folosit n scopuri generale, legate de arhivare, ca unealt de comprimare, bazat pe formatele ZIP i ZLIB, jar a fost gndit n principal ca o unealt care s uureze mpachetarea codului Java, a applet-urilor i/sau aplicaiilor ntr-un singur fiier. Combinate ntr-o singur arhiv, componentele unei aplicaii Java pot fi descrcate mult mai repede. Spre deosebire de tar, jar arhiveaz implicit, independent de alte unelte - deoarece este, de fapt, versiunea Java a zip. n plus, permite ca intrri individuale s fie semnate de autor, astfel nct pot fi autentificate originile arhivei. Sintaxa este aproape identic cu cea a comenzii tar, pentru diferenele specifice consultai info

jar.
tar, jar i legturile simbolice O not important care nu este inclus n documentaia standard este aceea c jar urmrete 134

legturile simbolice. Datele spre care intesc aceste legturi vor fi incluse n arhive. Comportamentul implicit al tar este s copieze doar legtura simbolic, dar poate fi schimbat cu opiunea -h a aceleiai comenzi tar.

9.1.1.5. Transportarea datelor Pstrarea copiilor datelor dumneavoastr pe un alt calculator (sau gazd) este un mod simplu i precis de realizare a copiilor de siguran. Consultai Capitolul 10 pentru mai multe informaii despre scp, ftp i altele. n seciunea urmtoare vom discuta despre dispozitivele locale de stocare.

9.2. Mutarea datelor pe un dispozitiv de stocare


9.2.1. Realizarea copiilor pe dischet
9.2.1.1. Formatarea dischetei Pe cele mai multe sisteme Linux, utilizatorii pot folosi discheta. Numele dispozitivului difer, n funcie de tipul i numrul unitilor de dischet, dac nu suntei sigur, ntrebai administratorul de sistem. Pe unele sisteme, exist o legtur /dev/floppy care intete dispozitivul n cauz, probabil /dev/fd0 (dispozitivul detectat automat) sau /dev/fd0H1440 (configurat pentru dischetele de 1,44 MO). fdformat este unealta de baz pentru formatarea dischetelor. Ca opiune are numele unitii de dischet. fdformat va afia o eroare dac discheta este protejat la scriere.

Comanda mformat (din pachetul mtools) este folosit pentru crearea dischetelor compatibile DOS care pot fi accesate prin comenzile m- :mcopy, mdir i altele. Sunt disponibile i unelte grafice.
Figura 9-1. Unealta grafic de formatare a dischetelor

Dup ce o dischet este formatat, poate fi montat n sistemul de fiiere i accesat ca un director normal, mai mic, de regul via /mnt/floppy. Dac avei nevoie, instalai utilitarul mkbootdisk, care creeaz o dischet de pe care sistemul 135

poate porni.

9.2.1.2. Folosirea comenzii dd pentru manevrarea datelor Comanda dd poate fi folosit pentru mutarea datelor pe o dischet sau la transferarea acestora napoi pe discul fix, n funcie de dispozitivul de intrare i cel de ieire folosit. Iat un exemplu:

Mutarea datelor este fcut pe un dispozitiv nemontat. Dischetele create n acest mod nu pot fi montate n sistemul de fiiere , dar este metoda prin care se pot face dischete de pornire sau de recuperare. Mai multe informaii despre posibilitile dd pot fi gsite n paginile man. Aceast unealt este parte a pachetului GNU coreutils. Transferul discurilor Comanda dd poate fi folosit pentru realizarea transferului unui ntreg disc fix brut.

9.2.2. Realizarea unei copii cu ajutorul unui inscriptor de CD-uri


Pe unele sisteme, le este permis utilizatorilor s foloseasc CD-writer-ul. Datele trebuie formatate mai nti. Folosii comanda mkisofs n directorul care conine fiierele pe care dorii s le copiai. Verificai cu ajutorul df dac avei destul spaiu disponibil, deoarece va fi creat un fiier nou de o dimensiune aproximativ egal cu cea a directorului curent:

Opiunile -J i -r sunt folosite pentru a face posibil montarea CD-ROM-ului n diferite sisteme de fiiere, dup cum putei afla din paginile man. Dup aceasta, CD-ul poate fi creat cu unealta cdrecord, folosind opiunile potrivite:

136

n funcie de inscriptorul dumneavoastr, avei timp s fumai o igar sau, mai bine i mai sntos, s mncai o fruct i/sau s servii o ceac de cafea. La terminarea sarcinii, vei primi un mesaj de confirmare:

Exist i unelte grafice care v fac viaa mai uoar. Mai cunoscute sunt xcdroast, care este disponibil pe saitul X-CD-Roast, fiind inclus n mai multe sisteme i n directorul GNU. Att KDE ct i Gnome v pun la dispoziie programe pentru crearea CD-urilor dumneavoastr.

9.2.3. Copii de siguran pe/de pe uniti jazz, dispozitive USB i alte medii externe
Aceste dispozitive sunt, de regul, montate n sistemul de fiiere. Dup procedura de montare, ele sunt accesate ca directoare normale, aa c putei folosi comenzile obinuite de manipulare a fiierelor. n exemplul de mai jos, sunt copiate imagini de pe o camer USB pe discul fix:

Dac aparatul foto este singurul dispozitiv de stocare USB pe care-l conectai la sistem, este n regul. Dar reinei c dispozitivele USB au intrri n directorul /dev odat ce sunt conectate la sistem. Astfel dac introducei n sistem un stick USB, acesta va figura ca intrare n /dev/sda, iar dac ataai aparatul foto dup acel stick, va figura ca intrare n /dev/sdb - n situaia n care nu avei discuri SCSI, care se gsesc tot n /dev/sd*. Pe sistemele mai noi, de la kernelul 2.6, un sistem de gestionare a conectrilor, numit HAL (Hardware Abstraction Layer) se asigur c utilizatorii nu se mai lovesc de aceste probleme. Dac dorii s verificai unde se afl dispozitivul dumneavoastr, tastai comanda dmesg dup conectarea acestuia. Putei apoi copia fiierele:

n acelai mod, un dispozitiv jazz poate fi montat n /mount/jazz. Trebuie s adugai liniile necesare n /etc/modules.conf i /etc/fstab pentru ca sistemul s funcioneze bine. Cutai n documentaia specific dispozitivelor pentru mai multe informaii. Pe sistemele n care versiunile kernelului sunt de la 2.6.x n sus, verificai i paginile de manual ale modprobe i fiierul modprobe.conf.

137

9.2.4. Realizarea copiilor de siguran pe uniti de band


Se face prin comanda tar (consultai seciunile de mai sus). Unealta mt este folosit pentru controlul dispozitivelor cu band magnetic, cum ar fi /dev/st0. Au fost scrise cri ntregi despre realizarea copiilor de siguran pe band magnetic, aa c v invitm s citii lista din Appendix B pentru mai multe informaii. Bazele de date pot necesita alte proceduri pentru realizarea copiilor de siguran, din cauza arhitecturii acestora. Comenzile corecte pentru crearea copiilor de siguran sunt puse, de regul, ntr-un director cron, pentru a fi executate n mod regulat. n medii mai mari, suita Amanda sau alte soluii comerciale sunt folosite la realizarea copiilor de siguran pe mai multe calculatoare deodat. Lucrul cu benzile ns, ca ndatorire a administratorului de sistem, este dincolo de scopul acestui ghid.

9.2.5. Unelte ale distribuiei dumneavoastr


Cele mai multe distribuii pun la dispoziie propriile unelte pentru a v uura munca. Iat o scurt trecere n revist:

SuSE: YaST include acum module pentru realizarea de copii de siguran i restaurarea acestora. RedHat: File Roller asigur administrarea vizual a arhivelor (comprimate). Se pare c se prefer
unealta X-CD-Roast pentru mutarea copiilor de siguran pe dispozitive externe. Mandrake: X-CD-Roast. Cele mai multe distribuii includ utilitarele dump i restore pentru realizarea copiilor de siguran pentru sistemele de fiiere ext2 i ext3. Acest program poate scrie pe o gam larg de dispozitive externe i, literal, arunc fiierul, fiierele sau sistemul de fiiere bit cu bit pe dispozitivul specificat. Precum dd, v permite realizarea copiilor de siguran pentru fiiere speciale, cum ar fi cele din /dev.

9.3. Utilizarea rsync


9.3.1. Introducere
Programul rsync este o unealt rapid i flexibil care v permite realizarea copiilor de siguran la distan. Este comun sistemelor UNIX i celor asemntoare UNIX-ului, uor de configurat i de folosit n scripturi. Doar pentru c r din rsync vine de la remote nu nseamn neaprat c nu putei folosi programul dect n reea. Dispozitivul dumneavoastr la distan poate fi un mediu de stocare extern pe USB sau o alt partiie pe discul fix, aa c nu trebuie s avei dou calculatoare pentru a v folosi de acest program.

9.3.2. Un exemplu: rsync pe un dispozitiv de stocare USB


Dup cum am discutat n Seciunea 3.1.2.3, trebuie mai nti s montai dispozitivul. Este posibil s fie nevoie de contul de administrator pentru aceast operaiune:

Uor de folosit Din ce n ce mai multe distribuii permit accesul la dispozitivele externe pentru utilizatorii obinuii i realizeaz automat montarea dispozitivelor USB, CD-ROM i a altora de acest gen. Acest ghid presupune existena asistenei USB n sistemul dumneavoastr. Consultai Ghidul USB pentru ajutor n cazul n care nu v funcioneaz ceva din cele prezentate. Verificai cu dmesg dac /dev/ sda1 este, ntr-adevr, dispozitivul de montat. Dup aceea, putei ncepe realizarea copiei de siguran propriu-zise, de exemplu copia directorului /home/karl: 138

Ca de obicei, v recomandm paginile man pentru mai multe informaii.

9.4. Criptarea
9.4.1. Generaliti
9.4.1.1. De ce ar trebui s v criptai datele? Criptarea este sinonim cu secretizarea. Legat de copiile de siguran, criptarea este folositoare n cazurile n care trebuie s v pstrai datele n locuri n care nu putei controla accesul, cum ar fi serverele furnizorului de internet. n afar de asta, criptarea poate fi aplicat i E-mail-urilor: n mod normal, mesajele de pot electronic nu sunt criptate i ele sunt trimise n clar pe reeaua Internetului. Dac mesajele pe care le trimitei conin informaii sensibile, este mai bine s le criptai.

9.4.1.2. GNU Privacy Guard Pe sistemele Linux vei gsi GnuPG, GNU Privacy Guard, care este o colecie de programe care sunt compatibile cu programul PGP (Pretty Good Privacy), disponibil comercial. n acest ghid vom prezenta modul de utilizare de baz al uneltelor de criptare i vom arta lucrurile de care avei nevoie pentru generarea unei chei de criptare i cum s o folosii pentru criptarea datelor dumneavoastr, pe care le putei pstra apoi n locuri publice. Moduri de folosire mai avansate pot fi gsite n paginile manualelor mai multor comenzi.

9.4.2. Generarea unei chei


nainte de a ncepe criptarea datelor, trebuie s creai o pereche de chei. Perechea const ntr-o cheie public i una privat. Putei trimite cheia public corespondenilor, care o vor folosi pentru criptarea datelor pentru dumneavoastr, pe care le decriptai cu cheia privat. ntotdeauna trebuie s pstrai cheia privat, s nu o punei nimnui la dispoziie, deoarece n acest mod, datele destinate numai dumneavoastr pot fi decriptate de tere pri. Pentru a v asigura c nu apare nici un accident, cheia privat este protejat de o parol. Perechea de chei este generat prin comanda:

139

n acest moment introducei parola. Poate fi o fraz, cu ct mai lung, cu att mai bine, singura condiie fiind aceea de a nu o uita niciodat. Pentru verificare, trebuie s introducei din nou parola aleas. Perechea de chei este generat de un program care amestec numere la ntmplare, n funcie, printre altele, de activitatea sistemului. Dac pornii unele programe, mutai cursorul sau introducei la ntmplare cteva caractere ntr-o fereastr terminal, ansele de a fi generat un numr care conine multe cifre diferite cresc, iar cheia va fi mult mai greu de spart.

9.4.3. Despre cheia dumneavoastr


Dup ce cheia a fost creat, vei primi un mesaj despre amprent. Aceasta este o secven de 40 de numere hexazecimale, att de lung pentru a prentmpina apariia aceleiai chei de dou ori, pe orice calculator. Putei fi sigur de unicitatea acestei secvene. Forma scurt a cheii este compus din numele dumneavoastr, urmat de ultimele 8 numere hexazecimale. Putei obine informaii despre cheia dumneavoastr astfel:

ID-ul cheii generate este BF5C3DBB. Putei trimite acest ID i numele dumneavoastr unui server de chei, astfel nct s fie disponibile corespondenilor dumneavoastr, pentru a o folosi la criptarea datelor care v sunt destinate. Mai putei trimite cheia public direct persoanelor care au nevoie de ea. Partea public a cheii dumneavoastr este seria lung de numere pe care o vedei prin opiunea --export a comenzii gpg: gpg --export -a n aceast prezentare am presupus c avei nevoie de cheia de criptare pentru a cripta i decripta date numai pentru folosina proprie. Citii paginile man ale programului gpg dac dorii s tii mai multe lucruri pe acest subiect.

140

9.4.4. Criptarea datelor


Acum putei cripta o arhiv .tar sau una comprimat, nainte de a o salva drept copie de siguran pe un mediu de stocare sau pe un server pentru copii de siguran. Folosii comanda gpg precum n exemplul de mai jos: gpg -e -r (parte a) uid arhiv Opiunea -e spune programului gpg s cripteze, opiunea -r indic pentru cine s cripteze. Reinei c doar utilizatorul care este artat dup opiunea -r poate decripta datele. Un exemplu:

9.4.5. Decriptarea fiierelor


Prin opiunea -d a comenzii gpg putei decripta datele care au fost criptate pentru dumneavoastr. Datele se vor derula pe ecran, dar o copie criptat va rmne pe disc. Pentru alte formate dect textul simplu trebuie s salvai datele decriptate, pentru ca s le putei deschide cu programul potrivit. Acest lucru se face prin opiunea -o a comenzii gpg:

Lips parol = date pierdute Dac nu v amintii parola, datele sunt pierdute. Nici mcar administratorul de sistem nu va putea decripta datele dumneavoastr. Iat de ce o copii ale cheilor importante i parole sunt pstrate n seifuri ale bncilor.

9.5. Sumar
V-am pregtit o list care conine comenzile folosite n realizarea copiilor de siguran:
Tabelul 9-1. Comenzi noi n Capitolul 9: Copiile de siguran

Comand bzip2 cdrecord dd fdformat gpg gzip mcopy mdir mformat

nelesul comenzii Un compresor de fiiere sortator de blocuri. nregistrare de date sau audio pe CD. Convertete i copiaz un fiier. Formatarea comun a unei dischete. Cripteaz i decripteaz datele. Comprim i despacheteaz fiiere. Copiaz fiiere MSDOS pe/de pe UNIX. Afieaz un director MSDOS. Adaug un fiier MSDOS la o dischet formatat comun. Monteaz un sistem de fiiere (l integreaz n sistemul curent de fiiere prin ataarea la un punct de montare).

mkbootdisk Creeaz o dischet de pornire a sistemului. mount

141

rsync tar unmount

Sincronizeaz directoarele. Utilitar pentru arhivare pe uniti de band, folosit i pentru realizarea copiilor de siguran scrise pe discuri. Demonteaz sistemele de fiiere.

9.6. Exerciii
Facei o copie a directorului dumneavoastr home n /var/tmp folosind comanda tar. Comprimai
apoi fiierul folosind gzip sau bzip2. Creai o arhiv curat, una care s nu se mprtie peste tot la despachetare. Formatai o dischet i punei pe ea cteva fiiere din directorul dumneavoastr personal. Schimbai discheta cu una care aparine altuia i copiai fiierele coninute de acea dischet n directorul personal. Formatai o dischet n DOS. Folosii mtools pentru a copia i a terge fiiere pe aceasta. Ce se ntmpl cu o dischet neformatat atunci cnd dorii s o montai n sistemul de fiiere? Dac deinei un dispozitiv de stocare usb, ncercai i copiai nite fiiere pe acesta. Folosindu-v de rsync, facei o copie a directorului dumneavoastr personal pe un sistem de fiiere local sau din reea. Atunci cnd dorii s pstrai fiiere pe servere din reea, este bine ca aceste fiiere s fie criptate. Realizai o arhiv tar a directorului personal i criptai-o.

142

Capitolul 10. Reele


Cnd vine vorba de reea, Linux-ul este sistemul de operare care ofer cele mai multe avantaje, nu doar pentru c reeaua este integrat intim n sistemul de operare propriu-zis i sunt puse la dispoziie multe unelte i aplicaii n mod gratuit, ci pentru robusteea dovedit sub trafic intens, obinut dup ani de testare i rezolvare a problemelor raportate n cadrul proiectului Open Source (Surs deschis). Rafturi ntregi de cri pline de informaii au fost scrise despre Linux i reelistic, noi ncercnd doar s oferim o privire de ansamblu pe marginea acestui subiect. Dup terminarea acestui capitol, vei cunoate mai multe despre:

Protocoale de reea admise Fiierele de configurare a reelei Comenzile pentru configurarea i probarea reelei Serviciile i programele client care permit aplicaii diverse de reea Partajarea de fiiere i tiprirea Executarea de la distan a unor comenzi i aplicaii Noiuni de baz despre conexiunile de reea Executarea securizat a aplicaiilor la distan Firewall-uri i detectarea intruilor

10.1. Generaliti despre reele


10.1.1. Modelul OSI
Un protocol este, la baz, un set de reguli pentru comunicare. Pentru a transmite date n reea, de exemplu un mesaj de pot electronic de la calculatorul dumneavoastr ctre un alt calculator aflat la captul lumii, mai multe dispozitive i programe trebuie s lucreze mpreun. Toate aceste dispozitive i programe folosesc limbaje diferite. S lum n considerare programul dumneavoastr de E-mail: este capabil s converseze cu sistemul de operare al calculatorului, printr-un protocol specific, dar nu poate comunica cu dispozitivele n sine. Avei nevoie de un program special n sistemul de operare, care s fac acest lucru. Pe de alt parte, calculatorul trebuie s comunice cu linia telefonic sau alt sistem de conectare la Internet. n afar de ceea ce se vede, conexiunile de reea au nevoie de comunicare pentru a transmite mesajul dumneavoastr de pot electronic pe tot traseul ctre calculatorul de destinaie. Toate aceste protocoale diferite de comunicare sunt clasificate n 7 nivele, care sunt cunoscute ca Open Systems Interconnection Reference Model, pe scurt OSI Model. Pentru a fi neles mai uor, acest model este redus la un sistem de protocoale n 4 nivele, descris n tabelul de mai jos: Numele nivelului Nivelul aplicaiilor Nivelul de transport Nivelul de reea Nivelul de acces la reea Protocoalele nivelului HTTP, DNS, SMTP,POP,... TCP, UDP IP,IPv6 PPP,PPPoE, Ethernet

Fiecare nivel poate folosi funcionalitile nivelului aflat dedesubtul su; fiecare nivel i poate exporta funcionalitile nivelului aflat deasupra sa. Cu alte cuvinte: un nivel poate comunica doar cu nivelurile adiacente. S lum din nou exemplul mesajului dumneavoastr de pot electronic: l introducei prin nivelul aplicaiilor. n calculatorul dumneavoastr, el cltorete prin nivelurile de transport i reea. Calculatorul l transmite n reea prin nivelul de acces la reea. Tot acesta este i nivelul care-l poart n jurul lumii. La destinaie, calculatorul de destinaie l preia prin nivelul propriu de reea i l va afia cu ajutorul nivelurilor de transport i aplicaii. 143

n realitate lucrurile sunt mult mai complicate Seciunea de mai sus i cea urmtoare sunt incluse deoarece mai devreme sau mai trziu v vei lovi de anumii termeni proprii reelisticii; aceste seciuni v vor ajuta s v consolidai un punct de plecare, dac trebuie s aflai mai multe detalii pe marginea acestui subiect.

10.1.2. Cteva protocoale de reea mai cunoscute


Linux-ul recunoate mai multe protocoale de reea. Vom prezenta pe cele mai importante:

10.1.2.1. TCP/IP The Transport Control Protocol i Internet Protocol sunt dou din cele mai populare ci de comunicare pe Internet. Multe aplicaii, precum navigatorul dumneavoastr i programele de pot electronic sunt realizate pe baza acestei suite de protocoale. La baz, IP asigur soluii pentru trimiterea pachetelor de informaii de la un calculator la altul, n timp ce TCP aranjeaz pachetele n fluxuri, astfel nct pachetele diferitelor aplicaii s nu se amestece i s fie primite la destinaie n ordinea corect. Un punct de plecare n studierea TCP i IP este reprezentat de urmtoarele lucrri:

man 7 ip: descrie implementarea protocolului IPv4 n Linux (versiunea 4 fiind cea mai des ntlnit
ediie a acestui protocol). man 7 tcp: implementarea protocolului TCP. RFC793, RFC1122, RFC2001 pentru TCP, iar pentru IP, RFC791, RFC1122 i RFC1112.

Documentele Request For Comments conin descrierea standardelor de reea, a protocoalelor, aplicaiilor i implementrile acestora. Documentele sunt administrate de Internet Engineering Task Force, o comunitate internaional care rspunde de operaionalitatea Internetului precum i de evoluia i dezvoltarea arhitecturii Internetului. Furnizorul dumneavoastr de Internet are o arhiv disponibil, sau putei consulta aceste RFC-uri via http://www.ietf.org/rfc.html.

10.1.2.2. TCP/IPv6 Nimeni nu se atepta ca Internetul s creasc n ritmul pe care-l cunoatem azi. S-a dovedit c IP are anumite dezavantaje atunci cnd un numr foarte mare de calculatoare sunt n reea, cel mai mare fiind acela legat de alocarea unei adrese unice fiecrui calculator existent n reea. De aceea, IP versiunea 6 a fost destinat s rspund nevoilor actuale ale Internetului. Din nefericire, nu toate aplicaiile i serviciile pot lucra nc cu IPv6. Migrarea este n desfurare n cazul multor aplicaii i servicii care pot beneficia de pe urma implementrii protocolului amintit. Cteva aplicaii folosesc vechiul protocol, iar pentru cele care au fost reproiectate noua versiune este activ. n momentul n care verificai configuraia reelei, lucrurile nu sunt aa de clare, ntruct au fost luate tot felul de msuri pentru a mpiedica amestecarea conexiunilor, prin ascunderea unui protocol de cellalt. Mai multe informaii pot fi gsite n urmtoarele documente:

man 7 ipv6: implementarea protocolului Linux IPv6. RFC1883 care descrie protocolul IPv6.
10.1.2.3. PPP, SLIP, PLIP, PPOE Kernelul Linux integreaz protocoalele PPP (Point-to-Point-Protocol), SLIP (Serial Line IP), PLIP (Parallel Line IP) i PPPP Over EThernet. PPP este cea mai folosit cale prin care utilizatorii individuali acceseaz furnizorul de Internet (ISP - Internet Service Provider), dei n zonele des populate acesta este 144

nlocuit de PPPOE, protocol folosit n cazul conexiunilor ADSL (Asymetric Digital Subscriber Line). Cele mai multe distribuii de Linux au ncorporat unelte uor de folosit pentru configurarea conexiunii la Internet. Ceea ce trebuie s cunoatei este numele de utilizator i parola furnizate de ISP-ul dumneavoastr, iar n cazul PPP un numr de telefon. Aceste date sunt introduse ntr-o aplicaie care ruleaz n modul grafic, care v permite i pornirea sau oprirea conexiunii la Internet.

10.1.2.4. ISDN Kernelul Linux-ului include i tratarea protocolului ISDN. Isdn4linux controleaz plcile ISDN PC i poate emula un modem cu setul de comenzi Hayes (comenzile AT). Posibilitile acoper simpla utilizare a unui program terminal ct i o conexiune total la Internet. Verificai n documentaia sistemului dumneavoastr.

10.1.2.5. AppleTalk Appletalk este numele sistemului de conectivitate al calculatoarelor Apple. Permite o reea peer-topeer cu funcionaliti de baz cum ar fi partajarea de fiiere i imprimante. Fiecare calculator se poate comporta n acelai timp ca server sau client, iar programele i dispozitivele necesare sunt incluse n orice calculator Apple. Linux-ul asigur implementarea total a AppleTalk. Netatalk este implementarea la nivelul kernelului a protocolului AppleTalk Protocol Suite, fiind la baz destinat sistemelor BSD i derivate. Integreaz rutarea AppleTalk, care deservete sistemele de fiiere UNIX i AFS care utilizeaz AppleShare i imprimantele UNIX precum i pe cele AppleTalk.

10.1.2.6. SMB/NMB Pentru compatibilitatea cu mediul MS Windows, suita Samba, care include protocoalele NMB i SMB, poate fi instalat pe orice sistem compatibil UNIX. Protocolul Server Message Block (cunoscut i drept Session Message Block, NetBios sau LanManager Protocol), este folosit pe sistemele MS Windows 3.11, NT, 95/98, 2K i XP pentru partajarea discurilor i imprimantelor. Funcionalitile de baz ale suitei Samba sunt: partajarea discurilor Linux cu cele ale Windowsului, accesarea SMB de pe calculatoarele Linux, accesarea imprimantelor Linux de ctre calculatoarele Windows i accesarea imprimantelor Windows de ctre sisteme Linux. Cele mai multe distribuii de Linux includ un pachet samba, care configureaz cea mai mare parte a serverului i pornete smbd, serviciul Samba, i nmbd, serviciul netbios, implicit, la pornirea calcularorului. Samba poate fi configurat n modul grafic, cu ajutorul unei interfee web sau n modul liniei de comand, cu ajutorul fiierelor text de configurare. Serviciul face ca un calculator Linux s apar drept o gazd MS Windows n fereastra My Network Places/Network Neighbourhood proprii mediilor MS Windows; partajarea unui sistem Linux nu poate fi distins de oricare alt gazd din mediul MS Windows. Obinei mai multe informaii din urmtoarele surse:

man smb.conf: descrie alctuirea principalului fiier de configurare pentru serviciul Samba. The Samba Project Documentation (sau cutai saitul-oglind local al samba.org) conine un ghid
uor de neles pentru instalare i testare, care explic i modul n care putei configura serviciul Samba ca Primary Domain Controller (Controlor Primar de Domenii). Pe acest sait sunt disponibile i toate paginile de manuale.

10.1.2.7. Alte protocoale Linux-ul se poate descurca i cu Amateur Radio, WAN internetworking (X25, Frame Relay, ATM), InfraRed i alte conexiuni fr fir, dar, ntruct aceste protocoale necesit echipamente dedicate, nu le vom discuta n aceast lucrare.

145

10.2. Configurarea reelei i informaii despre reea


10.2.1. Configurarea interfeelor de reea
Toate distribuiile principale de Linux, prietenoase cu utilizatorul, vin cu diferite unelte grafice care permit configurarea calculatorului pentru o reea local, conectarea la un furnizor de servicii Internet sau accesarea unei reele wireless (fr fir). Aceste unelte pot fi pornite din linia de comand sau din meniu:

Configurarea Ubuntu este fcut prin selectarea System -> Administration -> Networking (Sistem ->
Administrare -> Utilitare de reea). RedHat Linux include redhat-config-network, care dispune att de interfa n modul grafic, ct i de cea text. YAST sau YAST2 din Suse sunt o unealt de configurare all-in-one. Mandrake/Mandriva vine cu un utilitar numit Network and Internet Configuration Wizzard, pe care v sftuim s-l pornii din Mandrake`s Control Center (Centrul de Control al Mandrake) Pe sistemele Gnome: gnome-network-preferences. Pe sistemele KDE: knetworkconf.

Documentaia sistemului pe care lucrai conine multe sfaturi i informaii despre disponibilitatea i modul de folosire a uneltelor specifice. Informaii pe care trebuie s le furnizai:

Pentru conectarea la reeaua local, de exemplu la calculatoarele de acas sau de la serviciu:


numele calculatorului, numele domeniului i adresa de IP. Dac dorii s v configurai o reea local, este bine s studiai mai mult pentru nceput. La serviciu, informaiile pe care le-am menionat sunt furnizate calculatorului, de cele mai multe ori, la pornirea acestuia. Dac nu suntei sigur, mai bine nu introducei nici o informaie. Pentru conectarea la Internet: numele de utilizator i parola furnizate de ISP-ul dumneavoastr, numrul de telefon dac folosii un modem pentru linia telefonic. Furnizorul dumneavoastr de Internet v aloc, de regul automat, o adres de IP i toate cele necesare pentru ca aplicaiile dumneavoastr legate de Internet s lucreze cum trebuie.

10.2.2. Fiierele de configurare ale reelei


Asistentul grafic modific un set specific de fiiere de configurare ale reelei, folosind cteva comenzi de baz. Numele exact al fiierelor de configurare i localizarea lor n sistemul de fiiere depind n mare msur de distribuia i versiunea de Linux pe care o folosii. Totui, exist fiiere de configurare ale reelei care sunt ntlnite pe toate sistemele asemntoare UNIX:

10.2.2.1. /etc/hosts Fiierul /etc/hosts conine ntotdeauna adresa local IP a calculatorului, 127.0.0.1, folosit de comunicaiiile interprocese. Nu tergei aceast linie niciodat! Cteodat conine adrese ale altor calculatoare, care pot fi contactate fr a fi nevoie de folosirea unui serviciu extern de nume, precum DNS (Domain Name Server). O mostr de fiier hosts al unei mici reele este urmtoarea:

Citii mai multe n man hosts.

146

10.2.2.2. /etc/resolv.conf Fiierul /etc/resolv.conf controleaz accesul la un server DNS, consultai Seciunea 10.3.7. Acest fiier conine numele dumneavoastr de domeniu i numele serverului (serverelor) ce trebuie contactate:

Citii mai multe n paginile man ale resolv.conf.

10.2.2.3. /etc/nsswitch.conf Fiierul /etc/nsswitch.conf definete ordinea n care sunt contactate numele diferite de servicii. Pentru utilizarea Internetului, este important ca dns s apar n linia hosts:

Prin aceasta se dau instruciuni calculatorului s caute numele gazdelor i adresele de IP ncepnd cu fiierul /etc/hosts i s contacteze serverul DNS dac o anume gazd nu apare n acest fiier. Alte nume posibile de servicii care pot fi listate sunt: LDAP, NIS i NIS+. Ca de obicei, mai multe despre acest subiect gsii n man nsswitch.conf.

10.2.3. Comenzile de configurare ale reelei


10.2.3.1. Comanda ip Scripturile specifice distribuiilor i uneltele grafice sunt doar interfee ale comenzii ip (sau ifconfig i route pe sistemele mai vechi) care afieaz i modific configuraia prii de reea integrat n kernel. Comanda ip este folosit pentru a aloca adrese IP interfeelor de reea, pentru configurarea ruttilor pentru Internet i alte reele, pentru afiarea configurrilor TCP/IP, i altele. Urmtoarele comenzi afieaz adresa de IP i informaii legate de rutare:

Lucruri de inut minte:

apar dou interfee de reea, chiar pe calculatoarele care au doar o plac fizic de reea: lo este
bucla local (local loop), folosit de comunicaiile interne; eth0 este un nume comun pentru interfaa real. Nu schimbai niciodat configuraia buclei locale, pentru c sistemul va funciona incorect. Interfeele fr fir sunt definite de regul ca wlan0; modemurile ca ppp0, dar pot avea i alte nume. adresele de IP, marcate cu inet: bucla local ntotdeauna are adresa 127.0.0.1, n timp ce interfeele fizice au tot felul de combinaii. 147

adresele fizice ale echipamentelor, care pot fi solicitate ca parte a procedurii de autentificare n
reea, sunt marcate ca ether. Bucla local are 6 perechi de zero, iar placa de reea are 6 perechi de caractere hexazecimale, din care primele 3 perechi sunt specifice fabricantului.

10.2.3.2. Comanda ifconfig Cu toate c ip este cea mai nou cale de configurare a unui sistem Linux, ifconfig este nc folosit destul de des. Folosii-l fr opiuni pentru a afia informaii despre interfeele de reea:

Putei observa i aici cele mai importante aspecte ale configurrii interfeei:

Adresa de IP este marcat cu inet addr. Adresa dispozitivului se afl dup eticheta HWadrr.
Ambele comenzi, ifconfig i ip, afieaz mai n detaliu informaii i date statistice despre fiecare interfa i, ceea ce este foarte important, dac acestea sunt UP (pornite) i RUNNING (lucreaz).

10.2.3.3. Comenzile PCMCIA Pe laptopul dumneavoastr folosii, de regul, pentru conexiunea la reeaua companiei, placa Ethernet, dar dac suntei pui n situaia de a configura o conexiune acas sau ntr-un hotel, este posibil s fie nevoie de activarea cardului (plcii) PCMCIA. Putei face acest lucru prin utilitarul de control cardctl sau pcccardctl pe distribuiile mai noi. Iat un exemplu de utilizare: cardctl insert n acest moment putei configura cardul, fie n modul grafic, fie prin interfaa liniei de comand. nainte de a scoate cardul, folosii comanda: cardctl eject O distribuie serioas ar trebui s integreze n uneltele de configurare ale reelei utilitare pentru administrarea cardurilor PCMCIA, nefiind nevoie de executarea manual a acestor comenzi.

10.2.3.4. Mai multe informaii Discutarea mai multor chestiuni legate de configurarea reelei este dincolo de scopul acestui document. Sursa dumneavoastr primar pentru mai multe informaii este reprezentat de paginile manualelor pentru serviciile pe care dorii s le configurai. Lecturi adiionale:

148

The Modem-HOWTO: V ajut la alegerea, conectarea, configurarea, rezolvarea problemelor i


nelegerea modemurilor n sistem analog pentru PC-uri. LDP HOWTO Index, Seciunea 4.4: administreaz listele de HOWTO despre reelistic n general, protocoale, dial-up, DNS, VPN, bridging (puni), rutare, securitate i altele. Cele mai multe sisteme au o versiune a fiierului ip-cref (cutai-l prin comanda locate); formatul PS al acestui fiier poate fi vizualizat de exemplu cu gv.

10.2.4. Numele interfeelor de reea


Pe un calculator Linux, numele dispozitivului lo sau al buclei locale (local loop) este legat de adresa intern 127.0.0.1. Calculatorul va fi pus n dificultate n momentul lansrii aplicaiilor dac acest dispozitiv nu este prezent; este mereu disponibil, chiar pe calculatoarele care nu sunt legate la reea. Primul dispozitiv ethernet, eth0 n cazul unei interfee fizice (plac) standard de reea, intete ctre adresa dumneavoastr local LAN IP. Calculatoarele care sunt clieni obinuii au doar o plac de reea. Ruterele (routers), care fac legtura ntre reele, dispun de cte un dispozitiv de reea pentru fiecare reea deservit. Dac folosii un modem pentru a v conecta la Internet, probabil c acesta va fi denumit ppp0. Exist mult mai multe nume, de exemplu pentru interfeele virtuale private de reea (VPN),iar mai multe interfee pot fi active simultan, de aceea ieirea comenzilor ifconfig sau ip poate deveni stufoas dac nu este folosit nici o opiune. Pot fi active mai multe interfee de acelai tip. n acest caz, ele vor fi denumite secvenial: prima va primi numrul 0, a doua sufixul 1, cea de-a treia va primi 2, .a.m.d. Cazul despre care am vorbit este ntlnit pe servere, pe sisteme care au o configuraie redundant, pe rutere, firewall-uri i multe altele.

10.2.5. Verificarea configuraiei calculatorului cu netstat


n afar de comanda ip, care afieaz configurarea reelei, exist comanda netstat, care dispune de multe opiuni i este foarte folositoare pe sistemele UNIX. Informaiile legate de rutare sunt afiate prin opiunile -nr ale acestei comenzi:

n imaginea de mai sus este vorba despre un calculator, tipic client, ntr-o reea IP. Are doar o plac de reea, eth0. Interfaa lo este bucla local. Metoda modern Metoda modern de a obine aceeai informaie este folosirea comenzii ip: ip route show Cnd acest calculator ncearc s contacteze o gazd aflat n alt reea dect cea proprie, indicat prin linia care ncepe cu 0.0.0.0., va trimite cererea de conectare calculatorului (ruterului) cu adresa de IP 192.168.42.1, i, pentru asta va folosi interfaa primar, eth0. Calculatoarele care sunt n aceeai reea, linia care ncepe cu 192.168.42.0, vor fi contactate tot prin intermediul interfeei primare, dar nu mai este necesar rutarea, datele sunt puse direct pe reea. Calculatoarele pot avea tabele de rutare mult mai complicate dect acesta, cu diferite perechi Destinations-Gateway pentru conectarea cu diverse reele. Dac avei ocazia de a v conecta la un server de aplicaii, de exemplu la locul de munc, putei verifica, n scop educaional, informaiile legate de rutare.

149

10.2.6. Alte gazde


O colecie impresionant de unelte este destinat administrrii de la distan a calculatoarelor Linux. Saitul oglind local v ofer destul de multe astfel de unelte. Apelai la documentaia specific programelor care v intereseaz, deoarece discutarea acestor aspecte nu face obiectul acestui ghid. Vom discuta n aceast seciune doar comenzile uneltelor text foarte utilizate pe sistemele UNIX/Linux.

10.2.6.1. Comanda host Pentru a afia informaii despre gazde sau domenii, folosii comanda host:

Informaii similare pot fi afiate prin folosirea comenzii dig, care ofer informaii adiionale despre cum sunt stocate nregistrrile n serverul de nume.

10.2.6.2. Comanda ping Pentru a verifica dac un calculator este disponibil n reea, folosii ping. Dac sistemul este configurat pentru a transmite mai mult de un pachet, ntrerupei ping prin combinaia de taste Ctrl+C:

10.2.6.3. Comanda traceroute Pentru a verifica ruta pe care o urmeaz un pachet prin reea, folosii comanda traceroute:

150

Pe unele sisteme, traceroute a fost redenumit tracepath.

10.2.6.4. Comanda whois Informaii specifice numelui de domeniu pot fi apelate prin comanda whois, dup cum se explic de numeroasele servere whois, precum cel din exemplul de mai jos:

Pentru alte nume de domenii precum .com, .net, .org i .edu, s-ar putea s fie nevoie s specificai serverul whois, precum acesta pentru .be domains: whois domain.be@whois.dns.be

151

10.3. Aplicaii Internet/Intranet


Sistemele Linux sunt o platform excelent pentru serviciile de reea. n aceast seciune vom ncerca s v prezentm cele mai cunoscute servicii i aplicaii de reea.

10.3.1. Tipuri de servicii


10.3.1.1. Servicii independente Oferirea unui serviciu poate fi abordat n dou moduri. Un serviciu (sau daemon) poate rula n modul independent sau poate depinde de activarea unui alt serviciu. Serviciile de reea care sunt utilizate intens i/sau continuu, ruleaz de regul independent: sunt programe de sine stttoare care ruleaz non-stop. Sunt iniiate adesea la pornirea calculatorului i ateapt solicitri n puncte specifice de conexiune sau porturi pentru care sunt configurate s asculte. Cnd apare o cerere, este procesat i ateptarea continu pn la urmtoarea cerere. Un server web este un exemplu tipic: v ateptai s fie disponibil 24 de ore pe zi, iar dac este prea ocupat ar trebui create mai multe instane pentru a servi simultan mai multor utilizatori. Alte exemple sunt depozitele mari de programe precum Sourceforge sau your Tucows mirror, care trebuie s se descurce cu mii de cereri FTP pe zi. Un exemplu de serviciu de sine stttor pe calculatorul dumneavoastr de acas este named (serviciul de nume), un serviciu pentru schimbarea de nume. Serviciile independente au propriile procese care ruleaz, evideniate de comanda ps:

Exist totui i servicii care sunt utilizate pe calculatorul dumneavoastr, chiar dac nu exist nici un proces ce ruleaz pentru acel serviciu. Exemple ar fi serviciul FTP, serviciul secure copy sau finger. Acestea beneficiaz de serviciul Internet Daemon (inetd), care ascult pentru ele.

10.3.1.2. (x)inetd Pe calculatoarele de acas, lucrurile sunt mai degrab calme. Este posibil s avei o mic reea i s transferai fiiere dintr-un calculator pe altul, din cnd n cnd, folosind FTP sau Samba (pentru conectivitatea cu sistemele MS Windows). n aceste cazuri, pornirea tuturor serviciilor de care avei nevoie doar ocazional i rularea acestora continuu este un lucru devorator de resurse. Aa c n configurrile de baz vei gsi c serviciile de care avei nevoie depind de un program central care ascult toate porturile serviciilor de care este responsabil. Acest superserviciu, Internet service daemon, este pornit la iniializarea sistemului. Sunt dou implementri de baz: inetd i xinetd (the extended Internet service daemon). Unul din ele ruleaz n mod normal pe orice sistem Linux:

Serviciile pentru care este responsabil Internet daemon sunt listate n fiierul su de configurare, / etc/inetd.conf, pentru inetd, i n /etc/xinetd.d n cazul xinetd. Printre serviciile administrate se regsesc serviciile de partajare de fiiere i imprimante, SSH, FTP, telnet, serviciul de configurare pentru Samba, serviciile talk i time. De ndat ce o cerere de conexiune este primit, serviciul central va porni o instan a serviciului solicitat. Astfel, n exemplul de mai jos, cnd utilizatorul bob pornete o sesiune FTP pe gazda local, un serviciu FTP va rula att timp ct sesiunea este activ:

Desigur, acelai lucru se ntmpl cnd deschidei conexiuni la distan: ori un anume serviciu rspunde direct, ori un serviciu la distan (x)inetd pornete serviciul de care avei nevoie i l oprete n momentul n care terminai treaba. 152

10.3.2. Pota electronic


10.3.2.1. Serviciile Sendmail este programul standard pentru pot electronic sau Mail Transport Agent pentru platformele UNIX. Este solid, scalabil, i , dac este configurat corect n combinaie cu echipamentele potrivite, se descurc cu mii de utilizatori fr nici un efort. Mai multe informaii despre cum se configureaz Sendmail sunt incluse n pachetele sendmail i sendmail-cf. V sftuim s citii i fiierele README i README.cf din /usr/share/doc/sendmail. De asemenea, trebuie citite paginile man sendmail i man aliases. Qmail este alt serviciu de mail, care ctig popularitate deoarece se prezint a fi mai securizat dect Sendmail. n timp ce Sendmail este un program monolit, Qmail este compus din programe mai mici care interacioneaz, fiind mai uor de securizat. Postfix este un alt serviciu de mail care ctig teren printre utilizatori. Aceste servicii administreaz liste de mail, filtre, scanri de virii i multe alte lucruri. Programe antivirus gratuite sau comerciale sunt disponibile pentru Linux. Exemple de programe pentru liste de pot electronic sunt Mailman, Listserv, Majordomo i EZmlm. Consultai paginile web ale programului antivirus favorit pentru informaii despre Linux i serviciile asigurate. Amavis i Spamassasin sunt implementri gratuite ale unor scanere antivirus i antispam.

10.3.2.2. Servicii de mail la distan Cele mai cunoscute protocoale pentru accesarea la distan a serviciilor de pot electronic sunt POP3 i IMAP4. IMAP i POP permit operaiuni offline (n modul deconectat), accesul la distan la mesajele noi i ambele se bazeaz pe serviciul SMTP pentru trimiterea de mesaje. n timp ce POP este un protocol simplu, uor de implementat i acceptat de aproape orice client de mail, este preferat IMAP deoarece:

poate administra etichete persistente ale statutului mesajelor. poate stoca i aduce mesajele de pot electronic. poate accesa i administra mai multe csue de pot electronic. administreaz actualizri i csue de pot electronic comune. poate fi folosit la accesarea mesajelor Usenet i a altor documente. IMAP lucreaz att on-line, ct i deconectat. este optimizat pentru obinerea unor performane maxime on-line, n special pentru reele de mic vitez.

10.3.2.3. Clieni de pot electronic Exist multe programe pentru pot electronic, att pentru mediul grafic, ct i pentru cel text; noi vom arta pe cele mai cunoscute. Alegei-v favoritul. Comanda mail din UNIX este prezent de ani buni, chiar nainte de existena reelelor. Ea este o interfa simpl pentru trimiterea de mesaje i fiiere de mrime mic ctre ali utilizatori, care pot salva aceste mesaje, le pot redireciona, rspunde, etc. Cu toate c acest program nu mai este folosit drept client de mail n zilele noastre, el este totui folositor, de exemplu pentru trimiterea ieirii unei comenzi: mail <future.employer@whereIwant2work.com> < cv.txt Cititorul de mesaje de pot electronic elm este o mbuntire de care mail avea nevoie, o astfel de mbuntire fiind i pine (Pine Is Not ELM). Programul mutt este chiar mai recent i ofer faciliti noi. Pentru acei utilizatori care prefer interfaa grafic pentru pota electronic exist sute de opiuni. Cel mai apreciat program de utilizatorii noi este Mozilla Mail/Thunderbird, care dispune de o opiune anti spam uor de configurat, i Evolution, clona programului MS Outlook. Kmail este apreciat de utilizatorii KDE.

153

Figura 10-1. Programul de pot electronic i citire a tirilor Evolution

Mai menionm existena aplicaiilor web pentru pot electronic, cum ar fi Squirrelmail, Yahoo!, gmail de la Google i Hotmail. O trecere n revist gsii la Linux Mail User HOWTO. Cele mai multe distribuii de Linux includ fetchmail, un program de primire a mesajelor i de naintare a acestora. El aduce mesaje de pe serverele de pot electronic (POP, IMAP i altele) i le pred sistemului local de livrare. Putei apoi gestiona aceste mesaje prin intermediul clienilor normali de pot electronic. Poate fi rulat n sistemul daemon pentru a sonda n mod repetat unul sau mai multe sisteme la un interval specificat. Informaii i exemple de utilizare gsii n paginile Info; Directorul /usr/share/doc/fetchmail [-<version>] conine lista complet a facilitilor i FAQ pentru nceptori. Filtrul procmail poate fi folosit la filtrarea mesajelor primite, la crearea listelor de mail, la preprocesarea mesajelor, la naintarea selectiv a mesajelor i la alte lucruri. Programul care l acompaniaz, formail, printre altele, permite generarea automat a rspunsurilor i divizarea csuelor de pot electronic. Procmail este folosit de mult vreme pe sistemele UNIX i Linux, fiind un program robust, proiectat s lucreze i n cele mai rele circumsane. Gsii mai multe informaii n directorul /usr/share/doc/procmail [-<version>]i n paginile manualelor. O not privind eticheta (regulile de comportament) n cazul E-mail-ului Anumii oameni cred azi c mesajele de pot electronic nu ar trebui s fie prea formale. Desigur, acest lucru depinde de mai muli factori. Dac scriei cuiva pe care nu-l cunoatei, este bine s pstrai distana, la fel cum ai proceda n cazul unei scrisori tradiionale. i nu uitai: oamenii pe care nu-i cunoatei pot fi att brbai ct i femei...

154

10.3.3. Web
10.3.3.1. Serverul web Apache Apache este , de departe, cel mai cunoscut server web, folosit pe mai mult de jumtate din serverele de pe Internet. Cele mai multe distribuii de Linux includ Apache. Printre avantajele Apache se numr alctuirea modular a acestuia, capabilitile SSL, stabilitatea i viteza. Cu echipamentele corespunztoare i configurarea corect, poate suporta cele mai grele condiii de trafic. Pe sistemele Linux, configurrile serverului sunt fcute n directorul /etc/httpd. Cel mai important fiier de configurare este httpd. conf; este destul de explicit. Dac avei nevoie de ajutor, putei cuta n maginile man ale httpd sau vizitai saitul Apache.

10.3.3.2. Navigatoare web Exist numeroase navigatoare web, att libere i gratuire, ct i comerciale, pentru platformele Linux. Netscape Navigator, ca singura opiune de luat n seam, este de domeniul trecutului, de cnd Mozilla/Firefox ofer o alternativ competitiv pentru mai multe sisteme de operare, cum ar fi MS Windows i MacOS X. Amaya este un navigator W3C. Opera este un navigator comercial, compact i rapid. Muli administratori de ecran pun la dispoziie faciliti de navigare pe web, ca nautilus. Printre navigatoarele cunoscute din mediul text enumerm lynx i links. Trebuie s v definii configurarea serverelor proxy n consol prin configurarea variabilelor adecvate. Navigatoarele text sunt rapide i la ndemn atunci cnd nu este disponibil un mediu grafic, ca atunci cnd se folosesc n scripturi.

10.3.3.3. Servere proxy 10.3.3.3.1. Ce este un server proxy? Companiile i organizaiile doresc ca utilizatorii lor s foloseasc un server proxy. n special n mediile cu muli utilizatori, un server proxy poate mbunti ncrcarea paginilor web. Serverele proxy stocheaz paginile web. n momentul n care un utilizator solicit o pagin web care a mai fost vizitat, serverul va oferi acea pagin imediat utilizatorului, fr a mai fi nevoie de obinerea ei de pe Internet, ceea ce ia mai mult timp. Desigur c se iau msuri ca serverul proxy s verifice i s furnizeze cea mai recent versiune a paginii solicitate. n anumite medii, folosirea serverelor proxy este obligatorie, n altele poate fi la alegerea dumneavoastr.

10.3.3.3.2. Configuraia proxy Dac tii numele i portul serverului proxy, normal c trebuie s furnizai aceast informaie navigatorului dumneavoastr. Totui, multe aplicaii (n linie de comand) depind de variabilele http_proxy i ftp_proxy pentru ca ele s funcioneze corect. Pentru un comportament normal, trebuie s adugai o linie asemntoare cu urmtoarea n fiierul ~/.bashrc: export http_proxy=http://nume_utilizator:parol@nume_proxy_server:numr_port De exemplu: export http_proxy=http://willy:Appelsi3ntj3@proxy:80 Dac nu este necesar s furnizai un nume de utilizator i parol, nu introducei nimic nainte de semnul @, semnul fiind necesar.

10.3.4. File Transfer Protocol (Protocolul pentru transferul de fiiere)


10.3.4.1. Servere FTP Pe un sistem Linux, serviciul FTP este rulat din xinetd, folosind serviciul WU-ftpd, dei serviciul 155

FTP poate fi configurat ca un serviciu independent pe sistemele cu trafic FTP intens. Consultai exerciiile. Serviciul FTP include, pe lng altele, vsftpd, Ncftpd i Proftpd. Cele mai multe distribuii de Linux conin pachetul anonftp, care configureaz un server FTP anonim i fiierele de configurare necesare.

10.3.4.2. Clieni FTP Cele mai multe distribuii de Linux includ ncftp, o versiune mbuntit a comenzii UNIX ftp, pe care este posibil s o cunoatei din linia de comand a Windows-ului. Programul ncftp ofer faciliti suplimentare cum ar fi interfee mai prietenoase i mai stilizate, autocompletarea numelor fiierelor, adugarea i reluarea anumitor funcii, semne de carte, administrarea sesiunilor i altele:

Paginile man sunt execelente, ele coninnd i multe exemple. Din nou, v spunem c sunt disponibile i aplicaii grafice. FTP nu este securizat! Nu folosii Protocolul pentru transfer de fiiere (FTP) pentru conectri non-anonime, dect dac tii ce facei. Numele dumneavoastr de utilizator i parola pot fi interceptate de ali utilizatori ai reelei! Folosii n schimb FTP securizat; programul sftp este inclus n suita Secure SHell, consultai Seciunea 10.4.4.4.

10.3.5. Chat i conferin


Sunt disponibile mai multe sisteme i programe pentru fiecare distribuie, care nlocuiesc chat-ul bazat pe stilul vechi al IRC. iat o list scurt i incomplet a celor mai folosite programe:

gaim: mesagerie instant multiprotocol pentru Linux, Windows i Mac, compatibil cu MSN
Messenger, ICQ, IRC i multe altele; Consultai paginile Info sau saitul Gaim pentru mai multe informaii. xchat: client IRC pentru sistemul de ferestre X (vezi Figura 19-2 de pe pagina care urmeaz). Pagina programului se afl pe SourceForge. aMSN: o clon a MSN. Konversation, kopete, KVIrc i multe altele pentru suita KDE. gnomemeeting: program de videoconferin pentru UNIX (acum cunoscut drept Ekiga). jabber: platform de mesagerie instant Open Source, compatibil cu ICQ, AIM, Yahoo, MSN, IRC, SMTP i altele.

156

Figura 19-2. X-Chat

psi: client jabber, consultai the PSI Jabber Client Homepage. skype: program pentru convorbiri asemntoare celor telefonice, folosind Internetul, cu ali utilizatori
Skype. Consultai http://www.skype.com pentru mai multe informaii. Skype este gratuit, dar nu liber (deschis). Gizmo: un program gratuit (dar nu liber) de telefonie pentru calculatorul dumneavoastr, consultai http://www.gizmoproject.com.

10.3.6. Servicii de tiri


Punerea pe picioare a unui serviciu Usenet implic mult experien i atenie la detaliile configurrii, aa c v ndreptm ctre pagina INN pentru mai multe informaii. Exist cteva grupuri de tiri interesante n ierarhia comp*, care pot fi accesate folosind mai multe programe pentru mediul text sau grafic. Muli clieni de mail se pot descurca i cu administrarea grupurilor de tiri, verificai aadar programul propriu sau cutai n saitul oglind local programe Open Source ca tin, slrnn i mutt sau descrcai Mozilla ori alt client grafic. Deja.com pstreaz o arhiv o tuturor grupurilor de tiri, susinut de Google. Este un instrument excelent atunci cnd avei nevoie de ajutor: sunt foarte multe anse ca cineva s se fi confruntat cu aceeai problem, s fi gsit i soluia, iar rspunsul s fie postat ntr-unul din grupurile de tiri.

10.3.7. The Domain Name System (Sistemul numelui de domenii)


Toate aceste aplicaii au nevoie de serviciile DNS pentru a potrivi adresele IP cu numele gazdelor i invers. Un server DNS nu cunoate toate adresele de IP din lume, dar lucreaz n reea cu alte servere DNS pe care le poate chestiona n legtur cu adrese necunoscute. Cele mai multe sisteme UNIX pot rula named, care este o parte a pachetului BIND (Berkeley Internet Name Domain) distribuit de Internet Software Consortium. Poate lucra ca un serviciu independent de server de nume, pentru a mbunti accesul la reea pe sistemele Linux.

157

Fiierul principal de configurare este n /etc/resolv.conf, acesta determinnd ordinea n care sunt contactate DNS-urile:

Mai

multe

informaii

pot

fi

gsite

paginile

Info

ale

named,

fiierul

/usr/share/doc/bind[-<version>] i la pagina Proiectului Bind. DNS HOWTO acoper utilizarea


BIND ca server DNS.

10.3.8. DHCP
DHCP este the Dynamic Host Configuration Protocol (Protocolul de configurare dinamic a gazdei), care nlocuiete gradual btrnul bootp n mediile mari. Este folosit pentru controlarea parametrilor vitali de reea, precum adrese de IP i serverele de nume ale gazdei. DHCP este compatibil retroactiv cu bootp. Pentru configurarea serviciului, trebuie s citii HOWTO. Calculatoarele client care folosesc DHCP sunt configurate de regul prin interfaa grafic care configureaz dhcpcd, serviciul client DHCP. Verificai documentaia sistemului dac trebuie s configurai calculatorul drept client DHCP.

10.3.9. Servicii de autentificare


10.3.9.1. Tradiionale Tradiinal, utilizatorii sunt autentificai local, folosind informaiile stocate n /etc/passwd i /etc/shadow, fiiere existente pe orice sistem. Chiar folosind un serviciu de reea pentru autentificare, fiierele locale vor fi ntotdeauna prezente pentru a configura conturile sistemului pentru utilizarea administrativ, precum conturile de root, serviciile care ruleaz pe anumite conturi i conturile create pentru anumite programe sau scopuri. Aceste fiiere sunt primele care sunt examinate de cineva care dorete s preia controlul asupra calculatorului dumneavoastr, aa c asigurai-v c politica permisiunilor i a deintorilor este strict:

10.3.9.2. PAM Linux-ul poate folosi PAM, The Pluggable Authentication Module, o metod flexibil de autentificare pe sistemele UNIX. Avantajele PAM:

Poate fi folosit o schem comun de autentificare pentru o gam larg de aplicaii. PAM poate fi implementat pe multe aplicaii fr a fi necesar recompilarea aplicaiilor pentru a rula
cu PAM. Administratorii i dezvoltatorii de programe se bucur de avantaje ca flexibilitatea i controlul autentificrilor. Dezvoltatorii nu trebuie s proiecteze un program pentru o anumit schem de autentificare. Ei se pot concentra pe detaliile programului n sine.

Directorul /etc/pam.d conine fiierele de configurare ale PAM (nainte era /etc/pam.conf). Fiecare aplicaie sau serviciu are propriul fiier. Oricare linie din fiier are patru elemente:

Module (Module): auth: asigur autentificarea propriu-zis (poate prin solicitarea i verificarea unei parole)
i stabilete permisiunile, precum apartenena la un grup sau bilete Kerberos. 158

account: verific pentru a se asigura c accesul este permis pentru utilizator (contul nu a expirat, utilizatorului i este permis s se autentifice la acel moment al zilei, etc.). passwords: folosit pentru configurarea parolelor. session: folosit dup ce un utilizator se autentific. Acest modul execut sarcini adiionale de care este nevoie pentru permiterea accesului (de exemplu, montarea directorului personal al utilizatorului sau punerea la dispoziie a csuei potale). Ordinea n care sunt alturate modulele, n aa fel nct s fie folosite mai multe, este foarte important. Control Flags (Etichete de control): spune PAM ce aciuni s iniieze n caz de eec sau succes. Valorile pot fi required, requisite, sufficient sau optional. Module Path (Calea ctre modul): traseul ctre modulul care va fi folosit, de regul n /lib/security. Arguments (Argumente): informaii pentru module.
Fiierele /etc/shadow i /etc/passwd sunt detectate automat de PAM. Mai multe informaii sunt disponibile n paginile man ale pam i pe pagina Proiectul Linux-PAM.

10.3.9.3. LDAP Lightweight Directory Acces Protocol este un sistem client-server pentru accesarea unor directoare de servicii globale sau locale prin intermediul reelei. Pe sistemele Linux, este folosit implementarea OpenLDAP. Include slapd, un serviciu independent; slurpd, un server replicator independent; librriile care implementeaz protocolul LDAP i o serie de utiliti, unelte i clieni. Principalul beneficiu al utilizrii LDAP este securizarea anumitor tipuri de informaii n interiorul organizaiei dumneavoastr. De exemplu, toate listele de utilizatori din organizaia dumneavoastr pot fi integrate ntr-un director LAPD. Acest director poate fi apelat de toate aplicaiile pe care LAPD le permite i care au nevoie de aceste informaii. Pot fi accesate i de utilizatorii care au nevoie de informaiile din director. Alte beneficii ale LAPD sau X.500 Lite includ uurina n implementare (comparat cu X.500) i Application Programming Interface (API), ceea ce se traduce prin faptul c numrul aplicaiilor LAPD i porile LAPD vor crete ca numr n viitor. Ca minusuri, dac dorii s folosii LAPD, vei avea nevoie de aplicaii care s funcioneze cu acest serviciu sau de abilitatea de a folosi porile LAPD. n timp ce folosirea LAPD se extinde, nu putem spune c dispunem de multe aplicaii pentru Linux capabile s lucreze cu acest serviciu. De asemenea, cu toate c LDAP dispune de un anume control al accesului, nu posed att de multe faciliti legate de securitate precum X.500. ntruct LDAP este un protocol deschis i configurabil, poate fi folosit la stocarea oricrui tip de informaie legat de structura particular a unei organizaii. Exemple comune sunt bazele de date cu adrese de pot electronic, autentificarea n combinaie cu PAM, bazele de date care conin numere de telefon i bazele de date care conin fiierele de configurare ale sistemelor. Consultai informaiile specifice sistemului dumneavoastr i paginile man ale comenzilor care au legtur cu acest serviciu, cum ar fi ldapmodify i ldapsearch pentru mai multe detalii. Mai multe informaii putei gsi n LDAP Linux HOWTO, care prezint instalarea, configurarea, rularea i ntreinerea unui server LDAP pe sistemele Linux. Autoarea acestei introduceri n Linux a scris i LDAP Operation HOWTO, n care sunt descrise lucrurile de baz pe care trebuie s le cunoasc oricine care are de-a face cu administrarea, operarea i integrarea serviciilor LDAP.

10.4. Executarea la distan a aplicaiilor


10.4.1. Introducere
Exist mai multe moduri n care pot fi executate comenzi sau lansate programe pe calculatoare aflate la distan i obinerea ieirilor acestora, n mod text sau grafic, pe staia dumneavoastr de lucru. Conectarea poate fi securizat sau nu. Cu toate c v sftuim s folosii conexiuni securizate n loc s v 159

trimitei parola necriptat pe reea, vom discuta i unele aplicaii practice ale mecanismului mai vechi (nesecurizat), ntruct acestea sunt nc folositoare n mediile reelelor moderne, cum ar fi rularea sau repararea unor aplicaii exotice.

10.4.2. Rsh, rlogin i telnet


Comenzile rlogin i rsh pentru autentificarea i executarea la distan a comenzilor sunt motenite din UNIX. Ele sunt folosite rareori pentru c sunt extrem de nesigure dar sint integrate n orice sistem Linux pentru asigurarea compatibilitii retroactive cu programele UNIX. Telnet, pe de alt parte, este nc folosit, adesea de ctre administratorii de sisteme sau reele. Telnet este una din cele mai puternice unelte pentru accesarea la distan a fiierelor i pentru administrarea la distan, permind conexiuni de oriunde exist Internet. Combinat cu un server X, aplicaii grafice de pe un alt calculator pot fi afiate local. Nu este nici o diferen ntre a lucra local pe un calculator i folosirea unui calculator aflat la distan. Deoarece conexiunea nu este criptat, permiterea unei legturi telnet implic riscuri majore de securitate. Pentru executarea normal a programelor la distan, v sftuim s folosii Secure SHell sau ssh. Vom prezenta metoda sigur pe parcursul acestei seciuni. Totui, telnet este folosit n multe cazuri. Mai jos sunt cteva exemple n care un server de mail i unul de web sunt testate pentru rspunsuri: Verificarea strii unui server de mail:

Verificarea unui server web din punct de vedere al rspunsului la cereri de baz:

160

Aceast procedur este sigur,deoarece nu a trebuit s furnizai un nume de utilizator i/sau o parol pentru a obine datele pe care le dorii, aa c nimeni nu poate captura aceste informaii importante din reea.

10.4.3. Sistemul X Window


10.4.3.1. Caracteristicile X Dup cum am explicat deja n Capitolul 7 (consultai Seciunea 7.3.3), sistemul X Window include un server X care se ocup de partea grafic pentru clienii care solicit afiajul. Este important s facei distincia dintre serverul X i aplicaiile client ale acestuia. Serverul X controleaz direct afiajul i este responsabil pentru toate intrrile i ieirile via tastatur, maus i ecran. Clienii X, pe de alt parte, nu acceseaz dispozitivele de intrare/ieire n mod direct. Ei comunic cu serverul X care gestioneaz intrrile i ieirile. Clienii X fac munca propriu-zis, precum calcularea valorilor, rularea aplicaiilor i aa mai departe. Serverul X doar deschide ferestrele prin care se transmit intrrile i ieirile pentru clientul specificat. n operarea normal (mediul grafic), orice staie de lucru Linux este un server X pentru sine, chiar dac ruleaz doar aplicaii client. Toate aplicaiile pe care le rulai (de exemplu, Gimp, o fereastr terminal, navigatorul dumneavoastr, aplicaiile de birou, programul pentru redarea CD-urilor, etc.) sunt clieni ai serverului X. Serverul i clienii, n acest caz, ruleaz pe aceeai main. Natura client/server a sistemului X l transform ntr-un mediu ideal pentru execuia la distan a aplicaiilor i programelor. Deoarece procesele sunt executate de fapt pe calculatorul aflat la distan, pe gazda local sunt consumate puine resurse ale procesorului. Astfel de calculatoare, care lucreaz doar ca server X, sunt numite terminale X i au fost foarte populare n trecut. Mai multe informaii putei gsi n Remote application mini-HOWTO.

10.4.3.2. Telnet i X Dac dorii s folosii telnet pentru a afia aplicaiile grafice care ruleaz pe un calculator aflat la distan, primul lucru pe care trebuie s-l facei este s permitei calculatorului aflat la distan accesul la afiajul dumneavoastr (la serverul X propriu!) prin folosirea comenzii xhost, introducnd o comand similar celei de mai jos ntr-o fereastr terminal de pe calculatorul dumneavoastr:

Dup aceasta, conectai-v la calculatorul aflat la distan i spunei-i s afieze grafica pe calculatorul dumneavoastr prin configurarea variabilei DISPLAY:

Dup parcurgerea acestei etape, orice aplicaie pornit n aceast fereastr terminal va fi afiat pe calculatorul dumneavoastr, folosind resursele de calcul aflate la distan, dar resursele grafice proprii (serverul X propriu) pentru afiarea aplicaiilor. Aceast procedur pleac de la ipoteza c dispunei de o variant a serverului X (XFree86, X.org, Exceed, Cygwin) instalat corespunztor pe calculatorul pe care dorii s afiai aplicaiile grafice. Arhitectura i sistemul de operare ale calculatorului client nu sunt importante, att timp ct v permit s rulai un server 161

X pe acestea. Reinei c afiarea unei ferestre terminal de pe un calculator aflat la distan este tratat ca afiarea unei imagini.

10.4.4. Suita SSH


10.4.4.1. Introducere Cele mai multe sisteme UNIX i Linux utilizeaz Secure SHell pentru a preveni riscurile de securitate generate de telnet. Pe sistemele Linux vei gsi probabil o versiune a OpenSSH, implementarea Open Source a protocolului SSH, care asigur comunicaii securizate criptate ntre calculatoare care folosesc o reea nesigur. n configurarea standard conexiunile X sunt naintate automat, dar porturi arbitrare TCP/IP pot fi de asemenea naintate, folosind un canal securizat. Clientul ssh se conecteaz la gazda indicat. Utilizatorul trebuie s-i prezinte identitatea ctre calculatorul aflat la distan i aceast identitate trebuie s corespund cu cea din fiierul de configurare sshd_config, care poate fi gsit, n cele mai multe cazuri, n /etc/ssh. Fiierul de configurare este destul de explicit i permite n configurarea implicit cele mai folosite faciliti. Dac avei nevoie de ajutor, l putei gsi n paginile man sshd. Dup ce identitatea utilizatorului a fost verificat i acceptat de server, acesta execut comanda primit sau se conecteaz la calculator i ofer utilizatorului o consol normal pe calculatorul aflat la distan. Toate comunicaiile, comenzi pentru aplicaiile la distan sau pentru consol, vor fi criptate automat. Sesiunea este nchis atunci cnd comenzile sau consola de pe calculatorul aflat la distan sunt terminate i toate conexiunile X11 i TCP/IP sunt nchise. Cnd v conectai pentru prima dat la o gazd, folosind oricare din programele care sunt incluse n colecia SSH, trebuie s stabilii autenticitatea acelei gazde la care dorii s v conectai:

Este important s tastai yes, toate cele trei caractere, nu doar y. Prin aceasta se modific fiierul ~/.ssh/known_hosts, consultai Seciunea 10.4.4.3. Dac dorii doar s verificai ceva pe calculatorul aflat la distan i apoi s v rentoarcei la calculatorul dumneavoastr, putei introduce comanda pe care dorii s o executai la distan ca argument pentru ssh:

10.4.4.2. naintarea conexiunilor X11 i TCP Dac este configurat pe yes intrarea X11Forwarding pe calculatorul int i utilizatorul folosete aplicaii X, variabila de mediu DISPLAY fiind configurat, conexiunea cu serverul X este automat naintat ctre partea aflat la distan astfel nct orice program X11 pornit din consol va parcurge canalul criptat, iar conexiunea cu serverul X real va fi fcut de la calculatorul local. Utilizatorul nu trebuie s 162

configureze manual variabila DISPLAY. naintarea conexiunilor X11 poate fi configurat din linia de comand sau prin fiierul de configurare sshd. Valoarea pentru DISPLAY configurat prin ssh va inti ctre calculatorul server, dar cu un numr de afiaje mai mare de 0. Acest lucru este normal i apare pentru c ssh creaz un server X proxy pe calculatorul server (care ruleaz aplicaiile client X) pentru naintarea conexiunilor pe canalul criptat. Totul se face automat, aa nct atunci cnd tastai numele unei aplicaii grafice, este afiat pe calculatorul dumneavoastr i nu pe calculatorul aflat la distan. Noi utilizm xclock n exemplul care urmeaz, ntruct este un program mic, n general instalat pe toate sistemele Linux, ideal pentru astfel de teste.
Figura 10-3. SSH X11 forwarding

SSH va configura automat i datele Xauthority de pe calculatorul server. n acest scop, va genera la ntmplare un cookie de autorizare, pstrat n fiieul Xauthority de pe server i va verifica dac fiecare conexiune naintat poart acest cookie pe care-l va nlocui cu cel real n momentul n care conexiunea este deschis. Cookie-ul real de autentificare nu este trimis niciodat calculatorului server (dup cum nici un fiier cookie nu este trimis n clar). Serverul X Procedura de mai sus pornete de la prezumia c avei configurat un server X pe calculatorul pe care dorii s afiai o aplicaie de pe calculatorul aflat la distan. Clientul poate avea o arhitectur diferit i un alt sistem de operare att timp ct poate rula un server X, cum ar fi Cygwin (care implementeaz un server X.org pentru clienii MS Windows i nu numai) sau Exceed, fiind astfel posibil realizarea unei conexiuni la distan cu orice calculator care ruleaz UNIX sau Linux.

10.4.4.3. Autentificarea la server Sistemul client/server ssh menine i verific o baz de date care conine identificarea tuturor gazdelor care au fost folosite. Cheile gazdelor sunt pstrate n $HOME/.ssh/known_hosts aflat n 163

directorul personal al utilizatorului. n plus, fiierul /etc/ssh/ssh_known_hosts este verificat automat n vederea comparrii cu gazdele cunoscute. Orice gazd nou este adugat automat n fiierul utilizatorului. Dac identitatea unei gazde se schimb la un moment dat, ssh emite un avertisment i dezactiveaz autentificarea prin parol pentru a preveni ca vreun Troian s se foloseasc de acea parol. Alt scop al acestui mecanism este prevenirea atacurilor man-in-the middle, care pot fi folosite la scurtcircuitarea criptrii. n mediile care necesit standarde ridicate de securitate, sshd poate fi configurat s nu permit conectarea la calculatoarele ale cror chei au fost schimbate sau nu sunt cunoscute.

10.4.4.4. Copierea securizat la distan. Colecia SSH include comanda scp ca alternativ sigur a comenzii folosite extensiv n trecut, rcp, cnd exista doar rsh. scp folosete ssh pentru transferul de date, utilizeaz aceeai autentificare i asigur aceeai securitate ca ssh. Spre deosebire de rcp, scp va cere parolele sau propoziiile de control dac ele sunt cerute pentru autentificare:

Orice nume de fiier poate conine specificaii despre gazd i utilizatori pentru a indica faptul c fiierul este destinat copierii de pe/ctre acea gazd. Este permis copierea n cazul a dou gazde aflate la distan. Consultai paginile Info pentru mai multe informaii. Dac folosii mai des o interfa asemntoare FTP, utilizai sftp:

Copii securizate sau interfee grafice FTP Nu v simii nc n largul dumneavoastr n mediul liniei de comand? ncercai capabilitile Konqueror legate de copierea securizat la distan sau instalai Putty.

10.4.4.5. Cheile de autentificare Comanda ssh-keygen genereaz, administreaz i convertete cheile de autentificare pentru ssh. Poate genera chei RSA pentru folosirea cu protocolul SSH versiunea 1 i chei RSA sau DSA pentru protocolul SSH versiunea 2. n mod normal, orice utilizator care dorete s foloseasc SSH cu autentificare RSA sau DSA ruleaz aceast comand mcar odat pentru a genera chei de autentificare n $HOME/.ssh/identity, id_dsa sau id_rsa. n plus, administratorul de sistem poate utiliza aceast comand pentru generarea cheilor de gazd pentru sistem. Acest program genereaz cheile i solicit un fiier n care s stocheze cheile private. Cheia public este pstrat ntr-un fiier cu acelai nume dar cu terminaia . pub. Programul solicit i o propoziie de control. Cmpul pentru propoziia de control poate fi lsat gol, ceea ce nseamn c ea nu exist (cheile gazdei trebuie s nu aib propoziie de control) sau poate conine un ir de o lungime arbitrar. Nu exist nici o modalitate de a recupera o propoziie de control (parol) pierdut. Dac propoziia de control este pierdut sau uitat, trebuie s generai o cheie nou i s o copiai n cheia public 164

corespondent. Vom studia cheile SSH prin exerciii. Toate informaiile de care avei nevoie pot fi gsite n paginile man sau Info.

10.4.5. VNC
VNC sau Virtual Network Computing este de fapt un sistem de afiare la distan care permite vizualizarea unui spaiu de lucru (desktop environment) nu doar pe calculatorul local, ci oriunde pe Internet, pe o mare varietate de sisteme i arhitecturi, inclusiv MS Windows i cteva distribuii UNIX. Putei, de exemplu, s rulai MS Word pe un sistem Windows NT i s afiai ieirea pe un spaiu de lucru Linux. VNC asigur att serverele ct i clienii, aa c funcioneaz i invers, adic permite afiarea programelor Linux pe clieni Windows. VNC este, probabil, cea mai uoar cale prin care putei avea conexiuni X pe calculatorul dumneavoastr. Urmtoarele caracteristici fac ca VNC s fie diferit de un server X normal sau de implementrile comerciale:

Nu este stocat nimic pe calculatorul pe care se afieaz: putei prsi staia de lucru curent i v
putei relua lucrul de la alt calculator, din punctul n care ai rmas. Cnd rulai un server X pe un calculator i acesta nghea sau este repornit, toate aplicaiile la distan pe care le rulai vor fi terminate. Cu VNC, acestea vor continua s ruleze. Este mic i simplu, nu necesit instalare, poate rula de pe o dischet dac este nevoie. Cu clientul Java este independent de platforma folosit, rulnd pe orice accept X. Este divizibil: un spaiu de lucru poate fi afiat pe mai multe calculatoare. Este liber i gratuit. Mai multe informaii putei gsi n paginile man ale VNC (man vncviewer) sau pe saitul VNC.

10.4.6. Protocolul rdesktop


Pentru a permite administrarea calculatoarelor care ruleaz MS Windows, distribuiile recente de Linux integreaz Remote Desktop Protocol (RDP), care este implementat n clientul rdesktop. Protocolul este folosit de anumite produse Microsoft, inclusiv Windows NT Terminal Server, Windows 2000 Server, Windows XP i Windows 2003 Server. Surprindei-v prietenii (sau efii) cu modul pe tot ecranul, diversele tipuri ale aspectului tastaturii i modul single application, identice cu cele din implementarea original. Comanda man rdesktop v ofer mai multe informaii. Pagina de Internet a proiectului o gsii la http://www.rdesktop.org/.

10.4.7. Cygwin
Cygwin asigur multe din funcionalitile UNIX pe sistemele MS Windows. n afar de a permite funcionarea uneltelor liniei de comand i a aplicaiilor grafice specifice UNIX-ului, poate fi folosit la afiarea unui spaiu de lucru Linux pe sistemele MS Windows, prin utilizarea la distan a serverului X. ntr-o consol Cygwin Bash tastai: /usr/X11R6/bin/XWin.exe -query numele_calculatorului_dumneavoastr_sau_IP Conexiunea este respins n configurarea implicit. Trebuie s modificai configuraia X Display Manager (XDM) i, posibil, configuraia X Font Server (XFS) pentru permiterea acestui tip de conexiune, n care primii un ecran de autentificare pe calculatorul aflat la distan. n funcie de administratorul spaiului dumneavoastr de lucru (Gnome, KDE sau altul), pot fi necesare modificri i n alte fiiere de configurare. Dac nu avei nevoie de afiarea spaiului de lucru n ntregime, putei utiliza SSH n Cygwin, exact n modul prezentat n Seciunea 10.4.4 fr s v deranjai a mai edita fiiere de configurare.

165

10.5. Securitate
10.5.1. Introducere
Imediat ce un calculator este conectat la o reea, devin posibile tot felul de agresiuni, fie c vorbim despre un sistem bazat pe UNIX sau oricare altul. Cunoatem c pe aceast tem au fost scrise extraordinar de multe lucrri i nu ne facem un scop n sine din discutarea n detaliu a subiectului securitii. Sunt ns cteva chestii logice, de baz, prin care un utilizator, novice chiar, poate obine un sistem mai sigur, deoarece majoritatea intruziunilor sunt posibile din cauza utilizatorilor neglijeni sau ignorani. V ntrebai poate dac aceste consideraii se aplic i n cazul dumneavoastr, care folosii un calculator acas sau la serviciu, ntr-un mediu cu un grad mai mare de securizare. ntrebrile la care trebuie s rspundei sunt mai degrab urmtoarele:

Vrei s avei controlul asupra sistemului dumneavoastr? Vrei s participai (fr voie) n activiti incriminate penal? Vrei ca echipamentele dumneavoastr s fie folosite de altcineva? V asumai riscul pierderii conexiunii la Internet? Vrei s v reinstalai sistemul de fiecare dat cnd suntei victima unui atac? Suntei dispus s pierdei date personale sau alt fel de date importante pentru dumneavoastr?

Noi presupunem c nu dorii ca aceste lucruri s devin realitate, aa c v prezentm o list cu msurile pe care le putei lua pentru ntrirea securitii sistemului dumneavoastr. Informaii pe larg putei gsi n Linux Security HOWTO.

10.5.2. Serviciile
Scopul nostru este rularea a ct mai puine servicii. Dac numrul porturilor care sunt deschise pentru lumea exterioar este meninut la minim, putei supraveghea mai uor mediul sistemului. n cazurile n care serviciile nu pot fi oprite pentru reeaua local, ncercai ca ele s nu fie disponibile pentru conexiunile exterioare. O metod empiric spune c dac nu recunoatei un serviciu anume, sunt multe anse ca acest serviciu s nu fie necesar. De asemenea, anumite servicii nu trebuie neaprat s fie folosite pe Internet. Nu v bazai pe ce ar trebui s ruleze, ci verificai care sunt serviciile care ascult i pe ce porturi TCP, folosind comanda netstat:

Lucruri pe care trebuie s le evitai:

exec, rlogin i rsh i telnet pentru a nu pune la ndemna atacatorilor diverse oportuniti. X11 pe calculatoarele server. Nu folosii lp dac nu exist nici o imprimant legat la sistem. Dac nu exist n reea calculatoare care ruleaz MS Windows, nu avei nevoie de Samba. Nu permitei FTP dect dac este solicitat un serviciu FTP. Nu permitei NFS i NIS pe Internet, dezactivai toate serviciile care au legtur cu acestea pe calculatoarele independente. Nu rulai MTA dac nu suntei un server de mail. 166

...
Oprii serviciile prin comanda chkconfig, scripturile de iniializare sau prin editarea fiierelor de configurare (x)inetd.

10.5.3. Actualizai regulat


Abilitatea de a se adapta rapid la un mediu n schimbare este ceea ce face ca Linux-ul s fie din ce n ce mai atractiv. Dar apare i posibilitatea ca actualizri de securitate s fie disponibile chiar n momentul n care instalai o versiune nou-nou, aa c primul lucru pe care trebuie s-l facei (i este valabil pentru orice fel de sistem de operare) dup instalare este cutarea actualizrilor. Dup aceasta, actualizai toate pachetele pe care le utilizai (regulat). Anumite actualizri pot cere fiiere noi de configurare, n acest caz fiierele vechi fiind nlocuite. Verificai documentaia pentru a v asigura c totul merge bine i dup actualizare.

10.5.4. Firewall-uri i politicile de acces


10.5.4.1. Ce este un firewall? n seciunea precedent am adus vorba despre posibilitatea configurrii ca firewall a unui sistem Linux. Cu toate c administrarea firewall-ului este o sarcin pentru administratorul de reea, trebuie s cunoatei cteva lucruri despre acesta. Firewall este un termen vag, care poate desemna orice lucru care se comport ca o barier protectiv ntre noi i lumea exterioar, n general Internetul. Firewall poate fi att un sistem dedicat ct i o aplicaie care asigur aceast funcionalitate. Poate fi o combinaie a acestora, incluznd o sum de dispozitive i programe. Firewall-urile sunt cldite pe reguli care sunt utilizate pentru definirea a ceea ce este permis a intra i/sau iei dintr-un sistem dat sau reea. Dup ntreruperea serviciilor care nu v sunt necesare, trebuie s restricionai serviciile permise pentru a reduce la minim numrul conexiunilor necesare. Un bun exemplu este cazul n care lucrai acas: doar conexiunea dintre biroul dumneavoastr i calculatorul de acas trebuie permis, noi recomandndu-v interzicerea conexiunile cu celelalte calculatoare de pe Internet.

10.5.4.2. Filtrele de pachete Prima linie de aprare este constituit din filtrele de pachete, care pot cuta n interiorul pachetelor IP dup care iau o decizie n funcie de coninutul acestora. Cel mai ntlnit este pachetul Netfilter, care conine comenzile pentru iptables, filtrul de pachete de nou generaie pentru Linux. Una din cele mai notabile mbuntiri din kerenelele noi este capabilitatea stateful inspection care nu doar c spune ce este n interiorul unui pachet, dar poate spune i dac pachetul aparine sau este n legtur cu o conexiune nou sau existent. Shoreline Firewall sau, pe scurt, Shorewall, este interfaa pentru firewall-ul Linux-ului (n ultima vreme se folosete Firestarter ca interfa grafic pentru iptables sau , chiar mai recent, ufwn.t.). Mai multe informaii pot fi gsite la pagina proiectului Netfilter/iptables.

10.5.4.3. TCP wrappers TCP wrapping-ul asigur, n general, aceleai rezultate ca filtrarea pachetelor, dar lucreaz n alt mod. ncercarea de realizare a unei conexiuni este acceptat, apoi sunt examinate fiierele de configurare, hotrndu-se astfel acceptarea sau respingerea cererii de conectare. Controleaz conexiunile la nivel de aplicaii i nu la nivelul reelei. Se folosete de regul cu xinetd pentru a furniza numele gazdei i controlul accesului pe baza adresei de IP. n plus, aceste unelte dein posibiliti de administrare a autentificrilor uor de configurat i sunt accesibile n utilizare. Dou din avantaje: calculatorul care se conecteaz nu are de unde ti c acest wrapper este utilizat i serviciul opereaz separat de aplicaiile pe care le protejeaz.

167

Accesul este controlat prin fiierele hosts.allow i hosts.deny. Fiierele urmtoare conin documentaia suplimentar la care dorii eventual s apelai: /usr/share/doc/tcp_wrappers[<version>/] i /usr/share/doc/tcp. Paginile man care trateaz fiierele de control al accesului bazat pe gazde ofer i exemple pe care le putei studia.

10.5.4.4. Proxy Serverele proxy pot ndeplini multe sarcini, nu toate avnd legtur cu securitatea. Dar faptul c acestea sunt, n esen, intermediari, face ca ele s fie un nod n care s se implementeze politici de control al accesului, de limitri ale conexiunilor directe prin intermediul unui firewall i s se configureze modul n care reeaua din spatele serverului proxy acceseaz Internetul. De regul n combinaie cu un filtru de pachete, i cteodat doar prin ele nsele, serverele proxy asigur un nivel n plus de control. Mai multe informaii gsii n Firewall HOWTO sau pe saitul Squid.

10.5.4.5. Accesarea aplicaiilor individuale Anumite servicii pot avea propriile metode de control al accesului. Exemple la ndemn sunt Samba, X Window, Bind, Apache i CUPS. Verificai ce fiiere de configurare dicteaz comportamentul fiecrui serviciu n parte.

10.5.4.6. Fiierele jurnal Mai mult dect orice altceva, stilul UNIX prin care se consemneaz tot felul de activiti n anumite tipuri de fiiere, ne confirm c se face ceva. Fiierele jurnal ar trebui verificate regulat, manual sau automat. Firewall-urile i alte mijloace de control al accesului tind s creeze fiiere jurnal mari, aa c v sftuim s ncercai determinarea jurnalizrii doar a evenimentelor anormale.

10.5.5. Detectarea intruziunilor


Intrusion Detection System (Sistemul pentru detectarea intruziunilor) este proiectat s semnaleze toate ameninrile care au trecut prin firewall. Poate s surprind o activitate de ptrundere n desfurare sau s detecteze o ptrundere reuit dup realizarea acesteia. n acest din urm caz este prea trziu s v gndii la prevenirea pagubelor, dar, cel puin, suntei avertizat din vreme asupra problemei. Exist dou tipuri IDS de baz: cele care protejeaz reele i cele care protejeaz calculatoare individuale. n cazul IDS-urilor care pun accentul pe gazde, sunt folosite utiliti care monitorizeaz sistemul de fiiere, n cutarea modificrilor aprute. Fiierele de sistem care au suferit schimbri care nu ar trebui s apar sunt un indiciu c ceva nu este n ordine. Oricine ar ptrunde n sistem i ar obine acces la contul de root va determina o modificare undeva n sistem. De obicei este primul lucru pe care l-ar face un intrus, pentru a putea folosi apoi o poart de intrare sau pentru a lansa un atac asupra altcuiva; n ambele cazuri se aduc modificri sau adugiri fiierelor de sistem. Anumite sisteme includ pachetul de monitorizare a sistemului tripwire, a crui documentaie o gsii pe saitul Tripwire Open Source Project. Detectarea intruziunilor n reea este realizat printr-un sistem care analizeaz traficul care trece prin firewall (nu scannere de porturi, la care porturile reacioneaz). Snort este un exemplu de astfel de progarm Open Source. Whitehats.com furnizeaz o baz de date deschis Intrusion detection, arachNIDS.

10.5.6. Mai multe sfaturi


Iat cteva lucruri bine de inut minte:

Nu v autentificai ca administrator dac nu avei treab. Dezvoltatorii UNIX au nscocit acum mai
bine de douzeci de ani su pentru ntrirea securitii.

Accesul direct ca root este ntotdeauna periculos i permite erori umane, aa c folosii comanda susau autentificai-v pe un cont separat de administrator cnd este nevoie. Mult mai bine din punct de vedere al securitii este folosirea comenzii sudo pentru executarea acelor comenzi care necesit privilegii speciale, ceea ce v ofer o perioad limitat de aciune ca administrator, dup care se 168

revine automat la mediul normal de lucru. Luai n serios parolele. Folosii parole criptate. Schimbai-v parola regulat. ncercai s folosii ntotdeauna SSH sau SSL. Evitai telnet, FTP i clienii de e-mail precum i alte programe client care trimit parole n clar pe reea. Securitate nu nseamn doar securizarea calculatorului, ci i securizarea parolelor dumneavoastr. Limitai resursele sistemului prin folosirea quota sau/i ulimit. Mesajele pentru root trebuie livrate, sau mcar citite de, ctre o persoan, nu ctre un sistem automat. Institutul SANS v ofer mai multe sfaturi, sortate n funcie de distribuie, printr-un serviciu de pot electronic (liste de mail). Verificai sursa programelor noi, luai-le dintr-un loc sau sait de ncredere. Verificai pachetele noi nainte de instalare. Dac folosii o conexiune la Internet temporar, nchidei-o imediat ce nu mai avei nevoie de aceasta. Rulai serviciile de care avei nevoie pe porturi aleatorii, n loc s folosii porturile obinuite, cunoscute de hackeri. Cunoatei-v sistemul. Dup o vreme, putei chiar simi c se ntmpl ceva aiurea.

10.5.7. Am fost victima unui atac?


Cum putei afla? Iat o list cu evenimente care ar trebui s v dea de gndit:

Porturi misterioase deschise, procese ciudate. Utiliti de sistem (comenzi obinuite) care se comport straniu. Probleme de autentificare. Consumarea inexplicabil a limii de band. Fiiere raport alterate sau lips, comportament ciudat al serviciului de raportare a activitii sistemului. Interfeele sunt afiate n moduri neobinuite. Modificri neateptate ale fiierelor de configurare. Intrri stranii n fiierele care pstreaz activitatea (istoricul) consolei. Fiiere temporare neidentificate.

10.5.8. Refacerea de pe urma unei intruziuni


Pe scurt, fii calmi. Apoi acionai n ordinea de mai jos:

Deconectai calculatorul de la reea. ncercai s aflai ct de multe putei despre modul n care v-a fost compromis securitatea. Facei copii de siguran ale fiierelor, datelor importante, ce nu in de sistem. Dac este posibil,
verificai aceste date cu datele pstrate drept copii de siguran, fcute nainte ca sistemul s fie compromis, pentru a v asigura de integritatea acestora. Reinstalai sistemul. Folosii parole noi. Restaurai datele folosind copiile de siguran. Actualizai sistemul. Reexaminai sistemul: blocai serviciile care nu v sunt necesare, verificai regulile firewall-ului i politicile de acces. Conectai-v din nou la Internet.

169

10.6. Sumar
Linux-ul este conceput special pentru a lucra n reea. Kernelul acestui sistem de operare integreaz protocoalele folosite n mod obinuit dar i unele din cele mai specifice. Uneltele standard de reea ale UNIX-ului sunt prezente n orice distribuie. Pe lng acestea, cele mai multe distribuii ofer unelte care v ajut la instalarea i administrarea reelelor. Linux-ul este renumit ca platform stabil pe care ruleaz numeroase servicii de Internet, numrul programelor disponibile pe Internet fiind uria. Precum UNIX-ul, putei folosi i administra un sistem Linux de la distan, folosind una din soluiile care asigur executarea la distan a programelor. Subiectul securitii a fost atins n treact. Linux-ul este alegerea ideal pentru utilizarea ca firewall, o soluie ieftin i la ndemn, dar poate fi folosit n alte cteva funcii de reea, cum ar fi routere i servere proxy. ntrirea securitii unei reele se face prin aplicarea frecvent a actualizrilor i prin folosirea bunului-sim. Iat o trecere n revist a unor comenzi legate de reelistic:
Tabelul 10-2. Comenzi noi n Capitolul 10: Reelistica

Comanda ftp host ifconfig ip netstat ping rdesktop route scp sftp ssh ssh-keygen telnet whois xclock xhost

nelesul comenzii Transfer fiierele ctre alt calculator (nesecurizat). Afieaz informaii despre calculatoarele din reea. Afieaz informaii despre adresa de IP. Afieaz informaii despre adresa de IP. Afieaz informaii despre rutare i statistici de reea. Trimite cereri de rspuns ctre alte calculatoare. Afieaz un spaiu de lucru MS Windows pe sistemele Linux. Arat informaiile legate de rutare. Copiere securizat a fiierelor de la i ctre alt calculator. Transmitere securizat de fiiere ctre i de la un alt calculator. Conexiune securizat cu alt calculator. Genereaz chei de autentificare pentru Secure SHell. Realizeaz o conexiune nesecurizat cu alt calculator. Obine informaii despre un nume de domeniu. Aplicaie X Window, ideal pentru testarea unei conexiuni la distan. Unealt de control al accesului pentru X Window.

tracepath/traceroute Afieaz ruta pe care o urmeaz pachetele ctre alt calculator.

10.7. Exerciii
10.7.1. Generaliti despre reelistic Afiai informaiile despre reea n cazul staiei dumneavoastr de lucru: adresa de IP, rutrile,
numele serverelor de domenii. S presupunem c nu este disponibil nici un DNS. Ce putei face pentru a accesa un calculator din reea fr a introduce adresa de IP tot timpul? Cum putei stoca permanent informaiile serverului proxy pentru un navigator n modul text, cum ar fi links? Ce nume de server opereaz domeniul redhat.com?

170

Trimitei un mesaj de pot electronic contului dumneavoastr local. ncercai dou metode de
trimitere i de citire. Cum putei verifica dac l-ai primit? Calculatorul dumneavoastr accept conexiuni FTP anonime? Cum folosii programul ncftp pentru autentificarea cu numele dumneavoastr de utilizator i parol? Calculatorul dumneavoastr ruleaz un server web? Dac nu, facei-o. Verificai fiierele jurnal!

10.7.2. Conexiuni la distan De la staia dumneavoastr de lucru, afiai o aplicaie grafic, cum ar fi xclock, pe ecranul unui alt
calculator. Conturile de care avei nevoie trebuie configurate. Folosii o conexiune securizat!

Configurai cheile SSH pentru a v putea conecta la un alt calculator fr a avea nevoie de o parol. Facei o copie de rezerv a directorului dumneavoastr personal n directorul /var/temp al celuilalt
calculator, pe care-l folosii ca server pentru copii de siguran, utiliznd scp. Arhivai i comprimai datele nainte de transfer! Conectai-v la distan folosind ssh, despachetai copia de siguran i trimitei un fiier napoi la calculatorul dumneavoastr folosind sftp.

10.7.3. Securitate Facei o list cu toate porturile deschise (care ascult) de pe calculatorul dumneavoastr. S presupunem c dprii s rulai un server web. Ce servicii ai dezactiva? De ce ai face acest
lucru?

Instalai actualizrile disponibile. Cum putei vedea cine s-a conectat la calculatorul dumneavoastr? Creai o sarcin repetitiv care s v reaminteasc s v schimbai parola de utilizator n fiecare
lun, i pe cea de root, de asemenea.

171

Capitolul 11. Sunet i video


Acest capitol trateaz urmtoarele (pe scurt, ntruct domeniul audio i video este foarte larg):

Configurarea plcii de sunet Redarea CD-urilor, copierea CD-urilor Redarea fiierelor de muzic Controlul volumului Video i televiziune nregistrare de sunet

11.1. Generaliti despre domeniul audio


11.1.1. Instalare
De regul, sistemul are instalate drivere (module de nucleu) audio iar configurarea a fost fcut la momentul instalrii. Dac dorii s v schimbai echipamentul audio, cele mai multe sisteme asigur unelte care v permit instalarea i configurarea fr probleme a acestui tip de dispozitive. Cele mai recente plci de sunet cu capabiliti plug-and-play ar trebui s fie recunoscute automat. Dac auzii mostrele de sunet care sunt redate pe parcursul instalrii, apsai OK i totul va fi configurat automat. Dac placa de sunet nu este detectat automat, va fi prezentat o list care conine tipurile de plci de sunet i/sau proprietile acestora, din care putei alege. Dup aceea, trebuie s furnizai portul I/O corect, configurrile IRQ i DMA. Informaii despre aceste configurri gsii n documentaia plcii de sunet. Dac folosii un sistem dual-boot care include i MS Windows, putei gsi informaiile n Panoul de control al acestui sistem de operare. Dac detectarea automat a plcii de sunet eueaz Dac placa de sunet nu este recunoscut implicit de sistem, trebuie s apelai la alte tehnici. Acestea sunt descrise n Linux Sound HOWTO.

11.1.2. Drivere i arhitecturi


Exist, n general, dou tipuri de arhitectur de sunet: mai vechiul Open Sound System sau OSS, care merge cu orice sistem bazat pe UNIX, i mai noul Advanced Linux Sound Arhitecture sau ALSA, care lucreaz mai bine cu Linux-ul, dup cum sugereaz i numele. ALSA include mai multe faciliti i permite dezvoltarea mai rapid a driverelor. Ne vom axa pe sistemul ALSA. Aproape toate procesoarele audio mai des folosite lucreaz cu ALSA. Doar anumite soluii profesionale din segmentul de vrf i anumite plci de sunet dezvoltate de fabricani care refuz s pun la dispoziie documentaia procesoarelor pe care le utilizeaz nu sunt compatibile. O trecere n revist a dispozitivelor pentru care exist suport poate fi gsit pe saitul ALSA, la http://www.alsa-project.org/alsa-doc/ index.php?vendor=All#matrix. Configurarea sistemelor instalate cu ALSA se face prin unealta alsaconf. n plus, anumite distribuii asigur unelte proprii pentru configurarea plcii de sunet; acestea pot integra att calea mai veche ct i pe cea nou pentru administrarea dispozitivelor de sunet.

11.2. Redarea sunetului i a fiierelor video


11.2.1. Redarea i copierea CD-urilor
Pachetul cdp este inclus n aproape orice distribuie i asigur cdp sau cdplay, un player CD n modul text. Administratorii de ecran includ o unealt grafic, cum ar fi gnome-cd player n Gnome, care poate fi pornit din meniul grafic. Trebuie s nelegei diferena dintre un CD audio i unul care conine date. Nu trebuie s montai n sistemul de fiiere un CD audio pentru a-l asculta. Asta deoarece datele de pe astfel de CD-uri nu sunt 172

fiiere de sistem proprii Linux-ului; ele sunt accesate i trimise pe canalul de ieire audio direct, folosind un program de redare pentru CD-uri audio. Dac vorbim despre un CD care conine fiiere .mp3, trebuie ca s montai acest CD n sistemul de fiiere, apoi s utilizai unul din programele pe care le vom discuta mai jos pentru a reda muzica nregistrat pe acest disc. Am discutat n Seciunea 7.5.5 despre montarea CD-urilor n sistemul de fiiere. Unealta cdparanoia din pachetul cu acelai nume citete formatul audio direct de pe CD ca date, fr conversie analog, i scrie datele ntr-un fiier sau le livreaz ntr-un alt format, dintre care mai folosit este .waw. Cele mai multe distribuii includ diferite unelte de conversie a formatelor, de exemplu n . mp3, sau pun la dispoziie pachete de programe, pe Internet, pentru aceste sarcini. Proiectul GNU furnizeaz cteva playere programe pentru redarea CD-urilor, extragere de fiiere audio i unelte de conversie a formatelor, precum i administratori de baze de date pentru fiierele audio; consultai Free Software, Audio Section pentru informaii detaliate. Crearea de CD-uri audio se face mai uor, printre multe altele, cu unealta kaudiocreator din suita KDE. Informaii clare sunt coninute de KDE Help Center (Centrul de ajutor KDE). Scrierea CD-urilor a fost tratat n Seciunea 9.2.2.

11.2.2. Redarea fiierelor audio


11.2.2.1. Fiierele .mp3 Formatul .mp3 este citit de sistemele Linux. Cele mai multe distribuii includ numeroase programe care pot reda aceste fiiere. Printre multe altele, XMMS, prezentat n imaginea de mai jos, este mai apreciat, n parte datorit aspectului asemntor cu programul Winamp din Windows.
Figura 11-1. Programul de redare a fiierelor muzicale XMMS

Foarte utilizate sunt i aplicaia KDE Amarok, care ctig constant popularitate, i MPlayer, care, n plus, poate reda fiiere video. Restricii Anumite distribuii nu permit redarea fiierelor MP3 fr modificarea configuraiei, din cauza restriciilor de liceniere a formatului MP3. Va fi nevoie de instalarea unor programe n plus pentru a reui redarea acestui format. Este i cazul distribuiei Ubuntu, care, n instalarea standard, nu red acest format. Trebuie s activai arhivele de programe universe i multiverse pentru a instala pachetele adiionale ubuntu-restrictedextras care se ocup, printre altele, i de redarea formatului .mp3. Vei avea nevoie i de pachete adiionale pentru redarea DVD-urilor. De menionat c n varianta KiwiLinux, un Ubuntu conceput pentru Romnia i Ungaria, aceste formate sunt suportate n instalarea standardn.t.. n modul text, folosii comanda mplayer:

173

11.2.2.2. Alte formate Discutarea tuturor formatelor audio i a modului de redare pentru acestea ne plaseaz dincolo de scopul acestui ghid. V prezentm doar o trecere (incomplet) n revist a celor mai folosite programe de redare i administrare a fiierelor audio:

Ogg Vorbis: format audio liber: consultai directorul audio GNU pentru unelte - acestea pot fi deja
incluse n distribuia dumneavoastr. Formatul a fost dezvoltat deoarece formatul MP3 a devenit proprietar. De menionat c Ogg este superior att din punct de vedere al comprimrii, ct i al naturaleii sunetului redat; din pcate, puin folositn.t.. Real audio i video: realplay de la RealNetworks. SoX sau Sound eXchange: de fapt un convertor de formate, care este inclus n programul play. Red .waw, .ogg i alte formate, inclusiv cele binare brute. Playmidi: un player midi, consultai directorul GNU. AlsaPlayer: inclus n proiectul Advanced Linux Sound Arhitecture, consultai saitul AlsaPlayer. mplayer: red practic orice, inclusiv fiiere mp3. Mai multe informaii gsii pe saitul MPlayerHQ. hxplayer: integreaz suport pentru fiierele RealAudio i RealVideo, mp3, mp4audio, Flash, waw i altele, consultai HelixDNA (nu toate componentele de mai sus ale acestui program sunt libere). rhythmbox: construit pe cadrul GStreamer, poate reda orice format compatibil cu acesta din urm, care pretinde c red tot, consultai saiturile Rhythmbox i GStreamer.

Verificai documentaia sistemului i paginile man ale programelor care v intereseaz pentru explicaii detaliate despre modul acestora de folosin. Nu am aceste aplicaii instalate pe sistemul meu! Multe din aplicaiile i uneltele discutate n seciunea de mai sus sunt programe opionale. Exist aadar posibiliatea ca astfel de aplicaii s nu fie prezente n sistemul dumneavoastr dup instalarea implicit, dar sunt disponibile pentru distribuia aleas ca pachete adiionale. Se poate ntmpla ns i ca unul din programele menionate mai sus s nu fie disponibil pentru distribuia dumneavoastr. n acest caz, descrcai programul de pe Internet.

11.2.2.3. Controlul volumului aumix i alsamixer sunt dou unelte des folosite pentru controlul volumului. Folosii tastele sgei pentru navigarea prin cmpurile disponibile. alsamixer dispune de o interfa grafic pentru meniul Gnome sau prin comanda gnome-alsamixer. Unealta kmix face acelai lucru n KDE. 174

Indiferent de maniera n care alegei s ascultai muzic sau alte fiiere audio, amintii-v c ceilali oameni nu sunt interesai de ceea ce se red pe calculatorul dumneavoastr. ncercai s v purtai civilizat, n special acolo unde se lucreaz. Folosii cti de calitate n locul celor care sunt introduse n pavilionul urechii, pentru a nu distrage pe cei cu care mprii acelai mediu.

11.2.3. nregistrarea
Avei la dispoziie destule unelte pentru nregistrarea de muzic sau voce. Pentru nregistrare de voce putei folosi arecord n linia de comand:

Interrupt nseamn c aplicaia a primit semnalul Ctrl+C. Redai nregistrarea prin comanda play. Ceea ce v-am prezentat mai sus este un test pe care-l putei face nainte de testarea aplicaiilor care au nevoie de voce, cum ar fi Voice over IP (VoIP). Nu uitai s verificai dac microfonul este activat. Dac nu v auzii vocea, verificai-v configurrile de sunet. Adesea se ntmpl ca microfonul s fie nchis sau volumul acestuia s fie foarte jos. Putei uor reface configurrile prin alsamixer sau interfaa grafic pentru volum specific distribuiei dumneavoastr. Din KDE putei ncerca krec, iar din Gnome - gnome-sound-recorder.

11.3. Redarea video, redare flux i televiziune


Sunt disponibile mai multe instrumente:

xine: player video liber. ogle: player DVD. okle: versiunea KDE a ogle. mplayer: player pentru filme al Linux-ului. totem: red fiiere video i audio, CD-uri audio, VCD i DVD. realplay: de la RealNetworks. hxplay: o alternativ pentru Real, consultai HelixDNA. kaffeine: player media pentru KDE. Vei gsi cu siguran unul din aceste instrumente n meniul grafic.

Reinei c nu sunt disponibile n instalarea implicit toate codecurile necesare pentru redarea diferitelor formate video. Va trebui s descrcai codecurile w32 i/sau libdvdcss. LPD a pus la dispoziie un document care completeaz aceast seciune. Se numete DVD Playback HOWTO i descrie diversele instrumente disponibile pentru redarea filmelor pe sistemele care au unitate DVD. Este o adugire binevenit la DVD HOWTO, care explic modul de instalare pentru unitile DVD. Pentru vizionarea programelor TV putei alege din programele urmtoare, existnd, bineneles, i altele:

tvtime: un program foarte bun, cu administrator al staiilor, interactiv cu teletextul, mod film i multe
altele. zapping: program pentru televiziune specific Gnome. xawtv: program pentru TV specific X11.

175

11.4. Telefonie Internet


11.4.1. Ce este?
Telefonia Internet sau, altfel spus, Voice over IP (VoIP) ori telefonia digital, permite prilor s schimbe fluxuri de date (voce) pe reea. Marea diferen este aceea c datele sunt purtate pe o reea cu scopuri generale, Internetul, contrar telefoniei clasice, care utilizeaz o reea dedicat pentru transmisia de voce. Cele dou reele pot fi conectate totui n circumstane speciale, dar, pentru moment, acest lucru nu este un standard. Cu alte cuvinte: este de ateptat s nu putei suna pe cineva care dispune de o linie telefonic clasic. Dac este posibil, va trebui s pltii un abonament pentru acest lucru. n timp ce exist numeroase aplicaii pentru tot felul de scopuri, att libere, ct i proprietare, n domeniul telefoniei Internet nu s-au nregistrat progrese spectaculoase. Sistemul nu este de ncredere, poate fi ncet sau s aib un nivel de zgomot de fond destul de ridicat, aa c nu poate nlocui sub nici o form telefonia convenional - gndii-v cel puin la apelurile de urgen. Cu toate c furnizorii i iau precauiile necesare, nu exist nici o garanie c vei reui efectuarea unei astfel de convorbiri. Cele mai multe aplicaii nu folosesc criptarea, aa c fii precaui, deoarece este destul de uor ca cineva s trag cu urechea. Dac v gndii serios la securitate, citii documentaia care nsoete clientul dumneavoastr VoIP. n plus, dac folosii un firewall, trebuie configurat s permit conexiuni de oriunde, astfel c folosirea unui asemenea program ridic numeroase semne de ntrebare legate de nivelul de securitate al sistemului dumneavoastr.

11.4.2. Ce v trebuie?
11.4.2.1. Partea de server n primul rnd, avei nevoie de un furnizor care s v ofere acest serviciu. Serviciul oferit poate integra i telefonia tradiional, poate fi gratuit sau nu. Menionm civa astfel de furnizori: SIPphone, Vonage, Lingo, AOLTotaltalk i muli ali furnizori locali care ofer aa numitul serviciu telefonic integral. Servicii de telefonie numai pe Internet sunt oferite de Skype, SIP Broker, Google. Dac dorii s v facei un server propriu, aplecai-v asupra Asterisk.

11.4.2.2. Partea de client Pe partea de client, aplicaiile pe care le folosii depind de configuraia reelei. Dac dispunei de o conexiune direct la Internet, nu vei avea probleme, presupunnd c tii la ce server s v conectai i c avei alocat un nume de utilizator i o parol pentru autentificarea la serviciu. Dac suntei n spatele unui firewall care folosete Network Adress Translation (NAT), exist posibilitatea ca anumite servicii s nu funcioneze, ntruct este vizibil doar adresa IP a firewall-ului, nu i pe cea a calculatorului, ceea ce duce la imposibilitatea rutrii pe Internet, de exemplu atunci cnd v aflai n reeaua companiei i adresa IP ncepe cu 10., 192.168. sau un alt prefix de subnet care nu poate fi rutat. Acest lucru depinde, totui, de protocolul utilizat de aplicaie. De asemenea, limea de band poate fi un factor de blocaj: anumite aplicaii sunt optimizate pentru consumarea unei limi de band mai mici, n timp ce altele pot solicita conexiuni de band larg. Aceste nevoi sunt impuse de codecurile folosite de aplicaii. Printre cele mai cunoscute aplicaii putem enumera Skype, cu o interfa care amintete de cea a mesageriilor instantanee, i X-Lite, versiunea gratuit a XTen softphone, care arat ca un telefon mobil. Cu toate c aceste programe sunt disponibile gratuit i sunt folosite pe scar larg, ele nu sunt libere: acestea folosesc protocoale proprietare i/sau sunt disponibile doar n pachete binare, nu n format cod surs. Programe VoIP gratuite i libere sunt: Gizmo, Linphone, GnomeMeeting i KPhone. Echipamente Chiar dac dispunei de un microfon ncorporat n calculatorul dumneavoastr, n special dac acesta este un laptop, vei obine rezultate mai bune dac folosii un set dedicat mocrofon-cti. Dac suntei n msur s decidei, achiziionai un set care lucreaz pe USB, ntruct funcioneaz independent de dispozitivele audio existente pe calculator. Folosii alsamixer pentru configurarea intrrilor i ieirilor pentru 176

nivelurile de sunet dup preferinele dumneavoastr. Aplicaiile VoIP se bucur de o pia n cretere extraordinar de rapid. Voluntari din toat lumea ncearc s documenteze stadiul actual la http://www.voip-info.org/.

11.5. Sumar
Platforma GNU/Linux integreaz total capaciti multimedia. O mare varietate de dispozitive precum plci de sunet, tv-tunere, microfoane, playere CD i DVD sunt acoperite de Linux. Lista aplicaiilor este practic fr de sfrit, aa c v prezentm o list trunchiat cu noi comenzi, limitndu-ne la comenzile audio generale:
Tabelul 11-1. Comenzi noi n Capitolul 11: Audio

Comanda alsaconf alsamixer arecord aumix cdp cdparanoia cdplay gnome-alsamixer gnome-cd kaudiocreator kmix krec mplayer play

nelesul comenzii Configureaz sistemul de sunet ALSA. Ajusteaz nivelurile de ieire a sunetului pentru driverul ALSA. nregistreaz o mostr de sunet. Mixer audio. Red un CD audio. Extrage pistele audio de pe un CD audio. Red un CD audio. Interfaa grafic din Gnome pentru ALSA. Interfaa Gnome pentru redarea CD-urilor audio. Interfaa KDE pentru crearea CD-urilor audio. Interfaa KDE pentru ajustrile de sunet. Interfa KDE pentru nregistrr de sunet. Player multimedia Unealt a liniei de comand pentru redarea mostrelor de sunet.

gnome-sound-recorder Interfaa Gnome pentru nregistrare de sunet.

11.6. Exerciii
1. Din meniul Gnome sau KDE, deschidei panoul de configurare a sunetului. Asigurai-v c boxele sau setul de cti sunt conectate la sistem i stabilii un nivel de sunet care v place. Dac avei un sistem compatibil ALSA, alegei panoul de configurare potrivit. 2. Dac avei un microfon, ncercai s v nregistrai propria voce. Verificai ca nivelul de intrare a sunetului s nu fie prea mare, deoarece va aduce tonuri nalte, suprtoare, n conversaiile cu ceilali sau va transfera zgomotul de fundal. Din linia de comand, putei ncerca s folosii comenzile arecord i aplay pentru nregistrare i redare de sunet. 3. Localizai fiierele de sunet din sistemul dumneavoastr i redai-le. 4. Introducei un CD audio i redai-l. 5. Cutai un partener de conversaie i configurai un program VoIP (probabil va trebui s instalai mai nti unul). 6. Putei asculta un post de radio de pe Internet? 7. Dac avei o unitate DVD i un film pe un astfel de disc, ncercai s-l redai.

177

Appendix A. De aici, ncotro?


V oferim o trecere n revist a unor lucrri i saituri folositoare.

A.1. Cri folositoare


A.1.1. Linux n general
"Linux in a Nutshell" de Ellen Siever, Jessica P. Hackman, Stephen Spainhour, Stephen Figgins, O'Reilly UK, ISBN 0596000251 "Running Linux" de Matt Welsh, Matthias Kalle Dalheimer, Lar Kaufman, O'Reilly UK, ISBN 156592469X "Linux Unleashed" de Tim Parker, Bill Ball, David Pitts, Sams, ISBN 0672316889 "When You Can't Find Your System Administrator" de Linda Mui, O'Reilly UK, ISBN 1565921046 Atunci cnd cumprai o distribuie, aceasta va conine i un manual destul de bine pus la punct.

A.1.2. Editoare
"Learning the Vi Editor" de Linda Lamb i Arnold Robbins, O'Reilly UK, ISBN 1565924266 "GNU Emacs Manual" de Richard M.Stallman, iUniverse.Com Inc., ISBN 0595100333 "Learning GNU Emacs" de Debra Cameron, Bill Rosenblatt i Eric Raymond, O'Reilly UK, ISBN 1565921526 "Perl Cookbook" de Tom Christiansen i Nathan Torkington, O'Reilly UK, ISBN 1565922433

A.1.3. Console
"Unix Shell Programming" de Stephen G.Kochan and Patrick H.Wood, Sams Publishing, ISBN 067248448X "Learning the Bash Shell" de Cameron Newham i Bill Rosenblatt, O'Reilly UK, ISBN 1565923472 "The Complete Linux Shell Programming Training Course" by Ellie Quigley i Scott Hawkins, Prentice Hall PTR, ISBN 0130406767 "Linux and Unix Shell Programming" de David Tansley, Addison Wesley Publishing Company, ISBN 0201674726 "Unix C Shell Field Guide" de Gail i Paul Anderson, Prentice Hall, ISBN 013937468X

A.1.4. X Window
"Gnome User's Guide" de the Gnome Community, iUniverse.Com Inc., ISBN 0595132251 "KDE Bible" de Dave Nash, Hungry Minds Inc., ISBN 0764546929 "The Concise Guide to XFree86 for Linux" de Aron HSiao, Que, ISBN 0789721821 "The New XFree86" de Bill Ball, Prima Publishing, ISBN 0761531521 "Beginning GTK+ and Gnome" de Peter Wright, Wrox Press, ISBN 1861003811 "KDE 2.0 Development" de David Sweet and Matthias Ettrich, Sams Publishing, ISBN 0672318911 "GTK+/Gnome Application Development" de Havoc Pennington, New Riders Publishing, ISBN 0735700788

A.1.5. Reele
"TCP/IP Illustrated, Volume I: The Protocols" de W. Richard Stevens, Addison-Wesley Professional Computing Series, ISBN 0-201-63346-9 "DNS and BIND" de Paul Albitz, Cricket Liu, Mike Loukides i Deborah Russell, O'Reilly & Associates, ISBN 0596001584 "The Concise Guide to DNS and BIND" de Nicolai Langfeldt, Que, ISBN 0789722739 "Implementing LDAP" de Mark Wilcox, Wrox Press, ISBN 1861002211 "Understanding and deploying LDAP directory services" de Tim Howes i co., Sams, ISBN 0672323168 178

"Sendmail" de Brian Costales i Eric Allman, O'Reilly UK, ISBN 1565922220 "Removing the Spam : Email Processing and Filtering" de Geoff Mulligan, Addison Wesley Publishing Company, ISBN 0201379570 "Managing IMAP" de Dianna & Kevin Mullet, O'Reilly UK, ISBN 059600012X

A.2. Saituri utile


A.2.1. Informaii generale
The Linux documentation project: toate documentaiile, pagini man, HOWTO, FAQ. LinuxQuestions.org: forumuri, documentaie, programe pentru descrcat, multe altele. Google for Linux: un motor de cutare specializat. Google Groups: arhiv a postrilor grupurilor de tiri, care include comp.os.linux. Slashdot: tiri zilnice. http://www.oreilly.com: cri despre administrarea sistemelor Linux i a reelelor, Perl, Java... POSIX: standardul. Linux HQ: menine o baz de date complet a surselor, actualizrilor i documentaiilor pentru diferitele versiuni ale kernelului Linux.

A.2.2. Referine specifice diverselor arhitecturi


AlphaLinux: Linux pentru arhitectura Alpha (de exemplu Digital Workstation). Linux-MIPS: Linux pe MIPS (de exemplu SGI Indy). Linux on the Road: ghiduri pentru instalarea i rularea Linux-ului pe laptopuri, PDA-uri, telefoane mobile, etc. Fiiere de configurare pentru diverse modele. MkLinux: Linux pentru Apple .

A.2.3. Distribuii
The Fedora Project: sistem de operare dezvoltat de o comunitate sprijinit de RedHat. Mandriva Ubuntu : distribuie care ruleaz de pe CD, nu trebuie s instalai nimic. Debian TurboLinux Slackware SuSE LinuxISO.org: CD-uri cu imagini pentru toate distribuiile. Knoppix: distribuie care ruleaz de pe CD, nu trebuie s instalai nimic. DistroWatch.com: find a Linux that goes with your style. ...

A.2.4. Programe
Freshmeat: programe noi, arhive de programe. OpenSSH: saitul Secure SHell. OpenOffice: suit de birou compatibil cu MS Office. KDE: saitul K Desktop. GNU: GNU i programe GNU. Gnome: saitul oficial Gnome. RPM Find: toate pachetele RPM. Samba: serviciu de partajare fiiere i imprimante cu sistemele MS Windows. Home of the OpenLDAP Project: OpenLDAP server/client/utiliti, FAQ i documentaie. Sendmail Homepage: prezentarea facilitilor Sendmail, care include exemple de configurare. Netfilter: conine informaii diverse despre iptables: HOWTO, FAQ, ghiduri ... Saitul oficial GIMP : toate informaiile despre programul GNU de manipulare a imaginilor. SourceForge.net: saitul pentru dezvoltarea programelor Open Source. vIm homepage

179

Appendix B. Comenzi DOS versus comenzi Linux


Vom prezenta comenzile DOS i echivalentul acestora pentru Linux. Ca un mijloc suplimentar de orientare pentru noii venii n Linux, dar care au experien n Windows, tabelul de mai jos listeaz comenzi MS-DOS i echivalentul acestora n Linux. Comenzile proprii Linux-ului au, de regul, opiuni numeroase. Citii paginile man sau Info ale comenzilor care v intereseaz pentru mai multe informaii.
Tabelul B-1. Prezentarea comenzilor DOS/Linux

Comenzi DOS <comand> /? cd chdir cls copy date del dir echo edit exit fc find format mem mkdir more move ren time

Comenzi Linux man <comand> sau comand -help cd pwd clear cp date rm ls echo vim (sau alt editor) exit diff grep mke2fs sau mformat free mkdir more sau chiar less mv mv date

180

Appendix C. Facilitile consolei


V prezentm o trecere n revist a facilitilor comune tuturor consolelor, ct i a celor specifice, n funcie de tip.

C.1. Faciliti comune


Urmtoarele faciliti exist n orice consol. Comenzile stop, suspend, jobs, bg i fg sunt disponibile numai pentru sistemele care integreaz controlul sarcinilor.
Tabelul C-1. Faciliti comune tuturor consolelor

Comand > >> < << | & ; * ? [] () `` '' '' '' \ $var $$ $0 $n $* # bg break cd continue echo eval exec fg jobs kill newgrp shift

nelesul comenzii Redirecioneaz ieirea Adaug la fiier Redirecioneaz intrarea Redirecioneaz intrarea Conexeaz ieirea Ruleaz procese n fundal Comenzi separate n aceeai linie Fiecare caracter din numele fiierului conteaz Conteaz un singur caracter din numele fiierului Fiecare caracter cuprins ntre paranteze drepte conteaz Execut n subconsol Substituie ieirea comenzii cuprinse ntre caractere Citare parial (permite variabile i expansiuni ale comenzilor Citare n ntregime (fr expansiune) Citeaz caracterul urmtor Folosii valoare pentru variabil ID-ul procesului Numele comenzii Argumentul nr. n (cu n de la 0 la 9) Toate argumentele ca simple cuvinte ncepe comentariul Execuie n fundal Pauz Schimb directorul Reia execuia unui program Afieaz ieirea Evalueaz argumentele Execut o consol nou Execut n prim plan Arat sarcinile active Stopeaz sarcinile active Mutare ntr-un grup nou Schimb parametrii poziionali 181

stop suspend time umask unset wait

Suspend un serviciu care ruleaz n fundal Suspend un serviciu care ruleaz n prim plan Cronometreaz o comand Configureaz sau listeaz permisiunile asociate fiierelor terge variabile sau definiii de funcii Ateapt ca un serviciu din fundal s se termine.

C.2. Faciliti particulare


Tabelul de mai jos prezint diferenele majore dintre consolele standard (sh), Bourne Again SHell (bash), Korn (ksh) i C (csh). Compatibilitile ntre console ntruct consola Bourne Again SHell este o mbuntire a consolei sh, toate comenzile sh vor funciona n bash - dar nu i invers. bash dispune de multe faciliti particulare i, dup cum arat i tabelul de mai jos, multe altele importate din alte console. ntruct consola Turbo C este o mbuntire a csh, toate comenzile csh vor funciona i n tcsh, dar nu i invers.
Tabelul C-2. Faciliti particulare tipurilor de console

sh $

bash $ >|

ksh $ >| > fiier 2>&1

csh % >! >& fiier {}

neles/Aciune Prompterul implicit al utilizatorului Foreaz redirecionarea Redirecioneaz stdout i stderr ctre fiier Expandeaz elementele listate Substituie ieirea comenzii Directorul personal Simbolul directorului personal Acceseaz directoarele

> fiier 2>&1 &> fiier sau fiier 2>&1 {} `comand` `comand` sau $(comand)

$ (comand)

`comand`

$HOME

$HOME
~ ~+, ~-, dirs

$HOME
~ ~+, ~export var=val

$home
~ =-, =N setenv var

var=value
export var

VAR=value
export VAR=value

var=value set var=value Numirea variabilelor val


Configureaz variabilele de mediu Pot fi desemnate mai mult de 9 argumente Toate argumentele luate separat drept cuvinte

${nnnn}
''$@'' ''$@''

${nn}
''$@''

$# $? $! $.file

$# $? $! $source file sau .file

$# $? $! $.file
182

$#argv $status

Numrul argumentelor Statutul de ieire al celei mai recente comenzi PID-ul celui mai recent proces trimis n fundal Opiunile curente

source file

Citete comenzile din

file
alias x='y' case done esac exit n for/do case done esac exit n for/do set -f, set -o alias x=y case done esac exit n for/do alias x y switch sau case end endsw exit (expr) foreach noglob Numele x se refer la comanda y Alege alternativele Termin o declaraie n bucl Termin case sau switch Ieire cu afiarea statutului Trecere prin variabile Ignor caracterele substituite pentru generarea de nume Afieaz comenzile dispersate (urmrete aliasurile) Amintete localizarea comenzilor Uit localizarea comenzilor Listeaz comenzile anterioare Reia comanda anterioar Reia ultima comand care ncepe cu str

nullglob|dotglob| nocaseglob|noglob
hash hash cmds hash -r hash hash cmds hash -r history Tasta SgeatSus+Enter sau !! !str history r r str alias -t alias -t

hashstat rehash unhash history !! !str

cmds

!cmd:s/x/y/ if [$i -eq 5] fi ulimit pwd read trap 2 until while/do if [$i -eq 5] fi ulimit pwd read trap 2 unalias until while/do

nlocuiete xcu y n cea mai recent r x=y cmd !cmd:s/x/y/ comand care ncepe cu cmd, apoi execut if ((i==5)) fi ulimit pwd read trap 2 unalias until while/do while if ($i==5) endif limit dirs $< onintr unalias Test Sfritul declaraiei if Limiteaz resursele Afieaz directorul curent Citete din terminal Ignor ntreruperile terge aliasurile ncepe bucla until ncepe bucla while

Bourne Again SHell dispune de mult mai multe funcii, care nu sunt listate aici. Tabelul arat doar cum aceast consol a ncorporat idei bune din alte console: nu exist spaii goale n coloana corespunztoare consolei bash. Mai multe informaii despre comenzile particulare Bash gsii n paginile Info, seciunea Bash Features. Mai multe informaii: Trebuie s citii cel puin un manual, manualul consolei pe care o folosii. Alegerea pe care v sftuim s o facei este info bash, bash fiind consola GNU i cea mai prietenoas cu nceptorii. Scoatei-l la imprimant i luai-l cu dumneavoastr, parcurgei-l oricnd avei la dispoziie mcar 5 minute. Consultai Appendix B dac avei dificulti n asimilarea comenzilor consolei.

183

Glosar
Seciunea curent v prezint, n ordine alfabetic, o trecere n revist a comenzilor discutate n acest document.

A
a2ps Formateaz fiierele pentru tiprire pe o imprimant PostScript, consultai Seciunea 8.1.2. acroread Vizualizator PDF, consultai Seciunea 8.1.2.2. adduser Creeaz un utilizator nou sau actualizeaz informaiile implicite ale unui utilizator. alias Creeaz n consol un alias pentru o comand. alsaconf Configureaz placa de sunet folosind driverul ALSA, consultai Seciunea 11.1.2. alsamixer Regleaz sunetul pe ieirile dispozitivului de sunet ALSA, consultai Seciunea 11.2.2.3. anacron Execut comenzi periodic, nu presupune rularea continu a calculatorului. apropos Caut n baza de date whatis dup irul introdus, consultai Seciunea 2.3.3.2. apt-get Administratorul de pachete APT, consultai Seciunea 7.5.3.2. arecord nregistreaz o mostr de sunet, consultai Seciunea 11.2.3. aspell Verific ortografia. at, atq, atrm Trimite n ateptare, examineaz sau terge servicii cu executare ntrziat, consultai Seciunea 4.1.2.2 i Seciunea 4.4.3. aumix Ajusteaz mixerul audio, consultai Seciunea 11.2.2.3. (g)awk Limbaj de scanare i procesare a tiparelor.

B
bash Bourne Again SHell, consultai Seciunea 3.2.3.2 i Seciunea 7.2.5. batch Trimite n ateptare, examineaz i terge sarcinile cu executare ntrziat. bg Ruleaz o sarcin n fundal, consultai Seciunea 4.1.2.1. bitmap Editor hart de pixeli i utiliti de conversie pentru sistemul X Window. bzip2 Un compresor de fiiere, consultai Seciunea 9.1.1.3.

C
cardctl Administreaz cardurile PCMCIA, consultai Seciunea 10.2.3.3. cat Conexeaz fiierele i afieaz rezultatul la ieirea standard, consultai Seciunea 2.2 i Seciunea 3.2.4. cd Schimb directorul, consultai Seciunea 2.2. cdp/cdplay Un program interactiv n modul text pentru controlarea i redarea CD-urilor audio n Linux, consultai Seciunea 11.2.1. cdparanoia Un utilitar audio pentru citirea CD-urilor, care include faciliti de verificare a datelor, consultai Seciunea 11.2.1. 184

cdrecord nregistreaz un CD-R, consultai Seciunea 9.2.2. chattr Modific atributele fiierelor. chgrp Modific grupurile. chkconfig Actualizeaz sau cere informaii despre nivelurile de rulare pentru serviciile de sistem, consultai Seciunea 4.2.5.1. chmod Modific permisiunile asociate fiierelor, consultai Seciunea 3.4.1, Seciunea 3.4.2.1 i Seciunea 3.4.2.4. chown Modific deintorii fiierelor i grupurile, consultai Seciunea 3.4.2.3. compress Comprim fiierele. cp Copiaz fiiere i directoare, consultai Seciunea 3.3.2. crontab Administreaz fiierele crontab, consultai Seciunea 4.4.4. csh Deschide o consol C, consultai Seciunea 3.2.3.2. cut terge seciuni din fiecare linie a unui fiier (ale unor fiiere), consultai Seciunea 7.2.5.2.

D
date Afieaz sau modific data i ora sistemului. dd Convertete i copiaz un fiier (transfer pe disc - disk dump), consultai Seciunea 9.2.1.2. df Afieaz utilizarea sistemului de fiiere de pe disc, consultai Seciunea 3.1.2.3. dhcpcd Client DHCP, consultai Seciunea 10.3.8. diff Caut diferenele dintre dou fiiere. dig Trimite pachete de interogare ctre serverele de nume, consultai Seciunea 10.2.6.1. dmesg Afieaz sau controleaz memoria tampon a kernelului. du Estimeaz utilizarea spaiului de ctre fiiere. dump Creeaz copii de siguran pentru sistemul de fiiere, consultai Seciunea 9.2.5.

E
echo Afieaz o linie de text, consultai Seciunea 3.2.1. ediff Diff pentru translatorul n limba englez. egrep grep extins. eject Demonteaz i ejecteaz mediile detaabile. emacs Pornete editorul Emacs, consultai Seciunea 6.1.2.1. exec Invoc subprocesele, consultai Seciunea 4.1.5.1. exit nchide consola curent, consultai Seciunea 2.2. export Adaug funcii mediului consolei, consultai Seciunea 3.2.1, Seciunea 7.2.1.2 i Seciunea 7.2.4.2.

185

F
fax2ps Convertete un facsimil TIFF n PostScript, consultai Seciunea 8.1.2. fdformat Formateaz dischete, consultai Seciunea 9.2.1.1. fdisk Administrator de partiii pentru Linux, consultai Seciunea 3.1.2.2. fetchmail Administreaz mesajele de pot electronic de pe servere POP, IMAP, ETRN sau ODMR, consultai Seciunea 10.3.2.3. fg Aduce o sarcin din fundal n prim plan, consultai Seciunea 4.1.2.1. file Determin tipul unui fiier, consultai Seciunea 3.3.1.2. find Caut fiiere, consultai Seciunea 3.3.3.3. firefox Navigator de Internet, consultai Seciunea 10.3.3.2. fork Creeaz un proces nou, consultai Seciunea 4.1.5.1. formail (Re)formateaz mesajele de pot electronic, consultai Seciunea 10.3.2.3. fortune Afieaz un mesaj, la ntmplare, de regul interesant. ftp

G
galeon Navigator grafic de Internet gdm Administratorul de spaiu de lucru Gnome, consultai Seciunea 4.2.4. gedit Editor pentru interfaa grafic, consultai Seciunea 6.3.3.3. (min/a)getty Controleaz dispozitivele din consol. gimp Program de manipulare a imaginilor. gpg Cripteaz, verific i decripteaz fiiere, consultai Seciunea 9.4.1.2. grep Afieaz liniile care se potrivesc unui tipar (sortare liniar), consultai Seciunea 3.3.3.4 i Seciunea 5.3.1. groff Emuleaz comanda nroff cu groff, consultai Seciunea 8.1.2. grub Consola grub, consultai Seciunea 4.2.3 i Seciunea 7.5.4. gv Vizualizator PostScript i PDF, consultai Seciunea 8.1.2.2. gvim Versiunea grafic a editorului vIm, consultai Seciunea 6.3.3.3. gzip Comprim sau despacheteaz fiiere, consultai Seciunea 9.1.1.3.

H
halt Oprete sistemul, consultai Seciunea 4.2.6. head Afieaz prima parte a coninutului fiierelor, consultai Seciunea 3.3.4.3. help Afieaz ajutorul pentru comenzile proprii consolei. host Utilitar care caut DNS-urile, consultai Seciunea 10.2.6.1. 186

httpd Protocol Apache de transfer pentru hipertext, consultai Seciunea 10.2.3.1.

I
id Configureaz interfaa de reea sau afieaz configuraia, consultai Seciunea 10.1.2.3. info Citete documentele Info, consultai Seciunea 2.3.3.1. init Controleaz iniializarea proceselor, consultai Seciunea 4.1.5.1, Seciunea 4.2.4 i Seciunea 4.2.5. insserv Administreaz scripturile init, consultai Seciunea 4.2.5.1. iostat Afieaz statisticile I/O, consultai Seciunea 4.3.5.4. ipchains Administreaz firewall-ul IP, consultai Seciunea 10.4.4.2. iptables Administreaz pachetele IP, consultai Seciunea 10.4.4.2.

J
jar Unealt de arhivare Java, consultai Seciunea 9.1.1.4. jobs Listeaz sarcinile care se desfoar n fundal.

K
kdm Administrator pentru spaiul de lucru al KDE, consultai Seciunea 4.2.4. kedit Editor grafic KDE, consultai Seciunea 6.3.3.3. kill(all) Termin procesele, consultai Seciunea 4.1.2.1. konqueror Navigator de fiiere, pentru pagini de ajutor i pentru Internet, consultai Seciunea 3.3.2.1. ksh Deschide o consol Korn, consultai Seciunea 3.2.3.2. kwrite Editor grafic KDE, consultai Seciunea 6.3.3.3.

L
less more cu mai multe opiuni. lilo ncrctor de sisteme pentru Linux (acum se folosete mai mult grub), consultai Seciunea 4.2. links Navigator WWW pentru modul text, consultai Seciunea 10.2.3.2. ln Creeaz legturi ntre fiiere, consultai Seciunea 3.3.5. loadkeys ncarc tabela de modificare a aspectului tastaturii, consultai Seciunea 7.4.1. locate Caut fiiere, consultai Seciunea 3.3.3.3 i Seciunea 4.4.4. logout nchide consola curent, consultai Seciunea 2.1.3. lp Trimite cereri ctre serviciul de tiprire LP, consultai Seciunea 8.1. lpc Program de control pentru tiprire, consultai Seciunea 8.1. lpq Program pentru examinarea lucrrilor trimise la coada pentru tiprire, consultai Seciunea 8.1.

187

lpr Tiprire offline, consultai Seciunea 8.1. lprm terge sarcinile trimise la imprimant, consultai Seciunea 8.1. ls Afieaz coninutul directoarelor, consultai Seciunea 2.2, Seciunea 3.1.1.2 i Seciunea 3.3.1.1. lynx Navigator WWW pentru modul text, consultai Seciunea 10.2.3.2.

M
mail Trimite i primete mesaje de pot electronic, consultai Seciunea 10.3.2.3. man Citete paginile de manuale, consultai Seciunea 2.3.2. mc Midnight COmmander, navigator de fiiere, consultai Seciunea 3.3.2.1. mcopy Copiaz fiiere MSDOS n/din UNIX. mdir Afieaz un director MSDOS. memusage Afieaz gradul de folosire al memoriei, consultai Seciunea 4.3.5.3. memusagestat Afieaz statistici referitoare la utilizarea memoriei, consultai Seciunea 4.3.5.3. mesg Controleaz accesul la scriere n terminalul dumneavoastr, consultai Seciunea 4.1.6. mformat Formateaz o dischet n MSDOS, consultai Seciunea 9.2.1.1. mkbootdisk Creeaz o dischet pentru pornirea sistemului. mkisofs Creeaz un sistem de fiiere hibrid ISO9660, consultai Seciunea 9.2.2. mplayer Player pentru filme al Linux-ului, consultai Seciunea 11.2.2 i Seciunea 11.3. more Filtru pentru afiarea unei secvene de text, cte un ecran pe afiare, consultai Seciunea 3.3.4.2. mount Monteaz un sistem de fiiere sau afieaz informaii despre un sistem de fiiere deja montat, consultai Seciunea 7.5.5.1. mozilla Navigator web, consultai Seciunea 10.2.3.2. mt Controleaz operaiile cu benzile magnetice. mtr Unealt de diiagnosticare pentru reele. mv Redenumete fiiere, consultai Seciunea 3.3.2.

N
named Server pentru nume de domenii, consultai Seciunea 10.3.7. nautilus Administrator de fiiere, consultai Seciunea 3.3.2.1. ncftp Program de navigare pentru serviciile ftp (nesecurizat!), consultai Seciunea 10.3.4.2. netstat Afieaz conexiunile la reea, tabela de rutare, statistici referitoare la interfaa de reea, conexiuni deghizate i difuzrile multiple, consultai Seciunea 10.1.2.5 i Seciunea 10.4.2. newgrp Autentificare ntr-un alt grup, consultai Seciunea 3.4.2.2. nfsstat Afieaz statistici despre sistemele de fiiere n reea. nice Ruleaz un program cu modificarea prioritii programate, consultai Seciunea 4.3.5.1. 188

nmap Unealt pentru explorarea reelei i scaner de securitate. ntpd Serviciul Network Time Protocol, consultai Seciunea 7.4.3. ntpdate Configureaz ora i data cu ajutorul unui server NTP, consultai Seciunea 7.4.3. ntsysv Interfa simpl pentru configurarea nivelurilor de rulare, consultai Seciunea 4.2.5.1.

O
ogle Player DVD care citete meniurile DVD, consultai Seciunea 11.3.

P
passwd Schimb parola, consultai Seciunea 2.2 i Seciunea 4.1.6. pccardctl Administreaz cardurile PCMCIA, consultai Seciunea 10.2.3.3. pdf2ps Transform fiierele PDF n PostScript, consultai Seciunea 8.1.2. perl Practical Extraction and Report Language. pg Pagineaz ieirea text, consultai Seciunea 3.3.4.2. pgerp Caut procese pe criterii bazate pe nume i alte atribute, consultai Seciunea 4.1.4. ping Trimite o cerere de rspuns unui alt calculator, consultai Seciunea 10.2.6.2. play Red o mostr de sunet, consultai Seciunea 11.2.3. pr Convertete fiierele text n vedeera tipririi. printenv Afieaz, n parte sau n totalitate, variabilele de mediu, consultai Seciunea 7.2.1. procmail Procesor independent de mesaje de pot electronic, consultai Seciunea 10.3.2.3. ps Afieaz statutul proceselor, consultai Seciunea 4.1.4 i Seciunea 4.3.5.4. pstree Afieaz procesele n form arborescent, consultai Seciunea 4.1.4. pwd Afieaz directorul de lucru curent, consultai Seciunea 2.2.

Q
quota Afieaz gradul de folosire a discului i limitrile, consultai Seciunea 3.2.3.3.

R
rcp Copiere la distan (nesecurizat!). rdesktop Client Remote Desktop Protocol, consultai Seciunea 10.4.6. reboot Oprete sistemul, consultai Seciunea 4.2.6. recode Convertete fiierele ntr-un alt set de caractere, consultai Seciunea 7.4.4. renice Modific prioritatea unui proces, consultai Seciunea 4.3.5.1. restore Restaureaz copiile de siguran create cu dump, consultai Seciunea 9.2.5.

189

rlogin Autentificare la distan (telnet, nesecurizat!), consultai Seciunea 10.4.2 i Seciunea 10.5.2. rm terge un fiier, consultai Seciunea 3.3.2. rmdir terge un director, consultai Seciunea 3.3.2.2. roff Sistem de formatare, consultai Seciunea 8.1.2. rpm Administrator de pachete RPM, consultai Seciunea 7.5.2.1. rsh Consol la distan (nesecurizat!), consultai Seciunea 10.4.2. rsync Sincronizeaz dou directoare, consultai Seciunea 9.3.

S
scp Copiere la distan securizat, consultai Seciunea 10.4.4.1. screen Administrator de ecran cu emulator pentru VT100, consultai Seciunea 4.1.2.1. set Afieaz, introduce sau modific o variabil. setterm Configureaz atributele terminalului. sftp ftp securizat (criptat), consultai Seciunea 10.4.4.1. sh Deschide o consol standard, consultai Seciunea 3.2.3.2. shutdown Oprete sistemul, consultai Seciunea 4.2.6. sleep Ateapt o perioad stabilit, consultai Seciunea 4.4.1. slocate Versiune mbuntit din punct de vedere al securitii pentru GNU Locate, consultai Seciunea 3.3.3.3. slrnn Client n modul text pentru Usenet, consultai Seciunea 10.2.6. snort Unealt pentru detectarea intruziunilor n reea. sort Sorteaz linii din fiierele text, consultai Seciunea 5.3.2. spell Verific ortografia, consultai Seciunea 5.1.2.3. ssh Consol securizat, consultai Seciunea 10.4.4.1. ssh-keygen Genereaz chei de autentificare i le administreaz, consultai Seciunea 10.4.4.5. stty Modific i afieaz configurrile terminalului. su Schimb utilizatorul, consultai Seciunea 3.2.1, Seciunea 7.5.3.2 i Seciunea 10.4.6.

T
tac Conexeaz i afieaz fiierele n ordine invers, consultai cat. tail Afieaz ultima parte a coninutului unui fiier, consultai Seciunea 3.3.4.3. talk Converseaz cu un utilizator. tar Utilitar pentru arhivare, consultai Seciunea 9.1.1.1. tcsh Deschide o consol Turbo C, consultai Seciunea 3.2.3.2.

190

telinit Controleaz iniializarea proceselor, consultai Seciunea 4.2.5. telnet Interfaa cu utilizatorul pentru protocolul TELNET (nesecurizat!), consultai Seciunea 10.4.2. tex Formateaz fiiere text, consultai Seciunea 8.1.2. time Cronometreaz o comand sau ofer informaii despre resursele folosite, consultai Seciunea 4.3.2. tin Program pentru citirea tirilor, consultai Seciunea 10.2.6. top Afieaz procesele care solicit cel mai mult procesorul, consultai Seciunea 4.1.4, Seciunea 4.3.5.3 i Seciunea 4.3.5.4. touch Modific eticheta de timp a fiierelor, consultai Seciunea 7.1.2. traceroute Afieaz ruta urmat de pachete n reea, consultai Seciunea 10.2.6.3. tripwire Verific integritatea fiierelor unui sistem UNIX, consultai Seciunea 10.4.5. troff Formateaz documente, consultai Seciunea 8.1.2. tvtime Aplicaie de bun calitate pentru televiziune. twm Tab Window Manager pentru sistemul X Window.

U
ulimit Controleaz resursele, consultai Seciunea 7.1.2.5. umask Configureaz masca fiierului n funcie de utilizator, consultai Seciunea 3.4.2.2. umount Demonteaz un sistem de fiiere. uncompress Despacheteaz fiierele comprimate. uniq terge liniile duplicate dintr-un fiier sortat, consultai Seciunea 5.3.2. up2date Actualizeaz pachete RPM. update Serviciu al kerenlului, care trimite napoi pe disc memoria tampon nefolositoare. update-rc.d Configureaz scripturile init, consultai Seciunea 4.2.5.1. uptime Afieaz timpul de lucru al sistemului i solicitarea medie a sistemului, consultai Seciunea 4.1.4 i Seciunea 4.3.5.2. urpmi Actualizeaz pachetele RPM, consultai Seciunea 7.5.3.3. userdel terge contul unui utilizator i fiierele conexe.

V
vi(m) Pornete editorul vi (mbuntit), consultai Seciunea 6.1.2.2. vimtutor Tutorialul Vim. vmstat Afieaz statistici legate de memoria virtual, consultai Seciunea 4.3.5.4.

191

W
w Arat cine este autentificat i ce face. wall Trimite un mesaj ctre terminalele fiecruia, consultai Seciunea 4.2.6. wc Afieaz numrul biilor, al cuvintelor i liniilor dintr-un fiier, consultai Seciunea 3.2.1. which Arat traseul complet al comenzilor (consolei), consultai Seciunea 3.2.1 i Seciunea 3.3.3.2. who Arat cine este autentificat, consultai Seciunea 4.1.6. who am i Afieaz ID-ul utilizatorului curent. whois Interogheaz o baz de date whois, consultai Seciunea 10.2.6.1. write Trimite un mesaj altui utilizator, consultai Seciunea 4.1.6.

X
xargs Introduce i execut comenzi de la dispozitivul standard de intrare, consultai Seciunea 3.3.3.3. xauth Utilitar X authority. xawtv Un program X11 pentru televiziune. xcdroast Interfa grafic pentru cdrecord, consultai Seciunea 9.2.2. xclock Ceas digital/analog pentru X. xconsole Monitorizeaz mesajele de sistem n X. xdm Administrator de ecran cu suport pentru XDMCP, host chooser, consultai Seciunea 4.2.4 i Seciunea 7.3.2. xdvi Vizualizator DVI, consultai Seciunea 8.1.2.2. xedit Editor grafic pentru X Window, consultai Seciunea 6.3.3.3. xfs Serverul de fonturi X. xhost Controleaz accesul programelor n X, consultai Seciunea 10.4.3.2. xine Player video liber, consultai Seciunea 11.3. xinetd Serviciu extins pentru Internet, consultai Seciunea 10.3.1.2. xload Afieaz solicitarea medie a sistemului n X, consultai Seciunea 4.3.5.6. xlsfonts Listeaz fonturile n X. xmms Player audio pentru X, consultai Seciunea 11.2.2.1. xpdf Vizualizator PDF, consultai Seciunea 8.1.2.2. xterm Emulator de terminal pentru X.

Y
yast Unealt pentru administrarea sistemului n Novell SuSE Linux. yum Actualizeaz pachete RPM, consultai Seciunea 7.5.3. 192

Z
zapping Program pentru televiziune n mediul Gnome. zcat Comprim sau despacheteaz fiiere. zgrep Caut n fiierele posibil comprimate o expresie regulat. zmore Filtru pentru afiarea textului comprimat.

193

You might also like