Documente Academic
Documente Profesional
Documente Cultură
Manual Linux
Manual 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.
Alok Kumar Dhananjay Sharma Kapil Puneet Goel Ravikant Yuyutsu gsete la adresa de web
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.
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/ ).
nume_fiier
Tast Buton MeniuAlege Terminologie \
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.
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.
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.
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.
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:
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
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.
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.
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.
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
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
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
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.
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.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.
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
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).
21
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.
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
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.
ncercai din nou cu o parol ridicol de simpl, precum 123 sau aaa .
Ce se ntmpl?
2.5.3. Directoarele
Iat cteva exerciii care v ajut s intrai n subiect:
Introducei comanda cd ..
Luai aminte la spaiul dintre cd i ..! Folosii comanda pwd. 27
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?
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 .....
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?
29
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.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:
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.
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.
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:
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
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.
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.
~/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:
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/
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
Pe parcursul acestui capitol vom vorbi despre comenzile pe care le folosim n gestionarea fiierelor 40
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.
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
Pe parcursul acestui ghid vom afla mai multe lucruri despre aceste fiiere i vom studia cteva n detaliu.
Nume
Dispozitiv Unitate CD Intrare special pentru consola folosit n mod curent Porturi seriale Dispozitive pentru eantionare i nregistrare
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
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.
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
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
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:
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
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:
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!
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
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
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.
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.
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.
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:
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
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.
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
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?
64
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
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.
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.
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.
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
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.
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
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.
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.
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.
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.
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:
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 ...
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
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.
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.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.
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
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
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.
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
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.
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.
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
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:
Ce comand vei folosi pentru a verifica care script din directorul /etc/init.d pornete un
anume proces? 96
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.
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.
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.
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.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
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
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.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.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
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
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.
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.
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.
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.
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=...
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.
(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 ($)
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.
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.
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.
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.
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.
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:
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.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.).
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.
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.
124
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.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
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.
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/.
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
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.
-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
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.
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.
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
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.
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
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.
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.
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
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
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).
141
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
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
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.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
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:
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:
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:
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.
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
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.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
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
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.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
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.
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.
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
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.
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
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.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.
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.
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.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.
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.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:
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.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.
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.
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.
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.
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
Configurarea plcii de sunet Redarea CD-urilor, copierea CD-urilor Redarea fiierelor de muzic Controlul volumului Video i televiziune nregistrare de sunet
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.
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.
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.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.
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
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.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
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
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
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.
sh $
bash $ >|
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
${nnnn}
''$@'' ''$@''
${nn}
''$@''
$# $? $! $.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
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
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
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