Sunteți pe pagina 1din 238

by dahn

2005
Slackware Linux
Essentials

Alan Hicks • Chris Lumens • David Cantrell


Logan Johnson

by Dahn
2005
Contributii la traducere

Prefata de Andrei Florian Staicu


Capitolul 1 de skills
Capitolul 2 de Andrei Florian Staicu
Capitolul 3 de Andrei Florian Staicu
Capitolul 4 de skills
Capitolul 5 de bogdan
Capitolul 6 de Andrei Florian Staicu
Capitolul 7 de Andrei Florian Staicu
Capitolul 8 de Claudiu Tanaselia
Capitolul 9 de Claudiu Tanaselia
Capitolul 10 de Andrei Florian Staicu
Capitolul 11 de Claudiu Tanaselia
Capitolul 12 de Andrei Florian Staicu
Capitolul 13 de Catalin Nicolescu si skills
Capitolul 14 de Paul Irofti
Capitolul 15 de Stefan-Codrut Marinescu
Capitolul 16 de Paul Irofti
Capitolul 17 de Stefan-Codrut Marinescu
Capitolul 18 de Claudiu Tanaselia
Capitolul 19 de Claudiu Tanaselia
Glosar de arny
Corectura lupalb, arny

Documentul nu este pentru comercializare.


Acest document este sub licenta GPL(General Public License). O copie a
acestei licente poate fi gasita la Anexa A.
Linux® este o marca inregistrata Linus Torvalds. Slackware® este o marca
inregistrata BSDi si Patrick Volkerding.
Materialul prezent a fost preluat de pe www.slackware.com.ro/carte/. Contributia la
traducerea cartii este prezentata mai sus.
Tehnoredactare: Dahn
Coperta: Pansy

Copyright © 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc.
Cuprins

Prefata / 11
1 O Introducere in Slackware Linux / 19
1.1 Ce este Linux? / 20
1.1.1 Un cuvant despre GNU / 20
1.2 Ce este Slackware? / 21
1.3 Open Source si Free Software / 22
2 Ajutor / 25
2.1 Ajutor de la sistem / 26
2.1.1 man / 26
2.1.2 Directorul /usr/doc / 27
2.1.3 HOWTOs si mini-HOWTOs / 28
2.2 Ajutor online / 28
2.2.1 Forumul si pagina oficiala / 29
2.2.2 Suport e-mail / 29
2.2.3 Forumul si pagina neoficiala / 30
3 Instalare / 33
3.1 Obtinerea Slackware / 34
3.1.1 Setul oficial de cd-uri si cutii / 34
3.1.2 Via in internet / 34
3.2 Cerinte sistem / 35
3.2.1 Seriile software / 36
3.2.2 Metode de instalare / 37
3.2.3 Discul de boot / 38
3.2.4 Discul de root / 38
3.2.5 Disc suplementar / 38
3.2.6 Crearea discurilor / 39
3.3 Partitionarea / 39
3.4 Programul setup / 42
3.4.1 Help / 43
3.4.2 Keymap / 43
3.4.3 Addswap / 44
3.4.4 Target / 44
3.4.5 Source / 45
3.4.6 Select / 46
3
3.4.7 Install / 46
3.4.8 Configure / 48
4 Configurarea sistemului / 53
4.1 O privire de ansamblu asupra sistemului / 54
4.1.1 Organizarea fisierelor / 54
4.1.2 Localizarea fisierelor / 56
4.1.3 Directorul /etc/rc.d / 58
4.2 Alegerea kernel-ului / 61
4.2.1 Directorul /kernels de pe CD-ROM-ul Slackware / 61
4.2.2 Copilarea unui kernel din surse / 62
4.2.3 Folosirea modulelor kernel-ului / 65
5 Configurarea retelei / 67
5.1 Introdurece in netconfig / 68
5.2 Configurarea retelei(hardware) / 68
5.2.1 Incarcarea modulelor de retea / 69
5.2.2 Placi de retea (10/100/1000Base-T si Base-2) / 69
5.2.3 Modem-uri / 70
5.2.4 PCMCIA / 71
5.3 Configurarea TCP/IP / 71
5.3.1 DHCP / 72
5.3.2 IP static / 73
5.3.3 /etc/rc.d/rc.inet1.conf / 73
5.3.4 /etc/resolv.conf / 74
5.3.5 /etc/hosts / 75
5.4 PPP / 75
5.4.1 pppsetup / 75
5.4.2 /etc/ppp / 76
5.5 Wireless / 76
5.5.1 Suport hardware / 77
5.5.2 Configurarea setarilor Wireless / 77
5.5.3 Configurarea retelei / 78
5.6 Network File Systems / 79
5.6.1 SMB/Samba/CIFS / 79
5.6.2 Network File System (NFS) / 81
6 Configurarea X / 83
6.1 xorgconfig / 84
6.2 xorgsetup / 87
6.3 xinitrc / 87

4
6.4 xwmconfig / 89
6.5 xdm / 91
7 Initializare (booting) / 93
7.1 LILO / 94
7.2 LOADLIN / 96
7.3 Dual booting / 97
7.3.1 Windows / 98
7.3.2 Linux / 101
8 Shell-ul / 103
8.1 Utilizatorii / 104
8.1.1 Logarea / 104
8.1.2 Root: super utilizatorul / 104
8.2 Linia de comanda / 105
8.2.1 Rularea programelor / 105
8.2.2 Potrivirea caracterelor / 106
8.2.3 Redirectionarea Intrarii/Iesirii si Intubarea / 107
8.3 Shell-ul Bourne Again (bash) / 108
8.3.1 Variabile de mediu / 108
8.3.2 Completarea tab / 110
8.4 Terminale virtuale / 110
8.4.1 Screen / 111
9 Structura sistemului de fisiere / 113
9.1 Apartenenta / 114
9.2 Permisiuni / 115
9.3 Link-uri / 118
9.4 Montarea dispozitivelor / 119
9.4.1 fstab / 119
9.4.2 mount si umount / 120
9.5 NFS Mounts / 121
10 Manipularea fisierelor si a directoarelor / 123
10.1 Navigarea : ls, cd, si pwd / 124
10.1.1 ls / 124
10.1.2 cd / 125
10.1.3 pwd / 126
10.2 Pagere: more, less, si most / 126
10.2.1 more / 126
10.2.2 less / 126
10.2.3 most / 127

5
10.3 Iesire simpla: cat si echo / 127
10.3.1 cat / 127
10.3.2 echo / 128
10.4 Creare: touch si mkdir / 128
10.4.1 touch / 128
10.4.2 mkdir / 129
10.5 Copiere si mutare / 129
10.5.1 cp / 129
10.5.2 mv / 130
10.6 Stergere: rm si rmdir / 130
10.6.1 rm / 130
10.6.2 rmdir / 131
10.7 Legaturi intre fisiere cu ln / 131
11 Controlul proceselor / 133
11.1 Backgrounding / 134
11.2 Foregrounding / 134
11.3 ps / 135
11.4 kill / 139
11.5 top / 141
12 Administrarea necesara a sistemului / 145
12.1 Utilizatori si grupuri / 146
12.1.1 Scripturi furnizate / 146
12.1.2 Schimbarea parolelor / 150
12.1.3 Schimbarea informatiei utilizatorului / 151
12.2 Utilizatori si grupuri, varianta grea / 151
12.3 Oprirea corespunzatoare a calculatorului / 154
13 Comenzi primare de retea / 157
13.1 ping / 158
13.2 traceroute / 158
13.3 DNS Tools / 159
13.3.1 host / 159
13.3.2 nslookup / 160
13.3.3 dig / 160
13.4 finger / 161
13.5 telnet / 162
13.5.1 Alte moduri de a utiliza telnet / 163
13.6 Shell-ul sigur / 163
13.7 email / 164

6
13.7.1 pine / 164
13.7.2 elm / 165
13.7.3 mutt / 166
13.7.4 nail / 167
13.8 Navigatoare / 168
13.8.1 lynx / 168
13.8.2 links / 169
13.8.3 wget / 169
13.9 Clienti FTP / 170
13.9.1 ftp / 171
13.9.2 ncftp / 172
13.10 Comunicarea cu alti oameni / 173
13.10.1 wall / 173
13.10.2 talk / 174
13.10.3 ytalk / 175
14 Securitatea / 177
14.1 Dezactivarea servicilor / 178
14.1.1 Servicii pornite de inetd / 178
14.1.2 Servicii pornite de scripturi / 178
14.2 Controlarea accesului bazat pe host-uri / 179
14.2.1 iptables / 179
14.2.2 tcpwrappers / 181
14.3 Mentinerea la curent / 182
14.3.1 Lista de mail-uri slackware-security / 182
14.3.2 Directorul /patches / 182
15 Fisiere Arhiva / 185
15.1 gzip / 186
15.2 bzip2 / 187
15.3 tar / 187
15.4 zip / 190
16 Vi / 191
16.1 Pornirea programului vi / 192
16.2 Moduri / 193
16.2.1 Modul de comanda / 194
16.2.2 Modul de inserare / 195
16.3 Deschiderea fisierelor / 196
16.4 Salvarea fisierelor / 196
16.5 Iesirea din programul vi / 197

7
16.6 Configurarea vi / 197
16.7 Tastele Vi / 198
17 Emacs / 201
17.1 Pornirea programului emacs / 203
17.1.1 Taste / 203
17.2 Buffere / 204
17.3 Moduri / 205
17.3.1 Deschiderea fisierelor / 205
17.4 Editare de baza / 206
17.5 Salvarea fisierelor / 208
17.5.1 Iesirea din Emacs / 208
18 Administrarea pachetelor Slackware / 209
18.1 Formatul pachetelor Slackware / 210
18.2 Utilitare pentru pachete / 210
18.2.1 pkgtool / 210
18.2.2 installpkg / 212
18.2.3 removepkg / 213
18.2.4 upgradepkg / 213
18.2.5 rpm2tgz/rpm2targz / 214
18.3 Crearea pachetelor / 214
18.3.1 explodepkg / 215
18.3.2 makepkg / 215
18.3.3 Scrip-uri SlackBuild / 215
18.4 Crearea Etichetelor si a Fisierelor Eticheta (pentru setup) / 216
19 ZipSlack / 217
19.1 Ce este ZipSlack? / 218
19.1.1 Avantaje / 218
19.1.2 Dezavantaje / 218
19.2 Obtinere ZipSlack / 218
19.2.1 Instalare / 219
19.3 Initializarea ZipSlack / 219
Glosar / 221
A. The GNU General Public License / 229
A.1. Preamble / 229
A.2. TERMS AND CONDITIONS / 230
A.3. How to Apply These Terms to Your New Programs / 234

8
Lista tabelelor
2-1. Sectiunea paginilor de manual / 26
3-1. Informatii de contact Slackware Linux Inc. / 34
3-2. Cerinte sistem / 35
3-3. Serii de soft / 36
9-1. Octal Permission Values / 115
13-1. Comenzi ftp / 171
16-1. Mutari / 198
16-2. Editare / 199
16-3. Cautare / 199
16-4. Salvare si iesire / 199
17-1. Comenzi de baza Emacs / 206
18-1. Optiuni installpkg / 212
18-2. Optiuni removepkg / 213
18-3. Optiuni Tagfile / 216
Capturi
4-1. Meniul de configurare al kernel-ului / 63
6-1. Configurarea mouse-ului xorgconfig / 84
6-2. Sincronizarea orizontala xorgconfig / 85
6-3. Sincronizarea verticala xorgconfig / 86
6-4. Placa video xorgconfig / 86
6-5. Configurarea desktop-ului cu xorgconfig / 90
7-1. liloconfig / 94
7-2. Meniul expert liloconfig / 96
11-1. Iesirea standard ps / 136
13-1. Telnet la un webserver / 163
13-2. Meniul principal Pine / 165
13-3. Fereastra principala Elm / 166
13-4. Fereastra principala Mutt / 167
13-5. Pagina de start Lynx / 168
13-6. Links cu meniul File deschis / 169
13-7. Doi utilizatori intr-o sesiune talk / 174
13-8. Doi utilizatori intr-o sesiune ytalk / 175
16-1. O sesiune vi / 192
18-1. Meniul principal Pkgtool / 211
18-2. Modul de vizualizare Pkgtool / 211
Lista de exemple
8-1. Afisarea variabilelor cu set / 109

9
Prefata
Audienta Tinta

Sistemul de operare Slackware Linux este o platforma puternica


pentru calculatoarele bazate pe tehnologia Intel. Este proiectat pentru a fi
stabil, sigur si functional, atat ca server de varf cat si ca statie de lucru
puternica.
Aceasta carte a fost conceputa sa te ajute sa incepi sa utilizezi
sistemul de operare Slackware Linux. Nu vrem sa acoperim absolut toate
subiectele, in schimb vrem sa aratam posibilitatile lui, sa sa iti oferim
cateva cunostinte de baza despre sistem.
Pe masura ce vei castiga experienta cu Slackware Linux, speram ca
vei gasi in acesta carte un ajutor la indemana. De asemenea speram ca o
vei imprumuta prietenilor tai cand vor veni sa intrebe despre acel sistem de
operare “marfa” Slackware Linux pe care il folosesti.
Desi aceasta carte nu este un roman care sa te faca sa fii cu sufletul
la gura, am incercat sa o facem cat mai distractiva posibil. Cu putin noroc
o sa obtinem un contract de scenarizare. Desigur, speram ca vei reusi sa
inveti ceva de aici si ca o vei gasi folositoare.
Si acum, sa ridicam cortina.

11
Modificari fata de Prima Editie

Aceasta a doua editie reprezinta punctul culminant al multor ani de


munca a membrilor dedicati ai Proiectului Slackware Linux.
Urmatoarele sunt shimbari majore in aceasta noua editie:

• Capitolul 3, Instalare, a fost modificat cu noi capturi de ecran ale


programului de instalare si reflecta schimbarile in setul de
discuri si instalarea de pe CD.
• Capitolul 4, Configurarea Sistemului, a fost adus la zi cu noi informatii
despre kernelul Linux 2.6.x.
• Capitolul 5, Configurarea Retelei, a fost extins cu noi explicatii despre
Samba, NFS si DHCP. O sectiune despre configurarea retelelor
fara fir a fost adaugata de asemenea. Acest capitol reflecta acum
shimbarile majore in modul in care Slackware trateaza
configurarea retelei.
• Capitolul 6, Sistemul X Window a fost rescris substantial pentru
sistemele bazate pe Xorg. Capitolul acopera acum si managerul
grafic de login xdm.
• Capitolul 13, Comenzi Primare de Retea, a fost imbunatatit cu informatii
aditionale despre utilitarele de retea.
• Capitolul 14, Securitatea, este un capitol nou in aceasta editie. Explica
modul in care sa mentii Slackware Linux un sistem sigur.
• Capitolul 17, Emacs, este un nou capitol in acesta editie. Explica modul
de folosire al Emacs, un puternic editor pentru Unix.
• Capitolul 18, Administrarea Pachetelor, a fost adus la zi cu informatii
despre scripturile SlackBuild.
• Mai sunt multe alte schimbari, atat majore cat si minore, care reflecta
schimbarile in Slackware pe masura ce acesta s-a maturizat.

12
Organizarea Acestei Carti

Capitolul 1, Introducere Ofera material introductiv despre Linux, Slackware


si Open Source si Miscarea Free Software

Capitolul 2, Ajutor Descrie resursele disponibile pentru ajutor pe un


sistem Slackware Linux si online.

Capitolul 3, Instalare Descrie pas cu pas procesul de instalare, folosind


capturi de ecran pentru a oferi un ghid ilustrativ.

Capitolul 4, Configurarea Sistemului Descrie fisierele de configurare


importante si recompilarea kernel-ului.

Capitolul 5, Configurarea Retelei Descrie modul de conectare a unei


masini Slackware Linux la o retea. Acopera TCP/IP, PPP/dial-
up, retele fara fir si multe altele.

Capitolul 6, Configurarea X Descrie modul de configurare si folosire a


sistemului grafic X Window in Slackware.

Capitolul 7, Initializare Descrie procesul prin care un calculator porneste


Slackware Linux. De asemenea, acopera modul de initializare dubla
cu sistemele de operare Microsoft Windows.

Capitolul 8, Shell-ul Descrie puternica interfata a liniei de comanda din


Linux.
Capitolul 9, Structura Sistemului de Fisiere Descrie structura sistemului de
fisiere, incluzand apartenente, permisiuni si legaturi.
Capitolul 10, Manipularea Fisierelor si a Directoarelor Descrie comenzile
folosite pentru manipularea fisierelor si directoarelor din interfata
liniei de comanda.
Capitolul 11, Controlul Proceselor Descrie puternicul sistem Linux pentru
controlul proceselor, folosit pentru administrarea rularii
concomitente a mai multor aplicatii..

13
Capitolul 12, Administrarea Necesara a Sistemului Descrie administrarea de
baza a sistemului, cum ar fi adaugarea si stergerea utilizatorilor,
oprirea sistemului in mod corect si multe altele.
Capitolul 13, Comenzi Primare de Retea Descrie colectia de clienti de
retea inclusi in Slackware.
Capitolul 14, Securitate Descrie multe utilitare disponibile pentru
mentinerea securitatii sistemului, incluzand iptables si
tcpwrappers.
Capitolul 15, Fisiere Arhiva Descrie diversele utilitare disponibile pentru
compresie si arhivare in Linux.
Capitolul 16, vi Descrie puternicul editor text vi .
Capitolul 17, Emacs Descrie puternicul editor text Emacs.
Capitolul 18, Administrarea Pachetelor Slackware Descrie utilitarele
pentru pachete Slackware, precum si procesul folosit pentru
crearea de pachete si fisiere eticheta personale.
Capitolul 19, ZipSlack Descrie versiunea de Linux ZipSlack, ce poate fi
folosita din Windows fara a necesita o instalare prealabila.
Appendix A, Licenta Generala de Uz Public GNU Descrie termenii
licentei sub care Slackware Linux si aceasta carte pot fi copiate
si distribuite.

14
Conventii utilizate in aceasta carte.

Pentru a oferi un text consistent si usor de citit, un numar de conven-


tii sunt folosite in intreaga carte.

Conventii de Scriere
Italic
Fontul italic este folosit pentru comenzi, pentru evidentierea textului
si pentru prima utilizare a termenilor tehnici.
Monospace
Fontul monospaced este folosit pentru mesaje de eroare, comenzi,
variabile de mediu, nume de porturi, nume de gazde, nume de
utilizatori, nume de grupuri, nume de device-uri, variabile si
fragmente de cod.
Bold
Fontul bold este folosit pentru datele introduse de utilizator in
exemple.

Date Utilizator

Tastele sunt scrise cu bold pentru a fi evidentiate fata de restul


textului. Combinatiile de taste care trebuie apasate simultan sunt scrise cu
`+' intre taste, cum ar fi:
Ctrl+Alt+Del
Inseamna ca utilizatorul trebuie sa apese Ctrl, Alt, si Del in acelasi timp.
Tastele care trebuie apasate secvential sunt separate cu virgula, de
exemplu:
Ctrl+X, Ctrl+S

Inseamna ca utilizatorul trebuie sa apese tasteleCtrl si X iar apoi


tastele Ctrl si S simultan.

15
Exemple

Exemplele care incep cu E:\> indica o comanda MS-DOS®. Daca nu


se specifica altceva, aceste comenzi le vei rula de la o fereastra “Command
Prompt” intr-un mediu modern Microsoft® Windows®.
D:\> rawrite a: bare.i

Exemplele care incep cu # indica o comanda care trebuie introdusa


in Slackware ca superutilizator. Te poti loga ca root pentru a scrie
comanda, sau te poti loga cu contul tau normal si sa folosesti su(1) pentru a
castiga drepturi de superutilizator.
# dd if=bare.i of=/dev/fd0

Exemplele care incep cu % indica o comanda care trebuie invocata


dintr-un cont normal de utilizator. Daca nu se specifica altceva, sintaxa
shell C este folosita pentru variabile de mediu si alte comenzi shell.
% top

16
Multumiri
Acest proiect reprezina acumularea lunilor de munca a mai multor
persoane dedicate. Eu nu as fi putut de unul singur sa produc acesta munca
din nimic. Multi oameni merita multimirile noastra pentru actele lor
altruiste: Keith Keller pentru munca lui despre retelele fara fir, Joost
Kremers pentru faptul ca a scris de unul singur sectiunea emacs, Simon
Williams pentru capitolul de securitate, Jurgen Phillippaerts pentru
comenzile de baza de retea, Cibao Cu Ali G Colibri pentru inspiratia
oferita si pentru un un sut in fund. Nenumarate alte sugestii si corectii. O
lista completa ii include pe: Jacob Anhoej, John Yast, Sally Welch,
Morgan Landry si Charlie Law. As dori de asemean sa-i multumesc atat lui
Keith Keller pentru gazduirea listei de mail pentru acest proiect, cat si lui
Carl Inglis pentru gazduirea initiala a paginii web. In cele din urma, dar nu
la sfarsit, as dori sa-i multumesc lui Patrick J. Volkerding pentru
Slackware Linux si lui David Cantrell, Logan Johnson si Chris Lumens
pentru Slackware Linux Essentials Editia Intai. Fara structura lor initiala,
nimic dintre acestea nu s-ar fi intamplat. Multi altii au contribuit in moduri
mai mici sau mai mari la acest proiect si nu vor fi trecuti aici. Sper sa ma
ierte pentru memoria mea slaba.

Alan Hicks, May 2005

17
Capitolul 1

O introducere in
Slackware Linux
1.1 Ce este Linux?
1.2 Ce este Slackware?
1.3 Open Source si Free Software

19
Slackware Linux Essentials

1.1 Ce este Linux?

Linus Torvalds a inceput lucrul la Linux, un kernel sistem de


operare, ca si un proiect personal in anul 1991. A inceput proiectul pentru
ca vroia sa ruleze un sistem de operare bazat pe Unix fara a cheltui o suma
mare de bani. In plus, el vroia sa invete pe de rost functiile procesorului
386. Linux a fost facut public gratuit astfel incat oricine putea sa il studieze
si sa ii aduca imbunatatiri sub Licenta Generala Publica. (Vezi Sectiunea
1.3 si Anexa A). Azi, Linux a ajuns sa ocupe un rol important pe piata
sistemelor de operare. A fost portat sa ruleze pe o varietate de sisteme cu
diferite arhitecturi, printre care Alpha de la HP/Compaq, SPARC si
UltraSPARC de la Sun si chipurile PowerPC de la Motorola (prin
calculatoarele Apple Macintosh si IBM RS/6000.) Sute, daca nu mii, de
programatori de pe tot mapamondul ajuta acum la dezvoltarea Linux.
Ruleaza programe ca Sendmail, Apache si BIND, care sunt programe
foarte populare folosite pentru rularea serverelor Internet. Este important
de tinut minte ca termenul Linux se refera de fapt doar la kernel - miezul
sistemului de operare. Acest miez este responsabil cu controlarea
diverselor componente ale calculatorului cum ar fi procesorul, memoria,
unitatile hard si perifericele. Asta este tot ceea ce face Linux de fapt:
controleaza operatiunile calculatorului tau si se asigura ca toate programele
ruleaza corespunzator. Diferite companii si indivizi impacheteaza kernel-ul
Linux impreuna cu diferite programe pentru crearea unui sistem de
operare. Numim fiecare pachet o distributie Linux.

1.1.1. Un cuvant despre GNU

Proiectul kernel-ului Linux a inceput ca un efort pe cont propriu al


lui Linus Torvalds in 1991, dar cum a spus odata Isaac Newton, "Daca am
vazut mai departe, este pentru ca am stat pe umerii uriasilor". Cand Linus
Torvalds a inceput lucrul la kernel, Fundatia Free Software incorporase
deja ideea de software colaborativ. Si-au intitulat efortul GNU, un acronim
recursiv carea inseamna pur si simplu “GNU's Not Unix”. Software-ul
GNU a rulat pe kernel-ul Linux din ziua 1. Compilatorul lor gcc a fost
folosit pentru compilarea kernel-ului. Azi multe unelte GNU de la gcc
pana la gnutar sunt tot la baza fiecarei distributii Linux majore. Pentru

20
O introducere in Slackware Linux
acest motiv multi dintre sustinatorii Fundatiei Free Software pretind cu
pasiune ca munca lor ar trebui sa primeasca aceeasi cinste ca si kernel-ul
Linux. Ei sugereaza cu putere ca toate distributiile Linux ar trebui sa isi
faca referire ca distributii GNU/Linux.
Aceasta este subiectul multor razboaie de discutii (flamewars),
depasite doar de anticul razboi sfant vi versus emacs. Scopul acestei carti
nu este sa inteteasca flacarile acestei discutii fierbinti, ci cel al clarificarii
terminologiei pentru novice. Cand cineva vede GNU/Linux asta inseamna
o distributie Linux. Cand unul vede Linux acesta poate face referire fie la
kernel, sau fie la o distributie. Poate fi destul de neclar. De obicei termenul
GNU/Linux nu este folosit pentru ca e prea lung.

1.2 Ce este Slackware?

Slackware, a fost inceput de catre Patrick Volkerding spre sfarsitului


anului 1992 si a fost lansat publicului prima data pe 17 Iulie 1993. Este
prima distributie Linux care a dobandit o intinsa utilizare. Volkerding a
invatat prima data despre Linux cand a avut nevoie de un interpretor LISP
necostisitor pentru un proiect. Una dintre putinele distributii disponibile in
perioada respectiva, era SLS Linux de la Soft Landing Systems. Volkerding
a folosit SLS Linux, reparand bug-uri de cum le gasea. In cele din urma a
decis sa imbine toate acele mici reparatii in propria sa distributie privata pe
care el si prietenii lui sa o poata folosi. Aceasta distributie privata a castigat
repede popularitate, asa ca Volkerding s-a decis sa o numeasca Slackware si
sa o faca disponibila public. De-a lungul drumului, Patrick a adaugat lucruri
noi in Slackware; un program de instalare prietenos bazat pe un sistem de
meniuri, la fel si conceptul administrarii pachetelor, care le permite
utilizatorilor sa adauge, inlature sau sa tina la curent pachetele software de
pe sistemele lor intr-un mod usor.
Sunt multe motive pentru care Slackware este cea mai batrana
distributie inca in viata a Linux-ului. Nu incearca sa rivalizeze cu
Windows, incearca sa fie cat mai Unix posibil. Nu incearca sa acopere
procesele cu GUI-uri fanteziste (Graphical User Interfaces). In schimb,
pune utilizatorii in control lasandu-i sa vada exact ceea ce se intampla.
Dezvoltarea ei nu este grabita pentru a satisface termenele limita, fiecare
versiune este lansata cand este pregatita.
Slackware este pentru oamenii carora le place sa invete si sa isi
configureze sistemul, sa faca exact ceea ce vor. Stabilitatea si simplitatea

21
Slackware Linux Essentials
lui Slackware este motivul pentru care oamenii il vor folosi multi ani de
acum incolo. Slackware se bucura in mod curent de o reputatie solida ca
server si un workstation bun. Poti gasi desktop-uri Slackware care ruleaza
aproape orice administrator de ferestre sau mediu desktop, sau nici una din
ele. Serverele Slackware alimenteaza afaceri, jucand orice rol in care poate
fi folosit un server. Utilizatorii Slackware sunt printre cei mai satisfacuti
utilizatori Linux. Desigur ca am spune asta. :^)

1.3 Open Source si Free Software

In comunitatea Linux, sunt doua miscari ideologice majore in lucru.


Miscarea Free Software (despre care vom discuta intr-un moment) are ca
scop eliberarea tuturor programelor de sub restrictiile proprietatii
intelectuale. Sustinatorii acestei miscari cred ca aceste restrictii impiedica
imbunatatirile tehnologice si lucreaza impotriva bunei stari a comunitatii.
Miscarea Open Source are cam aceleasi scopuri, dar are o abordare mai
pragmatica. Sustinatorii acestei miscari prefera sa-si bazeze argumentele pe
meritele economice si tehnice a facerii codului sursa disponibil gratuit, in
schimbul principiilor morale si etice care conduc miscarea Free Software.
La celalalt capat al spectrului sunt grupuri care doresc sa mentina
controale mai stranse asupra software-ului lor.
Miscarea Free Software este condusa de Fundatia Free Software, o
organizatie strangatoare de fonduri pentru proiectul GNU. Software-ul
Free este mai mult o ideologie. Expresia deseori folosita “gratuit ca vorba,
nu ca si berea.”. In esenta, software-ul Free este o incercare de a garanta
anumite drepturi pentru utilizatori si dezvoltatori. Aceste libertati includ
libertatea de a rula programul pentru orice motiv, de a studia si a modifica
codul sursa, de a redistribui sursa si sa imparti orice modificari s-ar face.
Pentru a garantarea acestor drepturi, a fost creata Licenta GNU Generala
Publica (GPL). GPL, pe scurt, prevede ca oricine distribuie un program
compilat care este licentiat sub GPL este obligat sa furnizeze si codul sursa
si este liber sa faca modificari programului atat timp cat aceste modificari
sunt prezente si in codul sursa. Aceasta garanteaza ca odata ce un program
este “deschis” comunitatii, el nu poate fi “inchis” decat cu acordul fiecarui
autor al fiecarei bucati de cod (chiar si modificarile) din el. Majoritatea
programelor Linux sunt licentiate sub GPL.
Este important de tinut minte ca GPL nu spune nimic despre pret.
Oricat de ciudat ar suna poti cere bani pe software-ul free. Partea “free”
este in libertatile pe care le ai cu codul sursa, nu in pretul pe care il platesti

22
O introducere in Slackware Linux
pentru software. (Desi, odata ce cineva ti-a vandut sau ti-a dat, un program
compilat licentiat sub GPL sunt obligati sa furnizeze si codul sursa.)
Alta licenta populara este cea BSD. In contrast cu cea GPL, licenta
BSD nu prezinta nici o cerinta pentru eliberarea codului sursa. Software-ul
eliberat sub licenta BSD permite redistribuirea in binar sau in sursa
trebuind indeplinite doar cateva conditii. Scrisorile de acreditare ale
autorului nu pot fi folosite ca o metoda de publicitate pentru program. De
asemenea fereste autorul de responsabilitatea pentru stricaciunile care pot
aparea din folosirea software-ului. Majoritatea software-ului inclus in
Slackware este sub licenta BSD.
Pe linia intai a mai tinerei miscari Open Source, este o organizatie
numita Initiativa Open Source care exista doar doar pentru a obtine sprijin
pentru software-ul open source, software care are codul sursa disponibil la
fel ca si programul pregatit de rulat. Nu ofera o licenta specifica, dar in
schimb ei suporta diferitele tipuri de licente open source disponibile.
Ideea din spatele OSI este sa aduca cat mai multe companii in
spatele open source permitandu-le sa isi scrie propriile licente open source
si sa aiba acele licente asigurate de catre Initiativa Open Source. Multe
companii vor sa distribuie cod sursa, dar nu vor sa foloseasca licenta GPL.
Din moment ce nu pot schimba in mod radical GPL-ul, li se ofera
oportunitatea de a furniza propria lor licenta si sa fie acceptata de catre
aceasta organizatie.
In timp ce Fundatia Free Software si Initiativa Open Source lucreaza
pentru a se ajuta una pe cealalta, nu sunt acelasi lucru. Fundatia Free
Software foloseste o licenta specifica si ofera software sub acea licenta.
Initiativa Open Source cauta sprijin pentru toate licentele open source,
inclusiv cele de la Fundatia Free Software. Motivul pentru care ambele
sustin facerea codului sursa disponibil gratuit se imparte cateodata in doua
miscari, dar faptul ca doua grupuri ideologice diverse au un scop comun
acorda crezare eforturilor fiecaruia.

23
Capitolul 2

Ajutor
2.1 Ajutorul de la sistem
2.2 Ajutor Online

Se intampla des sa ai nevoie de ajutor despre o comanda anume, cum sa


configurezi un program sau cum poti sa faci o componenta hardware sa
mearga. Poate ca nu vrei decat sa intelegi o comanda mai bine, sau vrei sa
vezi ce optiuni sunt disponibile pentru acea comanda. Din fericire, sunt
multe moduri in care poti sa obtii ajutorul pe care il cauti. Cand instalezi
Slackware, ai optiunea de a instala pachetele din seria “F”, care include
FAQ-urile si HOWTO-urile. De asemenea, progamele vin cu propriul lor
ajutor despre optiuni, fisiere de configurare si mod de folosire.

25
Slackware Linux Essentials

2.1 Ajutorul de la sistem

2.1.1 man
Comanda man (prescurtarea de la “manual”) este modalitatea
traditionala de documentatie in sistemele de operare Linux si Unix.
Compuse din fisiere cu format special, “paginile man” sunt scrise pentru
marea majoritate a comenzilor si sunt distribuite chiar cu software-ul.
Executand man comandaoarecare vei obtine pagina de man pentru
(normal) comanda specificata, cum ar fi in exemplul nostru programul ima-
ginar comandaoarecare. Dupa cum iti poti imagina, numarul paginilor
man poate creste foarte repede, devenind extrem de confuz si foarte
complicat, chiar si pentru utilizatorii avansati. De aceea, paginile man sunt
grupate in sectiuni numerotate. Acest sistem este utilizat de foarte mult timp;
indeajuns incat sa vezi deseori comenzi, programe si chiar librarii de
programare la care se face referinta cu numarul sectiunii man.
De exemplu:
S-ar putea sa vezi o referinta la man(1). Acest numar iti spune ca
“man” documentat in sectiunea 1 (comenzi utilizator); poti chiar sa
specifici ca vrei pagina de man pentru “man” din sectiunea 1, cu co-
manda man 1 man. Specificarea sectiunii in care man trebuie sa
caute este utila in cazul in care sunt mai multe lucruri cu acelasi nume.
Table 2-1. Sectiuniea paginilor man
Sectiunea Continutul
Sectiunea 1 comenzi utilizator (doar introductiv)
Sectiunea 2 apeluri sistem
Sectiunea 3 apeluri catre librariile C
Sectiunea 4 device-uri (exemplu: hd, sd)
formatele de fisier si protocoale (exemplu, wtmp,
Sectiunea 5
/etc/passwd, nfs)
Sectiunea 6 jocuri (doar introductiv)
Sectiunea 7 conventii, pachete macro, etc. (exemplunroff, ascii)
Sectiunea 8 administrarea sistemului (doar introductiv)
In plus fata de man(1), mai sunt disponibile whatis(1) si apropos(1)
al caror scop este sa te ajute sa gasesti informatii in sistemul man.

26
Ajutor
Comanda whatis iti ofera o scurta descriere a comenzilor de sistem,
ceva in genul unui indrumar de buzunar pentru comenzi.
Exemplu:
% whatis whatis
whatis (1) - search the whatis database for complete
words

Comanda apropos este folosita pentru cautarea in paginile man a


unui anumit cuvant cheie.
Exemple:
% apropos wav
cdda2wav (1) - a sampling utility that dumps CD audio
data into wav sound files
netwave_cs 4) - Xircom Creditcard Netwave device driver
oggdec (1) - simple decoder, Ogg Vorbis file to PCM
audio file (WAV or RAW)
wavelan (4) - AT&T GIS WaveLAN ISA device driver
wavelan_cs 4) - AT&T GIS WaveLAN PCMCIA device driver
wvlan_cs (4) - Lucent WaveLAN/IEEE 802.11 device driver

Daca vrei mai multe detalii despre aceste comenzi, citeste pagina
man a comenzii respective pentru detalii. ;)

2.1.2 Directorul /usr/doc

Sursele celor mai multe pachete pe care le construim vin cu tot felul
de documentatie: fisiere README, instructiuni de folosire, fisire cu
licente, etc. Orice documentatie care vine cu sursele este inclusa si instalata
pe sistemul tau in directorul /usr/doc. Fiecare program va instala (de
obicei) propria documentatie in:

/usr/doc/$program-$versiune
unde $program este numele programului despre care vrei sa citesti,
iar$versiune este (evident) versiunea corecta a pachetului instalat pe sistem.
De exemplu, pentru a citi documentatia pentru comanda man(1)
trebuie sa faci cd in:
% cd /usr/doc/man-$version

27
Slackware Linux Essentials
Daca citirea paginilor man nu iti ofera destule informatii, sau daca
nu exista referinte despre ceea ce cauti in mod special, directorul /usr/doc
ar trebui sa fie urmatoarea ta oprire.

2.1.3 HOWTO-uri si mini-HOWTO-uri

Colectia de HOWTO-uri/mini-HOWTO-uri iti este adusa in cel mai


pur spirit al comunitatii Open Source. Aceste fisiere sunt exact ceea ce
spune titulatura – documente si ghiduri care descriu cum merg lucrurile.
Daca ai instalat colectia de HOWTO-uri, HOWTO-urile vor fi instalate in
/usr/doc/Linux-HOWTOs iar mini-HOWTO-urile in /usr/doc/Linux-
mini-HOWTOs.
In aceasta serie de pachete este inclusa, de asemenea, o colectie de
FAQ-uri, un acronim care inseamna
Frequently
Asked
Questions
Aceste documente sunt scrise in stilul “Intrebari si raspunsuri”
pentru (surpriza) Intrebari Adresate Frecvent. FAQ-urile sunt deseori un
loc foarte util, in care poti sa te uiti cand cauti o “Metoda Rapida de
Reparare” pentru ceva. Daca decizi sa instalezi FAQ-urile la instalarea
sistemului, acestea vor fi instalate in directorul /usr/doc/Linux-FAQs .
Aceste fisiere merita citite oricand nu esti sigur de modul in care
trebuie sa continui cu ceva. Acestea acopera o gama uimitor de larga de
subiecte, deseori intr-o maniera surprinzator de detaliata. Foarte folositor!

2.2 Ajutor Online

In plus fata de documentatia oferita si instalabila cu Sistemul de


Operare Slackware Linux, exista o multitudine de resurse online
disponibile din care poti invata. .

28
Ajutor
2.2.1 Pagina si Forumul Oficial

Pagina Oficiala Slackware


Pagina Oficiala Slackware Linux este deseori invechita, dar inca mai
contine informatii relevante despre ultimele versiuni Slackware. Odinioara
a existat un forum, inainte ca o hoarda de capcauni, vandali si plangaciosi
sa il atace. Mentinerea forumului incepuse sa ceara prea multe munca, asa
ca Pat l-a inchis. Inca mai poti gasi copia de siguranta a vechiului forum la
http://www.userlocal.com/phorum/.
Pe masura ce forumurile au fost inchise pe http://slackware.com, au
aparut alte pagini care ofereau suport pentru Slackware. Dupa multa
considerare, Pat a ales sa investeasca www.linuxquestions.org drept forumul
oficial pentru Slackware Linux.

2.2.2 Suportul prin E-mail

Toti cei care cumpara CD-ul oficial sunt indreptatiti sa primeasca


suport prin e-mail de la dezvoltator. Aceasta fiind zisa, va rugam sa tineti
cont ca noi, dezvoltatorii (si marea majoritate a utilizatorilor) de Slackware
suntem de “Scoala Veche”. Asta inseamna ca preferam sa-i ajutam pe cei
care au un interes sincer si doresc sa se ajute singuri. Vom incerca
intotdeauna sa-i ajutam pe toti cei care ne trimit e-mail-uri cu intrebari.
Totusi, va rugam sa cautati in documentatii si pe paginile web (in special
in FAQ-uri si poate pe cateva din forumurile de mai jos) inainte de a ne
trimite e-mail-uri. S-ar putea sa obtineti mai repede raspunsuri in acest
mod si, cu cat avem de raspuns la mai putine e-mail-uri, cu atat mai repede
vom putea sa oferim asisenta celor care au nevoie.
Adresa de e-mail pentru suport este: support@slackware.com. Alte
adrese de e-mail si detalii de contact se gasesc pe pagina web.

2.2.2.1 Liste de mail pentru Proiectul Slackware Linux


Avem un numar de liste de mail, disponibile in modurile rezumat si
normal. Citeste instructiunile pentru modalitatea de inscriere.
Pentru a te inscrie la o lista de mail, trimite e-mail la:
majordomo@slackware.com

29
Slackware Linux Essentials
continand fraza “subscribe [numele listei]” in corpul mesajului. Optiunile
de liste sunt diponibile mai jos (foloseste unul din numele de mai jos
pentru liste).
Arhivele cu liste de mail pot fi gasite pe pagina de web a Slackware-
ului, la: http://slackware.com/lists/archive/
slackware-announce
Lista de mail slackware-announce este pentru anunturi cu privire la
versiuni noi, aduceri la zi majore si alte informatii generale.
Slackware-security
Lista de mail slackware-security este pentru anunturi cu privire la
problemele de securitate. Toate exploit-urile sau alte vulnerabilitati
care privesc in mod direct Slackware vor fi anuntate imediat pe
aceasta lista.
Aceste liste sunt disponibile si in formatul rezumat (digest). Asta
inseamna ca vei primi un mesaj mare o data pe zi, in locul mai multor
message de-a lungul zilei. Din moment ce listele de mail Slackware nu le
permit utilizatorilor sa trimita e-mail-uri iar traficul pe aceste liste este
foarte redus, majoritatea utilizatorilor va descopri ca listele rezumat nu
oferta un avantaj insemnat. Totusi, iti sunt disponibile pentru inscriere la
slackware-announce-digest sau slackware-security-digest.

2.2.3 Paginile si Forumurile Neoficiale

2.2.3.1 Pagini
Google
Maestrul Kung-Fu al Motoarelor de Cautare. Cand e neaparat
nevoie sa gasesti pana si cea mai mica urma de informatie despre
un subiect: Nu accepta inlocuitori.
Google:Linux
Cautari cu specific Linux
Google:BSD
Cautari cu specific BSD. Slackware este realizat atat de general ca
un sistem de operare Unix, incat deseori aici pot fi gasite
informatii 100% relevante cu privire la Slackware. De multe ori o
cautare despre BSD intoarce informatii mult mai tehnice decat
cautarile mult mai dese cu privire la relatiile cu publicul despre
Linux.
30
Ajutor
Google:Groups
Cauta prin ani intregi de mesaje Usenet dupa perle de inteligenta.
http://userlocal.com
Un cufar virtual al comoarei cunoasterii, sfaturi bune, experiente la
prima mana si articole interesante. De multe ori primul loc in care
o sa auzi de noi realizari in lumea Slackware. .

2.2.3.2 Resurse web

linuxquestions.org
Forumul oficial pentru utilizatorii Slackware.
LinuxISO.org Slackware Forum
“Un loc din care sa descarci programe si in care sa obtii ajutor
despre Linux”
alt.os.linux.slackware FAQ
Un alt FAQ

2.2.3.3 Grupurile Usenet (NNTP)


Usenet este de mult timp un loc in care impatimitii se aduna si se
ajuta unul pe altul. Sunt cateva grupuri de stiri dedicate Slackware Linux,
dar ele tind sa fie pline de oamenii cu multe cunostinte tehnice.
alt.os.linux.slackware
alt.os.linux.slackware, mai cunoscut ca aols (a nu fi confundat cu AOL®!)
este unul din cele mai active locuri in care poti gasi sfaturi tehnice cu
privire la problemele Slackware. Ca orice grup Usenet, cativa participanti
care baga bete in roate (“trolls”) pot pata experienta cu certurile lor
constante. Pentru a beneficia la maxim de aceasta resursa, trebuie sa inveti
sa faci diferenta intre vandali si oamenii care sunt intr-adevar de ajutor

31
Capitolul 3

Instalare
3.1 Obtinerea Slackware
3.2 Cerinte de Sistem
3.3 Partitionarea
3.4 Programul setup

Inainte de a folosi Slackware Linux trebuie sa-l obtii si sa-l instalezi.


Pentru a obtine Slackware, nu trebuie decat sa-l cumperi sau sa-l descarci
gratuit de pe Internet. Instalarea este de asemenea foarte simpla, atata timp
cat ai cateva cunostinte de baza despre calculatoare si vrei sa inveti si
cateva alte lucruri. Programul de instalare nu este decat un procedeu pas cu
pas. Din cauza acestui lucru, calculatorul tau va fi gata de lucru foarte
repede. De fapt, Slackware se mandreste cu unul dintre cei mai scurti timpi
de instalare dintre toate distributiile Linux complete.

33
Slackware Linux Essentials

3.1 Obtinerea Slackware

3.1.1 Setul Oficial de CD-uri si Cutii


Setul oficial de CD-uri Slackware Linux este disponibil de la
Slackware Linux, Inc. Setul este compus din 4 CD-uri. Primul disc contine
tot ce este nevoie pentru instalarea unui server de baza si a sistemului X
window. Al doilea CD este un CD “live”; asta inseamna ca este un CD
boot-abil, care se instaleaza in RAM si iti ofera o instalare temporara cu
care poti experimenta sau cu care poti face o recuperare de date pe masina
ta. Acest CD contine si alte cateva pachete, cum ar fi mediile grafice KDE
si GNOME. Cateva alte bonusuri sunt incluse pe acest CD, incluzand
multe pachete non-vitale in directorul “extra”. Al treilea si al patrulea CD
contin codul sursa pentru tot Slackware, impreuna cu editia originala a
acestei carti.
Poti cumpara si un set de CD-uri cu cutie, impreuna cu o gramada de
echipamente Slackware interesante, cu care te poti mandri. Poti cumpara
chiar si abonamente la CD-uri, la preturi scazute.
Metoda preferata pentru cumpararea marfurilor Slackware este la
magazinul online Slackware.
http://store.slackware.com - USA
http://store.slackware.com.ro - Romania
De asemenea, poti comanda prin telefon sau e-mail.

Table 3-1. Informatii de Contact Slackware Linux, Inc.


Method Contact Details
Telephone 1-(925) 674-0783
Website http://store.slackware.com
Email orders@slackware.com
Postal 1164 Claremont Drive, Brentwood, CA 94513

3.1.2 Pe Internet
Slackware Linux este disponibil gratuit pe Internet. Poti sa trimiti
intrebarile tale prin e-mail, dar acordam o prioritate mai mare celor care au
cumparat setul oficial de CD-uri. Dupa cum spuneam, primim foarte multe
34
Instalare
e-mail-uri si timpul nostru este destul de limitat. Inainte de a ne trimite e-
mail, incearca sa citesti Capitolul 2.
Pagina oficiala a Proiectului Slackware Linux este la:
http://www.slackware.com/
Locatia primara de FTP pentru Slackware Linux este:
ftp://ftp.slackware.com/pub/slackware/
Tine minte ca, desi deschis publicului larg, site-ul nostru ftp nu are o
latime de banda nelimitata. Incearca sa folosesti un mirror mai apropiata de
tine pentru a descarca Slackware. O lista incompleta de mirror-uri poate fi
gasita la http://www.slackware.com/getslack.

3.2 Cerinte de Sistem

O instalare usoara de Slackware are nevoie cel putin de urmatoarele:


Tabelul 3-2. Cerinte de sistem
Hardware Cerinte
Procesor 586
Memorie 32 MB
Spatiu pe disc 1GB
Unitate optica 4x CD-ROM
Daca ai un CD boot-abil, probabil ca nu vei avea nevoie de o unitate
de discheta. Desigur, daca nu ai o unitate de CD-ROM, vei avea nevoie de
o unitate de discheta pentru a realiza o instalare de pe retea. Este necesara
o placa de retea pentru instalarea de pe NFS. Uita-te in sectiunea numita
NFS pentru mai multe detalii.
Cerintele de spatiu pe disc sunt discutabile. Recomandarea de 1GB
este necesara pentru o instalare minima dar pentru o instalare completa, vei
avea nevoie de aproximativ doi gigaocteti, plus spatiul aditional pentru
fisierele personale. Multi utilizatori nu fac o instalare completa. De fapt,
multi ruleaza Slackware pe 100MB de spatiu pe disc.
Slackware poate fi instalat si pe sisteme cu mai putin RAM si
procesoare mai slabe, dar pentru asta va trebui sa dai putin din coate. Daca
te simti in stare sa faci putina munca, uita-te in fisierul LOWMEM.TXT in
arborele distributiei pentru cateva ponturi utile.

35
Slackware Linux Essentials
3.2.1 Seriile de Pachete

Din motive de simplitate, Slackware a fost impartit initial in doua


serii. Odinioara numite “seturi de discuri” din cauza ca erau facute pentru
instalarea de pe dischete, seriile de pachete sunt folosite acum pentru
categorizarea pachetelor incluse in Slackware. Astazi, instalarea de pe
dischete nu mai este posibila.
Iata o scurta descriere a fiecarei serii de pachete.
Tabelul 3-3. Seriile de pachete
Seria Continutul
Sistemul de baza. Contine destule programe pentru a putea
A incepe sa lucrezi si contine un editor de text si programele de
baza de comunicatii.
AP Diverse aplicatii care nu au nevoie de Sistemul X Window.
Unelte pentru dezvoltarea programelor. Compilatoare,
D
interpretoare si pagini man, aici sunt toate.
E GNU Emacs.
F FAQ-uri, HOWTO-uri si diverse alte documentatii.
GNOME Mediul desktop GNOME.
K Codul sursa pentru kernelul Linux.
Mediul Desktop KDE. Un mediu X care are multe din
KDE caracteristicile MacOS-ului sau Windows-ului. Libraria Qt,
ceruta de KDE, este tot in aceasta serie.
KDEI Pachetele de internationalizare pentru desktop-ul KDE.
L Librarii. Librarii legate dinamic, cerute de multe alte programe.
Utilitare de retea. Daemoni, programe de mail, telnet, lectori de
N
stiri si altele.
T Sistemul de formatare a textului teTeX
TCL Limbaj de Comanda a Uneltelor. Tk, TclX si TkDesk.
X Sistemul X Window de baza.
Aplicatii X care nu sunt parte dintr-un mediu desktop major (de
XAP
exemplu, Ghostscript si Netscape).
Y Jocuri BSD pentru consola.

36
Instalare
3.2.2 Metode de Instalare

3.2.2.1 Floppy
Desi era posibil odinioara sa instalezi Slackware Linux de pe
dischete, marimea in crestere a pachetelor (a unor programe individuale
chiar) ne-a fortat sa abandonam instalarea de pe dischete. Pana la versiunea
Slackware 7.1, puteai sa faci o instalare partiala de pe dischete. Seriile de
la A la N puateau fi instalate aproape in totalitate, oferind un sistem de
baza de pe care se putea instala restul distributiei. Daca vrei sa iei in
considerare o instalare de pe dischete (in general pe un sistem vechi), este
recomandat ori sa gasesti o alta modalitate ori sa folosesti o versiune mai
veche. Slackware 4.0 este inca popular tocmai din acest motiv, asa cum
este si 7.0.
Te rugam sa tii cont ca dischetele sunt inca necesare daca nu dispui
de un CD boot-abil sau pentru o instalare NFS.

3.2.2.2 CD-ROM
Daca ai CD-ul de boot, disponibil in setul de discuri oficial publicat
de Slackware Linux, Inc. (uita-te in sectiunea intitulata Obtinerea
Slackware), o instalare bazata pe CD va fi putin mai simpla pentru tine.
Daca nu, va trebui sa creezi dischetele de boot. De asemenea, daca ai
periferice speciale care fac problematica utilizarea kernel-ului de pe CD-ul
de boot, s-ar putea sa trebuiasca sa utilizezi dischete specializate.
Incepand cu versiunea Slackware 8.1 este utilizata o metoda noua de
creare a CD-ului de boot, care nu functioneaza bine cu anumite BIOS-uri
cu probleme (trebuie notat faptul ca majoritatea CD-urilor de Linux au
aceasta problema). Daca acesta este cazul, iti recomandam sa folosesti
dischetele de boot.
Sectiunea 3.2.3 si Sectiunea 3.2.5 iti ofera informatiile necesare
pentru a alege si a crea dischetele de boot care iti sunt necesare.

3.2.2.3 NFS
NFS (Sistemul de Fisiere de Retea) este modalitatea de a face
sistemele de fisiere disponibile pentru masini la distanta. O instalare NFS
iti permite sa instalezi Slackware pe alt calculator din retea. Masina de pe
care instalezi trebuie sa fie configurata pentru a exporta arborele distri-
butiei Slackware spre masina pe care instalezi. Acesta, desigur, necesita
cateva cunostinte despre NFS, care sunt acoperite in Sectiunea 5.6.
Este posibil sa faci o instalare NFS prin metode cum ar fi PLIP
(printr-un port paralel), SLIP si PPP (desi nu printr-o conexiune prin

37
Slackware Linux Essentials
modem). Totusi, iti recomandam sa folosesti o placa de retea, daca este
disponibila. Pana la urma, instalarea unui sistem de operare prin portul de
imprimana este un proces foarte, foarte lent.

3.2.3 Discul de Boot

Discul de boot este discheta de pe care pornesti sistemul pentru a


incepe instalarea. Contine o imagine de kernel comprimata cu care se poate
controla hardware-ul in timpul instalarii. De aceea este foarte necesar (daca
nu bootezi de pe CD, asa cum este in sectiunea numita CD-ROM).
Discurile de boot sunt localizate in directorul bootdisks/ in arborele
distributiei.
Sunt mai multe discuri de boot de Slackware decat poti numara pe
degete (ceea ce inseamna aproximativ 16). O lista completa de discuri de
boot, cu descrierea fiecaruia, este disponibila in arborele distributiei
Slackware in fisierul bootdisks/README.TXT. Totusi, majoritatea
oamenilor pot folosi imaginile bare.i (pentru dispozitive IDE) sau
scsi.s (pentru dispozitive SCSI).
Vezi Sectiunea 3.2.6 pentru instructiuni despre realizarea unui disc
dintr-o imagine.
Dupa boot, ti se va cere sa introduci discul radacina. Iti recomandam
sa joci asa cum iti cere discul de boot si sa i-l dai.

3.2.4 Discul Root

Discul radacina contine programul setup si un sistem de fisiere care


este folosit in timpul instalarii. Imaginea discului radacina este in directoul
rootdisks din arborele distributiei. Va trebui sa faci doua discuri radacina,
din imaginile install.1 si install.2. Tot aici poti gasi discurile
network.dsk, pcmcia.dsk, rescue.dsk, si sbootmgr.dsk

3.2.5 Discul Suplimentar

Un disc suplimentar este necesar daca faci o instalare NFS sau


instalezi un sistem cu periferice PCMCIA. Discurile suplimentare sunt in
directorul rootdisks din arborele distributiei, cu fisierele network.dsk si
pcmcia.dsk. Recent, au fost adaugate si alte discuri suplimenare, cum ar fi

38
Instalare
rescue.dsk si sbootmgr.dsk. Discul de salvare este o mica imagine de
discheta care ruleaza intr-un disc virtual de 4 MB. Pe el sunt incluse cateva
utilitare de retea si editorul vi pentru reparatii rapide pe masinile stricate.
Discul sbootmgr.dsk il poti folosi pentru a porni alte periferice. Porneste
de pe acest disc daca unitatea de CD-ROM nu vrea sa porneasca de pe CD-
ul Slackware. Te va intreba despre diverse lucruri la pornire si reprezinta o
modalitate convenabila de a trece peste un BIOS cu probleme.
Discul radacina te va informa despre utlilizarea discurilor suplimen-
tare la incarcare.

3.2.6 Crearea Discurilor

O data ce ai selectat o imagine de boot, trebuie sa o scrii pe o


discheta. Procesul difera putin de la caz la caz, in functie de sistemul de
operare sub care creezi dischetele. Daca folosesti Linux (sau cam orice
sistem de operare asemanator cu Unix), va trebui sa folosesti comanda
dd(1). Presupunand ca fisierul cu imaginea discului este bare.i si ca
unitatea de discheta este /dev/fd0, comanda pentru a crea o discheta cu
bare.i este:

% dd if=bare.i of=/dev/fd0

Daca folosesti un sistem de operare Microsoft, ca trebui sa folosesti


programul RAWRITE.EXE care este inclus in arborele distributiei in acelasi
director cu imaginile de dischete. Din nou, presupunand ca fisierul cu
imaginea discului este bare.i si ca unitatea de discheta este A:, deschide
un cursor de DOS si scrie urmatoarele:
C:\ rawrite a: bare.i

3.3 Partitionarea

Dupa de ai boot-at de pe mediul tau preferat, va trebui sa partitionezi


hard disc-ul. Partitionarea este pasul in care va fi creat sistemul de fisiere
Linux in care va fi instalat Slackware. Iti recomandam sa creezi minimum
doua partitii; una pentru sistemul de fisiere radacina (/) si una pentru swap.
Dupa ce se termina incarcarea discului radacina, iti va fi prezentat un
cursor de login. Intra cu root (fara nici o parola). La cursorul shell-ului,

39
Slackware Linux Essentials
ruleaza cfdisk(8) sau fdisk(8). Programul cfdisk ofera o interfata mai
prietenoasa cu utilizatorul decat programul fdisk dar ii lipsesc cateva
functii. Iti vom explica pe scurt programul fdisk.
Vei incepe prin a rula fdisk pentru hard disc-ul tau. In Linux hard
disc-urile nu au litere, ci sunt reprezentate prin fisiere. Primul disc IDE
(primary master) este /dev/hda, primary slave este /dev/hdb, si asa mai
departe. Discurile SCSI urmeaza acelasi sistem, dar sunt in format
/dev/sdX. Va trebui sa pornesti fdisk specificand hard disc-ul tau:

# fdisk /dev/hda

Ca toate programele Unix bune, fdisk iti ofera un cursor (ai crezut ca
primesti un meniu, nu-i asa?). Primul lucru pe care ar trebui sa-l faci este
sa examinezi partitiile curente. Vei face asta scriind p la cursorul fdisk:
Command (m for help): p

Asta iti va afisa tot felul de informatii despre partitiile curente. Majoritatea
aleg un disc pentru instalare si sterg partitiile existante pentru a crea spatiu
pentru partitiile Linux.
ESTE FOARTE IMPORTANT SA FACI O COPIE DE SIGURANTA
PENTRU DATELE PE CARE VREI SA LE SALVEZI INAINTE SA
DISTRUGI PARTITIILE PE CARE SUNT ELE.

Nu exista nici o modalitate usoara de a recupera datele de pe o


partitie stearsa, asa ca ar trebui intotdeauna sa le faci o copie de siguranta
inainte sa te joci cu ele.
Uitandu-te la tabela de partitii ar trebui sa vezi un numar de partitie,
marimea partitiei si tipul ei. Sunt mai multe informatii, dar nu le baga in
seama acum. Vei sterge partitiile de pe acest disc pentru a crea partitii
Linux. Foloseste comanda d pentru a le sterge:
Command (m for help): d
Partition number (1-4): 1

Reia acest proces pentru fiecare partitie. Dupa ce ai sters partitiile


esti gata sa creezi partitii Linux. Ne-am decis mai sus sa cream o partitie
pentru sistemul de fisiere radacina si una pentru swap. Trebuie mentionat
faptul ca schemele de partitionare pentru Unix sunt subiectul multor
razboaie si ca multi utilizatori iti vor spune cum e mai bine sa faci. Ar
trebui sa creezi cel putin o partitie pentru / si una pentru swap. O data cu

40
Instalare
trecerea timpului, vei gasi metoda care functioneaza cel mai bine pentru
tine.
Eu folosesc doua scheme de partitionare. Prima este pentru desktop.
Fac 4 partitii, /, /home, /usr/local, si swap. Aceasta ma ajuta sa
reinstalez sau sa aduc la zi sistemul din / fara sa-mi sterg fisierele de date
din /home sau programele compilate personalizat din /usr/local. Pentru
servere, deseori inlocuiesc partitia pentru /usr/local cu o partitie pentru
/var. Multre servere stocheaza informatii in acesta partitie si exista
anumite avantaje in a o tine separata de /. Pentru moment, opreste-te la
doua partitii:/ si swap.
Acum creaza partitiile cu comanda n:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):1
First cylinder (0-1060, default 0):0
Last cylinder or +size or +sizeM or +sizeK (0-1060, default
1060):+64M

Trebuie sa te asiguri ca ai creat partitii primare. Prima partitie o sa


fie partitie de swap. Spune-i lui fdisk sa creeze partitia numarul 1 ca
partitie primara. Incepe de la cilindrul 0 si pentru cilindrul de terminare,
scrie +64M. Acesta iti va da o partitie de swap de 64 megaocteti. (Marimea
partitiei swap ca depinde de marimea RAM-ului pe care il ai. Exista
conventia ca partitia swap sa fie dublul memoriei RAM.) apoi defineste
partitia primara 2, incepand de la primul cilindru disponibil si tinand pana
la sfarsitul discului.
Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):2
First cylinder (124-1060, default 124):124
Last cylinder or +size or +sizeM or +sizeK (124-1060, default
1060):1060

Aproape ai terminat. Mai trebuie sa schimbi tipul primei partitii in


82 (Linux swap). Tasteaza t pentru a schimba tipul, selecteaza prima
partitie si scrie 82. Inainte de a scrie modificarile pe disc, ar trebui sa te uiti
pentru ultima data la tabela de partitii. Foloseste p in fdisk pentru a afisa
41
Slackware Linux Essentials
tabela de partitii. Daca totul arata bine, scrie w pentru a scrie modificarile
pe disc, apoi iesi din fdisk.

3.4 Programul setup

O data ce ai creat partitiile, esti gata pentru instalarea Slackware.


Urmatorul pas in procesul de instalare este rularea programului setup(8).
Pentru aceasta, scrie setup in linia de comanda shell. setup este un
sistem bazat pe meniuri pentru instalarea pachetelor Slackware si
configurarea sistemului.

Procesul de configurare functioneaza cam asa: Treci prin fiecare


optiune din programul setup in ordinea in care sunt afisate. (Desigur, poti
face lucrurile in aproape orice ordine doresti, dar s-ar putea sa nu mearga
prea bine.) Elementele de meniu pot fi selectate cu sagetile sus/jos, iar
butoanele “OK” si “Cancel” pot fi selectate utilizand sagetile
stanga/dreapta. Ca alternativa, fiecare optiune are o tasta care ii corespunde
si care este accentuata. Optiunile care pot fi bifate (cele insemnate cu [X])
pot fi schimbate cu tasta spatiu.
Desigur, toate acestea sunt descrise in sectiunea “help” din setup,
dar ca ar trebui sa le oferim cititorilor ceva de valoarea banilor platiti.

42
Instalare
3.4.1 HELP

Daca este prima data cand instalezi Slackware, ar trebui sa arunci o


privire la ecranul de ajutor. Iti va oferi o descriere a fiecarei parti din
setup (destul de asemanatoare cu ceea ce scriem noi acum, dar mai
impersonala) si instructiunile pentru navigarea prin restul instalarii.

3.4.2 KEYMAP

Daca ai nevoie de o pozitionare a tastelor alta decat pozitionarea


“qwerty” din Statele Unite, te poti uita in aceasta sectiune. Iti ofera un
numar de pozitionari alternative ale tastelor pentru placerea tastarii.

43
Slackware Linux Essentials
3.4.3 ADDSWAP

Daca ai creat o partitie de swap (in Sectiunea 3.3), aceasta sectiune


iti va permite sa o activezi. Va autodetecta si va afisa partiile swap de pe
discul tau, permitandu-ti sa selectezi una pe care sa o activezi si sa o
formatezi.

3.4.4 TARGET

Sectiunea target este unde alte partitii (non-swap) sunt formatate si


sunt alocate catre punctele de montare din sistemul de fisiere. Va fi afisata
o lista cu partitiile de pe disc. Pentru fiecare partitie, vei avea optiune de a
o formata sau nu. In functie de kernelul pe care l-ai folosit, poti alege

44
Instalare
dintre sistemele de fisiere reiserfs (implicit), ext3, ext2, jfs si xfs.
Majoritatea utlilizatorilor folosesc reiserfs sau ext3. In viitorul apropiat s-
ar putea sa vedem si suport pentru reiserfs4. Prima optiune in sectiunea
target este selectia partitiei in care sa-ti instalezi sistemul de fisiere root (/).
Dupa aceea, vei putea sa aloci alte partitii sistemelor de fisiere pe care le
doresti. (De exemplu, s-ar putea sa vrei ca a treia ta partitie, sa zicem
/dev/hda3, sa fie sistemul de fisiere personale. Acesta este doar un
exemplu; aloca partitiile asa cum crezi de cuvinta.)

3.4.5 SOURCE

Sectiunea source este locul in care selectezi mediul de pe care


instalezi Slackware. Momentan exista patru surse din care poti alege.
Acestea sunt CD-ROM, hard disc, NFS sau un director pre-montat.

Selectand CD-ROM, vei putea realiza o instalare de pe CD. Iti va fi


oferita optiunea de a scana dupa o unitate de CD-ROM sau de a-ti fi oferita
o lista din care sa-ti poti alege tipul unitatii. Asigura-te ca ai un CD
Slackware in unitate inainte de a incepe scanarea.
Selectia NFS te va intreba de informatii despre retea si informatii
despre serverul tau NFS. Serverul NFS trebuie sa fie configurat in
prealabil. De asemenea, nu poti folosi numele gazdelor, ci trebuie sa
folosesti adresele IP atat pentru masina ta, cat si pentru serverul NFS (nu
exista nici un rezolvator de nume pe discul de instalare). Evident, trebuie
sa fi folosit discheta network.dsk pentru a adauga suportul pentru placa ta
de retea.

45
Slackware Linux Essentials
Directoul pre-montat iti ofera cea mai mare flexibilitate. Poti folosi
aceasta metoda pentru a instala de pe lucruri cum ar fi discuri Jaz, monturi
NFS peste PLIP si sisteme de fisiere FAT. Monteaza directorul ales inainte
de a rula setup, apoi specifica locatia aici.

3.4.6 SELECT

Aceasta optiune iti ofera posibilitatea de a alege ce serii de pachete


vrei sa instalezi. Seriile sunt descrise in Sectiunea Sectiunea 3.2.1. Fii atent
la faptul ca trebuie sa instalezi seria A pentru a avea un sistem functional
de baza. Toate celelalte serii sunt optionale.

3.4.7 INSTALL

Presupunand ca ai trecut prin optiunile “target”, “source” si “select”,


optiunea install iti va permite sa instalezi pachetele din seriile alese. Daca
nu, vei fi rugat sa sa mergi inapoi si sa completezi celelate sectiuni ale
programului setup. Aceasta optiune iti permite sa alegi din 6 metode
diferite de instalare: full, newbie, menu, expert, custom, si tag path.
Optiunea full va instala fiecare pachet din toate seriile pe care le-ai
ales in sectiunea “select”. Nu vei mai fi intrebat de nimic altceva. Asta este
cea mai usoara metoda de instalare, din moment ce nu mai trebuie sa iei
nici o decizie cu privire la pachetele care trebuie instalate. Desigur, aceasta
optiune ocupa cel mai mult loc pe hard disc.

46
Instalare

Urmatoarea optiune este newbie.Aceasta optiune instaleaza toate


pachetele necesare din seriile selectate. Pentru celelalte pachete, iti vor fi
oferite optiunile “Yes”, “No” sau “Skip”. Yes si No fac operatiunile
evidente, in timp ce Skip va trece la urmatorul pachet. In plus, vei vedea o
descriere si cerintele de spatiu pentru fiecare pachet, pentru a te ajuta sa
decizi daca ai nevoie de el. Recomandam aceasta optiune pentru noii
utilizatori. Totusi este destul de lenta, din cauza intrebarilor.
Menu este o versiune mai rapida si mai avansata a optiunii newbie.
Pentru fiecare serie este afisat un meniu, din care poti selecta pachetele ne-
necesare pe care vrei sa le instalezi. Pachetele necesare nu sunt afisate in
acest meniu.
Pentru utilizatorii mai avansati, instalarea ofera optiunea expert.
Aceasta iti permite un control complet asupra pachetelor care vor fi
instalate. Poti deselecta pachetele necesare, rezultand un sistem complet
defect. Pe de alta parte, poti controla cu exactitate ce se va afla pe sistemul
tau. Optiunea nu este recomandata daca esti un nou utilizator, intrucat te
poti impusca singur in picior.
Optiunea custom si tag path sunt tot pentru utilizatorii avansati.
Aceste optiuni iti permit o instalare bazata pe fisiere de etichete
personalizate pe care le poti crea in arborele distributiei. Aceasta este util
pentru instalrea rapida a unui numar mare de masini. Pentru mai multe
detalii despre utilizarea fisierelor de etichete, vezi Sectiunea 18.4.
Dupa ce ai selectat metoda de instalare, nu se vor intampla decat
cateva lucruri. Daca ai selectat full sau menu, va aparea un ecran de meniu,
care iti va permite sa alegi pachetele care vor fi instalate. Daca ai selectat
full, pachetele vor fi instalate imediat in tinta aleasa. Daca ai selectat
newbie, pachetele vor fi instalate pana la intalnirea unui pachet optional.

47
Slackware Linux Essentials
Fii atent ca este posibil sa ramai fara spatiu liber in timpul instalarii.
Daca ai selectat prea multe pachete fata de spatiul liber disponibil, vei avea
probleme. Optiunea cea mai sigura este sa alegi doar cateva pachete si sa
adaugi altele mai tarziu, daca ai nevoie. Aceasta poate fi realizata usor,
folosind managerul de pachete din Slackware. Pentru mai multe informatii,
uita-te in Capitolul 18.

3.4.8 CONFIGURE

Sectiunea configure iti permite sa faci cateva configuratii de baza,


acum ca pachetele au fost instalate. Ce vei vedea aici depinde in mare
masura de pachetele pe care le-ai instalat. Totusi, vei vedea intotdeauna
urmatoarele:

3.4.8.1 Alegerea kernel-ului


Aici vei fi rugat sa alegi un kernel care va fi instalat. Poti folosi
kernelul de pe discul de boot pe care l-ai utililzat la instalare, CD-ul
Slackware sau o alta discheta pe care (gadind in perspectiva) ai pregatit-o.
Sau poti alege sa treci peste, caz in care va fi instalat kernelul implicit iar
jocul va continua cu mana stanga a celui care a facut cartile.

3.4.8.2 Realizarea unui disc de boot


Este o idee buna sa faci un disc de boot. Vei avea optiunea de a
formata o discheta, apoi vei putea sa creezi unul din doua tipuri de discuri
de boot. Primul tip, simple, va scrie doar un kernel pe discheta. O optiune
mai flexibila (si foarte recomandata) este lilo, care va crea, desigur, un disc
de boot lilo. Uita-te in Sectiunea 7.1 pentru mai multe informatii despre
48
Instalare
LILO. Desigur, poti alege continue caz in care nu va fi facut nici un disc de
boot.

3.4.8.3 Modem
Iti vor fi cerute informatiile despre modem. Mai la obiect, vei fi
intrebat daca ai un modem si daca da, pe ce port serial este.

Aceste subsectiuni de configurare pot sa apara sau nu, in functie de


pachetele instalate.

3.4.8.4 Timezone
Aceasta este destul de evidenta: vei fi intrebat de fusul orar in care
esti. Daca lucrezi dupa ora Zulu, ne pare foarte rau; lista (extrem de lunga)
este sortata alfabetic si tu esti ultimul.

49
Slackware Linux Essentials

3.4.8.5 Mouse
Aceasta subsectiune te intreaba ce tip de mouse ai si daca vrei sa
activezi la pornire suportul pentru mouse gpm(8) in consola.

3.4.8.6 Hardware clock


Aceasta subsectiune te intreaba daca ceasul hardware al
calculatorului tau este potrivit dupa Timpul Universal (UTC sau GMT).
Cele mai multe PC-uri nu sunt, asa ca ar trebui sa alegi no.

50
Instalare

3.4.8.7 Font
Subsectiunea de fonturi iti ofera posibilitatea de a alege dintr-o lista
de fonturi particularizate pentru consola.

3.4.8.8 LILO
Aici vei fi intrebat despre instalarea LILO (LInux LOader; uita-te in
Sectiunea7.1 pentru mai multe informatii).
Daca Slackware va fi unicul tau sistem de operare, simple ar trebui
sa fie de ajuns pentru tine. Daca folosesti boot dublu, optiunea expert este
o alegere mai buna. Uita-te in Sectiunea 7.3 pentru mai multe informatii
despre boot dublu. A treia optiune, do not install, nu este recomandata
decat daca stii ce faci si ai un motiv bun pentru a nu instala LILO. Daca
faci o instalare expert, vei putea alege unde va fi pus LILO. Poti pune

51
Slackware Linux Essentials
LILO in MBR-ul (Master Boot Record) hard disc-ului tau, in superblocul
partitei root sau pe o discheta.

3.4.8.9 Network
Configurarea retelei este, de fapt, netconfig. Uita-te in Sectiunea
5.1 pentru mai multe informatii.

3.4.8.10 X Window Manager


Aceasta optiune iti permite sa alegi managerul implicit de ferestre
pentru sistemul X. Uita-te in Capitolul 6 pentru mai multe detalii despre X
si managerele de ferestre.

Indiferent de pachetele instalate, ultimul lucru pe care configure il va


face va fi sa te intrebe daca vrei sa alegi o parola pentru root. Din motive
de securitate, este o idee buna; totusi, ca aproape orice lucru in Slackware,
ramane la latitudinea ta.

52
Capitolul 4

Configurarea sistemului
4.1 O privire de ansamblu asupra sistemului
4.2 Alegerea unui kernel

Inainte de a putea configura partile mai avansate ale sistemului tau, este o
idee buna sa inveti organizarea sistemului si ce comenzi pot fi folosite
pentru a cauta fisiere sau programe. De asemenea e bine de stiut daca ai
nevoie sa compilezi un kernel personalizat si care sunt pasii pentru
realizarea acestui lucru. Acest capitol te va familiariza cu organizarea
sistemului si fisierele de configurare. Pe urma, poti sa te apuci de
configurarea partilor mai avansate ale sistemului.

53
Slackware Linux Essentials

4.1 O privire de ansamblu asupra sistemului

Este important de inteles cum este asamblat un sistem Linux inainte


de a plonja in diferitele aspecte ale configurarii. Un sistem Linux este
semnificativ diferit de un sistem DOS, Windows, sau Macintosh (cu
exceptia Mac OS X-ului bazat pe Unix), dar aceste sectiuni te vor ajuta sa
te familiarizezi cu schema astfel incat sa iti poti configura usor sistemul
pentru a-ti satisface nevoile.

4.1.1 Sistemul de fisiere

Prima diferenta vizibila dintre un sistem Slackware Linux si DOS


sau Windows o reprezinta sistemul de fisiere. In primul rand, nu folosim
litere de unitati pentru a desemna diferite partitii. Sub Linux, este un
director principal. Poti relata asta cu unitatea C: de sub DOS. Fiecare
partitie de pe sistemul tau este montata pe un director aflat sub directorul
principal. Este un fel de hard disk care se dilata mereu.
Numim directorul principal directorul root (radacina), si este indicat
cu un singur slash (/). Acest concept ar putea parea ciudat, dar de fapt iti
face viata usoara cand vrei sa adaugi mai mult spatiu. De exemplu, sa
spunem ca ramai fara spatiu pe unitatea pe care ai partitia /home.
Majoritatea oamenilor instaleaza Slackware si fac o mare partitie root. Din
moment ce o partitie poate fi montata pe orice director, poti sa mergi la
magazin sa cumperi un hard nou si sa il montezi pe /home. Ti-ai adaugat
dintr-o data mai mult spatiu pe sistem. Si asta fara a fi nevoit sa muti multe
lucruri.
Mai jos, vei gasi descrieri despre principalele directoare sub Slackware.
bin
Aici sunt stocate programe esentiale utilizatorilor. Acestea
reprezinta minimumul absolut necesar de programe de care are
nevoie un utilizator pentru a folosi sistemul. Lucruri ca shell-ul si
comenzile pentru sistemul de fisiere (ls, cp, s.a.m.d.) sunt stocate
aici. Directorul /bin nu sufera de obicei modificari dupa instalare.
Daca se intampla asta, de obicei e din cauza pachetelor actuale pe
care le furnizam.

54
Configurarea sistemuluie
boot
Fisiere care sunt folosite de catre "Linux Loader" (LILO). Acest
director la fel ca si bin nu prea sufera modificari dupa instalare.
Kernel-ul este stocat aici incepand cu Slackware 8.1. In primele
versiuni Slackware, kernel-ul era stocat pur si simplu sub /, dar se
obisnuieste ca kernel-ul si fisierele inrudite acestuia sa faciliteze
initializarea dubla.
dev
In Linux totul este tratat ca un fisier, chiar si dispozitivele
hardware ca si porturile seriale, hard disk-urile si scanerele. Pentru
a putea accesa aceste dispozitive, un fisier special numit nod
dispozitiv trebuie sa fie prezent. Toate nodurile dispozitiv sunt
stocate in directorul /dev. Vei vedea ca acest lucru este valabil pe
multe sisteme de operare tip Unix.
etc
Acest director contine fisierele de configurare ale sistemului. Totul
incepand de la fisierul de configurare X Window, baza de date a
utilizatorilor, la scripturile de pornire ale sistemului. In timp,
administratorului de sistem acest director ii va fi foarte familiar.
home
Linux este un sistem de operare multiutilizator. Fiecare utilizator
de pe sistem primeste un cont si un director unic pentru fisierele
personale. Acest director este numit directorul camin al
utilizatorului. Directorul /home este furnizat ca locatia standard
pentru directoarele camin ale utilizatorilor.
lib
Librariile necesare functionarii sistemului sunt stocate aici.
Libraria C , incarcatorul dinamic, libraria ncurses si modulele de
kernel se afla printre lucrurile stocate aici.
mnt
Acest director contine puncte de montare temporare pentru lucrul
cu hard disk-uri sau unitati amovibile. Aici vei gasi puncte de
montare pentru unitatile CD-ROM si floppy.
opt
Pachete software optionale. Ideea din spatele /opt este ca fiecare
pachet software se instaleaza in /opt/software-package, ceea ce ii
face usoara inlaturarea. Slackware distribuie cateva lucruri in /opt
(ca si KDE in /opt/kde), dar poti sa adaugi orice vrei in /opt.
proc
Acesta este un director unic. Nu face parte de fapt din sistemul de
fisiere, ci este un sistem de fisiere virtual care ofera acces

55
Slackware Linux Essentials
informatiei legate de kernel. Diferite piese de informatie pe care
kernel-ul vrea sa le stii sunt transportate prin fisiere in directorul
/proc. Poti de asemenea sa trimiti informatii kernel-ului prin
cateva din acest fisiere. Incearca sa tastezi cat /proc/cpuinfo.
root
Administratorul de sistem este cunoscut ca root pe sistem.
Directorul camin al lui root este /root in loc de /home/root.
Motivul este simplu. Ce ar fi daca /home ar fi pe o partitie diferita
de / si nu ar putea fi montata? root normal ca ar vrea sa se
logheze si sa rezolve problema. Daca directorul lui camin s-ar afla
pe sistemul de fisiere stricat i-ar fi mai greu sa faca acest lucru.
sbin
Programe esentiale care sunt rulate de catre root si in timpul
initializarii sistemului sunt tinute aici. Utilizatorii normali nu vor
rula programele aflate in acest director.
tmp
Locatia temporara de depozitare. Toti utilizatorii au drept de citire
si scriere pe acest director.
usr
Acesta este directorul mare pe un sistem Linux. Aproape tot ce a
mai ramas isi are locul aici, programe, documentatie, codul sursa
al kernel-ului si sistemul de ferestre X. Acesta este directorul cel
mai probabil in care vei instala programele.
var
Fisierele jurnal ale sistemului, date cache si fisierele lock ale
programelor sunt stocate aici. Acesta este directorul pentru datele
care se schimba frecvent.

Acum ar trebui sa ai un bun simt pentru ce directoare contin ce pe


sistemul de fisiere. Informatii mai detaliate despre schema sistemului de
fisiere este disponibila in pagina de manual hier(7). Urmatoare sectiune te
va ajuta sa gasesti mai usor fisiere specifice, astfel incat sa nu trebuiasca sa
le cauti manual.

4.1.2 Gasirea fisierelor

Stii ce contine fiecare director major, dar totusi nu te prea ajuta sa


gasesti lucruri. Adica, ai putea sa mergi sa cauti prin directoare, dar sunt
metode mai rapide. In Slackware sunt patru comenzi principale de cautare
a fisierelor.

56
Configurarea sistemuluie
4.1.2.1 which
Prima este comanda which(1). which este folosit de obicei pentru
localizarea rapida a unui program. Cauta doar prin PATH-ul tau si se
intoarce cu primul lucru pe care il gaseste si calea directorului care duce
spre el. Exemplu:
% which bash
/bin/bash

Din asta reiese ca bash este in directorul /bin. Aceasta este o


comanda foarte limitata de cautare, din moment ce cauta doar in PATH.

4.1.2.2 whereis
Comanda whereis(1) functioneaza intr-un mod similar cu which,
dar poate cauta si pagini de manual si fisiere sursa. O cautare cu whereis
pentru bash s-ar intoarce cu aceasta:
% whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Aceasta comanda nu ne-a spus numai unde este localizat programul,


dar si unde este stocata documentatia online. Totusi aceasta comanda este
limitata. Ce ar fi daca ai vrea sa cauti un fisier de configurare specific? Nu
poti folosi which sau whereis pentru asta.

4.1.2.3 find
Comanda find(1) ii permite unui utilizator sa caute prin sistemul de
fisiere cu o bogata colectie de predicate de cautare. Utilizatorii pot
specifica o cautare cu caractere de inlocuire a fisierelor (wildcards), raze a
timpiilor de modificare sau creare, sau alte caracteristici avansate. De
exemplu, pentru a cauta fisierul standard xinitrc pe sistem, ar fi folosita
urmatoarea comanda.
% find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc

find va dura putin pana va rula, din moment ce trebuie sa traverseze


intregul director radacina. Daca aceasta comanda este data de catre un
utilizator normal, vor fi erori de permisiune refuzata pentru directoare pe
care doar root le poate vedea. Dar find ne-a gasit fisierul ceea ce e bine.
Doar daca ar fi putin mai rapida...

57
Slackware Linux Essentials

4.1.2.4 slocate
Comanda slocate(1) cauta in intregul sistem de fisiere, la fel cum
face si comanda find, dar el cauta intr-o baza de date in loc de sistemul de
fisiere. Baza de date este setata astfel incat sa se refaca automat in fiecare
dimineata, pentru a avea o oarecum baza de date proaspata a fisierelor de
pe sistemul tau. Poti sa rulezi manual updatedb(1) pentru a reinnoi baza de
date slocate (inainte de a rula updatedb manual, trebuie sa faci su pe
utilizatorul root). Aici este un exemplu a lui slocate in actiune.
% slocate xinitrc # nu trebuie sa ne facem root
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm

Am gasit mai mult decat cautam si chiar rapid. Cu aceste comenzi, ar


trebui sa poti gasi tot ce cauti pe sistemul tau Linux.

4.1.3 Directorul /etc/rc.d

Fisierele de initializare a sistemului sunt stocate in directorul


/etc/rc.d. Slackware foloseste stilul schemei BSD pentru fisierele sale de
initializare contrar scripturilor de initializare System V, care au tendinta de
a face schimbarile configurarii ceva mai dificile, fara folosirea unui
program special creat pentru asa ceva. In scripturile de initializare BSD,
fiecare nivel de rulare primeste un singur fisier rc. In System V, fiecare
nivel de rulare primeste directorul sau, fiecare continand numeroase
scripturi de initializare. Aceasta ofera o structura organizata care este usor
de intretinut.
Sunt diferite categorii de fisiere de initializare. Aceasta sunt pornirea
sistemului, nivele de rulare, initializarea retelei si compatibilitatea cu
System V. Cum e traditional vom pune tot ce a mai ramas laolalta in alta
categorie.

4.1.3.1 Pornirea sistemului


Primul program care este rulat sub Slackware, in afara de kernel-ul
Linux, este init(8). Acest program citeste fisierul /etc/inittab(5)
pentru a vedea cum sa ruleze sistemul. Ruleaza scriptul /etc/rc.d/rc.S
pentru a pregati sistemul inainte de a intra in nivelul de rulare dorit.
Fisierul rc.S abiliteaza memorita ta virtuala, iti monteaza sistemele de
58
Configurarea sistemuluie
fisiere, curata anumite directoare de jurnale, initializeaza dispozitivele Plug
and Play, incarca modulele de kernel, configureaza dispozitivele PCMCIA,
initializeaza porturile seriale si ruleaza scripturile de initializare System V
(daca exista). In mod evident rc.S are multe pe farfurie, dar iata cateva
scripturi din
/etc/rc.d pe care rc.S le va apela pentru a-si termina munca:
rc.S
Acesta este fisierul de initializare a sistemului.
rc.modules
Incarca modulele de kernel. Lucruri ca placa ta de retea, sprijinul
PPP si alte lucruri sunt incarcate aici. Daca acest script gaseste
rc.netdevice, il va rula si pe acela.
rc.pcmcia
cauta si configureaza dispozitive PCMCIA pe care s-ar putea sa le
ai pe sistem. Acesta este folositor in mod special utilizatorilor
laptop, care probabil ca au un modem sau o placa de retea
PCMCIA.
rc.serial
iti configureaza porturile seriale prin rularea comenzilor
setserial potrivite.
rc.sysvinit
Se uita dupa scripturi de initializare System V pentru nivelul de
rulare dorit si le ruleaza. Acest lucru e discutat in detaliu mai jos.

4.1.3.2 Scripturile de initializare a nivelelor de rulare


Dupa ce initializarea sistemului e completa, init se duce mai
departe la initializarea nivelului de rulare. Un nivel de rulare descrie starea
in care va rula calculatorul tau. Pare de prisos? Nivelul de rulare ii spune
lui init daca vei accepta logari multiutilizator sau doar un singur
utilizator, daca vrei sau nu servicii de retea si daca ii vei da sistemului de
ferestre X sau lui agetty(8) responsabilitatea de a manipula logarile.
Aceste fisiere definesc nivelele de rulare diferite in Slackware Linux.
rc.0
Opreste sistemul (nivel de rulare 0). Implicit, acesta indica spre rc.6.
rc.4
Pornire multiutilizator (nivel de rulare 4), dar in X11 cu KDM,
GDM, sau XDM ca administratorul de logare.
rc.6
Reporneste sistemul (nivel de rulare 6).
rc.K
Pornire in mod utilizator unic (nivel de rulare 1).

59
Slackware Linux Essentials
rc.M
Mod multiutilizator (nivelele de rulare 2 si 3), dar cu logarea text
standard. Acesta este nivelul de rulare standard in Slackware.

4.1.3.3 Initializarea retelei


Nivelele de rulare 2, 3 si 4 vor porni serviciile de retea. Urmatoarele
fisiere sunt responsabile cu initializarea retelei:
rc.inet1
Creat de netconfig, acest fisier e responsabil cu configurarea
interfetelor de retea.
rc.inet2
Ruleaza dupa rc.inet1 si porneste serviciile de retea primare.
rc.atalk
Porneste serviciile AppleTalk.
rc.httpd
Porneste serverul web Apache. Ca si alte scripturi rc, acesta poate
fi folosit si pentru a opri sau reporni un serviciu. rc.httpd ia
argumente de stop, start sau restart.
rc.news
Porneste serverul de stiri.

4.1.3.4 Compatibilitatea cu System V


Compatibilitatea cu initializarea System V a fost introdusa in
Slackware 7.0. Multe alte distributii Linux se folosesc de acest stil de
initializare in locul celui BSD. In principiu fiecare nivel de rulare primeste
un subdirector pentru scripturile de initializare, pe cand la stilul BSD
fiecare nivel de rulare primeste un script de initializare.
Scriptul rc.sysvinit va cauta scripturile de initializare System V
pe care le ai in /etc/rc.d si le va rula, daca nivelul de rulare este potrivit.
Acesta este util pentru cateva pachete software comerciale care instaleaza
scripturi de initializare System V.

4.1.3.5 Alte fisiere


Scripturile descrise mai jos sunt celelalte scripturi de initializare ale
sistemului. Sunt de obicei rulate din unul dintre scripturile majore descrise
sus, deci tot ce trebuie sa faci este sa le editezi continutul.
rc.gpm
Porneste serviciile mouse. Iti permite sa copiezi si sa lipesti la
consola Linux. Ocazional, gpm va cauza probleme cu mouse-ul
cand acesta este folosit sub ferestrele X. Daca ai probleme cu

60
Configurarea sistemuluie
mouse-ul sub X, incearca sa inlaturi permisiunea de executie de pe
acest fisier si sa opresti serverul gpm.
rc.font
Incarca font-ul personalizat pentru consola.
rc.local
Contine comenzi specifice de pornite ale sistemului. Acest fisier
este gol dupa o instalare proaspata, deoarece este rezervat pentru
administratorii locali. Acest script este rulat dupa ce restul
initializarii a avut loc.
Pentru a activa un script, tot ce trebuie sa faci este sa ii adaugi
permisiunea de executie cu comanda chmod. Pentru a incapacita un script,
inlatura-i permisiunea de executare. Pentru mai multe detalii despre chmod,
vezi Sectiunea 9.2.

4.2 Alegerea unui kernel

Kernel-ul este partea sistemului de operare care ofera acces la


hardware, controlul proceselor si control peste sistem. Kernel-ul contine
suport pentru dispozitivele tale hardware deci alegerea unui kernel pentru
sistemul tau este un pas foarte important in instalare.
Slackware ofera mai mult de o duzina de kernel-e precompilate din care sa
poti alege, fiecare cu un set standard de drivere si drivere aditionale
specifice. Poti rula unul din kernel-ele precompilate sau poti sa iti
construiesti propriul tau kernel din sursa. Oricum, trebuie sa te asiguri ca
kernel-ul tau are suport pentru hardware-ul tau.

4.2.1 Directorul /kernels de pe CD-ROM-ul Slackware

Kernel-ele Slackware precompilate sunt disponibile in directorul


/kernels pe CD-ROM-ul Slackware sau pe site-ul FTP in directorul
principal Slackware. Kernel-ele disponibile se schimba la noi versiuni ale
kernel-ului, astfel ca documentatia in acel director este intotdeauna sursa
autoritara. Directorul /kernels are subdirectoare pentru fiecare kernel
disponibil. Subdirectoarele au acelasi nume ca si discul de boot insotitor.
In fiecare subdirector vei gasi urmatoarele fisiere:

61
Slackware Linux Essentials

Fisier Scop
System.map Harta sistemului pentru acest kernel
bzImage Imaginea propriu zisa a kernel-ului
config Fisierul de configuratie pentru acest kernel
Pentru a folosi un kernel, copiaza fisierele System.map si config in
directorul tau /boot si copiaza imaginea kernel-ului ca /boot/vmlinuz.
Ruleaza /sbin/lilo(8) pentru a instala LILO pentru noul kernel si pe
urma reporneste-ti sistemul. Asta e tot ce trebuie sa faci pentru a instala un
nou kernel.
Kernel-ele care se termina in .i sunt kernel-e IDE. Adica, nu includ
suport pentru componentele SCSI in kernel-ul de baza. Kernel-ele care se
termina in .s sunt kernel-e SCSI. Ele includ tot suportul IDE din kernel-ele
.i plus suport SCSI.

4.2.2 Compilarea unui kernel din surse

Intrebarea “Ar trebui sa compilez un kernel pentru sistemul meu?”


este deseori pusa de utilizatorii noi. Raspunsul este un poate ferm. Sunt
cateva cazuri in care va trebui sa compilezi un kernel specific sistemului
tau. Majoritatea utilizatorilor pot folosi un kernel precompilat si modulele
kernel-ului pentru a obtine un sistem complet functional. Vei vrea sa
compilezi un kernel pentru sistemul tau daca vei progresa spre o versiune
de kernel care momentan nu este oferit de Slackware, sau daca ai peticit
sursa kernel-ului pentru a obtine suport special pentru dispozitive, suport
care nu este in sursa nativa a kernel-ului. Oricine cu un sistem SMP precis
va vrea sa compileze un kernel cu suport SMP. De asemenea, multi
utilizatori constata ca un kernel personalizat pentru sistem ruleaza mai
repede. Vei gasi utila compilarea unui kernel cu optimizarile pentru
procesorul specific din calculatorul tau.
Construirea propriului tau kernel nu este asa de dificila. Primul pas
este sa te asiguri ca ai sursa kernel-ului instalata pe sistem. Asigura-te ca ai
instalat pachetele din seria K in timpul instalarii. Vei vrea de asemenea sa
te asiguri ca ai seriile D instalate, mai precis compilatorul C, GNU make si
GNU binutils. In general, este o idee buna sa ai toata seria D instalata daca
ai de gand sa faci o dezvoltare de orice gen. Poti de asemenea sa iei sursa
pentru ultimul kernel de la http://www.kernel.org/mirrors.

62
Configurarea sistemuluie
4.2.2.1 Compilarea versiunii 2.4.x a Kernel-ului Linux
% su -
Password:
# cd /usr/src/linux

Primul pas este sa readuci sursa kernel-ului la starea sa de baza.


Emitem aceasta comanda pentru a face asta (ia in seama, ca e o idee buna
sa salvezi fisierul .config deoarece aceasta comanda il va sterge fara
avertizare):
# make mrproper

Prima este metoda originala bazata pe sistemul de intrebari text si


raspunsuri. Pune un grup de intrebari si pe urma construieste un fisier de
configurare. Problema cu aceasta metoda este ca daca gresesti, trebuie sa o
iei de la inceput. Metoda pe care majoritatea oamenilor o prefera este cea
cu meniuri. In cele din urma, este o unealta de configurare X a kernel-ului.
Alege-o pe cea pe care o vrei si emite comanda corespunzatoare:
# make config (versiunea metodei bazate pe text cu
I&Rn)
# make menuconfig (versiunea cu meniuri)
# make xconfig (versiunea bazata pe X, asigura-te
mai intai ca esti in X)

Figure 4-1. Meniul de configurare a Kernel-ului

Utilizatorii noi, vor constata ca menuconfig este cel mai usor de


folosit. Sunt furnizate ecrane de ajutor care explica diferitele parti ale
kernel-ului. Dupa ce ti-ai configurat kernel-ul, paraseste programul de

63
Slackware Linux Essentials
configurare. Va scrie fisierele de configurare necesare. Acum putem
pregati arborele sursa pentru o constructie:
# make dep
# make clean

Pasul urmator este sa compilezi kernel-ul. Incearca sa emiti mai intai


comanda bzImage de mai jos.
# make bzImage

Aceasta ar putea dura putin, depinde de viteza CPU-ului tau. In timpul


procesului de constructie, vei vedea mesajele de compilare. Dupa
construirea imaginii kernel-ului, vei vrea sa construiesti partile kernel-ului
pe care le-ai marcat ca module.
# make modules

Putem acuma instalat kernel-ul si modulele pe care le-ai instalat. Pentru a


instala kernel-ul pe un sistem Slackware, trebuie emise aceste comenzi:
# mv /boot/vmlinuz /boot/vmlinuz.old
# cat arch/i386/boot/bzImage > /vmlinuz
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
# make modules_install

Vei vrea sa editezi /etc/lilo.conf si sa adaugi o sectiune de boot


pentru a boota vechiul tau kernel in caz ca cel nou nu functioneaza. Dupa
ce ai facut asta, ruleaza /sbin/lilo pentru a instala noul bloc de bootare.
Acum poti sa repornesti calculatorul cu noul tau kernel.

4.2.2.2 Versiunea 2.6.x a Kernel-ului Linux


Compilarea unui kernel 2.6 este doar putin diferita de un kernel 2.4
sau 2.2, dar este important sa intelegi diferentele inainte de a te ingropa in
documente. Nu mai este necesar sa rulezi make dep si make clean. De
asemenea, procesul de compilare al kernel-ului nu este la fel de prolix
(verbose) in seriile kernel 2.6.x. Aceasta rezulta intr-un proces de
constructie care e mai usor de inteles, dar are de asemenea si cateva lipsuri.
Daca ai probleme in construirea kernel-ului tau, este recomandat sa
reactivezi prolixitatea. Faci asta prin adaugarea lui V=1 constructiei.
Aceasta iti permite sa jurnalizezi mai multa informatie care ar putea ajuta
un dezvoltator de kernel sau un alt prieten inteligent in rezvolvarea
problemei tale.

64
Configurarea sistemuluie
# make bzImage V=1

4.2.3 Folosirea modulelor de Kernel

Modulele de kernel sunt un al doilea nume pentru driver-ele


dispozitivelor care pot fi inserate intr-un kernel in rulare. Ele iti permiti sa
extinzi hardware-ul suportat de kernel-ul tau fara nevoia de a alege un alt
kernel sau de a compila unul.
Modulele pot de asemenea sa fie incarcate si scoase in orie moment,
chiar in timpul rularii sistemului. Aceasta face imbunatatirea driver-elor
specifice usoara pentru administratorii de sistem. Un nou modul poate fi
compilat, vechiul inlaturat si cel nou incarcat, toate astea fara a necesita
repornirea calculatorului.
Modulele sunt stocate in directorul /lib/modules/versiune
kernel pe sistemul tau. Ele pot fi incarcate in timpul initializarii prin
fisierul rc.modules. Acest fisier este foarte bine comentat si ofera
exemple pentru componentele hardware majore. Pentru a vedea o lista de
module care sunt active in mod curent foloseste comanda lsmod(1):
# lsmod
Module Size Used by
parport_pc 7220 0
parport 7844 0 [parport_pc]

Poti vedea aici ca am incarcat doar modulul pentru portul paralel.


Pentru a inlatura un modul, folosesti comanda rmmod(1). Modulele pot fi
incarcate de comanda modprobe(1) sau insmod(1). modprobe este de obicei
mai sigur pentru ca va incarca orice modul de care depinde cel pe care vrei
sa il incarci.
Multi utilizatori nu trebuie sa incarce sau sa scoata modulele manual.
Ei folosesc "kernel autoloader" pentru administrarea modulelor. Ca
standard, Slackware include kmod in kernel-ele sale. kmod este o optiune
de kernel care da kernel-ului posibilitatea de a incarca automat modulele
pe masura ce sunt cerute. Pentru mai multe informatii despre kmod si cum
este configurat vezi /usr/src/linux/Documentation/kmod.txt. Ar fi
trebuie sa instalezi pachetul sursa al kernel-ului sau sa fi luat sursa de la
http://kernel.org.
Mai multe informatii pot fi gasite in paginile de manual pentru
fiecare dintre aceste comenzi, plus fisierul rc.modules file.

65
Capitolul 5

Configurarea retelei
5.1 Introducere: netconfig este prietenul tau .
5.2 Configurarea hardware pentru retea
5.3 Configurarea TCP/IP
5.4 PPP
5.5 Wireless
5.6 Network File Systems

67
Slackware Linux Essentials

5.1 Introducere: netconfig este prietenul tau.

Atunci cand initial ai instalat Slackware, programul de setup a


invocat acest program. netconfig a incercat sa indeplineasca urmatoarele
functiuni pentru tine:
• te-a intrebat care este numele computerului, si domain name.
• ti-a oferit o scurta explicatie legata de diferite tipuri de scheme de
adresare (legate de adresa IP), ti-a spus cand o sa fie folosite, si te-
a intrebat care schema doresti sa o utilizezi pentru configurarea
placii de retea:
o Static-IP
o DHCP
o Loopback
• Apoi s-a oferit sa caute o placa de retea pe care sa o configureze.
netconfig in general se va ingriji de aproximativ 80% din munca
configurarii conexiunii LAN daca vei permite acest lucru. Noteaza faptul
ca ti-as recomanda cu tarie sa revizuiesti fisierul de configurare pentru
cateva motive:
1. Nu ar trebui niciodata sa te increzi intr-un program de setare ca sa-
ti configureze in mod corect reteaua. Daca folosesti un asemenea
program ar trebui ca tu insuti sa revizuiesti configuratia
2. Daca inca inveti Slackware si despre managementul sistemului
Linux, atunci faptul ca vezi o configuratie poate fi util. Cel putin
vei sti cum ar trebui sa arate aceasta. Acest fapt iti va permite sa
corectezi problemele datorate configurarii ulterioare eronate a
sistemului.

5.2 Configurarea hardware pentru retea

Odata ce ai decis ca vrei sa legi intr-o oarecare forma de retea


calculatorul tau care ruleaza Slackware primul lucru de care vei avea
nevoie va fi o placa de retea compatibila cu Linux. Va trebui sa ai putina
grija pentru a te asigura de faptul ca acea placa de retea este intr-adevar
compatibila cu Linux (te rog sa iei drept puncte de referinta Linux
Documentation Project si/sau documentatia pentru kernel pentru a te
68
Configurarea retelei
informa in legatura cu placa pe care ti-ai propus sa o utilizezi). Ca si o
regula generala, cel mai probabil vei fi placut surprins de numarul placilor
de retea suportate de kernel-urile moderne. Acestea fiind spuse, totusi iti
sugerez sa consulti oricare dintre listele de compatibilitate hardware (cum
ar fi The GNU/Linux Beginners Group Hardware Compatibility Links si
The Linux Documentation Project Hardware HOWTO) care sunt
disponibile pe internet inainte de a cumpara acea placa. Putin timp in plus
dedicat cautarii poate salva zile sau chiar saptmani de incercari de
rezolvare a problemelor legate de o placa de retea care in final nici nu este
compatibila cu Linux.
Cand vizitezi listele Linux Hardware Compatibility disponibile pe
internet, sau atunci cand studiezi documentatia kernel-ului instalat pe
computerul tau, ar fi intelept sa notezi care modul al kernelului va fi
necesar pentru suportul placii tale de retea.

5.2.1 Incarcarea modulelor de retea


Modulele kenel-ului care urmeaza sa fie incarcate la bootare sunt
incarcate din fisierul rc.modules in /etc/rc.d sau de modulul de
autoincarcare a kernelului pornit de /etc/rc.d/rc.hotplug. Fisierele
implicite rc.modules contin o sectiune dedicata suportului placilor de
retea. Daca deschizi rc.modules si cauti aceasta sectiune vei observa ca in
primul rand programul cauta un fisier executabil rc.netdevice in
/etc/rc.d/. Acest script este creat daca setup autoprobeaza cu succes
placa ta de retea in timpul instalarii.
Sub blocul “if” se afla o lista a placilor de retea si linii de modprobe,
fiecare dintre ele comentata. Gaseste placa ta si decomenteaza linia
modprobe corespunzatoare ei, apoi salveaza fisierul. Rularea rc.modules
ca si root ar trebui sa iti incarce driverul pentru retea ( de asemenea si
oricare alte module care sunt listate si necomentate). Noteaza faptul ca
anumite module (cum ar fi driverul ne2000) cer anumiti parametri;
asigura-te ca selectezi linia corecta.

5.2.2 Placi de retea LAN (10/100/1000Base-T and Base-2) cards


Acest heading cuprinde toate placile de retea interne pe PCI si ISA.
Drivere pentru aceste placi sunt furnizate prin modulele incarcabile ale
kernelului despre care am vorbit in paragraful anterior. /sbin/netconfig
trebuie sa fi probat placa ta si sa fi setat cu succes fisierul rc.netdevice.
Daca aceasta nu s-a intamplat, cea mai posibila problema este faptul ca
modulul pe care incerci sa-l incarci pentru o anume placa de retea este
69
Slackware Linux Essentials
incorect (nu este un lucru neauzit ca pentru generatii diferite ale aceleiasi
marci de placa de retea de la acelasi producator sa fie necesare module
diferite). Daca esti sigur ca modulul pe care incerci sa-l incarci este cel
corect, urmatorul pas care trebuie sa il faci este sa consulti documentatia
pentru modulul in cauza in incercarea de a descoperi daca sunt necesari
parametri specifici in timpul initializarii modulului.

5.2.3 Modemuri
Asemenea placilor LAN, modemurile vin cu variate optiuni de
suport bus. Pana mai recent, majoritatea modemurilor erau carduri ISA pe
8 sau 16 biti. Cu eforturile Intel si ale producatorilor placilor de baza din
toata lumea de a elimina complet ISA bus, este un lucru comun acum
faptul ca majoritatea modemurilor sunt ori externe, care se conecteaza pe
un port serial sau USB, ori interne, care se monteaza pe PCI. Daca doresti
ca modemul tau sa functioneze sub Linux, este VITAL sa cauti prospectul
acestuia, in mod special daca ai un modem pe PCI. Multe, daca nu cele mai
multe, modemuri pe PCI disponibile in magazine in ziua de azi sunt
WinModems. Acestea duc lipsa de anumite parti hardware de baza pe
placa insasi: functiile realizate de acest tip de hardware sunt tipic
descarcate (offloaded) in CPU de catre driverul modemului si sistemul de
operare Windows. Aceasta inseamna ca nu au o interfata seriala standard
pe care PPPD se asteapta sa o geseasca atunci cand incerci sa formezi
numarul pentru ISP.
Daca doresti sa fi absolut sigur ca modemul pe care vrei sa-l cumperi
va functiona sub Linux, atunci cumpara un hardware de tip extern care se
conecteaza la calculatorul tau printr-un port serial. Pentru acest tip de
hardware este garantat faptul ca va functiona mai bine si vor exista mai
putine probleme legate de instalare si intretinere, desi cere conectare la o
sursa externa de energie si tinde sa coste mai mult.
Exista mai multe website-uri care ofera derivere si asistenta pentru
configurarea hardware-ului bazat pe WinModem. Unii utilizatori au
raportat succes in configurarea si instalarea driverelor pentru winmodems,
incluzand aici chipseturi Lucent, Conexant si Rockwell. Asa cum softul
necesar pentru acestea nu este integrat in Slackware, si variaza de la driver
la driver, nu vom mai intra in detalii legate de ele.

5.2.4 PCMCIA
Ca si parte a instalarii Slackware, ti se ofera oportunitatea de a
instala pachetul pcmcia (in seria de pachete “A”). Acest pachet contine

70
Configurarea retelei
aplicatii si fisiere de configurare necesare pentru a lucra cu placi PCMCIA
sub Slackware. Este important de retinut ca pachetul pcmcia instaleaza
numai softul generic necesar utilizarii PCMCIA sub Slackware. Nu
instaleaza nici un driver sau modul. Modulele si driverele disponibile se
vor gasi in directorul /lib/modules/`uname -r`/pcmcia. Va trebui sa
experimentezi putin pentru a gasi un modul care va functiona pentru placa
ta de retea.
Va fi necesar sa editezi fisierul /etc/pcmcia/network.opts (pentru
o placa Ethernet) sau /etc/pcmcia/wireless.opts (pentru o placa
wireless). Asemenea multor fisiere de configurare ale Slackware, aceste
doua fisiere sunt bine comentate si va fi usor sa se determine ce modificari
anume sunt necesare.

5.3 Configurarea TCP/IP

In acest punct, placa ta de retea ar trebui sa fie instalata din punct de


vedere fizic in calculatorul tau, iar modulele kernelului relevante ar trebui
sa fie incarcate. Inca nu vei putea comunica prin intermediul placii de
retea, dar informatii legate de aceasta pot fi obtinute prin comanda ifconfig
ifconfig -a.

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
Interrupt:5 Base address:0x8400

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)

Daca nu ai fi tastat /sbin/ifconfig fara sufixul -a, nu ai fi vazut interfata


eth0 pentru ca placa ta de retea nu are inca o adresa IP valida sau un route.
In timp ce exista multe si diferite cai de a seta o retea, toate acestea
pot fi impartite in doua categorii: Static si Dynamic. Retelele statice sunt
71
Slackware Linux Essentials
setate astfel incat orice nod de retea (limbaj codificat al tocilarilor pentru o
adresa IP) intotdeauna sa aiba aceeasi adresa IP. Retelele dinamice sunt
setate intr-un asemenea fel incat adresele IP pentru noduri sunt controlate
de un singur server numit server DHCP.

5.3.1 DHCP
DHCP (sau Protocolul Dinamic de Configurare a Host-ului) este o
modalitate prin care o adresa IP poate fi repartizata unui computer la
bootare. Cand booteaza client-ul DHCP, acesta transmite o cerere in LAN
pentru ca un server DHCP sa ii repartizeze o adresa IP. Serverul DHCP are
o lista larga de adrese disponibile. El va raspunde la cerere cu o adresa IP
din lista, odata cu un timp de alocare. Odata ce timpul pentru alocare a
adresei IP a expirat, clientul va trebui sa contacteze serverul din nou si sa
repete negocierea.
Clientul va accepta adresa IP de la server si va configura interfata in
cauza cu aceasta adresa. Mai este inca un mic truc pe care clientii DHCP il
folosesc pentru negocierea IP-ului care le va fi repartizat. Clientul isi va
aminti ultima adresa repartizata si va cere serverului sa ii repartizeze iar
acea adresa la urmatoarea negociere. Daca este posibil, atunci serverul va
proceda in acest fel, dar daca nu, atunci o noua adresa va fi repartizata. Asa
ca negocierea semana cu urmatoarea discutie:
Client: Este un server DHCP disponibil pe LAN?
Server: Da, este. Aici sunt.
Client: Am nevoie de o adresa IP .
Server: Poti lua 192.168.10.10 pentru 19200 secunde.
Client: Multumesc.
Client: Este un server DHCP disponibil pe LAN?
Server: Da, este. Aici sunt.
Client: Am nevoie de o adresa IP . Ultima data cand am vorbit am
avut 192.168.10.10; Pot sa am din nou?
Server: Da, poti (sau :Nu, nu poti lua 192.168.10.12 ).
Client: Multumesc
Clientul DHCP in Linux este /sbin/dhcpcd. Daca incarci
/etc/rc.d/rc.inet1 in editorul tau favorit, vei observa ca /sbin/dhcpcd
este apelat prin intermediul scriptului. Acest fapt va determina conversatia
prezentata mai sus. dhcpcd a detectat de asemenea timpul ramas pentru
alocare pentru adresa IP curenta si va contacta in mod automat serverul
DHCP printr-o cerere de a reinnoi timpul de alocare atunci cand este

72
Configurarea retelei
necesar. Serverul DHCP poate controla de asemenea informatii aditionale
legate de adresa IP, cum ar fi serverul ntp ce va fi utilizat, routa pe care o
va lua, etc.
Setarea DHCP in Slackware este simpla. Ruleaza netconfig si
selecteaza DHCP cand ti se ofera ca si alternativa. Cand ai mai multe NIC-
uri si nu vrei ca DHCP sa configureze eth0 editeaza fisieru
/etc/rc.d/rc.inet1.conf si modifica variabila pentru NIC-ul tau
punand “YES”.

5.3.2 IP Static
Adresele IP statice sunt adrese fixe care se schimba numai prin
comanda manuala. Ele sunt folosite in cazurile in care un administrator nu
vrea ca informatiile legate de IP sa se schimbe, cum ar fi pentru servere
interne intr-un LAN, orice fel de server ce se conecteaza la Internet si
routere legate in retea. Cu modul de repartizare a adreselor IP statice poti
sa pui o adresa IP care va ramane permanent. Celelalte calculatoare vor sti
ca esti tot timpul la aceeasi adresa IP si te pot contacta la acea adresa
intotdeauna.

5.3.3 /etc/rc.d/rc.inet1.conf
Daca planuiesti sa atribui o adresa IP noii tale instalari Slackware,
poti sa faci acest lucru fie prin scriptul netconfig sau poti edita
/etc/rc.d/rc.inet1.conf. In /etc/rc.d/rc.inet1.conf vei observa:

# Primary network interface card (eth0)


IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

Apoi mai departe spre final:


GATEWAY=""

In acest caz sarcina ta este de a plasa informatia corecta intre


ghilimele. Aceste variabile sunt apelate de /etc/rc.d/rc.inet1 la
bootare pentru a seta interfetele de retea. Pentru fiecare dintre ele introdu
adrea IP corecta sau pune “YES” pentru USE_DHCP. Slackware va porni
interfetele cu informatia introdusa aici, in ordinea in care se afla.
Variabila DEFAULT_GW seteaza route-ul implicit pentru
Slackware. Toate comunicarile dintre computerul tau si alte computere de

73
Slackware Linux Essentials
pe internet vor trece prin acest gateway daca nu este specificat nici un
route. Daca folosesti DHCP de obicei nu va trebui sa introduci nimic aici,
deoarece serverul DHCP va specifica gateway-ul ce va fi utilizat.

5.3.4 /etc/resolv.conf
Ok, asadar ai o adresa IP, un gateway implicit, s-ar putea chiar sa ai
10 milioane de dolari (da-ne si noua), dar ce folos daca nu poti sa
denumesti adresele IP? Nimeni nu vrea sa tasteze 72.9.234.112 in
browserul de web pentru a vizualiza www.slackbook.org. In fond si la
urma urmei cine altcineva, in afara de autori, ar memora acea adresa IP?
Avem nevoie de configurarea DNS, dar cum? Aici intra in joc
/etc/resolv.conf.
Exista sanse ca deja sa ai optiunile corecte in /etc/resolv.conf.
Daca setezi conexiunile de retea folosind DHCP, atunci acest server ar
trebui sa gestioneze updatarea fisierului pentru tine. (Tehnic vorbind,
serverul DHCP dicteaza catre dhcpcd ce sa puna acolo, iar acesta se
supune.) Daca ai nevoie de updatarea manuala a listei de servere DNS,
atunci va trebui sa editezi manual /etc/resolv.conf. Mai jos este un
exemplu:
# cat /etc/resolv.conf
nameserver 192.168.1.254
search lizella.net

Prima linie este simpla. Directiva nameserver ne spune ce servere


DNS sa contactam. Din necesitate acestea sunt intotdeauna adrese IP. Poti
sa ai cate doresti dintre cele listate. Slackware va verifica unul dupa altul
pana returneaza un rezultat potrivit.
Cea de-a doua linie este ceva mai interesanta. Directiva search ne
ofera o lista de nume de domenii ce pot fi asumate oricand este facuta o
cerere DNS. Acest fapt permite contactarea unui calculator dar prin prima
parte a FQDN (Fully Qualified Domain Name). De exemplu, daca
"slackware.com" s-ar afla in calea ta de cautare ai putea sa ajungi la
http://store.slackware.com dar prin tastarea in browser
http://store.

# ping -c 1 store
PING store.slackware.com (69.50.233.153): 56 data bytes
64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.251/0.251/0.251 ms

74
Configurarea retelei
5.3.5 /etc/hosts
Acum ca am facut sa mearga DNS-ul, daca vrem sa trecem peste
serverul DNS sau sa adugam inca unul pentru un calculator care nu este in
DNS. Slackware include fisierul /etc/hosts, fisier care contine o lista
locala a numelor DNS si a adreselor IP la care ar trebui sa se conecteze.
# cat /etc/hosts
127.0.0.1 localhost locahost.localdomain
192.168.1.101 redtail
172.14.66.32 foobar.slackware.com

Aici poti sa vezi ca localhost are adresa 127.0.0.1 (intotdeauna


rezervata pentru localhost), redtail poate fi contactat la 192.168.1.101, si
foobar.slackware.com este 172.14.66.32.

5.4 PPP

Multa lume inca se conecteaza la Internet printr-o conexiune dial-up.


Cea mai comuna metoda este PPP, dar ocazional este folosita si SLIP.
Setarea sistemului tau pentru a vorbi PPP cu un server la distanta este
destul de usoara. Am inclus cateva instrumente care sa te ajute in setare.

5.4.1 pppsetup
Slackware include un program numit pppsetup pentru a configura
sistemul tau in vederea folosirii contului de dialup. Impartaseste aspectul si
functii similare cu programul netconfig. Pentru a rula programul asigura-
te ca esti logat ca si root. Apoi tasteaza pppsetup. Va trebui sa vezi un
ecran ca si acesta:
Programul va prezenta o serie de intrebari la care vei oferi raspunsu-
rile potrivite; se trateaza despre lucruri ca modem device, stringul de
initializare a modemului si numarul de telefon al ISP-ului(furnizorul de
internet). Unii itemi vor avea o optiune implicita pe care o poti accepta in
cele mai multe cazuri.
Dupa ce programul ruleaza va crea un program ppp-go si unul ppp-
off program. Acestea doua sunt folosite pentru pornirea si oprirea
conexiunii PPP. Cele doua programe sunt localizate in /usr/sbin si au
nevoie de drepturi de root pentru a rula.

75
Slackware Linux Essentials
5.4.2 /etc/ppp
Pentru cei mai multi utilizatori rularea pppsetup va fi suficienta.
Totusi este posibil sa existe un stadiu in care vrei sa imbunatatesti unele
dintre valorile utilizate de daemonul PPP. Toate informatiile legate de
configurare sunt pastrate in /etc/ppp. Aici este o lista ce arata pentru ce
sunt fiecare dintre diferitele fisiere:

ip-down
Acest script este rulat de catre pppd dupa ce conexiunea
PPP este terminata.
Acest script este rulat de catre pppd atunci cand exista o
ip-up
conexiune ppp reusita. Pune in acest fisier oricare dintre
comenzile pe care vrei sa le rulezi dupa o conexiune
reusita .
options Optiuni generale de configurare pentru pppd.
options.demand
Optiuni generale de configurare pentru pppd atunci cand
ruleaza in demand dialing mode.
pppscript Comenzile trimise modemului.
pppsetup.txt Un fisier log a ceea ce ai introdus cand rulai pppsetup.
Multe dintre fisiere nu se vor afla aici pana cand nu vei
rula pppsetup.

5.5 Wireless

Retelele wireless sunt un lucru relativ nou in lumea calculatoarelor,


dar totusi castiga repede teren in timp ce din ce in ce mai multa lume
cumpara laptopuri si vor retele mobile fara a mai fi incurcati de cabluri.
Acest fenomen nu da semne de incetinire. Din pacate retelele wireless nu
sunt la fel de bine suportate in Linux ca si celelalte clasice.
Sunt trei pasi de baza pentru configurarea unei placi de retea
wireless 802.11:
1. Suport hardware pentru placa de retea
2. Configurarea placii in vederea conectarii la un punct de acces
wireless
3. Configurarea retelei

76
Configurarea retelei
5.5.1 Suport Hardware
Suportul hardware pentru o placa wireless este realizat in kernel fie
printr-un modul, fie este construit in el. In general cele mai noi placi au
module in kernel, asa ca vei vrea sa determini modulul potrivit si sa-l
incarci prin /etc/rc.d/rc.modules. netconfig e posibil sa nu detecteze
placa de retea wireless, asa ca probabil va trebui sa determini ce model de
placa ai. Consulta http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
pentru mai multe informatii legate de driverele din kernel pentru placi de
retea wireless.

5.5.2 Configureaza wireless


Cele mai multe operatiuni in acest sens sunt executate de iwconfig,
asa ca trebuie sa citesti intotdeauna documentatia aferenta daca ai nevoie
de mai multa informatie.
In primul rand vei dori sa configurezi acces point-ul wireless. Aceste
puncte de acces variaza in terminologia proprie si in configurare, asa ca va
trebui sa te acomodezi cu acel hardware pe care l-ai cumparat. In general
vei avea nevoie cel putin de urmatoarele informatii.
• Domain ID, sau numele retelei (numita ESSID de catre iwconfig)
• Canalul pe care WAP il utilizeaza
• Setarile de encriptie, aici fiind incluse cheile folosite( preferabil in
hexadecimal)
O NOTA LEGATA DE WEP. WEP este destul de diversificat, dar este
mult mai bun decat nimic. Daca doresti un grad de securitate sporit in
reteaua ta wireless, ar trebui sa te interesezi in legatura cu VPN si
IPSec, dar ambele ies din sfera de interes al acestei carti. Ar trebui de
asemenea sa configurezi WAP sa nu isi expuna domain ID-ul sau
ESSID. O discutie mai amanuntita legata de securitatea wireless
depaseste scopul acestui capitol, dar o simpla cautare pe Google va
scoate la iveala mai multa informatie decat vei fi avut nevoie.
Odata ce ai adunat informatiile de mai sus, si presupunand ca ai
folosit modprobe pentru a incarca driverul din kernel necesar, poti sa
editezi rc.wireless.conf si sa adaugi setarile personale. Acest fisier este
putin cam dezordonat. Efortul minim este la modificarea sectiunii generice
cu ESSID si KEY personale, de asemenea si canalul daca este cerut acest
lucru de catre placa ta. (Incearca sa nu setezi canalul, si daca merge, atunci
este excelent; daca nu, seteaza canalul conform necesitatilor.) Daca

77
Slackware Linux Essentials
indraznesti, poti modifica fisierul astfel incat doar variabilele necesare sunt
setate. Numele variabilelor din rc.wireless.conf corespund parametrilor
iwconfig, sunt citite de catre rc.wireless si utilizate in comenzile
iwconfig.
Daca cheia ta este in hexadecimal, acest lucru este ideal, deoarece
poti avea incredere in faptul ca WAP si iwconfig vor cadea de acord in
privinta ei. Daca ai dar un string nu poti fi sigur de cum il va traduce WAP
in hexadecimal, asa ca este necesara putina intuitie (sau fa rost de cheia
WAP-ului in hexadecimal).
Odata ce ai modificat rc.wireless.conf, ruleaza rc.wireless ca
si root, apoi rc.inet1, tot ca si root. Poti testa conexiunea wireless cu
utilitare standard cum ar fi ping, alaturat iwconfig-ului. Daca ai o
conexiune cu fir poate vei dori sa folosesti ifconfig pentru a opri acest tip
de interfata in timp ce testezi interfata wireless pentru a te asigura ca nu
este nici o interferenta. Vei dori de asemenea sa testezi schimbarile facute
printr-un restart.
Acum, dupa ce ai vazut cum sa editezi /etc/rc.d/rc.wireless
pentru reteaua ta implicita, sa aruncam o privire mai atenta la iwconfig
pentru a vedea cum functioneaza. Acest fapt te va invata modul rapid si
murdar de a seta wifi pentru acele situatii cand te afli intr-un Internet cafe,
cofee shop sau alte locuri si doresti sa intri online.
Primul lucru pe care trebuie sa il faci e sa ii spui NIC-ului tau
wireless carei retele sa i se alature. Asigura-te si inlocuieste “eth0” cu
interfata pe care placa ta wireless o foloseste si schimba de asemenea
“mynetwork” cu ESSID-ul pe care vrei sa il folosesti. Da, stim ca esti mai
destept de cat atat. Urmatorul pas va fi sa specifici cheia de encriptie
folosita in retea (daca exista o asemena cheie). La final specifica canalul pe
care sa-l foloseasca (daca este nevoie).
# iwconfig eth0 essid "mynetwork"
# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
# iwconfig eth0 channel n

Acestea ar trebui sa fie sfarsitul setarilor retelei fara fir.

5.5.3 Configurarea retelei


Acest lucru se realizeaza exact in acelasi fel ca si in cazul retelelor
cu fir. Pur si simplu cauta prin sectiunile anterioare ale acestui capitol.

78
Configurarea retelei
5.6 Network File Systems

La acest nivel ar trebui sa ai o conexiune TCP/IP functionala. Ar


trebui sa fii capabil sa trimiti ping la alte calculatoare din reteaua ta
interna, iar daca ai configurat cum trebuie un gateway ar trebui de
asemenea sa poti trimite pingul calculatoarelor de pe Internet. Dupa cum
stim ideea conectarii unui calculator la o retea este de a accesa informatia.
In timp ce unii oameni ar putea conecta calculatorul la o retea dar pentru
distractie, cei mai multi doresc sa poata partaja fisiere si imprimante. Ei
doresc sa acceseze fisiere pe internet si sa se joace online diferite jocuri.
Faptul ca ai o conexiune TCP/IP functionala pe noua ta distributie
Slackware reprezinta un mod in care poti ajunge la acest scop, dar numai
cu TCP/IP instalat functionalitatea va fi una rudimetara. Pentru a partaja
fisiere va trebui sa le mutam inainte si inapoi folosind oricare dintre
protocoalele FTP sau SCP. Nu putem accesa fisiere in Slackware-ul nou
instalat folosind Network Neighborhood sau icoanele My Network Places
pe computerele care ruleaza Windows. Am dori sa putem accesa fara
probleme fisiere din alte calculatoare ce ruleaza Unix.
In mod ideal am dori sa folosim un network file system ce ne permite
accesul transparent la fisierele noastre pe alte calculatoare. Programele pe
care le folosim pentru a interactiona cu informatia stocata in calculatoarele
noastre nu au nevoie sa stie pe ce calculator sunt stocate anumite fisiere;
ele trebuie sa stie daca exista si cum sa il ia. Apoi este responsabilitatea
sistemului de operare sa gestioneze accesul la acel fisier prin intermediul
sistemelor de fisiere si network file systems. Doua dintre cele mai folosite
sisteme de fisiere sunt SMB (implementat de Samba) si NFS.

5.6.1 SMB/Samba/CIFS
SMB (de la Server Message Block) este un descendent al mai
vechiului protocol NetBIOS care a fost utilizat de IBM in produsul lor LAN
Manager. Microsoft a fost intotdeauna interesata de NetBIOS si succesorii
sai (NetBEUI, SMB si CIFS). Proiectul Samba a existat inca din 1991 cand a
fost scris pentru a lega un PC IBM ce rula sub protocolul NetBIOS cu un
server Unix. In zilele noastre SMB este metoda preferata pentru a partaja
fisiere si imprimante de-a lungul unei retele, virtual vorbind chiar pentru
intreaga lume civilizata, pentru ca Windows o suporta.
Fisierul de configurare al Samba este /etc/samba/smb.conf; unul
dintre cele mai bine comentate si documentate fisiere din cate vei gasi.
Partajari mostra au fost pregatite pentru tine ca se le vezi si sa le modifici

79
Slackware Linux Essentials
dupa nevoile tale. Daca ai nevoie de un control mult mai amanuntit pagina
man pentru smb.conf este indispensabila. Din moment ce Samba este atat
de bine documentat in ceea ce am spus mai devreme nu vom rescrie
documentatia aici. Totusi vom acoperi repede etapele de baza.
smb.conf este impartit in mai multe sectiuni: una pentru partajare si
una globala, pentru setarile care vor fi folosite pretutindeni. Unele optiuni
sunt valabile doar in sectiunea globala, iar unele doar in afara acesteia.
Aminteste-ti ca sectiunea globala poate fi suprimata de oricare alta
sectiune. Pentru mai multe informatii cauta in man pages.
Cel mai probabil vei dori sa editezi fisierul smb.conf pentru a reflecta
setarile de reteau in LAN. Ti-as sugera sa modifici itemii listati dedesubt:
[global]
# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
workgroup = MYGROUP

Schimba numele workgroup-ului pentru a reflecta un workgroup sau un


domain pe care il folosesti local.
# server string is the equivalent of the NT Description field
server string = Samba Server

Acesta va fi numele calculatorului tau cu Slackware instalat, nume care va


fi afisat in folderul Network Neighborhood (sau My Network Places).
# Security mode. Most people will want user level security.
See
# security_level.txt for details. NOTE: To get the behaviour
of
# Samba-1.9.18, you'll need to use "security = share".
security = user

Mai mult ca sigur ca vei dori sa implementezi nivelul de securitate pentru


user in sistemul tau Slackware.
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
# documentation.
# Do not enable this option unless you have read those
documents
encrypt passwords = yes

Daca encriptarea parolei nu este activata atunci nu vei putea sa


folosesti Samba cu NT4.0, Win2k, WinXP si Win20003. Sistemele
Windows precedente acestora nu necesita encriptie pentru partajarea
fisierelor.

80
Configurarea retelei
SMB este un protocol autentificat, acest lucru insemnand ca trebui sa
introduci un username si o parola corecte pentru a putea folosi acest
serviciu. Comunicam serverului samba ce usere si parole sunt valide prin
comanda smbpasswd. Aceasta comanda urmeaza cativa pasi pentru a-i
spune sa adauge fie un utilizator traditional, fie un utilizator-calculator
(SMB necesita adaugarea numelor NETBIOS ale computerelor ca si
utilizatori-calculatoare, astfel restrangand numarul de calculatoare de la
care cineva se poate autentifica).
Adding a user to the /etc/samba/private/smbpasswd file.
# smbpasswd -a user
Adding a machine name to the /etc/samba/private/smbpasswd
file.
# smbpasswd -a -m machine

Este important de remarcat faptul ca un nume de user sau de


calculator trebuie sa existe deja in fisierul /etc/passwd. Poti realiza acest
lucru prin comanda adduser. Nu uita ca atunci cand folosesti comanda
adduser pentru a adauga un nume de calculator trebuie sa-i atasezi
acestuia semnul dolarului (“$”). Acest lucru nu ar trebui facut cu
smbpasswd. smbpasswd ataseaza singur acest semn. Nereusita alocarii
calculatorului in acest fel cu adduser va genera o eroare in momentul in
care se va incerca adaugarea numelui calculatorului in samba.
# adduser machine$

5.6.2 Network File System (NFS)


NFS (sau Network File System) a fost scris initial de catre Sun
pentru implemetarea Solaris a Unix. In timp ce sunt semnificant mai
usoare instalarea si rularea, in comparatie cu SMB, este semnificant mai
putin sigur. In primul rand insecuritatea consta in faptul ca este usor sa
schimbi ID-ul grupului si utilizatorului de la un calculator la altul. NFS
este un protocol neautentificat. Viitoarele versiuni ale protocolului NFS
vor avea securitate sporita, dar facilitatile acestor versiuni nu sunt
cunoscute la momentul scrierii acestei carti.
Configurarea NFS este guvernata de fisierul /etc/exports. Cand
incarci acest fisier in forma lui implicita intr-un editor vei vedea un
document alb cu 2 linii deasupra. Va fi necesara adaugarea unei linii
fisierului exports pentru fiecare director pe care dorim sa-l exportam,
impreuna cu o lista de statii client care vor avea permisiunea de a accesa
acest fisier. De exemplu, daca am vrea sa exportam directorul /home/foo
catre statia Bar, ar trebui sa adaugam linia /home/foo Bar(rw)

81
Slackware Linux Essentials
/home/foo Bar(rw)

ls /etc/exports. Mai jos vei gasi exemplul din paginile man pentru
fisierul exports:
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub (ro,insecure,all_squash)

Dupa cum poti sa vezi exista optiuni variate, dar cele mai multe ar
trebui sterse din acest exemplu.
NFS functioneaza sub presumptia ca un anume user pe un calculator
intr-o retea are acelasi user ID pe toate calculatoarele din acea retea. Cand se
incearca sa se citeasca sau sa se scrie de la un client NFS la un server NFS,
un UID este transmis ca parte a cererii citire/scriere. Acest UID este tratat la
fel ca si cum cererea citire/scriere ar avea originea in acelasi calculator.
Dupa cum poti sa vezi, daca cineva ar putea in mod arbitrar sa specifice un
oarecare UID cand acceseaza resurse pe un sistem de la distanta, atunci s-ar
putea intampla, si chiar s-e intampla, lucruri nedorite. Ca si o protectie
partiala, fiecare director este montat cu optiunea root_squash. Acest lucru
stabileste UID pentru oricare user ce pretinde a fi root pentru un UID diferit
si se previne accesul ca si root la fisierele sau folderele din directorul
exportat. root_squash este activata implicit ca si masura de securitate, dar
autorii recomanda spcificarea ei oricum in fisierul /etc/exports.
Poti de asemenea sa exporti un director direct din linia de comanda
la server prin utilizarea comenzii exportfs dupa cum urmeaza:
# exportfs -o rw,no_root_squash Bar:/home/foo

Acesta linie exporta directorul /home/foo catre calculatorul “Bar” si


acorda nivel de acces citire/scriere. Aditional, serverul NFS nu va invoca
root_squash, ceea ce inseamna ca orice utilizator de pe Bar cu un UID "0"
(UID de root) va avea aceleasi privilegii ca si root pe server. Aceasta
sintaxa nu arata straniu (in mod uzual cand un director este specificat in
computer: sintaxa /director/fisier, te referi la un fisier situat intr-un director
pe un anume calculator). Vei gasi mai multe informatii in paginile man in
legatura cu fisierul exports.

82
Capitolul 6

Configurarea X
6.1 xorgconfig
6.2 xorgsetup
6.3 xinitrc
6.4 xwmconfig
6.5 xdm

Incepand cu Slackware-10.0, mediul X Window in Slackware este furnizat


de X.org. X este responsabil pentru oferirea unei interfete grafice catre
utilizator. Este independent de sistemul de operare, spre deosebire de
Windows sau MacOS. Sistemul X Window este implementat prin mai
multe programe care ruleaza in spatiul utilizator. Cele doua componente
principale sunt serverul si managerul de ferestre. Serverul ofera functile de
cel mai jos nivel pentru interactiunea cu placa video, deci este specific
sistemului. Managerul de ferestre sta deasupra serverului si furnizeaza
interfata cu utilizatorul. Avantajul este ca poti avea mai multe interfete
grafice, doar schimband managerul de ferestre pe care-l folosesti.
Configurarea X poate fi o activitate complexa. Motivul pentru aceasta este
numarul mare de placi video disponibile pentru arhitectura PC, majoritatea
folosind interfete de programare diferite. Din fericire, majoritatea placilor
video actuale suporta standardele de baza video, cunoscute ca VESA si
daca placa ta este printre ele, vei putea sa pornesti X folosind comanda
startx imediat dupa instalare. Daca nu functioneaza cu placa ta video sau
daca vrei sa te folosesti de functiile de inalta performanta ale placii video,
cum ar fi accelerarea hardware sau randarea hardware 3-D, atunci trebuie
sa configurezi X. Pentru a configura X, trebuie sa creezi un fisier
/etc/X11/xorg.conf. Acest fisier contine multe detalii despre placa ta
video, mouse si monitor. Este un fisier de configurare foarte complex dar,
din fericire, exista mai multe programe care pot crea fisierul pentru tine.
Vom mentiona cateva dintre ele aici.

83
Slackware Linux Essentials

6.1 xorgconfig

Acesta este o interfata bazata pe un meniu simplu, asemanatoare cu


programul de instalare Slackware. Programul ii spune lui X sa se uite la
placa video, iar apoi sa creeze cea mai buna configuratie initiala bazata pe
informatiile pe care le poate aduna. Fisierul /etc/X11/xorg.conf generat
ar trebui sa fie un punct de start bun pentru majoritatea sistemelor (si sa
mearga fara modificari).
Acesta este un program de configurare X bazat pe text, facut pentru
un administrator de sistem avansat. Iata un scurt ghid pentru folosirea
xorgconfig. In primul rand, porneste programul:
# xorgconfig

Asta iti va prezenta un ecran plin cu informatii despre xorgconfig.


Pentru a continua, apasa ENTER. xorgconfig te va ruga sa verifici ca ai
PATH corect configurat. Ar trebuie sa fie in regula, asa ca da-i drumul si
apasa ENTER.
Figura 6-1. xorgconfig Configurarea Mouse-ului

Selecteaza mouse-ul din meniul prezentat. Daca mouse-l tau serial nu


este afisat acolo, alege protocolul Microsoft - este cel mai comun protocol -
si probabil ca va merge. Apoi, xorgconfig te va intreba despre
ChordMiddle si Emulate3Buttons. Vei vedea aceste optiuni descrise in
84
Configurarea X
detaliu pe ecran. Foloseste-le daca butonul din mijloc al mouse-ului nu
functioneaza sub X sau daca mouse-ul tau are numai doua butoane
(Emulate3Buttons iti ofera posibilitatea de a emula butonul din mijloc prin
apasarea simultana a ambelor butoane). Apoi introdu numele mouse-ului tau.
Optiunea implicita, /dev/mouse, ar trebui sa mearga, din moment ce
legatura a fost configurata in timpul instalarii Slackware. Daca rulezi GPM
(serverul Linux pentru mouse) in modul repetor, poti configura tipul mouse-
ului tau ca /dev/gpmdata pentru ca X sa obtina informatiile despre mouse
prin gpm. In unele cazuri (in special cu mouse-uri pe bus) asta s-ar putea sa
mearga mai bine, dar majoritatea utilizatorilor nu ar trebui sa faca asta.
xorgconfig te va intreba daca vrei sa activezi legaturile pentru
tastele speciale. Daca ai nevoie de asta scrie "y". Majoritatea utilizatorilor
pot scrie "n" - scrie asta daca nu esti sigur.
Figura 6-2. xorgconfig Sincronizarea pe Orizontala

In urmatoarea sectiune introdu domeniul de sincronizare pentru


monitorul tau. Apasa ENTER. ca sa incepi configurarea monitoului. Vei
vedea o lista de tipuri de monitoare - alege unul din ele. Fii atent sa nu
depasesti specificatiile pentru monitorul tau. Asta ar putea sa iti strice
componentele.

85
Slackware Linux Essentials

Figura 6-3. xorgconfig Sincronizarea pe Verticalac

Specifica domeniul de sincronizare pe verticala pentru monitorul tau


(probabil ca vei gasi datele in manualul monitorului). xorgconfig te va ruga
sa introduci un sir de identificare a monitorului in fisierul xorg.conf.
Introdu orice vrei pe aceste 3 linii (inclusiv nimic).
Figura 6-4. xorgconfig Placa video

Acum ai posibilitatea sa te uiti in baza de date pentru tipuri de placi


video. O sa vrei sa faci asta, deci scrie "y" si alege o placa din lista afisata.
Daca nu vezi exact placa ta, incearca sa alegi una care foloseste acelasi
chipset si probabil va merge.

86
Configurarea X
Apoi, spune-i lui xorgconfig cat RAM ai pe placa ta video.
xorgconfig iti va cere sa introduci niste text pentru descrierea placii
video. Daca vrei, poti sa introduci descrierea pe aceste trei linii.
Apoi ti se va cere sa introduci rezolutia pe care vrei sa o folosesti.
Din nou, daca folosesti setarile implicite, ar trebui sa fie un bun punct de
pornire. Mai tarziu vei putea modifica fisierul /etc/X11/xorg.conf si vei
putea rearanja modurile astfel incat 1024x768 (sau orice altceva vrei) sa fie
setarea implicita.
In acest moment programul xorgconfig te va intreba daca vrei sa
salvezi fisierul de configurare curent. Spune-i da si fisierul de configurare
X va fi salvat, completand procesul. Acum poti porni X cu comanda
startx.

6.2 xorgsetup

A doua modalitate de a configura X este de a folosi xorgsetup, un


program de configurare automat ce vine cu Slackware.
Pentru a rula xorgsetup, intra ca root si scrie:
# xorgsetup

Daca ai deja un fisier /etc/X11/xorg.conf (pentru ca ai configurat


deja X), vei fi intrebat daca vrei sa faci o copie de siguranta inainte de a
continua. Fisierul original va fi redenumit ca /etc/X11/xorg.conf.backup.

6.3 xinitrc

xinit(1) este programul care porneste de fapt X; este apelat de


startx(1), asa ca s-ar putea sa-l fi observat deja (desi nu era nevoie).
Fisierul sau de configurare determina ce programe (inclusiv manager de
ferestre) sunt rulate la pornirea X. xinit cauta intai in directorul tau
personal un fisier .xinitrc. Daca fisierul este gasit, este rulat; daca nu,
este folosit /var/X11R6/lib/xinit/xinitrc (fisierul implicit pentru tot
sistemul). Iata un exemplu de fisier xinitrc.
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

87
Slackware Linux Essentials

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi

# start some nice programs

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Toate acele blocuri "if" sunt acolo pentru a folosi diverse alte
configurari din alte fisiere. Partea interesanta este spre sfarsit, unde sunt
rulate diverse programe. Aceasta sesiune X va porni cu managerul de
ferestre twm(1) un ceas si trei terminale. Inainte de ultima comanda exec
exista un xterm. El va inlocui shell-ul curent (cel din care se executa
scriptul xinitrc) cu comanda xterm(1). Cand iesi din acel xterm, sesiunea
curenta de X va fi incheiata.
Pentru a-ti particulariza initializarea X, copiaza fisierul implicit,
/var/X11R6/lib/xinit/xinitrc in ~/.xinitrc si modifica-l, inlocuind
liniile de program cu ceea ce doresti tu. Sfarsitul fisierului meu este:
# Start the window manager:
exec startkde

88
Configurarea X
In xinitrc.* sunt mai multe fisiere /var/X11R6/lib/xinit care
corespund diverselor managere de ferestre si GUI-uri. Le poti folosi pe
acelea daca doresti.

6.4 xwmconfig

De ani de zile, Unix a fost aproape exclusiv sistemul de operare al


serverelor, cu exceptia statiilor de lucru profesionale de mare putere.
Numai cei cu inclinatii tehnice foloseau un sistem de operare asemanator
cu Unix si asta s-a reflectat in interfata cu utilizatorul. GUI-urile au
tendinta sa fie cat mai simple, proiectate pentru a rula doar cateva aplicatii
grafice necesare, cum ar fi programe CAD sau generatoare de imagini.
Majoritatea administrarii sistemului si fisierelor era facuta din linia de
comanda. Diversi vanzatori (Sun Microsystems, Silicon Graphics, etc.)
vindeau statii de lucru cu intentia de a oferi o experienta cat mai omogena,
dar multitudinea de unelte GUI folosite de dezvoltatori a dus, inevitabil, la
distrugerea uniformitatii desktop-ului. O bara de defilare s-ar putea sa nu
arate la fel in doua aplicatii. Meniurile s-ar putea sa apara in locuri diferite.
Programele ar avea butoane si cutii de selectie diferite. Atata timp cat
utilizatorii erau cu precadere profesionisti tehnici, nimic din acestea nu
conta..
Odata cu aparitia sistemelor de operare gratuite asemananatoare cu
Unix si cu cresterea numarului si varietatii aplicatiilor grafice, X a castigat
un mare numar de utilizatori de desktop. Majoritatea utilizatorilor, desigur,
sunt obisnuiti cu experienta consistenta oferita de Microsoft Windows si
Apple MacOS; lipsa acestei consistente in aplicatiile bazate pe X devenise
o bariera spre acceptarea sa pe scara larga. Drept raspuns, doua proiecte
open-source au fost initiate: Mediul Desktop K, sau KDE si Mediul de
Modelare a Obiectelor Retea GNU, cunoscut drept GNOME. Fiecare are o
mare varietate de aplicatii, de la bare de aplicatii si managere de fisiere
pana la jocuri si suite de birou, scrise cu acelasi set de unelte GUI si strans
integrate, pentru a oferi un dekstop consistent.
Diferentele intre KDE si GNOME sunt in general destul de subtile.
Arata diferit unul de altul pentru ca fiecare foloseste alt set de unelte. KDE
este bazat pe libraria Qt de la Troll Tech AS, in timp de GNOME foloseste
GTK, un set de unelte dezvoltat initial pentru Programul de Manipulare a
Imaginilor GNU (sau The GIMP, pe scurt). Ca proiecte separate, KDE si
GNOME au fiecare proprii designeri si programatori, fiecare cu stiluri si

89
Slackware Linux Essentials
filozofii diferite. In orice caz, rezultatul a fost in esenta acelasi: un mediu
desktop consistent, strans integrat cu o colectie de aplicatii. Functiona-
litatea, utilizabilitatea si pura frumusete a atat KDE cat si GNOME
rivalizeaza cu orice altceva disponibil pentru alte sisteme de operare.
Partea cea mai buna este, totusi, ca aceste desktop-uri sunt gratuite.
Asta inseamna ca poti avea ori unul din ele ori amandoua (da, in acealasi
timp). Alegerea este a ta.
In plus fata de desktop-urile GNOME si KDE, Slackware include o
larga colectie de managere de ferestre. Unele sunt proiectate sa emuleze
alte sisteme de operare, unele pentru personalizare, altele pentru viteza. Ai
o varietate destul de mare. Desigur, poti sa instalezi cat de multe vrei, sa te
joci cu ele si sa decizi care iti place cel mai mult.
Pentru a face usoara alegerea desktop-ului, Slackware include un
program numit xwmconfig care poate fi folosit la alegerea unui desktop sau
manager de ferestre. Este rulat in modul urmator:
% xwmconfig

Figura 6-5. Configurarea Desktop-ului cu xorgconfig

Ti se va oferi o lista cu desktop-urile si managerii de ferestre. Alege-


l pe cel pe care il vrei din lista. Fiecare utilizator din sistemul tau va trebui
sa ruleze acest program, din moment ce utilizatori diferiti pot folosi
desktop-uri diferite si nu toti vor dori sa foloseasca managerul implicit pe
care l-ai ales la instalare.
Apoi porneste X si esti gata de lucru.

90
Configurarea X
6.5 xdm

Pe masura ce Linux devine din ce in ce mai folositor ca sistem de


operare desktop, multi utilizatori doresc ca sistemul lor sa porneasca direct
intr-un mediu grafic. Pentru asta, trebuie sa-i spui lui Slackware sa
porneasca direct in X si sa-i aloci un manager de login. Slackware vine cu
trei unelte grafice de login, xdm(1), kdm, si gdm(1).
xdm este managerul grafic de login livrat cu sistemul X.org. Este
omniprezent, dar nu are atatea caracteristici ca alternativele. kdm este
managerul grafic de login livrat cu KDE, Mediul Desktop K. In sfarsit, gdm
este managerul de login livrat cu GNOME. Oricare dintre acestea iti vor
permite login-ul cu userul dorit si alegerea desktop-ului pe care vrei sa-l
folosesti.
Din nefericire, Slackware nu include un program dragut, ca
xwmconfig pentru alegerea managerului de login pe care vrei sa-l folosesti
asa ca, daca toate sunt instalate, va trebui sa faci niste modificari pentru a-l
alege pe cel pe care-l doresti.
Pentru a porni X la boot, trebuie sa pornesti in nivelul de rulare 4.
Nivelele de rulare sunt doar o modalitate de a-i spune lui init(8) sa faca
ceva diferit cand porneste sistemul de operare. Vei face asta modificand
fisierul de configurare pentru init, /etc/inittab.
# These are the default runlevels in Slackware:
# 0 = halt
# 1 = single user mode
# 2 = unused (but configured the same as runlevel 3)
# 3 = multiuser mode (default Slackware runlevel)
# 4 = X11 with KDM/GDM/XDM (session managers)
# 5 = unused (but configured the same as runlevel 3)
# 6 = reboot

# Default runlevel. (Do not set to 0 or 6)


id:3:initdefault:

Pentru a face ca Slackware sa porneasca in mediul grafic, vei


schimba 3 in 4.
# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:

Acum Slackware va porni in nivelul de rulare 4 si va executa


/etc/rc.d/rc.4. Acest fisier porneste X si apeleaza managerul de login
pe care l-ai ales. Deci, cum alegi un manager de login? Sunt cateva moduri
de a face asta si le voi explica dupa ce aruncam o privire in fisierul rc.4.
91
Slackware Linux Essentials
# Try to use GNOME's gdm session manager:
if [ -x /usr/bin/gdm ]; then
exec /usr/bin/gdm -nodaemon
fi

# Not there? OK, try to use KDE's kdm session manager:


if [ -x /opt/kde/bin/kdm ]; then
exec /opt/kde/bin/kdm -nodaemon
fi

# If all you have is XDM, I guess it will have to do:


if [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon
fi

Dupa cum vezi aici, rc.4 verifica intai daca gdm este executabil si
daca da, il executa. Al doilea in lista este kdm, si in final, xdm. O modalitate
de a alege un manager de login este de a le dezinstala pe cele pe care nu le
vei folosi, utilizand removepkg. Poti gasi mai multe despre removepkg in
Capitolul 18.
Optional, poti sterge permisiunile de executie ale acelor fisiere pe
care nu vrei sa le folosesti. Vom discuta chmod in Capitolul 9.
# chmod -x /usr/bin/gdm

In sfarsit, poti comenta liniile care nu vrei sa fie folosite de


managerul de login.
# Try to use GNOME's gdm session manager:
# if [ -x /usr/bin/gdm ]; then
# exec /usr/bin/gdm -nodaemon
# fi

# Not there? OK, try to use KDE's kdm session manager:


if [ -x /opt/kde/bin/kdm ]; then
exec /opt/kde/bin/kdm -nodaemon
fi

# If all you have is XDM, I guess it will have to do:


if [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon
fi

Toate liniile care incep cu diez (#) sunt considerate comentarii si


shell-ul trece peste ele. Asadar, chiar daca gdm este instalat si executabil,
shell-ul (in acest caz bash) nu se va mai chinui sa verifice daca exista.

92
Capitolul 7

Initializarea (booting)
7.1 LILO
7.2 LOADLIN
7.3 Dual Boot

Procesul de boot pe sistemul tau Linux poate fi cateodata simplu si


cateodata complicat. Multi utilizatori instaleaza Slackware pe calculatoa-
rele lor si gata. Il deschid si e gata de folosire. Alteori, doar pornirea unei
masini poate fi o cazna. Pentru majoritatea utilizatorilor, LILO
functioneaza cel mai bine. Slackware include LILO si Loadlin pentru
pornirea Slackware Linux. LILO functioneaza de pe o partitie de pe hard-
disc, MBR-ul de pe un hard-disc sau o discheta, facandu-l o unealta foarte
versatila. Loadlin functioneaza din linia de comanda DOS, omorand DOS-
ul si invocand Linux.
O alta unealta foarte populara pentru pornirea Linux-ului este GRUB.
GRUB nu este inclus sau suportat oficial de Slackware. Slackware detine
standardul “asta-i incercata si merge” pentru ceea ce ajunge sa fie inclus in
distributie. Desi GRUB merge bine si include unele caracteristici pe care
LILO nu le are, LILO se descurca foarte bine cu toate misiunile esentiale
ale unui boot-loader si are un record dovedit si incercat in timp. Fiind mai
tanar, GRUB nu a ajuns inca sa aiba aceasta mostenire. Deoarece nu este
inclus in Slackware, nu vom discuta despre el aici. Daca doresti sa
folosesti GRUB (poate ca a venit cu alt sistem de operare si vrei sa-l
folosesti pentru dual-boot), citeste documentatia GRUB.
Aceasta sectiune discuta utilizarea LILO si Loadlin, cele doua managere de
boot incluse in Slackware. De asemenea, explica scenariile tipice de dual-
boot si cum poti sa le configurezi.

93
Slackware Linux Essentials

7.1 LILO

Linux Loader, sau LILO, este cel mai popular manager de boot in
folosinta pe sistemele Linux. Este foarte configurabil si poate fi folosit cu
usurinta pentru a porni alte sisteme de operare.
Slackware Linux vine cu un utilitar de configurare bazat pe meniu,
numit liloconfig. Acest program este rulat prima data in timpul procesului
de instalare, dar il poti invoca mai tarziu scriind liloconfig in linia de
comanda.
LILO citeste configuratia din fisierul /etc/lilo.conf(5). Nu este
citita la fiecare boot, ci de fiecare data cand instalezi LILO. LILO trebuie
instalat in sectorul de boot de fiecare data cand aduci schimbari
configuratiei. Multe erori ale LILO apar datorita schimbarilor aduse in
fisierul lilo.conf dar neimplementarii acestor schimbari prin re-rularea
LILO. liloconfig te va ajuta sa construiesti fisierul de configurare astfel
incat sa poti instala LILO pe sistemul tau. Daca preferi sa modifici fisierul
/etc/lilo.conf de mana, atunci reinstaleaza LILO scriind /sbin/lilo
(ca root) la linia de comanda.
Prima data cand vei invoca liloconfig, va arata astfel:
Figura 7-1. liloconfig

94
Initializarea (booting)
Daca este prima data cand configurezi LILO, ar trebui sa alegi
optiunea simple. Altfel, s-ar putea sa descoperi ca optiunea expert este mai
rapida daca esti familiarizat cu LILO si Linux. Selecteaza simple pentru a
incepe sa configurezi LILO.
Daca optiunea kernel frame buffer support este compilata in kernelul
tau, liloconfig te va intreba ce rezolutie vrei sa folosesti. Acesta
rezolutie este folosita si de serverul frame buffer XFree86. Daca nu vrei sa
rulezi consola in mod video, alege normal pentru a pastra modul text
standard de 80x25 caractere.
Urmatoarea parte din configurarea LILO este sa alegi unde il vrei
instalat. Acesta este probabil cel mai important pas. Lista de mai jos
explica locurile de instalare:
Root
Aceasta optiune instaleaza LILO la inceputul partitiei radacina din
Linux. Aceasta este cea mai sigura optiune daca ai si alte sisteme de
operare instalate pe calculator. Ea te asigura ca alte managere de
boot nu sunt suprascrise. Dezavantajul este ca LILO nu se va
incarca de acolo decat daca discul cu Linux este primul din sistem.
De accea, multi utilizatori prefera sa creeze o mica partitie /boot
unde LILO le poate gasi. Versiunile anterioare de LILO contineau o
eroare celebra, cunoscuta drept “limita cilindrului 1024”. LILO nu
putea sa incarce kernel-uri de pe partitii care incepeau dupa al 1024-
lea cilindru. Editiile recente de LILO au eliminat aceasta problema.
Floppy
Aceasta metoda este si mai sigura decat cea precedenta. Ea creaza o
discheta de boot pe care o poti folosi pentru a porni sistemul tau
Linux. Aceasta tine managerul de boot departe de hard-disc, astfel
ca poti utiliza aceasta discheta doar cand vrei sa pornesti Slackware.
Neajunsurile sunt evidente. Dischetele sunt de notorietate pentru un
comportament anarhic, predispuse la erori. In al doilea rand,
managerul de boot nu mai este inchis in calculator. Daca pierzi
discheta, trebuie sa creezi alta pentru a-ti putea porni sistemul.
MBR
Vei folosi aceasta metoda daca Slackware va fi unicul tau sistem
de operare sau daca vei folosi LILO pentru a alege din sisteme de
operare multiple. Aceasta este metoda preferata pentru instalarea
LILO si va functiona cu aproape orice sistem.
Aceasta optiune va suprascrie orice alt manager de boot ai
instalat in MBR. .

95
Slackware Linux Essentials
Dupa ce ai ales locul de instalare, liloconfig va scrie fisierul de
configurare si va instala LILO. Asta-i tot. Daca alegi modul expert, vei
obtine un meniu special. El iti permite sa ajustezi fisierul /etc/lilo.conf
sa adaugi alte sisteme de operare la meniul de boot si sa faci ca LILO sa
trimita parametri speciali catre kernel la pornire. Meniul expert arata in
felul urmator:
Figura 7-2. liloconfig Meniul expert

Oricare ar fi configuratia sistemului tau, este foarte usor sa configurezi un


manager de boot. liloconfig o face sa para o joaca de copii.

7.2 LOADLIN

Cealalta optiune de boot care vine cu Slackware Linux este


LOADLIN. LOADLIN este un executabil DOS, care poate fi folosit pentru
a porrni Linux dintr-un sistem DOS. El necesita ca kernelul Linux sa fie pe
o partitie DOS, astfel incat LOADLIN sa-l poata incarca si sa porneasca
sistemul in mod corect.
In timpul procesului de instalare, LOADLIN va fi copiat in
directorul personal al utilizatorului root ca fisier .ZIP. Nu exista un proces
automat de configurare pentru LOADLIN. Va trebui sa copiezi kernelul
Linux (de obicei /boot/vmlinuz) si fisierul LOADLIN din directorul
personal al utilizatorului root pe partitia de DOS.

96
Initializarea (booting)
LOADLIN este util cand vrei sa creezi un meniu de boot pe partitia
ta DOS. Un meniu poate fi adaugat in fisierul AUTOEXEC.BAT care sa iti
poata oferi optiunea intre Linux si DOS. Alegerea optiunii Linux va rula
LOADLIN, pornind astfel sistemul Slackware. Urmatorul fisier
AUTOEXEC.BAT sub Windows 95, va oferi un meniu de boot suficient:

@ECHO OFF
SET PROMPT=$P$G
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
CLS
ECHO Please Select Your Operating System:
ECHO.
ECHO [1] Slackware Linux
ECHO [2] Windows 95
ECHO.
CHOICE /C:12 "Selection? -> "
IF ERRORLEVEL 2 GOTO WIN
IF ERRORLEVEL 1 GOTO LINUX
:WIN
CLS
ECHO Starting Windows 95...
WIN
GOTO END
:LINUX
ECHO Starting Slackware Linux...
CD \LINUX
LOADLIN C:\LINUX\VMLINUZ ROOT=<root partition device> RO
GOTO END
:END

Va trebui sa specifici partitia radacina ca un periferic Linux, cum ar


fi /dev/hda2 sau altceva. Poti folosi LOADLIN si din linia de comanda. Il
folosesti exact ca in exemplul de mai sus. Documentatia LOADLIN vine
cu multe exemple despre modul de folosire.

7.3 Dual Boot

Multi utilizatori isi configureaza sistemul sa porneasca Slackware


Linux si un alt sistem de operare. O sa descriem scenariile tipice de dual-
boot, in cazul in care intampini dificultati in configurarea sistemului tau.

97
Slackware Linux Essentials
7.3.1 Windows
Configurarea calculatorului cu MS Windows si Linux este, probabil,
cel mai comun scenariu de dual-boot. Sunt numeroase posibilitati de a
realiza configurarea de boot, dar aceasta sectiune va acoperi numai doua.
Deseori, cand cineva vrea sa configureze un sistem cu dual-boot, va
concepe un plan perfect in ceea ce priveste locatiile, dar va distruge tot cu
ordinea instalarilor. Este foarte important sa intelegi ca sistemele de
operare trebuiesc instalate intr-o anumita ordine pentru a avea un dual-boot
functional. Linux ofera intotdeauna controlul asupra a ceea ce va fi scris in
MBR. De aceea, sfatul nostru este ca Linux sa fie instalat ultimul.
Windows ar trebui instalat primul, deoarece intotdeauna va suprascrie
MBR-ul cu propriul utilitar de boot, distrugand orice a fost scris inainte de
catre Linux.

7.3.1.1 Using LILO


Majoritatea vor dori sa foloseasca LILO pentru a alege intre Linux si
Windows. Dupa cum am spus mai sus, ar trebui sa instalezi intai Windows,
apoi Linux.
Sa zicem ca ai un unic hard-disc IDE de 40GB in sistemul tau. De
asemenea, sa zicem ca vrei sa aloci jumatate din spatiu pentru Windows si
cealalata jumatate pentru Linux. Aceasta va fi o problema cand vei vrea sa
pornesti in Linux.
20GB Windows boot (C:)
1GB Linux root (/)
19GB Linux /usr (/usr)

De asemenea, va trebui sa pui de-o parte niste spatiu pentru partitia


swap Linux. Regula nescrisa este sa folosesti de doua ori cantitatea de
RAM pe care o ai in sistem. Un sistem cu 64MB de RAM ar avea 128MB
de swap si asa mai departe. Necesarul adecvat de spatiu este tinta multor
discutii aprinse pe IRC si Usenet. Nu exista un mod “corect” de a o face,
dar urmand regula de mai sus, ar trebui sa fie suficient.
Dupa ce ai creat partitiile, ar trebui sa instalezi Windows. Dupa ce
acesta este functional, ar trebui sa instalezi Linux. Instalarea LILO va avea
nevoie de atentie speciala. Va trebui sa folosesti modul expert la instalarea sa.
Incepe o noua configurare de LILO. Va trebui sa-l instalezi in MBR,
astfel incat sa poata fi folosit la alegerea intre cele doua sisteme. Din
meniu, adauga partitia Linux si partitia Windows (sau DOS). Odata ce ai
terminat, poti instala LILO.

98
Initializarea (booting)
Reporneste calculatorul. LILO ar trebui sa se incarce sa sa afiseze un
meniu, lasandu-te sa alegi dintre cele doua sisteme de operare pe care le ai
instalate. Alege numele sistemului de operare pe care vrei sa-l incarci
(aceste nume au fost alese cand ai configurat LILO).
LILO este un manager de boot destul de configurabil. Nu este limitat
numai la Linux si DOS. Poate porni cam orice. Paginile man pentru
lilo(8) si lilo.conf(5) iti vor oferi informatii mai detaliate.
Dar daca LILO nu merge? Sunt cazuri in care LILO pur si simplu nu
va merge pe o anumita masina. Din fericire, exista o alta modalitate de a
realiza un dual-boot cu Linux si Windows.

7.3.1.2 Using LOADLIN


Aceasta metoda poate fi folosita daca LILO nu merge pe sistemul
tau, sau daca nu vrei sa instalezi LILO. Acesta metoda este ideala pentru
utilizatorii care reainstaleaza des Windows. De fiecare daca cand
reinstalezi Windows, MBR-ul va fi suprascris, distrugand instalarea de
LILO. Cu LOADLIN, aceata nu mai e o problema. Marele dezavantaj este
ca nu poti folosi LOADLIN decat pentru a porni Linux.
Cu LOADLIN, poti instala sistemele de operare in ce ordine vrei tu.
Fii atent la lucrurile care se vor instala in MBR. LOADLIN se bazeaza pe
faptul ca partitia de Windows este o partitie de boot. Astfel, in timpul
instalarii Slackware, asigura-te ca sari peste pasul instalarii LILO.
Dupa ce ai instalat sistemele de operare, copiaza fisierul
loadlinX.zip (unde X este un numar de versiune, cum ar fi 16a) din
directorul personal al utilizatorului root pe partitia Windows. Va trebui sa fii
in Linux pentru ca asta sa mearga. Iata un exemplu despre cum se face asta:
# mkdir /win
# mount -t vfat /dev/hda1 /win
# mkdir /win/linux
# cd /root
# cp loadlin* /win/linux
# cp /boot/vmlinuz /win/linux
# cd /win/linuz
# unzip loadlin16a.zip

Aceasta va crea un director numit C:\LINUX pe partitia ta Windows


(presupunand ca este /dev/hda1) si va copia lucrurile necesare pentru
LOADLIN. Dupa ce ai facut asta, trebuie sa repornesti in Windows si sa
configurezi un meniu de boot.
Odata ajuns in Windows, intra in linia de comanda DOS. In primul
rand, trebuie sa te asiguri ca sistemul este configurat sa nu porneasca o
interfata grafica la boot.
99
Slackware Linux Essentials
C:\> cd \
C:\> attrib -r -a -s -h MSDOS.SYS
C:\> edit MSDOS.SYS

Adauga aceasta linie in fisier:


BootGUI=0

Acum salveaza fisierul si iesi din editor. Acum modifica fisierul


C:\AUTOEXEC.BAT astfel incat sa poti adauga un meniu de boot. Urmatorul
este un exemplu de configurare a unui bloc de meniu de boot in
AUTOEXEC.BAT

cls
echo System Boot Menu
echo.
echo 1 - Linux
echo 2 - Windows
echo.
choice /c:12 "Selection? -> "
if errorlevel 2 goto WIN
if errorlevel 1 goto LINUX
:LINUX
cls
echo "Starting Linux..."
cd \linux
loadlin c:\linux\vmlinuz root=/dev/hda2 ro
goto END
:WIN
cls
echo "Starting Windows..."
win
goto END
:END

Linia cheie este cea care ruleaza LOADLIN. Ii spunem ce kernel sa


incarce, care este partitia radacina Linux si ca o vrem montata initial numai
in modul citire.
Aceste unelte sunt oferite de Slackware Linux. Exista numeroase alte
managere de boot pe piata, dar acestea ar trebui sa functioneze in
majoritatea cazurilor de dual-boot.

7.3.1.3 “manarie” Windows NT Invechita


Acesta este cea mai putin comuna situatie de dual-boot. Mai demult,
LILO nu putea sa porneasca un sistem Windows NT, facandu-i pe
utilizatorii de Linux sa fie nevoiti sa modifice NTLDR, ceea ce punea mai
multe probleme decat un dual-boot intre Windows 9x si Linux. Ia aminte
100
Initializarea (booting)
ca urmatoarele instructiuni sunt invechite. De mai multi ani, LILO poate
porni un sistem Windows NT/2000/XP/2003. Totusi, daca folosesti o
masina antica, vei avea nevoie tocmai de o astfel de schema.
1. Instaleaza Windows NT
2. Instaleaza Linux si asigura-te ca LILO este instalat in superblocul
partitiei Linux
3. Ia primii 512 octeti ai partitiei Linux si stocheaza-i pe partitia
Windows NT
4. Modifica fisierul C:\BOOT.INI sub Windows NT si adauga o
optiune Linux
Instalarea Windows NT nu ar trebui sa puna probleme, la fel
instalarea Linux. De aici incolo, lucrurile sunt putin mai grele. Sa iei primii
512 octeti ai partitiei Linux, este mai usor decat suna. Nu trebuie decat sa
fii in Linux ca sa faci asta. Presupunand ca partitia Linux este /dev/hda2,
da comanda:
# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512

Asta-i tot. Acum, trebuie sa copiezi pe partitia Windows NT. Aici vei
intampina alta problema. Linux nu are un suport stabil pentru scrierea pe
partitii Window NT. Daca ai instalat Windows NT si ai formatat discul ca
NTFS, va trebui sa copiezi fisierul pe o discheta FAT si apoi sa o citesti in
Windows NT. Oricum ai face-o, trebuie sa duci fisierul /tmp/bootsect.lnx
de pe discul Linux in C:\BOOTSECT.LNX pe discul Windows NT.
Ultimul pas este sa adaugi o optiune in meniul de boot Windows NT.
Sub Windows NT deschide o linie de comanda.
C:\WINNT> cd \
C:\> attrib -r -a -s -h boot.ini
C:\> edit boot.ini

Adauga acesta linie la sfarsitul fisierului:


C:\bootsect.lnx="Slackware Linux"
Salveaza schimbarile si iesi din editor. Cand vei reporni Windows NT,
vei avea o optiune Linux in meniu. Alegand-o, vei putea porni in Linux.

7.3.2 Linux
Da, acest lucru chiar se intampla. Acesta este cu siguranta cel mai
usor scenariu de dual-boot. Poti folosi LILO si sa adaugi mai multe intrari
in fisierul /etc/lilo.conf Asta-i tot.

101
Capitolul 8

Shell-ul
8.1 Utilizatorii
8.2 Linia de comanda
8.3 Shell-ul Bourne Again (bash)
8.4 Terminale virtuale

Intr-un mediu grafic, interfata este oferita de un program care creeaza


ferestre, bare de scroll, meniuri, etc. Intr-un mediu al liniei de comanda,
interfata utilizator este oferita de un “shell”, care interpreteaza comenzi si
in general face lucrurile folosibile. Imediat dupa logare (ceea ce se discuta
in acest capitol), utilizatorii sunt pusi intr-un shell si li se permite sa isi
vada de treaba. Acest capitol are rol de introducere in shell si la cel mai
obisnuit shell intre utilizatorii Linux -- Shell-ul Bourne Again (bash).
Pentru informatii mai detaliate despre orice in acest capitol, verifica pagina
de manual bash(1).

103
Slackware Linux Essentials

8.1 Utilizatorii

8.1.1 Logarea
Deci, ai boot-at si te uiti la ceva care arata cam asa:
Welcome to Linux 2.4.18
Last login: Wed Jan 1 15:59:14 -0500 2005 on tty6.
darkstar login:

Hmm.. nu a spus nimeni nimic despre un login. Si ce este un


darkstar? Nu iti face griji; probabil ca nu ai lansat accidental un comm-link
hiper spatial catre luna artificiala a Imperiului. (Ma tem ca protocolul
comm-link hiper spatiu nu este suportat in mod actual de catre nucleul
Linux. Poate o ramura a kernelului 2.6 sa ofere acest mult asteptat
protocol). Nu, darkstar este doar numele unuia dintre calculatoarele noastre
si numele lui este marcat ca si default. Daca ai specificat un nume pentru
calculatorul tau in timpul instalarii, ar trebui sa il vezi in loc de darkstar.
Cat pentru login... Daca asta este prima data pentru tine, vei vrea sa
te loghezi ca root. Ti se va cere o parola; daca ai pus una in timpul
procesului de instalare asta e ceea ce cere. Daca nu, apasa doar pe enter.
Asta e -- esti inauntru!

8.1.2 Root: Super Utilizatorul


Bine, cine sau ce este root? Si ce face cu un cont pe sistemul tau?
Pai, in lumea Unix si sisteme de operare similare (ca Linux), sunt tot
felul de utilizatori. Vom intra in mai multe detalii despre asta mai tarziu,
dar lucrul important de stiut este ca root este utilizatorul deasupra tuturor
utilizatorilor; root este atotputernic si atotstiutor si nimeni nu trece peste
root. Pur si simplu nu e permis. root este ceea ce noi numim un “super-
utilizator”, si pe buna dreptate. Si cel mai bun lucru este ca root esti tu.
Misto, nu?
Daca nu esti sigur: da, e foarte misto. Poanta este ca root are
permisiunea de a strica orice daca asta ii este dorinta. Poate ca vrei sa sari
inainte la Sectiunea 12.1.1 si sa vezi despre adaugarea unui utilizator; pe
urma logheaza-te ca acel utilizator si opereaza de acolo. Un sfat din batrani
spune ca este bine sa devii super utilizator doar cand este absolut necesar,
pentru a minimaliza posibilitatea de a strica ceva accidental.

104
Shell-ul
Apropo, daca decizi ca vrei sa fii root cat timp esti logat ca si
altcineva, nici o problema. Foloseste comanda su(1). Ti se va cere parola
root si pe urma te va face root pana cand tastezi exit sau logout. Poti de
asemenea deveni orice alt utilizator folosind su, dat fiind ca stii parola
acelui utilizator: su logan, de exemplu, te va face eu.
root este disponibil pentru orice utilizator, fara a se cere parola
utilizatorului respectiv.

8.2 Linia de comanda

8.2.1 Rularea programelor


E greu sa rezolvi ceva fara a rula un program; ai putea probabil sa
sprijini ceva cu calculatorul sau sa tii o usa deschisa si cateva vor face cel
mai frumos zumzait cand sunt pornite, dar cam asta e tot. Si cred ca putem
fi cu totii de acord ca folosirea lui ca stop de usa zumzaitor nu este ceea ce
l-a facut popular.
Deci, tii minte cum aproape totul in Linux este un fisier? Pai, asta se
aplica si programelor. Fiecare comanda pe care o tastezi (care nu este
incorporata in shell) se afla intr-un fisier undeva. Rulezi un program prin
simpla specificare a intregii cai spre acesta.
De exemplu, tii minte comanda su din ultima sectiune? Pai, fisierul
respectiv este de fapt in directorul /bin. /bin/su ar fi un mod de a-l rula.
Si de ce atunci doar tastand su functioneaza? Doar nu ai spus ca se
afla in /bin. Ar putea la fel de usor sa fie in /usr/local/share, nu? De
unde a stiut? Raspunsul pentru asta se afla in variabila de mediu PATH.
Majoritatea shell-urilor au fie PATH sau ceva foarte asemanator cu PATH. Ea
contine de fapt o lista de directoare in care sa se uite dupa programe pe
care incerci sa le rulezi. Deci cand ai tastat su, shell-ul tau a parcurs lista
de directoare, verificand fiecare director pentru un fisier executabil numit
su pe care poate sa il ruleze; primul de care da, il ruleaza. Aceasta se
intampla de fiecare data cand rulezi un program fara a specifica intreaga
cale catre el; daca primesti o eroare “Command not found” asta inseamna
doar ca programul pe care ai incercat sa il rulezi nu se afla in PATH. -ul tau.
(Desigur, acesta ar fi adevarat daca programul nu exista deloc...). Vom
discuta despre variabile de mediu in mai mult detaliu in sectiunea intitulata
Shell-ul Bourne Again (bash).

105
Slackware Linux Essentials
De asemenea tine minte ca “.” este prescurtarea pentru “directorul in
care ma aflu”, deci daca se intampla sa fii in /bin, ./su ar functiona ca si
cum i-ai fi dat intreaga cale.

8.2.2 Wildcards
Aproape orice shell recunoaste cateva caractere ca inlocuitoare ceea
ce inseamna ca acele caractere speciale pot tine locul oricaror alte
caractere. Asemenea caractere sunt numite “wildcards”; cele mai obisnuite
sunt * si ?. Prin conventie, ? de obicei tine locul unui singur caracter,
oricare ar fi acela. De exemplu, sa presupunem ca esti intr-un director cu
trei fisiere: ex1.txt, ex2.txt, si ex3.txt.Vrei sa copiezi toate acele
fisiere (folosind comanda cp despre care discutam in sectiunea intitulata cp
in Capitolul 10) intr-un alt director, sa spunem /tmp. Pai, tastand cp
ex1.txt ex2.txt ex3.txt /tmp este prea mult lucru. Este mult mai usor
sa scrii cp ex?.txt /tmp; caracterul ? se va potrivi cu fiecare dintre
caracterele “1”, “2”, si “3”, si fiecare la randul lui va fi inlocuit.
Ce anume spui? Tot prea de lucru? Ai dreptate. Este infricosator;
avem legi impotriva muncii care sa ne protejeze de astfel de lucruri. Din
fericire de asemenea avem si * Dupa cum s-a spus deja, * se potriveste “cu
orice numar de caractere”, incluzand 0 cat si caracterul vid (''). Deci daca
acele trei fisiere sunt singurele din director, am putea sa spunem la fel de
simplu cp cp * /tmp si sa le luam pe toate dintr-o lovitura. Sa
presupunem, desi, ca mai este si un fisier ex.txt si unul hejaz.txt. Vrem
sa copiem ex.txt dar nu hejaz.txt; cp ex* /tmp va face asta pentru noi.
cp ex?.txt /tmp, desigur va copia doar cele trei fisiere originale;
nu este nici un caracter in ex.txt care sa se potriveasca cu acel ?, asa ca ar
fi exclus.
Un alt wildcard folosit frecvent este perechea de paranteze drepte [ ].
Orice caractere din interiorul parantezelor [] vor fi inlocuite in acelasi loc
cu ceea ce se potirveste. Suna confuz? Nu e chiar asa de rau. Sa
presupunem, spre exemplu, ca avem intr-un director urmatoarele opt
fisiere: a1, a2, a3, a4, aA, aB, aC, si aD . Dorim sa listam doar fisierele care
se termina in cifre. [ ] va face asta pentru noi.
% ls a[1-4]
a1 a2 a3 a4

Dar daca de fapt dorim doar a1, a2, si a4? In exemplul precedent am
folosit caracterul - pentru a specifica toate valorile intre 1 si 4. Putem
separa valorile intermediare folosind virgula:

106
Shell-ul
% ls a[1,2,4]
a1 a2 a4

Stiu la ce va ganditi: “Cum ramane cu literele?” Linux este case-


sensitive adica a si A sunt caractere diferite si legatura dintre ele este doar
in mintea noastra. Literele mari sunt inaintea literelor mici, asa ca A si B
sunt inaintea lui a si b. Continuand exemplul nostru, daca dorim a1, si A1,
le putem gasi repede folosind [ ].
% ls [A,a]1
A1 a1

De retinut ca daca am fi folosit minus in loc de virgula, rezultatul era unul


gresit:
% ls [A-a]1
A1 B1 C1 D1 a1

Putem, de asemenea, combina semnul minus cu virgula.


% ls [A,a-d]
A1 a1 b1 c1 d1

8.2.3 Redirectionarea Intrarii/Iesirii si Intubarea


(Urmeaza ceva misto.)
% ps > blargh

Stii ce inseamna asta? Sunt eu ruland ps pentru a vedea ce procese


ruleaza; ps este discutat in Capitolul 11.3. Nu aceasta este partea misto.
Partea misto e > blargh, care inseamna in mare ”ia iesirea de la ps si scrie
asta intr-un fisier numit blargh”. blargh. Dar stai, devine si mai misto.
% ps | less

Aceasta ia iesirea de la ps si o “intubeaza” prin less, asa pot sa trec


peste ea dupa bunul plac.
% ps >> blargh

Acesta este al treilea cel mai folosit caracter de redirectionare; face


acelasi lucru ca si “>”, doar ca “>>” va adauga iesirea de la ps fisierului
blargh, daca fisierul exista. Daca nu, la fel ca si cu “>”, va fi creat. (“>” va
sterge continutul actual al lui blargh.)

107
Slackware Linux Essentials
Mai este si un operator “<” care inseamna “ ia intrarea de la
urmatoarele”, dar nu este folosit la fel de des.
% fromdos < dosfile.txt > unixfile.txt

Redirectionarea devine cu adevarat amuzanta cand incepi sa o stivuiesti:


% ps | tac >> blargh

Aceasta va rula ps, va inversa linile iesirii sale si va adauga acestea


fisierului blargh. Poti stivui cati operatori vrei; dar fi atent sa tii minte ca
ele sunt interpretate de la stanga la dreapta.
Vezi pagina de manual bash(1) pentru informatii mai detaliate
despre redirectionare.

8.3 Shell-ul Bourne Again (bash)

8.3.1 Variabile de Mediu


Un sistem Linux este o bestie complexa si sunt multe de care trebuie
sa tii cont, multe detalii mici care apar in interactiunile tale normale cu
diferite programe (cateva de care probabil ca nici nu trebuie sa fi
constient). Nimeni nu vrea sa transmita o sumedenie de optiuni fiecarui
program care este rulat, spunandu-i ce fel de terminal este folosit,
hostname-ul calculatorului, cum ar trebui sa arate prompt-ul lor... .
Deci ca si un mecanism de asigurare, utilizatorii au ceea ce se
numeste un mediu. Mediul defineste conditiile in care vor fi rulate
programele si putin din aceasta definitie este variabila; utilizatorul o poate
altera si sa se joace cu ea, cum este si normal intr-un sistem Linux.
Aproape orice shell va avea variabile de mediu (daca nu, probabil ca nu
este un shell foarte utilizabil). Aici vom face o prezentare a comenzilor pe
care bash le ofera pentru manipularea variabilelor de mediu.
set de sine statator iti va arata toate variabilele de mediu care sunt
precizate in mod curent, la fel si valorile lor. Ca majoritatea comenzilor
bash incorporate, poate sa faca si multe alte lucruri (cu parametrii); desi
vom lasa pagina manualului bash(1)sa vorbeasca despre aceasta. Exemplul
8-1 este un extras dintr-o comanda set pe computerul unui autor.
Remarcati aici variabila PATH discutata anterior. Programele din oricare
director specificat in PATH poate fi rulat prin simpla tastare a numelui
fisierului.

108
Shell-ul
Exemplul 8-1. Afisarea varibilelor cu set
% set
PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/
X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/
ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash
% unset VARIABLE

unset va inlatura orice variabile pe care i le dai, nimicind si variabila si


valoarea ei; bash va uita ca acea variabila a existat vreodata. (Nu iti face
griji. Doar daca nu e ceva ce ai definit explicit in acea sesiune, probabil ca
va fi redefinit in orice alta sesiune.)
% export VARIABLE=some_value

Acum, comanda export este foarte folositoare. Folosind-o ii dai variabilei


de mediu VARIABLE valoarea “o_valoare_oarecare”; daca VARIABLE nu a
existat, acum exista. Daca VARIABLE avea deja o valoare, pai, s-a dus. Asta
nu e prea bine, daca incerci doar sa adaugi un director variabile tale PATH.
In acest caz, probabil ca vrei sa faci ceva de genul:
% export PATH=$PATH:/some/new/directory

Ia in seama folosirea $PATH acolo: cand vrei ca bash a interpreteze o


variabila (sa o inlocuiasca cu valoarea ei), pune un $ in fata numelui varia-
bilei. De exemplu , echo $PATH va afisa valoarea lui PATH, in cazul meu:
% echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6
/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/
ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin

109
Slackware Linux Essentials
8.3.2 Completarea Tab (Urmeaza ceva interesant..)
1. O interfata de linie de comanda inseamna ca vei tasta mult.
2. Tastatul este munca.
3. Nimanui nu-i place munca.
Din 3 si 2, putem determina ca 4) nimanui nu-i place sa tasteze. Din
fericire, bash ne salveaza de 5 (nimanui nu-i place o interfata de linie de
comanda).
Te intrebi cum realizeaza bash aceasta fapta minunata, intrebi? In
plus fata de expansiunea caracterelor despre care am discutat inainte, bash
are caracteristica “completarea tab”.
Completarea tab functioneaza in felul urmator: Scrii numele unui
fisier. Poate ca e in PATH,tau, poate ca il scrii explicit. Tot ce trebuie sa faci
este sa scrii suficient din numele fisierului pentru a il putea identifica in
mod unic. Pe urma apasa pe tasta tab. bash va intelege ce vrei si va
termina de scris pentru tine!
E timpul unui exemplu. /usr/src contine doua subdirectoare:
/usr/src/linux si /usr/src/sendmail. Vreau sa vad ce e in
/usr/src/linux. Asa ca tastez doar ls /usr/src/l, apas pe tasta TAB, si
bash imi da ls /usr/src/linux.
Acum, sa presupunem ca sunt doua directoare /usr/src/linux si
/usr/src/linux-old; Daca scriu /usr/src/l si apas pe TAB, bash va
completa cat de mult poate, si voi obtine /usr/src/linux. Ma pot opri
acolo sau pot apasa pe TAB din nou si bash va arata o lista de directoare
care se potrivesc cu ce am scris pana acum.
Deci, mai putin de scris (astfel oamenii pot place interfetele linie de
comanda). Ti-am spus ca e misto.

8.4 Terminale virtuale

Deci, tocmai lucrezi la ceva si decizi ca trebuie sa faci altceva. Ai


putea pur si simplu sa lasi ceea ce faci si sa comuti sarcinile, dar acesta
este un sistem multi utilizator, nu? Si poti sa te loghezi simultan de cate ori
vrei, nu? De ce ar trebui sa faci doar un singur lucru la un moment dat?
Nu trebuie. Nu putem sa avem cu totii tastaturi multiple, mouse-uri
si monitoare pentru un singur calculator; sansele sunt ca majoritatea nici nu
le vrem. In mod clar, hardware-ul nu este solutia. Mai ramane software-ul
si Linux ia atitudine aici, oferind “terminale virtuale”, sau “VT-uri”.

110
Shell-ul
Apasand Alt si o tasta de functie, poti comuta intre terminalele
virtuale; fiecare tasta de functie ii corespunde unuia. Slackware implicit are
login-uri pe 6 VT-uri. Alt+F2 te va duce la cel de al doilea, Alt+F3 la al
treilea, etc.
Restul tastelor functie sunt rezervate pentru sesiuni X. Fiecare sesiune
X foloseste propriul VT, incepand cu al saptelea (Alt+F7) si urcand. Cand te
aflii in X, combinatia de taste Alt+tasta functie este inlocuita cu
Ctrl+Alt+Functie; deci daca esti in X si vrei sa te intorci la un login text
(fara sa iesi din sesiunea X) Ctrl+Alt+F3 te va duce la cea de a treia.
(Alt+F7 te va duce inapoi, presupunand ca folosesti prima sesiune X.)

8.4.1 Screen
Dar ce spuneti de situatia in care nu exista terminale virtuale? Ce
facem in aceasta situatie? Din fericire, Slackware contine un minunat
manager de ecrane, numit in mod inspirat screen. screen este un emulator
de terminal, care are facilitati specifice unui terminal. Cand executi screen
apare o scurta descriere, apoi te lasa intr-un terminal. Spre deosebire de
terminalele virtuale standard, screen are propriile sale comenzi. Toate
comenzile sunt prefixate cu Crtl+A. De exemplu, apasarea tastelor
Ctrl+A+C va creea o noua sesiune pentru un terminal. Ctrl+A+N va muta
in terminalul urmator. Ctrl+A+P va schimba intr ultimele doua terminale.
screen ofera si optiunea decuplarii si re-cuplarii la sesiunile
terminalelor, lucru util pentru conexiuni de la distanta, de tipul ssh si telnet,
(mai multe despre aceste subiecte, in capitolele urmatoare). Ctrl+A+D te va
decupla de la sesiunea de screen curenta. Ruland screen screen -r va afisa
toate ecranele care ruleaza in prezent si la care te poti re-cupla.
% screen -r
There are several suitable screens on:
1212.pts-1.redtail (Detached)
1195.pts-1.redtail (Detached)
1225.pts-1.redtail (Detached)
17146.pts-1.sanctuary (Dead ???)
Remove dead screens with 'screen -wipe'.
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

Ruland screen -r 1212 te va re-cupla la primul ecran afisat. Am


mentionat anterior cat de util este aceasta pentru o conexiune la distanta.
Daca vreau sa ma loghez de la distanta la un server ruland Slackware prin
ssh, fiecare conxiune ar putea fi afecatat de accidente de genul unei pene
de curent si toata munca ar disparea daca acea conexiune ar disparea brusc.
Insa folosind screen o data restaurata conexiunea, voi putea re-cupla la
ultimul ecran folosit si imi voi putea continua munca.

111
Capitolul 9

Structura sistemului de
fisiere
9.1 Apartenenta
9.2 Permisiuni
9.3 Link-uri
9.4 Montarea dispozitivelor
9.5 Monturi NFS

Am discutat despre structura directoarelor in Slackware Linux. Esti capabil


sa gasesti fisierele si directoarele de care ai nevoie. Dar sistemul de fisiere
inseamna mai mult decat structura directoarelor.
Linux este un sistem de operare multiutilizator. Fiecare aspect al sistemului
este multiutilizator, chiar si sistemul de fisiere. Sistemul stocheaza
informatii ca si cine este proprietarul unui fisier si cine il poate citi. Sunt
alte parti unice in legatura cu sistemul de fisiere, cum ar fi linkuri si
monturile NFS. Aceasta sectiune le explica pe acestea, dar si aspectele
multiutilizator ale sistemului de fisiere.

113
Slackware Linux Essentials

9.1 Apartenenta

Sistemul de fisiere stocheaza informatiile de apartenenta pentru


fiecare fisier si director de pe sistem. Aceasta include ce proprietar si grup
detin un fisier particular. Cea mai usoara metoda de a vedea aceasta
informatie este cu comanda ls.
% ls -l /usr/bin/wc
-rwxr-xr-x 1 root bin 7368 Jul 30 1999 /usr/bin/wc

Suntem interesati de coloanele trei si patru. Acestea contin numele


utilizatorului si al grupului care detin acest fisier. Vedem ca utilizatorul
“root” si grupul “bin” sunt proprietarii acestui fisier.
Putem schimba usor proprietarii fisierului cu comenzile chown(1)
(care inseamna “schimba proprietar”) si chgrp(1) (care inseamna “schimba
grup”). Pentru a schimba utilizatorul proprietar al fisierului in daemon, am
folosi chown:
# chown daemon /usr/bin/wc

Pentru a schimba grupul proprietar in “root”, am folosi chgrp:


# chgrp root /usr/bin/wc

Putem sa folosim de asemenea si chown pentru a specifica proprietarii


utilizator si grup pentru un fisier:
# chown daemon:root /usr/bin/wc

In exemplul de mai sus, utilizatorul ar fi putut folosi si punct (.) in


loc de doua puncte (:). Rezultatul ar fi fost acelasi; insa doua puncte
reprezinta o forma mai potrivita. Folosirea punctului este invechita si va fi
probabil scoasa din uz in versiunile urmatoare ale chown. Aceste nume de
utilizator tind sa devina foarte populare cu Windows Exchange Servers si
sunt intalnite in adrese de mail de tipul: mr.jones@example.com. In
Slackware, administratorii sunt sfatuiti sa nu foloseasca asa ceva deoarece
unele scripturi folosesc inca punctul pentru a indica utilizatorul si grupul
unui fisier sau director. In exemplul nostru, chmod ar interpreta mr.jones ca
utilizatorul “mr” si grupul “jones”.

114
Structura sistemului de fisiere
Apartenenta fisierelor este un aspect foarte important din folosirea
unui sistem Linux, chiar daca esti singurul utilizator. Trebuie sa repari
cateodata apartanenta fisierelor si a nodurilor dispozitiv.

9.2 Permisiuni

Permisiunile sunt cealalta parte importanta a aspectelor multiutiliza-


tor a sistemului de fisiere. Cu acestea poti schimba, cine poate sa citeasca,
scrie si sa execute fisierele.
Informatiile legate de permisiuni sunt stocate ca patru cifre octale,
fiecare specificand un set diferit de permisiuni. Sunt permisiuni proprietar,
permisiuni grupa si permisiuni lume. A patra cifra octala este folosita
pentru a stoca informatii speciale ca si setarea identificatorului pentru
utilizator sau grup si bit-ul “sticky”. Valorile octale atribuite modurilor
permisiunilor sunt (de asemenea au si litere asociate cu el care sunt afisate
de programe ca ls si pot fi folosite de catre chmod):
Tabelul 9-1. Valorile Octale ale Permisiunilor
Tipul Permisunii Valoarea octala Valoarea literei
bit-ul “sticky” (lipicios) 1 t
seteaza ID pentru utilizator (set user ID) 4 s
seteaza ID pentru grup (set grup ID) 2 s
citire(read) 4 r
scriere(write) 2 w
executie(execute) 1 x
Adaugi valorile octale pentru fiecare grup de permisiuni. De
exemplu, daca vrei ca permisiunile pentru grup sa fie “citire” si “scriere”,
ai folosi “6” in partea de grup a informatiei despre permisiuni.
Permisiunile default ale lui bash sunt:
% ls -l /bin/bash
-rwxr-xr-x 1 root bin 477692 Mar 21 19:57 /bin/bash

Prima linie ar fi inlocuita cu “d” daca acesta ar fi un director. Cele trei


grupuri de permisiuni (proprietar, grup si lume) sunt afisate pe urma. Vedem
ca proprietarul are permisiuni de citire, scriere si executare (rwx). Grupul are
doar citire si executare (r-x). Si restul lumii are doar citire si executare (r-x).

115
Slackware Linux Essentials
Cum am seta permisiunile pe un alt fisier pentru a semana cu cele ale
lui bash? Intai, sa facem un fisier exemplu:
% touch /tmp/example
% ls -l /tmp/example
-rw-rw-r--- 1 david users 0 Apr 19 11:21 /tmp/example

Vom folosi chmod(1) (care inseamna “schimba mod”) pentru a seta


permisiunile pe fisierul exemplu. Adauga numerele octale pentru
permisiunile pe care le vrei. Pentru ca proprietarul sa aiba citire, scriere si
executare am avea valoarea 7. Citire si executare ar fi 5. Pune-le una langa
cealalta si paseaza-le lui chmod in felul asta:
% chmod 755 /tmp/example
% ls -l /tmp/example
-rwxr-xr-x 1 david users 0 Apr 19 11:21 /tmp/example

Ai putea spune: “"De ce nu ai creat un fisier cu acele permisiuni de


la inceput?” Raspunsul este simplu. bash include un minunat utilitar
incorporat, numit umask. Acesta este inclus in majoritatea shell-urilor Unix
si controleaza ce permisiuni sunt asignate noilor fisiere nou-create. Am
mai discutat anterior despre programele incorporate in bash Sectiunea
8.3.1. Dureaza putin pentru a te obisnui cu umask. Este asemanator cu
chmod, doar ca functioneaza invers. Trebuie specificat valoarea pe care nu
o doresti prezenta in fisierele nou create. Valoarea din oficiu a umask este
0022.
% umask
0022
% umask 0077
% touch tempfile
% ls -l tempfile
-rw-------- 1 david users 0 Apr 19 11:21 tempfile

Vezi pagina de manual bash pentru mai multe detalii.


Pentru a seta permisiuni speciale cu chmod, adauga numerele si
aseaza-le in prima coloana. De exemplu, pentru a-l face sa seteze
identificatorul utilizatorului si al grupului, folosim 6 ca prima coloana:
% chmod 6755 /tmp/example
% ls -l /tmp/example
-rwsr-sr-x 1 david users 0 Apr 19 11:21 /tmp/example

Daca valorile octale te incurca, poti folosi litere cu chmod. Grupurile de


permisiuni sunt reprezentate ca:

116
Structura sistemului de fisiere
proprietar u
grup g
lume o
toate cele spuse mai sus a
Pentru a seta permisiunile ca si mai inainte, ar trebui sa folosim mai multe
linii de comanda:
% chmod a+rx /tmp/example
% chmod u+w /tmp/example
% chmod ug+s /tmp/example

Sunt oameni care prefera literele in favoarea cifrelor. Indiferent de


ce metoda folosim rezultatul este acelasi pentru setul de permisiuni.
Formatul cifrelor este deseori mai rapid si cel mai folosit in scripturi.
Uneori insa, literele sunt mai puternice. De exemplu, nu exista modalitate
simpla de a schimba permisiunea unui grup in timp ce am pastra simultan
permisiunea celorlalte grupuri, folosind cifre. Acest lucru se poate insa
realiza extrem de usor cu litere.
% ls -l /tmp/
-rwxr-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example0
-rwxr-x--- 1 alan users 0 Apr 19 11:21 /tmp/example1
----r-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example2
% chmod g-rwx /tmp/example?
-rwx---r-x 1 alan users 0 Apr 19 11:21 /tmp/example0
-rwx------ 1 alan users 0 Apr 19 11:21 /tmp/example1
-------r-x 1 alan users 0 Apr 19 11:21 /tmp/example2

Am adus vorba in mai multe locuri despre permisiunile de setare a


identificatorului pentru utilizator si grupa. Probabil ca te intrebi ce sunt
astea. In mod normal cand rulezi un program, aceasta opereaza sub contul
tau de utilizator. Adica, are toate permisiunile pe care le ai tu ca utilizator.
Acelasi lucru e valabil si pentru grup. Cand rulezi un program, acesta se
executa sub grupul tau actual. Cu permisiunea de setare a identificatorului
pentru utilizator, poti forta un program sa ruleze intotdeauna ca si
proprietarul fisierului (ca si “root”). Setarea identificatorului pentru grup e
la fel doar ca pentru grup.
Fii prudent cu aceasta, programele cu setarea identificatorului pentru
utilizator si grup pot creea gauri majore de securitate pe sistemul tau. Daca
setezi frecvent permisiunea de setare a identificatorului pentru utilizator pe
programele detinute de root, ii permiti oricui sa ruleze acel program si sa
il ruleze ca si root. Din moment ce root nu are restrictii pe sistem , poti

117
Slackware Linux Essentials
vedea cum poate acest lucru reprezenta un risc major de securitate pe
sistemul tau. Pe scurt, nu este rau sa setezi permisiunile de setare a
identificatorului pentru utilizator si grup, dar foloseste bunul simt.

9.3 Link-uri

Link-urile sunt indicatoare intre fisiere. Cu link-uri, poti avea fisiere


care sa existe in mai multe locatii si sa fie accesibile sub mai multe
denumiri. Sunt doua tipuri de link-uri: hard si soft.
Link-urile hard sunt denumiri pentru un fisier particular. Pot exista
doar intr-un singur director si sunt inlaturate doar cand numele real este
inlaturat de pe sistem. Acestea sunt folositoare in cateva cazuri, dar multi
utilizatori considera link-urile soft mai multilaterale.
Link-ul soft, de asemenea numit si link simbolic, poate indica catre
un fisier in afara directorului lui. Este de fapt un fisier mic care contine
informatia de care are nevoie. Poti adauga si inlatura link-uri soft fara a
afecta fisierul propriu zis. Ca si un exemplu, mai degraba ai un link
simbolic la directorul /var/tmp catre /tmp.
Linkurile nu au setul propriu de permisiuni sau apartenente, ci le
reflecta pe cele ale fisierului catre care indica. Slackware foloseste in mare
parte link-uri soft. Iata un exemplu comun:
% ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Apr 6 12:34 /bin/sh ->
bash

Shell-ul sh sub Slackware este de fapt bash. Inlaturarea link-urilor


se face folosind rm. Comanda ln este folosita pentru a crea link-urile.
Aceste comenzi vor fi discutate mai in amanunt in Capitolul 10.
Este foarte important sa fi atent in folosirea link-urilor simbolice.
Odata, am lucrat pe o masina care nu reusea sa realizeze back-up pe banda,
noaptea. Doua linkuri simbolice au fost create catre directoare, unul sub
altul. Programul de back-up apela aceleasi directoare, pana cand banda
ramanea fara spatiu. In mod normal, o verificare de rutina ar putea preveni
acest fel de link-uri simbolice, insa in cazul nostru a fost o situatie speciala.

118
Structura sistemului de fisiere
9.4 Montarea dispozitivelor

La fel cum am discutat anterior in sectiunea intitulata Organizarea


Fisierelor in Capitolul 4, toate unitatile si dispozitivele in calculatorul tau
sunt un mare sistem de fisiere. Diferite parti de hard disk-uri, CD-ROM-uri
si dischete toate sunt plasate in acelasi arbore. Pentru a atasa aceste unitati
sistemului de fisiere pentru a le putea accesa, trebuie sa folosesti comenzile
mount(1) si umount(1).
Cateva dispozitive sunt montate automat la initializarea sistemului.
Acestea sunt listate in fisierul /etc/fstab. Orice vrei sa fie montat in mod
automat primeste o intrare in acel fisier. Pentru alte dispozitive, va trebui
sa emiti o comanda de fiecare data cand vrei sa folosesti dispozitivul.

9.4.1 fstab
Sa aruncam o privire la un exemplu de fisier /etc/fstab
% cat /etc/fstab
/dev/sda1 / ext2 defaults 1 1
/dev/sda2 /usr/local ext2 defaults 1 1
/dev/sda4 /home ext2 defaults 1 1
/dev/sdb1 swap swap defaults 0 0
/dev/sdb3 /export ext2 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
/dev/fd0 /mnt ext2 defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 ro 0 0

Prima coloana este numele dispozitivului. In acest caz, dispozitivele


sunt cinci partitii intinse peste doua hard disk-uri SCSI, doua sisteme de
fisiere speciale care nu au nevoie de un dispozitiv o unitate de discheta si
una de CD-ROM. A doua coloana este locul unde va fi montat
dispozitivul. Acesta trebuie sa fie un nume de director, exceptie facand
partitia swap. A treia coloana reprezinta tipul sistemului de fisiere al
dispozitivului. Pentru sisteme de fisiere normal de Linux, aceasta va fi ext2
(second extended filesystem). Unitatile CD-ROM sunt iso9660, si
dispozitivele bazate pe Windows vor fi msdos sau vfat.
A patra coloana este o listare de optiuni care se aplica sistemelor de
fisiere montate. “defaults” este bun pentru aproape orice. Desi,
dispozitivelor read-only le-ar trebui dat marcatorul ro. Sunt multe optiuni
care pot fi folosite. Verifica pagina de manual pentru fstab(5) pentru mai
multe informatii. Ultimele doua coloane sunt folosite de fsck si alte

119
Slackware Linux Essentials
comenzi care necesita manipularea dispozitivelor. Verifica pagina de
manual si pentru acest lucru.
Cand instalezi Slackware Linux, programul setup va construi
majoritatea fisierului fstab.

9.4.2 mount si umount


Atasarea unui alt dispozitiv sistemului tau de fisiere este usor. Tot ce
trebuie sa faci este sa folosesti comanda mount impreuna cu cateva optiuni.
Folosirea mount poate fi si mai simpla daca dispozitivul are o intrare in
fisierul /etc/fstab. De exemplu, sa spunem ca vreau sa imi montez
unitatea CD-ROM si ca fisierul meu fstab arata ca si exemplul din
sectiunea anterioara. As apela mount in felul acesta:
% mount /cdrom

Din moment ce are o intrare in fstab pentru acel punct de montare,


mount stie ce optiuni sa foloseasca. Daca nu ar fi o intrare pentru acel
dispozitiv, ar fi trebuit sa folosesc mai multe optiuni pentru mount:
% mount -t iso9660 -o ro /dev/cdrom /cdrom

Acea linie de comanda include aceeasi informatie ca si fisierul


exemplu fstab dar vom trece prin toate partile oricum. Optiunea -t
iso9660 este tipul sistemului de fisiere al dispozitivului de montare. In
acest caz, ar fi sistemul de fisiere iso9660 care este ceea ce folosesc actual
majoritatea unitatilor CD-ROM. Optiunea -o ro ii spune lui mount sa
monteze dispozitivul read-only. Argumentul /dev/cdrom este numele
dispozitivului care urmeaza a fi montat si /cdrom este locatia pe sistemul
de fisiere unde va fi montata unitatea.
Inainte de a putea scoate o discheta, cd sau orice alt dispozitiv
amovibil care este montat actual, trebuie sa il demontezi. Aceasta se face
folosind comanda umount. Nu intreba unde s-a dus “n”pentru ca nu am
putea sa iti spunem. Poti folosi fie dispozitivul montat fie punctul de
montare ca argument pentru umount. De exemplu, daca vrei sa demontezi
CD-ROM-ul din exemplul anterior, oricare dintre aceste comenzi ar
functiona:
# umount /dev/cdrom
# umount /cdrom

120
Structura sistemului de fisiere
9.5 Monturi NFS

NFS inseamna Network Filesystem (sistem de fisiere de retea). Nu


face de fapt parte din adevaratul sistem de fisiere, dar poate fi folosit
pentru a adauga parti sistemului de fisiere montat.
Mediile Unix mari, deseori impart aceleasi programe, seturi de
directoare ale utilizatorilor si spool-ul de mail. Problema de a avea aceeasi
copie pe fiecare calculator se rezolva cu NFS. Putem folosi NFS pentru a
imparti unul din directoarele pentru utilizatori intre toate statiile de lucru.
Statiile de lucru pe urma monteaza acea parte NFS ca si cum ar fi pe statia
propriu zisa.
Vezi sectiunea intitulata NFS (Network File System) in Capitolul 5
si paginile de manual pentru exports(5), nfsd(8), si mountd(8) daca
doresti sa afli mai multe informatii.

121
Capitolul 10

Manipularea fisierelor
si a directoarelor
10.1 Navigarea: ls, cd, si pwd
10.2 Pagere: more, less, and most
10.3 Iesire simpla: cat and echo
10.4 Creare: touch and mkdir
10.5 Copiere si mutare
10.6 Stergere: rm si rmdir
10.7 Legaturi intre fisiere cu ln

Linux incearca sa se asemene cat mai mult posibil cu Unix. Prin traditie,
sistemele de operare Unix au fost orientate catre linia de comanda. Avem o
interfata grafica pentru utilizator in Slackware, dar linia de comanda inca
este principalul nivel de control al sistemului. De aceea, este important sa
intelegi cateva din comenzile de baza pentru managementul fisierelor.
Urmatoarele sectiuni explica unele din comenzile comune pentru
managementul fisierelor si contin exemple pentru modul de utilizare al
acestora. Exista multe comenzi, dar acestea te vor ajuta sa incepi. De
asemenea, comenzile sunt discutate aici doar succint.Vei gasi mai multe
detalii in paginile manual pentru fiecare comanda.

123
Slackware Linux Essentials

10.1 Navigarea : ls, cd, si pwd

10.1.1 ls
Aceasta comanda afiseaza o lista cu fisierele dintr-un director.
Utilizatorii de Windows si DOS vor observa asemanarea cu comanda dir.
Folosita singura, ls(1) va afisa fisierele din directorul curent. Pentru a vedea
ce este in directorul radacina, ai putea introduce urmatoarele comenzi:
% cd /
% ls
bin cdr dev home lost+found proc sbin tmp var
boot cdrom etc lib mnt root suncd usr vmlinuz

Problema cu acest mod de afisare este ca multa lume nu poate sa spuna cu


usurinta care este director si care este fisier. Unii utilizatori prefera ca ls
sa adauge un identificator pentru fiecare inregistrare, dupa cum urmeaza:
% ls -FC
bin/ cdr/ dev/ home/ lost+found/ proc/ sbin/ tmp/
var/
boot/ cdrom/ etc/ lib/ mnt/ root/ suncd/ usr/
vmlinuz

Directoarele primesc un slash la sfarsitul numelui, executabilele


primesc un asterisc, si asa mai departe.
ls poate fi folosit pentru a obtine si alte statistici. De exemplu,
pentru a vedea datele de creare, apartenenta si permisiunile, ai putea sa te
uiti la lista extinsa:
% ls -l
drwxr-xr-x 2 root bin 4096 May 7 09:11 bin/
drwxr-xr-x 2 root root 4096 Feb 24 03:55 boot/
drwxr-xr-x 2 root root 4096 Feb 18 01:10 cdr/
drwxr-xr-x 14 root root 6144 Oct 23 18:37 cdrom/
drwxr-xr-x 4 root root 28672 Mar 5 18:01 dev/
drwxr-xr-x 10 root root 4096 Mar 8 03:32 etc/
drwxr-xr-x 8 root root 4096 Mar 8 03:31 home/
drwxr-xr-x 3 root root 4096 Jan 23 21:29 lib/
drwxr-xr-x 2 root root 16384 Nov 1 08:53 lost+found/
drwxr-xr-x 2 root root 4096 Oct 6 12:47 mnt/
dr-xr-xr-x 62 root root 0 Mar 4 15:32 proc/
drwxr-x--x 12 root root 4096 Feb 26 02:06 root/

124
Manipularea fisierelor si a directoarelor
drwxr-xr-x 2 root bin 4096 Feb 17 02:02 sbin/
drwxr-xr-x 5 root root 2048 Oct 25 10:51 suncd/
drwxrwxrwt 4 root root 487424 Mar 7 20:42 tmp/
drwxr-xr-x 21 root root 4096 Aug 24 03:04 usr/
drwxr-xr-x 18 root root 4096 Mar 8 03:32 var/

Sa presupunem ca vrei sa obtii o lista cu fisierele ascunse din


directorul curent. Urmatoarea comanda face exact acest lucru:
% ls -a
. bin cdrom home mnt sbin usr
.. boot dev lib proc suncd var
.pwrchute_tmp cdr etc lost+found root tmp vmlinuz

Fisierele care incep cu punct (numite fisiere punct) sunt ascunse


cand rulezi ls. Le vei vedea numai daca utilizezi optiunea -a.
Sunt mult mai multe optiuni care pot fi vazute in pagina de manual.
Nu uita ca optiunile pe care le utilizezi cu ls pot fi folosite in combinatii.

10.1.2 cd
Comanda cd este utilizata pentru schimbarea directorului de lucru.
Tastezi simplu cd urmat de calea catre care vrei sa schimbi. Iata cateva
exemple:
darkstar:~$ cd /bin
darkstar:/bin$ cd usr
bash: cd: usr: No such file or directory
darkstar:/bin$ cd /usr
darkstar:/usr$ ls
bin
darkstar:/usr$ cd bin
darkstar:/usr/bin$

Observa ca, fara slash-ul care il precede, incearca sa schimbe spre un


director din directorul curent. De asemenea, executand cd fara nici o
optiune, te va duce in directorul personal.
Comanda cd nu se aseamna cu alte comenzi. Ea este o comanda
integrata in shell. Comenzile integrate in shell sunt discutate in Sectiunea
8.3.1. S-ar putea ca aceasta sa fie fara sens pentru tine acum. In principiu,
asta inseamna ca nu exita nici o pagina man pentru aceasta comanda, ci
trebuie sa folosesti ajutorul din shell, dupa cum urmeaza:
% help cd

Aceasta va afisa optiunile pentru cd si cum sa le folosesti.

125
Slackware Linux Essentials
10.1.3 pwd
Comanda pwd o folosesti ca sa vezi locatia ta curenta. Pentru a folosi
pwd tasteaza pwd. De exemplu:
% cd /bin
% pwd
/bin
% cd /usr
% cd bin
% pwd
/usr/bin

10.2 Pagere: more, less, si most

10.2.1 more
more(1) este ceea ce numim un utilitar de paginare. De multe ori,
iesirea unei comenzi este prea mare pentru a incapea intr-un singur ecran.
Comenzile individuale nu stiu cum sa-si imparta iesirile in ecrane diferite.
Munca aceasta este lasata in seama unui utilitar de paginare.
Comanda more sparge iesirile in ecrane individuale si asteapta ca tu
sa apesi tasta spatiu inainte de a continua cu urmatorul ecran de text.
Apasand tasta enter, vei putea avansa cu cate o linie. Iata un exemplu bun:
% cd /usr/bin
% ls -l

Asta ar trebui sa defileze pentru un timp. Pentru a sparge iesirea pe ecrane,


redirectioneaza iesirea prin more:
% ls -l | more

Acela este caracterul “teava” (shift backslash). “Teava” este un mod


simplu de a spune “ia iesirea comenzii ls si introdu-o in more”. Poti
redirectiona cam orice prin comanda more nu numai ls. Redirectionarea
este discutata in Sectiunea 8.2.3.

10.2.2 less
Comanda more este destul de utila, dar deseori vei realiza ca ai trecut
peste ecranul pe care il voiai. more nu iti ofera o modalitate de a te

126
Manipularea fisierelor si a directoarelor
intoarce. Comanda less(1) iti ofera aceasta functionalitate. Este folosita in
acelasi fel cu comanda more asa ca exemplele anterioare se pot aplica si
aici. Asadar, less este mai mult decat more. Joost Kremers a spus-o in
felul urmator:
less is more, but more more than more is, so more is less less, so
use more less if you want less more.

10.2.3 most
Acolo unde se opresc more si less, most(1) preia stafeta. Daca less
este mai mult decat more, most este mai mult decat less. In timp ce alte
paginatoare pot afisa numai cate un fisier o data, most este capabil sa
afiseze oricate fisiere, atata timp cat fereastra fiecarui fisier are o lungime
de cel putin 2 linii. most are multe optiuni, uita-te in pagina man pentru
detalii comple.

10.3 Iesiri simple cat si echo

10.3.1 cat
cat(1) este prescurtarea de la “concatenare”. Initial, a fost proiectata
pentru a alatura doua fisiere de text in unul singur, dar poate fi folosita in
multe alte scopuri.
Pentru a alatura doua sau mai multe fisiere intr-unul singur, scrii lista
de fisiere dupa comanda cat redirectezi iesirea intr-un nou fisier. cat
functioneaza cu intrarea si iesirea standard, asa ca trebuie sa folosesti
caracterele de redirectionare din shell. De exemplu:
% cat file1 file2 file3 > bigfile

Aceasta comanda ia continutul fisierelor file1, file2, si file3 si le


alatura pe toate la un loc. Noua iesire este trimisa la iesirea standard.
cat poate fi folosit pentru afisarea fisierelor. Multi utilizatori
redirectioneaza iesirea din cat prin more sau less dupa cum urmeaza:
% cat file1 | more

Aceasta va afisa fisierul file1 si il va redirectiona prin more astfel


incat sa il obtii ecran cu ecran.

127
Slackware Linux Essentials
O alta utilizare comuna pentru cat este copierea de fisiere. Poti
copia orice fisier cu cat, dupa cum urmeaza:
% cat /bin/bash > ~/mybash

Programul /bin/bash este copiat in directorul personal si renumit


mybash.
cat are utilizari multiple, iar cele discutate aici sunt doar cateva. Din
moment ce cat utilizeaza extensiv intrarea si iesirea standard, este ideal
pentru utilizarea in scripturi sau ca parte in alte comenzi complexe.

10.3.2 echo
Comanda echo(1) afiseaza pe ecran textul specificat. Poti specifica
sirul de caractere pentru afisare dupa comanda echo Implicit, echo va afisa
sirul de caractere si va adauga un caracter de linie noua dupa el. Poti sa
utilizezi optiunea -n pentru a suprima trecerea la linie noua. Optiunea -e va
face ca echo sa caute caractere speciale in sir si sa le execute.

10.4 Crearea: touch si mkdir

10.4.1 touch
touch(1) este folosit pentru a schimba amprenta de timp pentru un
fisier. Poti schimba amprenta de timp de acces si amprenta de timp de
modificare cu aceasta comanda. Daca fisierul nu exista, touch va crea un
fisier de lungime zero, cu numele specificat. Pentru a marca un fisier cu
timpul curent, vei folosi comanda urmatoare:
% ls -al file1
-rw-r--r-- 1 root root 9779 Feb 7 21:41 file1
% touch file1
% ls -al file1
-rw-r--r-- 1 root root 9779 Feb 8 09:17 file1

Exista mai multe optiuni pentru touch, incluzand optiunea de a


specifica acea amprenta de timp care va fi modificata, timpul folosit si
multe altele. Pagina de manual discuta in detaliu aceste optiuni.

128
Manipularea fisierelor si a directoarelor
10.4.2 mkdir
mkdir(1) va crea un director nou. Specifica directorul pe care vrei
sa-l creezi cand rulezi mkdir. Acest exemplu creaza directorul hejaz in
directorul curent:
% mkdir hejaz

Poti, de asemenea, sa specifici o cale, dupa cum urmeaza:


% mkdir /usr/local/hejaz

Optiunea -p ii va spune lui mkdir sa creeze si orice director parinte.


Exemplul de mai sus va esua in cazul in care /usr/local nu exista.
Optiunea -p va crea /usr/local si /usr/local/hejaz:
% mkdir -p /usr/local/hejaz

10.5 Copiere si mutare

10.5.1 cp
cp(1) copiaza fisiere. Utilizatorii de DOS vor observa asemanarea cu
comanda copy. Exista multe optiuni si pentru cp, asa ca ar trebui sa arunci
o privire in pagina man inainte de a-l utiliza.
O utilizare comuna pentru cp este aceea de a copia un fisier dintr-un
loc in altul. De exemplu:
% cp hejaz /tmp

Aceasta copiaza fisierul hejaz din directorul curent in directorul


/tmp.
Multi utilizatori prefera sa pastreze amprentele de timp, ca in
exemplul urmator:
% cp -a hejaz /tmp

Aceasta te asigura ca amprentele de timp nu sunt modificate in


timpul copierii.
Pentru a copia recursiv continutul unui director in alt director, vei
utiliza urmatoarea comanda:
% cp -R mydir /tmp

129
Slackware Linux Essentials
Aceasta va copia directorul mydir in directorul /tmp.
De asemenea, daca doresti sa copiezi un director sau un fisier si sa
pastrezi vechile permisiuni si amprente de timp, foloseste cp -p.
% ls -l file
-rw-r--r-- 1 root vlad 4 Jan 1 15:27 file
% cp -p file /tmp
% ls -l /tmp/file
-rw-r--r-- 1 root vlad 4 Jan 1 15:27 file

cp are mult mai multe optiuni decat sunt discutate aici, in pagina de
manual.

10.5.2 mv
mv(1) muta fisiere dintr-un loc in altul. Suna destul de simplu, nu-i
asa?
% mv oldfile /tmp/newfile

mv are cateva optiuni folositoare, care sunt detaliate in pagina man.


In practica, mv nu este folosit aproape niciodata cu optiuni.

10.6 Stergere: rm si rmdir


10.6.1 rm
rm(1) sterge fisiere si arbori de directoare. Utilizatorii de DOS vor
observa asemanarea atat cu del si cu deltree. rm poate fi foarte periculos
daca nu il folosesti corect. Desi este cateodata posibil sa recuperezi unele
fisiere sterse recent, poate fi foarte complicat (si posibil scump) si nu intra
in obiectul acestei carti.
Pentru a sterge un singur fisier, specifica-i numele cand rulezi rm:
% rm file1

Daca fisierul nu are permisuni de scriere, s-ar putea sa obtii un mesaj


de eroare “permisiuni insuficiente” (permission denied). Pentru a forta
stergerea, utilizeaza optiunea -f dupa cum urmeaza:
% rm -f file1

Pentru a sterge un director intreg, foloseste optiunile -r si -f


impreuna. Urmatorul este un bun exemplu despre cum pot sa-ti stergi
intregul disc. Nu vrei sa faci asta! Dar, oricum, iata comanda:

130
Manipularea fisierelor si a directoarelor
# rm -rf /

Fii foarte atent cu rm; s-ar putea sa te impusti singur in picior. Exista
mai multe optiuni pentru linia de comanda, care sunt discutate in pagina de
manual.

10.6.2 rmdir
rmdir(1) sterge directoare din sistemul de fisiere. Directoarele trebuie sa
fie goale inainte sa poata fi sterse. Sintaxa este simpla:
% rmdir <directory>

Exemplul urmator va sterge directorul hejaz din directorul curent:


% rmdir hejaz

Daca directorul nu exista, rmdiriti va spune. De asemenea, poti


specifica intreaga cale pentru directorul care va fi sters, dupa arata
urmatorul exemplu:
% rmdir /tmp/hejaz

Acest exemplu va incerca sa stearga directorul hejaz din directorul


/tmp. Poti, de asemenea, sa stergi un director si toate directoarele sale
parinte, folosind optiunea -p.
% rmdir -p /tmp/hejaz
Aceasta incearca intai sa stearga directorul hejaz din directorul
/tmp. Daca reuseste, incearca sa stearga directorul /tmp. rmdir va continua
astfel pana cand va intalni o eroare sau pana cand intregul arbore specificat
va fi sters.

10.7 Legaturi intre fisiere cu ln

ln(1) este folosit la crearea de legaturi intre fisiere. Aceste legaturi


pot fi hard sau soft (simbolice). Diferentele intre aceste doua tipuri de
legaturi au fost discutate in Sectiunea 9.3. Daca vrei sa creezi o legatura
simbolica spre directorul /var/media/mp3 si sa plasezi legatura in
directorul tau personal, vei face in felul urmator:
% ln -s /var/media/mp3 ~/mp3

131
Slackware Linux Essentials
optiunea -s ii spune lui ln sa creeze o legatura simbolica. Urmatoarea
optiune este tinta legaturii, iar optiunea finala este numele legaturii. In
acest caz, va crea doar un director numit mp3 in directorul tau personal,
care va arata spre /var/media/mp3. Poti sa numesti legatura cum vrei,
schimband ultima optiune.
Realizarea legaturilor hard este la fel de simpla. Tot ce trebuie sa faci
este sa omiti optiunea -s. In mod normal, legaturile hard nu se refera la
directoare si nu traverseaza intregul sistem de fisiere. Pentru a crea o legatu-
ra hard numita /usr/bin/email catre /usr/bin/mutt, scrie urmatoarele:
# ln /usr/bin/mutt /usr/bin/email

132
Capitolul 11

Controlul proceselor
11.1 Backgrounding (procesele care ruleaza pe fundal)
11.2 Foregrounding (aducerea proceselor in prim-plan)
11.3 ps
11.4 kill
11.5 top

Orice program care ruleaza se numeste un proces. Aceste procese pot sa


varieze de la procese cum ar fi Sistemul de Ferestre X pana la programe
specifice sistemului (daemon-i), care sunt pornite atunci cand calculatorul
se initializeaza. Oricare proces ruleaza ca un anume utilizator. Procesele
care sunt pornite la initializare, de obicei ruleaza ca root sau nobody.
Procesele pe care le vei porni tu vor rula in continuare ca utilizatorul tau.
Procesele pornite cu alti utilizatori vor rula ca respectivii utilizatori.
Pe langa aceasta, root detine controlul asupra tuturor proceselor de pe
sistem, incluzand chiar si pe cele pornite de catre alti utilizatori. Procesele
pot fi controlate si monitorizate cu ajutorul catorva programe si niste
comenzi de shell.

133
Slackware Linux Essentials

11.1 Backgrounding (procesele care ruleaza pe fundal)

Programele pornite din linia de comanda sunt pornite in prim-plan.


Acest lucru iti permite sa vezi tot ce face programul si sa interactionezi cu
el. Totusi, sunt cateva situatii cand ai putea dori ca programul sa se execute
fara sa iti ocupe consola. Acest lucru inseamna sa rulezi programul pe
fundal, si exista mai multe metode de a realiza acest lucru.
Prima modalitate de a trece un proces pe fundal este de a adauga un
"&" in linia de comanda atunci cand pornesti programul. De exemplu, sa
zicem ca vrei sa folositi mp3-player-ul din linia de comanda amp pentru a
asculta un folder plin cu mp3-uri, dar ai avea nevoie sa faci si altceva in
aceeasi consola. Urmatoarea comanda va porni "amp" pe fundal:
% amp *.mp3 &

Programul va rula normal, iar tu te vei putea intoarce la consola.


O alta modalitate ar fi sa faci programul sa ruleze pe fundal dupa ce
acesta a fost deja pornit. Mai intai porneste un program. In timp ce
programul ruleaza apasa Control+z. Aceasta comanda va suspenda
respectivul proces. Atunci cand ai suspendat un proces, practic se poate
spune ca i-ai pus pauza. Momentan s-a oprit, dar poate fi reluat de unde a
fost oprit in orice moment. Dupa ce ai suspendat un proces, vei fi readus la
prompt. Poti sa faci procesul sa ruleze in fundal cu comanda:
% bg

Acum procesul pe care l-ai suspendat ruleaza in fundal.

11.2 Foregrounding (aducerea proceselor in prim-plan)

Daca ai nevoie sa interactionezi cu un proces care ruleaza momentan


pe fundal, poti sa il aduci din nou in prim-plan. Daca ai doar un proces pe
care l-ai pus sa functioneze in fundal, poti sa-l aduci inapoi cu comanda:
% fg

Daca programul nu s-a oprit intre timp, el va prelua controlul asupra


consolei si nu ti se va returna un prompt. Uneori, programul se va termina

134
Controlul proceselor
in timp ce ruleaza in fundal. In aceasta situatie, o sa primesti un mesaj ca
aceasta:
[1]+ Done /bin/ls $LS_OPTIONS

Aceasta va spune ca procesul din fundal ( in acest caz ls) a fost


terminat. Este posibil sa ai mai multe procese care ruleaza in fundal in
acelasi timp. Cand acest lucru se intampla, va trebui sa stii ce proces vrei
sa aduci inapoi in prim-plan. Daca vei scrie pur si simplu fg in prim plan
va aparea ultimul proces care a fost trimis in fundal. Dar ce-ar fi daca ai
avea o lista intreaga de procese care ruleaza in fundal? Noroc ca exista o
comanda cu care poti sa vezi toate procesele. Comanda se numeste jobs si
arata cam asa:
% jobs
[1] Stopped vim
[2]- Stopped amp
[3]+ Stopped man ps

Aceasta comanda iti va arata o lista cu toate procesele din fundal.


Dupa cum vezi toate procesele sunt oprite. Aceasta inseamna ca procesele
sunt suspendate. Numarul este un fel de identificare pentru toate procesele
din fundal. Procesul care are un plus langa numarul lui (man ps) este
procesul care va fi adus in prim-plan daca folosesti comanda fg simpla.
Daca ai vrea sa aduceti in prim-plan vim, ai folosi urmatoarea
comanda:
% fg 1

si vim va sari inapoi in consola. Trimiterea proceselor in fundal poate fi


foarte folositoare daca nu ai decat o consola deschisa intr-o conexiune prin
dial-up. Astfel ai putea avea mai multe programe care sa ruleze pe acea
consola, iar tu vei putea sa navighezi inainte si inapoi prin ele.

11.3 ps

Deci acum stii cum sa te misti printre mai multe procese pe care le-ai
pornit din linia de comanda si de asemenea stii ca exista o multime de
procese care ruleaza tot timpul. Cum poti sa vezi o lista cu toate acele
programe? Simplu, ai putea folosi comanda ps(1). Aceasta comanda are o
multime de optiuni, dintre care doar cele mai importante vor fi prezentate

135
Slackware Linux Essentials
aici. Pentru lista completa poti vedea paginile manualului pentru comanda
ps. Paginile manual sunt descrise mai amanuntit in Sectiunea 2.1.1.
Daca tastezi pur si simplu ps o sa primesti o lista cu toate programele
care ruleaza pe consola. Lista contine si procesele din prim-plan (adica
inclusiv shell-ul pe care il folosesti si, bineinteles, ps). Sunt afisate si
eventualele procese din background. De multe ori, lista va fi foarte scurta:
Figure 11-1. Basic ps output
% ps
PID TTY TIME CMD
7923 ttyp0 00:00:00 bash
8059 ttyp0 00:00:00 ps

Desi aici nu sunt prea multe programe, informatia va fi de cele mai


multe ori asemanatoare cu cea din exemplu. O sa obtii aceleasi coloane
folosind comanda ps indiferent de cate procese ruleaza. Deci ce inseamna
toate astea?
Ei bine, PID este ID-ul procesului (numarul lui de identificare).
Toate procesele care ruleaza au un astfel de numar de identificare, unic.
Fiecarui proces ii este atribuit urmatorul PID disponibil. Atunci cand un
proces se termina (sau este intrerupt, cu comanda kill, asa cum o sa observi
in sectiunea urmatoare), acesta isi pierde PID-ul. Cand numarul maxim
PID este atins, urmatorul proces pornit va lua primul ID disponibil,
incepand numaratoarea din nou de la 1.
Coloana TTY indica consola pe care ruleaza programul respectiv. Cu
comanda simpla ps nu vei putea vedea decat programele care ruleaza in
consola actuala, deci toate procesele vor da aceeasi informatie in coloana
ttyp0. Dupa cum poti observa, ambele procese ruleaza pe ttyp0. Acest
lucru indica faptul ca ori functioneaza pe alt calculator, ori de pe o consola
de X.
Coloana TIME ne arata cat timp a rulat pana acum respectivul proces
(este folosit timpul procesorului). Acest lucru inseamna ca timpul cat a
lucrat procesul respectiv de fapt, este diferit de aceasta valoare. Aminteste-
ti ca Linux-ul este un sistem de operare multi-tasking. Exista multe
programe care ruleaza tot timpul si fiecaruia din aceste procese, procesorul
ii aloca o mica portiune din timp. Deci coloana TIME va arata mult mai
putin timp decat timpul care a trecut cu adevarat cand acesta a fost pornit.
Daca vezi mai mult de cateva minute in coloana TIME, s-ar putea sa
insemne ca ceva nu e bine.
Si in sfarsit coloana CMD arata care este programul care ruleaza.
Doar numele de baza al programului este listat, nu este inclusa o optiune

136
Controlul proceselor
din linia de comanda sau alte informatii similare. Pentru a afla acest tip de
informatie, va fi nevoie sa folosesti una din multele optiuni ale comenzii
ps. Despre aceasta se va discuta in curand.
Poti obtine o lista completa a proceselor care ruleaza pe sistem
folosind o anumita combinatie de optiuni. Probabil ca lista rezultata va fi
una foarte mare, de aceea voi prezenta o lista putin scurtata:
% ps -ax
PID TTY STAT TIME COMMAND
1 ? S 0:03 init [3]
2 ? SW 0:13 [kflushd]
3 ? SW 0:14 [kupdate]
4 ? SW 0:00 [kpiod]
5 ? SW 0:17 [kswapd]
11 ? S 0:00 /sbin/kerneld
30 ? SW 0:01 [cardmgr]
50 ? S 0:00 /sbin/rpc.portmap
54 ? S 0:00 /usr/sbin/syslogd
57 ? S 0:00 /usr/sbin/klogd -c 3
59 ? S 0:00 /usr/sbin/inetd
61 ? S 0:04 /usr/local/sbin/sshd
63 ? S 0:00 /usr/sbin/rpc.mountd
65 ? S 0:00 /usr/sbin/rpc.nfsd
67 ? S 0:00 /usr/sbin/crond -l10
69 ? S 0:00 /usr/sbin/atd -b 15 -l 1
77 ? S 0:00 /usr/sbin/apmd
79 ? S 0:01 gpm -m /dev/mouse -t ps2
94 ? S 0:00 /usr/sbin/automount /auto file
/etc/auto.misc
106 tty1 S 0:08 -bash
108 tty3 SW 0:00 [agetty]
109 tty4 SW 0:00 [agetty]
110 tty5 SW 0:00 [agetty]
111 tty6 SW 0:00 [agetty]
[output cut]

Majoritatea acestor procese sunt pornite la initializare pe majoritatea


sistemelor. Eu am facut cateva modificari la sistemul meu, deci este foarte
posibil ca datele sa varieze. Cu toate acestea vei putea vedea multe dintre
aceste procese ruland si pe sistemul tau. Dupa cum vezi, aceste optiuni
afiseaza si optiunile din linia de comanda langa procesele respective.
Recent, a fost descoperita o vulnerabilitate in kernel la ptrace iar
repararea ei a dus la neafisarea linei de comanda pentru multe procese care
ruleaza. Acestea sunt afisate in paranteze drepte, ca si in cazul PID 108
pana la 110. De asemenea mai sunt afisate si alte cateva coloane, impreuna
cu alte date interesante.

137
Slackware Linux Essentials
In primul rand vei observa ca multe dintre aceste programe sunt
prezentate ca ruland pe tty “?”.Acestea sunt procese care au fost pornite
dintr-o consola care a fost inchisa. Deci programele respective nu mai sunt,
acum, atasate nici unui terminal. Demoni des intalniti sunt sendmail,
BIND, apache si NFS. De obicei ei sunt listati daca clientul cere acest
lucru si afiseaza informatia dupa ce a primit cererea.
In al doilea rand, mai exista o noua coloana: STAT. Aceasta arata
starea in care se afla respectivului proces. S inseamna ca procesul respectiv
doarme: adica asteapta ca ceva sa se intample. Z este pentru un proces
zombie. Un astfel de proces este un proces al carui parinte (proces) a murit,
lasand copilul (proces si el) in urma. Asta nu e un lucru bun. D inseamna
un proces care a intrat intr-un somn din care nu mai poate fi trezit. De
obicei, aceste procese refuza sa dispara chiar daca li se paseaza un semnal
SIGKILL. Poti citi despre SIGKILL in sectiunea ce urmeaza. W este
pentru un proces care pagineaza. Un proces disparut e marcat cu X. Un
proces marcat cu T este urmarit (traced) sau oprit. R inseamna ca procesul
poate fi rulat.
Daca doresti sa vezi mai multe informatii despre procesele care
ruleaza, incearca aceasta:
% ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
COMMAND
root 1 0.0 0.0 344 80 ? S Mar02 0:03 init
[3]
root 2 0.0 0.0 0 0 ? SW Mar02 0:13
[kflushd]
root 3 0.0 0.0 0 0 ? SW Mar02 0:14
[kupdate]
root 4 0.0 0.0 0 0 ? SW Mar02 0:00
[kpiod]
root 5 0.0 0.0 0 0 ? SW Mar02 0:17
[kswapd]
root 11 0.0 0.0 1044 44 ? S Mar02 0:00
/sbin/kerneld
root 30 0.0 0.0 1160 0 ? SW Mar02 0:01
[cardmgr]
bin 50 0.0 0.0 1076 120 ? S Mar02 0:00
/sbin/rpc.port
root 54 0.0 0.1 1360 192 ? S Mar02 0:00
/usr/sbin/sysl
root 57 0.0 0.1 1276 152 ? S Mar02 0:00
/usr/sbin/klog
root 59 0.0 0.0 1332 60 ? S Mar02 0:00
/usr/sbin/inet
root 61 0.0 0.2 1540 312 ? S Mar02 0:04
/usr/local/sbi
root 63 0.0 0.0 1796 72 ? S Mar02 0:00

138
Controlul proceselor
/usr/sbin/rpc.
root 65 0.0 0.0 1812 68 ? S Mar02 0:00
/usr/sbin/rpc.
root 67 0.0 0.2 1172 260 ? S Mar02 0:00
/usr/sbin/cron
root 77 0.0 0.2 1048 316 ? S Mar02 0:00
/usr/sbin/apmd
root 79 0.0 0.1 1100 152 ? S Mar02 0:01 gpm
root 94 0.0 0.2 1396 280 ? S Mar02 0:00
/usr/sbin/auto
chris 106 0.0 0.5 1820 680 tty1 S Mar02 0:08 -bash
root 108 0.0 0.0 1048 0 tty3 SW Mar02 0:00
[agetty]
root 109 0.0 0.0 1048 0 tty4 SW Mar02 0:00
[agetty]
root 110 0.0 0.0 1048 0 tty5 SW Mar02 0:00
[agetty]
root 111 0.0 0.0 1048 0 tty6 SW Mar02 0:00
[agetty]
[output cut]

Sunt multe informatii aici. De fapt se mai adauga informatia legata


de care utilizatorul a inceput procesul respectiv, cat la suta din resursele
sistemului foloseste respectivul proces (coloanele %CPU, %MEM, VSZ si
RSS), si pe ce data a fost inceput procesul. Bineinteles ca aceste informatii
i-ar fi foarte utile unui administrator de sistem. Mai observam si altceva
totusi; faptul ca informatia iese din ecran si nu mai poate fi vazuta in
totalitate. Optiunea -w ne va fi de ajutor aici.
Nu este extraordinar de draguta, dar este utila. Acum avem lista
completa pentru fiecare proces in parte. Dar exista chiar si mai multe
informatii care pot fi aflate despre fiecare proces. Poti sa le gasesti daca
cercetezi in profunzime paginile manual pentru comanda ps. Totusi,
optiunile pe care le-am prezentat aici sunt cele mai uzuale si sunt cele de
care vei avea nevoie de cele mai multe ori.

11.4 kill

Cateodata, programele nu se comporta cum ar trebui si va trebui sa


le disciplinezi. Programul pentru acest tip de administrare este kill(1), si
poate fi folosit pentru a manipula procesele in mai multe moduri. Cea mai
evidenta modalitate de folosire a acestei comenzi este aceea de a folosi
kill pentru a termina un program. Va trebui sa faci acest lucru daca un
program functioneaza prost si utilizeaza mult din resursele sistemului, sau
daca pur si simplu te-ai saturat de procesul respectiv.
139
Slackware Linux Essentials
Pentru a termina un program, va trebui sa cunosti PID-ul sau numele
lui. Ca sa aflii PID-ul procesului respectiv, folosesti comanda ps care a
fost discuta mai devreme. De exemplu daca ai vrea sa termini procesul
4747, ar trebui sa dati comanda:
% kill 4747

Va trebui ca procesul sa iti apartina pentru a-l termina. Aceasta este


una din trasaturile securitatii sistemului. Daca ai fi putut termina procesele
pe care alti utilizatori le-au pornit ar fi fost posibil sa faci si multe alte
lucruri malitioase. Bineinteles ca root-ul poate sa inchida orice proces din
sistem.
Mai exista o varietate a comenzii kill numita killall(1). Acest
program face exact ceea ce spune: termina toate procesele care au un
anumit nume. Daca ai vrea de exemplu sa termini toate procesele cu
numele vimar trebui sa folosesti comanda:
% killall vim

Toate programele, care ruleaza si poarta numele vim fi terminate.


Daca vei folosi comanda ca root vei putea termina toate procesele vim ale
tuturor utilizatorilor. Uite si o comanda interesanta pentru a ii da pe toti
afara de pe sistem (inclusiv pe tine):
# killall bash

Uneori, simpla comanda kill nu face treaba. Anumite procese nu vor


muri cu un simplu kill. Va fi nevoie de o comanda mai puternica. Daca
acel PID 4747 nu raspunde la comanda, l-ai putea rezolva asa:
% kill -9 4747

Acest lucru va termina cu siguranta procesul 4747. Poti face acelasi


lucru cu killall. Aceasta comanda ii trimite procesului o comanda putin
diferita. Comanda normala kill trimite procesului un semnal SIGTERM
(de terminare). kill -9 pe de alta parte, trimite procesului un semnal
SIGKILL care il termina definitiv. Procesului nu ii mai este permis sa
curete in urma sa si din aceasta cauza, uneori se pot intampla lucruri
neplacute, cum ar fi date corupte, etc, cand se foloseste SIGKILL. Exista o
lista intreaga de semnale la dispozitia ta. Poti obtine aceasta lista cu aceasta
comanda:
% kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL

140
Controlul proceselor
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR

Numarul trebuie folosit pentru comanda kill, pe cand numele fara


prefixul “SIG” poate fi folosit pentru comanda killall.killall. Uite inca
un exemplu:
% killall -KILL vim

Un alt mod de a folosi comanda kill este pentru a reporni un


proces. Daca trimiti un semnal SIGHUP majoritatea proceselor vor incepe
sa-si reciteasca fisierele de configurare. Acest lucru este folositor mai ales
atunci cand trebuie sa le spunem proceseler de sistem sa-si reciteasca
fisierele de configurare dupa ce acestea au fost modificate.

11.5 top

In sfarsit, exista o comanda pe care o poti folosi ca sa iti afiseze


informatii despre procesele care ruleaza pe sistemul tau. Comanda se
numeste top(1), si se executa in felul urmator
% top

Informatii generale despre sistem. Acestea includ: numarul de


procese, media de incarcare a sistemului, starea procesorului, informatii
despre memoria libera si detalii despre procese cum ar fi PID, utilizator,
prioritate, cat la suta din procesor si din memorie este utilizata de proces,
timpul cat a rulat si numele programului.
6:47pm up 1 day, 18:01, 1 user, load average: 0.02, 0.07, 0.02
61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 2.8% user, 3.1% system, 0.0% nice, 93.9% idle
Mem: 257992K av, 249672K used, 8320K free, 51628K shrd,
78248K buff
Swap: 32764K av, 136K used, 32628K free,
82600K cached

PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME
COMMAND

141
Slackware Linux Essentials
112 root 12 0 19376 18M 2468 R 0 3.7 7.5 55:53 X
4947 david 15 0 2136 2136 1748 S 0 2.3 0.8 0:00
screenshot
3398 david 7 0 20544 20M 3000 S 0 1.5 7.9 0:14
gimp
4946 root 12 0 1040 1040 836 R 0 1.5 0.4 0:00 top
121 david 4 0 796 796 644 S 0 1.1 0.3 25:37
wmSMPmon
115 david 3 0 2180 2180 1452 S 0 0.3 0.8 1:35
wmaker
4948 david 16 0 776 776 648 S 0 0.3 0.3 0:00 xwd
1 root 1 0 176 176 148 S 0 0.1 0.0 0:13
init
189 david 1 0 6256 6156 4352 S 0 0.1 2.4 3:16
licq
4734 david 0 0 1164 1164 916 S 0 0.1 0.4 0:00
rxvt
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:08
kflushd
3 root 0 0 0 0 0 SW 0 0.0 0.0 0:06
kupdate
4 root 0 0 0 0 0 SW 0 0.0 0.0 0:00
kpiod
5 root 0 0 0 0 0 SW 0 0.0 0.0 0:04
kswapd
31 root 0 0 340 340 248 S 0 0.0 0.1 0:00
kerneld
51 root 0 0 48 48 32 S 0 0.0 0.0 0:00
dhcpcd
53 bin 0 0 316 316 236 S 0 0.0 0.1 0:00
rpc.portmap
57 root 0 0 588 588 488 S 0 0.0 0.2 0:01
syslogd

Programul se numeste top. top pentru ca programele care folosesc


cel mai mult din procesor vor fi afisate deasupra. Este interesant de retinut
ca top va fi afisat printre primele procese din lista pe unele sisteme mai
putin active (si unele mai active) din cauza memoriei folosite de catre
procesor pentru a rula acest program. Totusi top este o comanda utila
pentru a determina programul care nu se comporta asa cum ar trebui si
drept urmare trebuie terminat.
Dar acum sa presupunem ca doresti o lista cu propriile procese, sau
cu procesele unui anumit utilizator. Procesele pe care le doresti s-ar putea
sa nu fie printre cele care sa consume foarte mult din procesor. Optiunea -u
iti permite sa precizezi un utilizator sau un UID si sa monitorizezi numai
procesele detinute de acel UID.
% top -u alan
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3622 alan 13 0 11012 10m 6956 S 1.0 2.1 0:03.66 gnome-
terminal

142
Controlul proceselor
3739 alan 13 0 1012 1012 804 R 0.3 0.2 0:00.06 top
3518 alan 9 0 1312 1312 1032 S 0.0 0.3 0:00.09 bash
3529 alan 9 0 984 984 848 S 0.0 0.2 0:00.00 startx
3544 alan 9 0 640 640 568 S 0.0 0.1 0:00.00 xinit
3548 alan 9 0 8324 8320 6044 S 0.0 1.6 0:00.30 gnome-
session
3551 alan 9 0 7084 7084 1968 S 0.0 1.4 0:00.50 gconfd-2
3553 alan 9 0 2232 2232 380 S 0.0 0.4 0:00.05 esd
3555 alan 9 0 2552 2552 1948 S 0.0 0.5 0:00.10 bonobo-
activati
3557 alan 9 0 2740 2740 2224 S 0.0 0.5 0:00.05 gnome-
smproxy
3559 alan 9 0 6496 6492 5004 S 0.0 1.3 0:00.31 gnome-
settings-
3565 alan 9 0 1740 1740 1440 S 0.0 0.3 0:00.28
xscreensaver
3568 alan 9 0 7052 7052 4960 S 0.0 1.4 0:02.28 metacity
3572 alan 9 0 11412 11m 7992 S 0.0 2.2 0:01.58 gnome-
panel
3574 alan 9 0 12148 11m 8780 S 0.0 2.4 0:00.64 nautilus
3575 alan 9 0 12148 11m 8780 S 0.0 2.4 0:00.00 nautilus
3576 alan 9 0 12148 11m 8780 S 0.0 2.4 0:00.00 nautilus

Dupa cum se vede, momentan rulez X, top, un gnome-terminal in


care scriu aceste lucruri si inca cateva procese legate de X care imi
consuma cel mai mult din timpul procesorului. Este o buna metoda pentru
a vedea cat de mult utilizeaza altii sistemul.
top poate monitoriza procesele si dupa PID, ignorand procesele idle
si zombie, precum si multe alte optiuni. Cel mai bun loc pentru a le gasi,
este pagina din manual a comenzii top.

143
Capitolul 12

Administrarea de Sistem
Esentiala
12.1 Utilizatori si Grupuri
12.2 Utilizatori si Grupuri, Metoda Dificila
12.3 Oprirea Corespunzatoare

Hei, hei, hei, stiu la ce te gandesti. “Eu nu sunt administrator de sistem!


Nici macar nu vreau sa fiu administrator de sistem!!”
Adevarul este ca esti administrator pentru orice calculator pentru care ai
parola de root. Acesta ar putea fi sistemul tau desktop, cu unul sau doi
utilizatori, sau ar putea fi un server mare, cu cateva sute de utilizatori.
Indiferent, va trebui sa stii cum sa administrezi utilizatorii si cum sa inchizi
sistemul in mod corect. Aceste treburi par simple, dar au cateva ciudatenii.

145
Slackware Linux Essentials

12.1 Utilizatori si Grupuri

Dupa cum am mentionat in Capitolul 8, in mod normal nu ar trebui


sa folosesti sistemul logat ca root. In loc de aceasta, ar trebui sa creezi un
cont normal de utilizator pentru uzul zilnic si sa folosesti contul root numai
pentru administrarea sistemului. Pentru a crea un utilizator, poti fie folosi
utilitarele furnizate de Slackware sau poti modifica de mana fisierul de
parole.

12.1.1 Scripturi Furnizate


Cel mai usor mod de a administra utilizatorii este cu utilitare si
scripturile furnizate. Slackware include programele adduser, userdel(8),
chfn(1), chsh(1), si passwd(1) pentru administrarea utilizatorilor .
Comenzile groupadd(8), groupdel(8), si groupmod(8) sunt pentru admi-
nistrarea grupurilor. Cu exceptia chfn, chsh, si passwd, aceste programe
sunt de obicei rulate doar ca root, si prin urmare se afla in /usr/sbin.
chfn, chsh, si passwd pot fi rulate de oricine si se afla in /usr/bin.
Utilizatorii pot fi adaugati cu programul adduser. Vom incepe sa
trecem prin toata procedura, aratand intrebarile care sunt puse si oferind o
scurta descriere a lor. Raspunsul implicit este intre paranteze drepte si il
poti alege pentru aproape toate intrebarile, cu exceptia cazului in care intr-
adevar vrei sa schimbi ceva..
# adduser
Login name for new user []: jellyd

Acesta este numele pe care utilizatorul il va utiliza pentru login. In


mod traditional, numele de login sunt de maxim opt caractere si sunt
compuse din litere mici. (poti folosi mai mult de opt caractere, sau poti
folosi si cifre, dar incearca sa eviti asta daca nu ai un motiv bun.)
De asemenea, poti trimite numele de login ca argument in linia de
comanda:
# adduser jellyd

In ambele cazuri, dupa ce ai dat numele de login, vei fi intrebat de


ID-ul utilizatorului:

146
Administrarea de sistem esentiala
User ID ('UID') [ defaults to next available ]:

ID-ul utilizatorului (UID) este modul in care sunt determinate cu


adevarat apartenentele in Linux. Fiecare utilizator are un numar unic,
acesta incepand de la 1000 in Slackware. Poti alege tu UID-ul pentru noul
utilizator, sau il poti lasa pe adduser sa-l aleaga pe urmatorul disponibil.
Initial group [users]:

In mod implicit, toti utilizatorii sunt introdusi in grupul users . S-ar


putea sa vrei sa il introduci in alt grup, dar nu este recomandat decat daca
stii ce faci.
Additional groups (comma separated) []:

Acesta intrebare iti permite sa introduci noul utilizator in grupuri


aditionale. Un utilizator poate fi in mai multe grupuri in acelasi timp.
Aceasta este util in cazul in care ai stabilit grupuri pentru lucruri, cum ar fi
modificarea fisierelor cu paginile web, rularea jocurilor si asa mai departe.
De exemplu, unele site-uri definesc grupul wheel ca fiind singurul grup
care poate folosi comanda su. Sau, o instalare implicita Slackware
foloseste grupul sys pentru utilizatorii autorizati sa emita sunete prin placa
de sunet interna.
Home directory [/home/jellyd]

Directoarele personale sunt plasate in mod implicit sub /home.


Shell [ /bin/bash ]

Daca rulezi un sistem foarte mare, este posibil sa fi mutat


directoarele personale in alta locatie (sau in mai multe locatii). Acest pas iti
permite sa specifici unde va fi directorul personal al utilizatorului. bash
este shell-ul implicit pentru Slackware Linux si va fi indeajuns pentru
majoritatea oamenilor. Daca noul utilizator provine din lumea Unix, s-ar
putea sa fie familiarizat cu alt shell. Poti sa ii schimbi shell-ul acum, sau si-
l poate schimba el insusi mai tarziu, folosind comanda chsh .
Expiry date (YYYY-MM-DD) []:

Conturile pot fi configurate sa expire la o data specificata. Implicit, nu


exista data de expirare. Poti sa schimbi asta daca vrei. Aceasta optiune s-ar
putea sa le fie utila oamenilor care conduc un ISP si care s-ar putea sa vrea
ca aceste conturi sa expire la o anumita data daca nu incaseaza plata pentru
urmatorul an.

147
Slackware Linux Essentials

New account will be created as follows:


---------------------------------------
Login name: jellyd
UID: [ Next available ]
Initial group: users
Additional groups: [ None ]
Home directory: /home/jellyd
Shell: /bin/bash
Expiry date: [ Never ]

Asta-i tot ... daca vrei sa renunti, apasa Control+C. Altfel, apasa
ENTER pentru a crea contul..
Vei vedea acum toate informatiile pe care le-ai introdus despre noul
cont si iti va fi oferita posibilitatea de a anula crearea. Daca ai introdus
ceva gresit, apasa Control+C si ia-o de la inceput. In caz contrar, poti sa
apesi enter si contul va fi creat.
Creating new account...

Changing the user information for jellyd


Enter the new value, or press return for the default
Full Name []: Jeremy
Room Number []: Smith 130
Work Phone []:
Home Phone []:
Other []:

Toate aceste informatii sunt optionale. Nu este obligatoriu sa le


introduci daca nu vrei, iar utilizatorul poate sa le schimbe singur, folosind
chfn. Totusi, ar putea fi util sa introduci macar numele complet si un
numar de telefon, pentru a putea lua contact cu persoana mai tarziu.
Changing password for jellyd
Enter the new password (minimum of 5, maximum of 127
characters)
Please use a combination of upper and lower case letters and
numbers.
New password:
Re-enter new password:
Password changed.

Account setup complete.

Va trebui sa introduci o parola pentru noul utilizator. In general,


daca utilizatorul nu este langa tine, vei alege o parola implicita si-i vei
spune sa si-o shimbe in ceva mai sigur.

148
Administrarea de sistem esentiala
Alegerea unei Parole: O parola sigura este prima linie de aparare
impotriva spargerii unui sistem. Nu vrei sa ai o parola usor de ghicit,
pentru ca este mai usor pentru cineva sa intre in sistemul tau. In mod
ideal, o parola buna este un sir de caractere aleatoare, incluzand litere
mari si mici, cifre si caractere aleatoare. (Caracterul tab nu este
recomandat, depinzand de tipul de calculatoare de la care vei accesa
sistemul). Exista multe pachete de programe care pot genera parola
aleatoare; cauta-le pe Internet.
In general, foloseste-ti bunul simt: nu alege ca parola ziua de nastere a
cuiva, o fraza comuna, ceva ce ai gasit pe biroul tau sau ceva care
poate fi asociat cu tine cu usurinta. Nici parolele pe care le vezi scrise
sau online, cum ar fi “secure1” nu sunt bune.
Stergerea utilizatorilor nu este de loc grea. Doar foloseste userdel
cu numele contului pe care vrei sa-l stergi. Ar trebui sa verifici ca
utilizatorul sa nu fie logat si ca nici un proces nu ruleaza cu drepturile
utilizatorului. De asemenea tine minte ca, odata sters contul, toate datele
legate de parola lui sunt definitiv pierdute.
# userdel jellyd

Aceasta comanda il sterge pe enervantul utilizator jellyd din


sistemul tau. Calatorie sprancenata! :) Utilizatorul este sters din fisierele
/etc/passwd, /etc/shadow, si /etc/group, dar nu este sters si directorul
personal al sau.
Daca vrei sa stergi si directorul personal, foloseste urmatoarea
comanda:
# userdel -r jellyd

Dezactivarea temporara a unui cont de utilizator va fi acoperita in


sectiunea urmatoare, intrucat implica schimbarea parolei utilizatorului.
Schimbarea altor informatii ale contului este tratata in Sectiunea 12.1.3.
Programele de adaugare si stergere ale grupurilor sunt foarte simple.
groupadd va adauga o noua linie in fisierul /etc/group cu un ID unic de
grup, in timp ce groupdel va sterge grupul specificat. Ramane treaba ta sa
modifici /etc/group pentru a adauga utilizatori unui grup specific. De
exemplu, pentru a adauga un grup numit cvs:
# groupadd cvs

149
Slackware Linux Essentials
Si penru a-l inlatura
# groupdel cvs

12.1.2 Schimbarea Parolelor


Programul passwd schimba parolele modificand fisierul
/etc/shadow. Acest fisier mentine toate parolele pentru sistem intr-un
format criptat. Ca sa-ti schimbi propria parola scrie:
% passwd

Changing password for chris


Old password:
Enter the new password (minumum of 5, maximum of 127
characters)
Please use a combination of upper and lower case letters and
numbers.
New password:

Dupa cum vezi, esti intrebat de vechea parola. Nu va aparea pe ercan


cand o scrii, exact ca la login. Apoi esti intrebat de noua parola. passwd
face mai multe verificari pentru noua ta parola si se va plange daca aceasta
nu intruneste conditiile. Poti ignora aceste avertismente daca vrei. Ti se va
cere sa introduci noua parola a doua oara, pentru confirmare.
Daca esti root, poti schimba parola unui alt utilizator:
# passwd ted

Vei trece prin aceeasi procedura ca mai sus, cu exceptia faptului ca


nu vei mai fi intrebat de vechea parola (Unul din avantajele de a fi root...).
Daca este nevoie pot sa dezactivezi temporar un cont si sa-l activezi
mai tarziu. Atat dezactivarea cat si activarea pot fi facute cu passwd.
Pentru a dezactiva un cont, fa urmatoarele ca root:
# passwd -l david

Aceasta va schimba parola utilizatorului david in ceva care nu va fi


niciodata verificat de o valoare criptata. Vei reactiva contul folosind:
# passwd -u david

Acum, contul lui david este inapoi la normal. Dezactivarea contului


unui utilizator poate fi utilzat daca utilizatorul nu joaca dupa regulile
jocului sau daca au exportat o foarte mare copie de xeyes(1) pe desktop-ul
tau X.
150
Administrarea de sistem esentiala
12.1.3 Modificarea Informatiilor Utilizatorilor
Sunt doua lucruri pe care utilizatorul le poate schimba oricand: shell-
ul si informatiile finger. Slackware Linux foloseste chsh (schimbare shell)
si chfn (schimbare finger) pentru a modifica aceste valori.
Un utilizator poate alege orice shell care este trecut in fisierul
/etc/shells. Pentru majoritatea oamenilor, /bin/bash este de ajuns.
Altii s-ar purtea sa fie mai familiarizati cu un shell de pe sistemul de la
serviciu sau de la scoala si vor sa folosesca ceva ce deja stiu. Pentru a-ti
schimba shell-ul, foloseste chsh:
% chsh

Password:
Changing the login shell for chris
Enter the new value, or press return for the default
Login Shell [/bin/bash]:

Dupa ce ai dat parola, introdu calea completa spre noul shell.


Asigura-te intai ca este trecut in fisierul /etc/shells(5). Utilizatorul root
poate schimba shell-ul oricarui utilizator, ruland chsh si folosind numele
utilizatorului ca argument.
Informatiile finger sunt date optionale, cum ar fi numele tau complet,
numarul de telefon si numarul camerei. Acestea pot fi schimbate folosind
chfn, si urmand aceeasi procedura ca cea din timpul crearii contului. Ca de
obicei, root poate schimba informatiile finger ale oricui.

12.2 Utilizatori si grupuri, metoda dificila

Desigur, este posibil sa adaugi, sa modifici si sa stergi utilizatori si


grupuri fara scripturile si programele care vin cu Slackware. Nu este foarte
dificil desi, dupa ce vei citi procesul, probabil ca ti se va parea mult mai
simplu sa folosesti scripturile. Totusi este important sa stii modul in care
informatiile despre parole sunt stocate, pentru cazul in care ai nevoie sa
recuperezi aceste informatii si nu ai la indemana uneltele Slackware.
In primul rand vom adauga un nou utilizator in fisierele
/etc/passwd(5), /etc/shadow(5), si /etc/group(5). Fisierul passwd
contine cateva informatii despre utilizatorii sistemului dar (destul de
ciudat) nu si parolele lor. Asa se intampla odata dar, din motive de
securitate, s-a renuntat la acest lucru. Fisierul passwd trebuie sa poata fi

151
Slackware Linux Essentials
citit de catre toti utilizatorii, dar nu vrei ca parolele criptate sa poata fi
citite de toata lumea, intrucat posibilii intrusi pot folosi parolele criptate
drept punct de pornire pentru decriptare parolei unui utilizator. In loc de
asta, parolele sunt tinute in fisierul shadow, care poate fi citit numai de
root, iar parolele fiecarui utilizator sunt introduse in fisierul passwd ca “x”.
Fisierul group contine toate grupurile si corespondenta intre utilizatori si
grupuri.
Poti folosi comanda vipw pentru a edita fisierul /etc/passwd in
siguranta, comanda vigr pentru a edita fisierul /etc/group in siguranta.
Foloseste vipw -s pentru a edita fisierul /etc/shadow in siguranta. (“In
siguranta” inseamna, in acest context, ca altcineva nu va putea modifica
fisierul in acelasi timp cu tine. Daca esti unicul administrator, probabil ca
esti oricum in siguranta, dar obiceiurile bune se formeaza de la inceput.)
Haide sa examinam fisierul /etc/passwd si sa vedem cum se adauga
un nou utilizator. O linie tipica in passwd arata asa:
chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash

Fiecare linie este pentru un utilizator, iar fiecare camp de pe linie


este separat de celelalte prin doua puncte. Campurile sunt numele de login,
parola criptata (“x” pentru toata lumea pe un sistem Slackware, pentru ca
Slackware foloseste parole criptate), ID-ul de utilizator, ID-ul de grup,
informatiile optionale finger (separate de virgule), directorul personal si
shell-ul. Pentru a adauga un nou utilizator, adauga o noua linie la sfarsitul
fisierului, completand informatiile corecte.
Informatiile pe care le adaugi trebuie sa indeplineasca niste conditii,
altfel utilizatorul va avea probleme la login. In primul rand, asigura-te ca
parola este x, si atat numele de utilizator cat si ID-ul de utilizator sunt unice.
Atasaza utilizatorul la un grup, fie 100 (grupul “users” in Slackware) fie
grupul tau implicit (foloseste numarul grupului, nu numele sau). Da-i
utilizatorului un director personal valid (pe care il vrei crea mai tarziu) si un
shell (tine minte, shell-urile valide sunt trecute in /etc/shells).
Apoi, vom crea o intrare in fisierul /etc/shadow, care contine
parolele criptate. O intrare tipica arata asa:
chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::

Din nou, fiecare linie este o intrare pentru o persoana, cu fiecare


camp separat de doua puncte. Campurile sunt (in ordine) numele de login,
parola criptata, numarul de zile de cand parola a fost schimbata ultima
data, numarand de la Epoca (1 Ianuarie 1970), numarul de zile dupa care

152
Administrarea de sistem esentiala
parola poate fi schimbata, numarul de zile pana cand parola trebuie
schimbata, numarul de zile cu care va fi anuntat utilizatorul inainte de
expirarea parolei, numarul de zile dupa expirare dupa care contul va fi
dezactivat, numarul de zile de cand contul este dezactivat, numarand de la
Epoca si un camp rezervat.
Dupa cum vezi, majoritatea campurilor se refera la expirarea parolei.
Daca nu folosesti informatiile de expirare, poti sa completezi unele
campuri cu niste valori speciale. In caz contrar, va trebui sa faci cateva
calcule si decizii inainte de completarea campurilor. Nu-ti face griji cu
parola acum, intrucat o vei schimba imediat. Singurul caracter pe care nu il
poti introduce in campul de parola este doua puncte. Lasa gol campul “zile
de cand a fost schimbata parola ultima data”. Completeaza 0, 99999, si 7
exact cum ai vazut in exemplu si lasa restul campurilor goale.
(Pentru cei care se gandesc ca imi pot vedea parola criptata mai sus si cred
ca vor putea sa intre in sistemul meu, mult noroc. Daca imi puteti sparge
parola, veti putea intra pe un sistem de test protejat de un firewall. Asta
chiar ca e util :) )
Intr-un sistem Slackware, toti utilizatorii normali sunt membrii ai
grupului “users”. Totusi, daca vrei sa adaugi un nou grup, sau daca vrei sa
adaugi utilizatori la grupuri, va trebui sa modifici fisierul /etc/group. Iata
o linie tipica:
cvs::102:chris,logan,david,root

Campurile sunt numele grupului, parola grupului, ID-ul grupului si


membrii grupului, separati de virgule. Crearea unui nou grup nu inseamna
decat adaugarea unei linii noi, cu un ID de grup unic si o lista cu toti
utilizatorii care vrei sa fie in acel grup. Utilizatorii care sunt logati vor
trebui sa faca logout si apoi login pentru a beneficia de schimbari.
In acest moment, este o idee buna sa folosesti comenzile pwck si
grpck pentru a verifica daca ai facut niste schimbari corecte. In primul
rand, foloseste pwck -r si grpck -r: optiunea -r -r nu face nici o
schimbare, dar arata schimbarile pe care le-ar face daca ai rula comanda
fara aceasta optiune. Poti folosi iesirea acestei comezi ca sa decizi daca
mai trebuie sa modifici un fisier, daca trebuie sa rulezi pwck or grpck fara
optiunea -r sau daca vrei sa lasi schimbarile asa cum sunt.
Acum ar trebui sa folosesti comanda passwd pentru a crea o parola
pentru utilizator. Apoi foloseste mkdir ca sa creezi directorul personal al
noului utilizator in locatia pe care ai introdus-o in fisierul /etc/passwd si
foloseste chown ca sa schimbi apartenenta noului director la noul utilizator.

153
Slackware Linux Essentials
Stergerea unui utilizator inseamna doar stergerea tuturor intregistrarilor
care exista pentru acel utilizator. Sterge intrarile utilizatorului din
/etc/passwd si /etc/shadow, si sterge numele de login din toate grupurile
din fisierul /etc/group . Daca vrei, poti sterge directorul personal al
utilizatorului, fisierul spool de mail si intrarile din crontab (daca exista).
Stergerea unui grup este la fel: sterge intrarea grupului din
/etc/group./etc/group.

12.3 Oprirea corespunzatoare

Este foarte important sa inchizi sistemul in mod corect. Oprindu-l


doar apasand pe butonul de curent poate duce la avarii grave ale sistemului
de fisiere. Cat timp este deschis, exista fisiere utilizate chiar daca tu nu faci
nimic. Tine minte ca tot timpul ruleaza multe procese in fundal. Aceste
procese administreaza sistemul si tin deschise multe fisiere. Cand sistemul
este inchis de la buton, aceste fisiere nu sunt inchise in mod corect si pot fi
corupte. In functie de ce fisier a fost stricat, sistemul poate deveni complet
inutilizabil! In orice caz, va trebui sa treci printr-o indelungata procedura
de verificare a sistemului de fisiere la urmatoare repornire.
Daca ti-ai configurat sistemul sa foloseasca un sistem de fisiere
jurnalizat, cum ar fi ext3 sau reiserfs, vei fi partial protejat de
stricaciuni iar, la umatoarea restartare, verificarea va dura mult mai
putin decat daca ai folosi un sistem de fisiere fara jurnalizare, cum ar
fi ext2. Totusi, aceasta plasa de siguranta nu reprezinta o scuza pentru
inchiderea necorespunzatoare a sistemului! Un sistem de fisiere
jurnalizat te protejeaza numai de evenimentele asupra carora nu ai
control, nu si de propria lene.
In orice caz, cand vrei sa repornesti sau sa inchizi calculatorul, este
important sa o faci in mod corect. Sunt mai multe moduri in care poti sa o
faci; alege-l pe cel care crezi ca e cel mai amuzant (sau care implica cea
mai putina munca). Din moment ce repornirea si inchiderea sunt proceduri
asemanatoare, majoritatea modurilor de inchidere se pot aplica si la
repornire..
Prima metoda este prin programul shutdown(8) si este probabil cea
mai populara. shutdown poate fi folosit la repornire, la inchidere si poate
afisa un mesaj tuturor utilizatorilor logati, spunandu-le ca sistemul este in
curs de inchidere.
154
Administrarea de sistem esentiala
Cel mai simplu mod de a inchide calculatorul este:
# shutdown -h now

In acest caz nu vom trimite un mesaj personalizat catre utilizatori; ei


vor vedea mesajul implicit al lui shutdown. “now” este momentul de timp
cand vrei sa inchizi, iar “-h” inseamna ca vrei sa opresti sistemul. Acesta
nu e este un mod tocmai prietenos de a rula un sistem multiutilizator, dar
functioneaza perfect pe sistemul tau de acasa. O metoda mai buna pe un
sistem multiutilizator este sa avertizezi din timp pe toata lumea:
# shutdown -h +60

Asta va inchide sistemul peste o ora (60 de minute), ceea ce ar fi de


ajuns pe un sistem multiutilizator. Inchiderea sistemelor vitale ar trebui
programata cu mult timp inainte si ar trebui afisata note cu timpul de
nefunctionare in orice loc crezi de cuviinta (e-mail, /etc/motd, orice).
Restartarea sistemului se face folosind aceeasi comanda, dar
utilizand “-r” cu “-h”:
# shutdown -r now

Poti folosi aceeasi notatie de timp cu shutdown -r ca atunci cand


folosesti shutdown -h. Sunt mai multe lucuri pe care le poti face cu
shutdown pentru controlul opririi si repornirii; uita-te in pagina man pentru
mai multe detalii.
Al doilea mod de oprire a sistemului este folosirea comenzilor
halt(8) si reboot(8). Dupa cum le spune si numele halt va opri imediat
sistemul iar reboot il va reporni. (reboot este, de fapt, doar o legatura
simbolica spre halt.) Sunt invocate astfel:
# halt
# reboot

Un mod mai intim de oprire sau repornire este sa discuti direct cu


init. Toate celelalte metode sunt doar modalitati convenabile de
conversatie cu init, dar poti sa-i spui direct ce sa faca folosind
telinit(8) (observa faptul ca are un singur “l”). Folosind telinit ii vei
spune lui init in ce nivel de rulare vrei sa ajungi, ceea ce va face ca un
script special sa ruleze. Aceasta merge pentru oprirea si repornirea
sistemului, pentru ca amandoua sunt nivele speciale de rulare.
# telinit 0

155
Slackware Linux Essentials
Nivelul de rulare 0 este modul de oprire. Spunandu-i lui init sa
intre in nivelul de rulare 0, va determina ca toate procesele sa fie omorate,
sistemele de fisiere sa fie demontate si sistemul sa fie oprit. Aceasta este o
modalitate perfect acceptabila de a opri sistemul. Pe multe laptopuri si
calculatoare moderne, acesta va face ca masina sa fie scoasa de sub
tensiune.
# telinit 6

Nivelul de rulare 6 este modul de repornire. Toate procesele vor fi


omorate, sistemele de fisiere vor fi demontate si masina va fi repornita.
Aceasta este o modalitate perfect acceptabila pentru repornirea sistemului.
In caz ca esti curios, atunci cand schimbi la nivelele de rulare 0 sau
6, utilizand shutdown, halt, sau reboot, este rulat scriptul
/etc/rc.d/rc.6. (Scriptul /etc/rc.d/rc.0 este o alta legatura simbolica
catre /etc/rc.d/rc.6.) Poti sa personalizezi acest fisier dupa bunul tau
gust – dar ai grija sa testezi schimbarile cu mare atentie!
Mai exista o ultima metoda de repornire a sistemului. Pentru toate
celelalte metode trebuie sa fii logat ca root. Totusi este posibil sa
repornesti masina chiar daca nu esti root, cu conditia sa ai acces fizic la
tastatura. Folosind Control+Alt+Delete ("salutul celor trei degete") vei
face ca masina sa reporneasca imediat. (In fundal, comanda shutdown este
rulata cand apesi Control+Alt+Delete.) Salutul nu functioneaza mereu
cand folosesti X Window – s-ar putea sa trebuiasca sa folosesti
Control+Alt+F1 (sau alta tasta functionala) pentru a schimba la un
terminal non-X Window inainte sa-l folosesti.
In sfarsit, fisierul care controleaza toate aspectele pornirii si opririi
este fisierul /etc/inittab(5). In general nu ar trebui sa modifici acest
fisier, dar s-ar putea sa-ti arate de ce lucrurile functioneaza asa cum
functioneaza. Ca de obicei, uita-te in pagina man pentru alte detalii.

156
Capitolul 13

Comenzi primare de
retea
13.1 ping
13.2 traceroute
13.3 Utilitare DNS
13.4 finger
13.5 telnet
13.6 The Secure shell
13.7 email
13.8 Browsers
13.9 Clienti FTP
13.10 Comunicarea cu alti utilizatori

O retea consta in mai multe calculatoare interconectate. O retea variaza in


complexitate. Poate fi la fel de mare ca reteaua de acasa cu cateva
calculatoare, o retea a unei universitati sau chiar Internet-ul. Cand calcula-
torul dumneavoastra face parte dintr-o retea, puteti avea acces direct la re-
sursele celorlalte calculatoare, sau indirect prin servicii ca web sau e-mail.
Exista o varietate de programe de retea ce pot fi folosite. Unele sunt utile
pentru diagnosticarea retelei, sa vedeti daca totul functioneaza cum trebuie.
Altele precum clientii de e-mail sau web browser-e sunt utile pentru munca
dumneavoastra si pentru a fi in contact permanent cu alte persoane.

157
Slackware Linux Essentials

13.1 ping

ping(8) trimite un pachet ICMP ECHO_REQUEST catre o masina


specificata. Daca masina raspunde, primiti inapoi un pachet ICMP. Suna
ciudat? Ei bine, puteti "pingui" o adresa IP a unei masini ca sa vedeti daca
este oprita sau pornita. Daca nu exista un raspuns, ceva este in neregula.
Un exemplu de conversatie intre doi utilizatori Linux:
Utilizator A: Loki's e cazut iar.
Utilizator B: Esti sigur?
Utilizator A: Da, Am incercat sa-l pinguiesc, dar nu raspunde.
Cazurile de genul acesta fac comanda ping o unealta foarte utilizata.
Este o metoda foarte usoara prin care puteti vedea daca un calculator este
pornit si/sau conectat la reta. Sintaxa de baza este:
% ping www.slackware.com

Mai exista multe optiuni ce pot fi specificate. Vedeti pagina de


manual ping(1) pentru mai multe informatii.

13.2 traceroute

Comanda traceroute(8) este un utilitar foarte bun pentru


diagnosticarea retelei. traceroute arata fiecare masina prin care un pachet
trece in incercarea de a ajunge la destinatie. Puteti vedea cate "hop-uri"
sunt de la dumneavoastra catre site-ul Slackware cu urmatoarea comanda:
% traceroute www.slackware.com

Sunt aratate toate host-urile cu timpii de raspuns aferenti. Uitati un


exemplu:
% traceroute www.slackware.com
traceroute to www.slackware.com (204.216.27.13), 30 hops max,
40 byte packets
1 zuul.tdn (192.168.1.1) 0.409 ms 1.032 ms 0.303 ms
2 207.171.227.254 (207.171.227.254) 18.218 ms 32.873 ms
32.433 ms
3 border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms

158
Comenzi primare de retea
15.731 ms 16.142 ms
4 pb-nap.crl.net (198.32.128.20) 20.741 ms 23.672 ms
21.378 ms
5 E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms
21.532 ms 21.29 ms
6 T1-CDROM-00-EX.US.CRL.NET (165.113.118.2) 24.544 ms
42.955 ms 58.443 ms
7 www.slackware.com (204.216.27.13) 38.115 ms 53.033 ms
48.328 ms

traceroute este similar cu ping in sensul ca ambele folosesc


pachete ICMP. Exista multe optiuni ce pot fi adaugate comenzii
traceroute. Aceste optiuni sunt explicate detaliat in pagina de manual.

13.3 Utilitare DNS

Domain Name Service (abreviat DNS) este acel protocol magic ce


permite calculatorului dumneavoastra sa transforme adresele web ca
www.slackware.com in adrese IP ca 64.57.102.34. Calculatoarele nu pot
ruta pachete catre www.slackware.com, dar le pot ruta catre adresa IP al
acelui domeniu. Aceasta este o metoda foarte buna de a va aminti usor
adresele masinilor. Fara DNS ar trebui sa tinem noi minte fiecare adresa IP
a fiecarei masini, si asta presupunand ca adresa IP nu se va schimba
niciodata. In mod cert folosirea numelor pentru calculatoare este foarte
buna, dar cum putem mapa numele catre adresele IP?

13.3.1 host
host(1) poate face acest lucru. host este folosit pentru a mapa
numele catre adresele IP. Este un utilitar mic, simplu si fara prea multe
functii.
% host www.slackware.com
www.slackware.com is an alias for slackware.com.
slackware.com has address 64.57.102.34

Sa zicem ca vrem sa mapam o adresa IP catre un nume; cum facem


acest lucru?

159
Slackware Linux Essentials
13.3.2 nslookup
nslookup este un program ce exista de foarte multi ani. nslookup
este foarte vechi si este posibil sa nu mai existe in versiunile viitoare. Nici
nu exista o pagina de manual pentru acest program.
% nslookup 64.57.102.34
Note: nslookup is deprecated and may be removed from future
releases.
Consider using the `dig' or `host' programs instead. Run
nslookup with
the `-sil[ent]' option to prevent this message from
appearing.
Server: 192.168.1.254
Address: 192.168.1.254#53

Non-authoritative answer:
www.slackware.com canonical name = slackware.com.
Name: slackware.com
Address: 64.57.102.34

13.3.3 dig
The domain information groper, pe scurt dig(1) este utilitarul de
baza pentru a afla informatii DNS. dig poate afla aproape orice informatie
de la un DNS server chiar si reverse lookups, A, CNAME, MX, SP, si
TXT. dig are extrem de multe optiuni, si daca nu sunteti foarte familiar cu
ele, ar trebui sa cititi in detaliu stufoasa pagina de man.
% dig @192.168.1.254 www.slackware.com mx

; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx


;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2,
ADDITIONAL: 2

;; QUESTION SECTION:
;www.slackware.com. IN MX

;; ANSWER SECTION:
www.slackware.com. 76634 IN CNAME
slackware.com.
slackware.com. 86400 IN MX 1
mail.slackware.com.

160
Comenzi primare de retea
;; AUTHORITY SECTION:
slackware.com. 86400 IN NS ns1.cwo.com.
slackware.com. 86400 IN NS ns2.cwo.com.

;; ADDITIONAL SECTION:
ns1.cwo.com. 163033 IN A 64.57.100.2
ns2.cwo.com. 163033 IN A 64.57.100.3
;; Query time: 149 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Sat Nov 6 16:59:31 2004
;; MSG SIZE rcvd: 159

Exemplul ar trebui sa va dea o idee despre cum functioneaza dig.


“@192.168.1.254” specifica ce server DNS vrem sa folosim.
“www.slackware.com” aste domeniul despre care vrem sa aflam mai multe
informatii, si “mx” este tipul de informatie pe care o vrem. Din
informatiile de mai sus, aflu ca orice e-mail trimis catre
www.slackware.com va fi trimis catre mail.slackware.com

13.4 finger

finger(1) este folosit pentru a afla informatii despre un anume


utilizator. Daca folosim finger asupra unui nume de utilizator sau o adresa
de e-mail, serverul ne va da informatiile despre utilizator, cum ar fi adresa,
numar de telefon, tot ce a fost specificat cand utilizatorul a fost adaugat in
sistem cu adduser. Un exemplu este:
% finger johnc@idsoftware.com

finger poate preciza numele de utilizator, email-ul, numere de


telefon, si fisiere numite “dot plan” si “dot project”. Desigur informatiile
variaza in functie de serverul finger. Cel inclus in Slackware precizeaza
urmatoarele informatii:
• Username
• Room number
• Home phone number
• Work phone number
• Login status
• Email status
• Contents of the .plan file in the user's home directory
• Contents of the .project file in the user's home directory

161
Slackware Linux Essentials
Primele patru pot fi modificate cu ajutorul comenzii chfn. Tine
minte informatiile in fisierul /etc/passwd. Pentru a modifica informatiile
din fisierul .plan sau .project pur si simpu editatile cu editorul preferat.
Fisierele trebuie sa fie in directorul personal, cu numele de .plan si
.project.
Multi utilizatori fac finger asupra propriului cont de pe alte masini
pentru a afla daca au un e-mail nou. De altfel puteti afla planurile
utilizatorului sau proiectul la care acesta lucreaza.
Ca multe alte comenzi, finger are optiuni. Verificati pagina de man
pentru alte optiuni.

13.5 telnet

Cineva a spus odata ca telnet(1) este cel mai bun utilitar care a
putut sa existe pe un calculator. Ai putea sa te autentifici via retea sau
Internet pe o alta masina si sa iti faci treaba in mod normal este ceea ce
separa sistemele de operare Unix si Unix-like de restul lumii.
telnet iti da voie sa te autentifici pe o masina ca si cand aceasta ar
fi in fata ta. Odata ce username si password au fost acceptate, vei primi un
shell. De aici poti sa faci abslolut orice se poate face intr-o consloa
normala. Administrare de sistem, sa citesti e-mail-ul sa modifici fisiere
s.a.m.d. Daca lucrezi in X si faci telnet catre alta masina, poti rula
programe de X pe masina remote si sa afisezi acestea pe masina curenta.
Pentru a te autentifica pe o masina remote, foloseste sintaxa: :
% telnet <hostname>

Daca masina raspunde, vei vedea un ecran de login. Introdu


username si parola. Asta este tot. Acum esti intr-un shell. Pentru a face
log-out utilizeaza comanda exit sau logout.
telnet nu cripteaza informatia trimisa. Totul este trimis in text clar,
chiar si parolele. Nu este recomandat sa folosesti telnet via Internet.
Incerca in schimb Secure Shell. Cripteaza toata informatia trimisa si
este de asemenea gratuit.

162
Comenzi primare de retea
13.5.1 Alte moduri de a utiliza telnet
Acum ca v-am convins sa nu folositi telnet va vom arata alte
intrebuintari practice ale programului telnet.
Poti folosi telnet ca sa te conectezi la o masina remote pe un
anume port.
% telnet <hostname> [port]

Poate fi de mare folos cand trebuie sa testezi un anume serviciu,


HTTP, POP3, etc.
Mai jos se poate vedea telnet catre un server HTTP pe portul 80
pentru a afla cateva detalii despre el.
Figura 13-1. Telnet catre un webserver
% telnet store.slackware.com 80
Trying 69.50.233.153...
Connected to store.slackware.com.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 25 Apr 2005 20:47:01 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
ETag: "193424-c0-3e9fda6e"
Accept-Ranges: bytes
Content-Length: 192
Connection: close
Content-Type: text/html

Connection closed by foreign host.


%

Poti sa faci la fel pentru orice alt protocol plain-text, atat timp cat sti
pe ce port sa te conectezi.

13.6 The Secure shell

In ziua de azi, secure shell se bucura de popularitatea pe care telnet


o avea odata. ssh(1) iti da voie sa te autentifici pe o masina remote si sa
faci ce doresti, ca si cand ar fi in fata ta; totusi, ssh cripteaza toata
informatia ce circula intre cele doua masini. Chiar daca cineva ar

163
Slackware Linux Essentials
intercepta aceste informatii, ar fi imposibil sa le inteleaga. Urmeaza un
exemplu tipic de conexiune ssh:
% ssh carrier.lizella.net -l alan
The authenticity of host 'carrier.lizella.net
(192.168.1.253)' can't be
established.
RSA key fingerprint is
0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'carrier.lizella.net' (RSA) to the
list of
known hosts.
Password: password
Last login: Sat Nov 6 16:32:19 2004 from 192.168.1.102
Linux 2.4.26-smp.
alan@carrier:~$ ls -l MANIFEST
-rw-r--r-- 1 alan users 23545276 2004-10-28 20:04 MANIFEST
alan@carrier:~$ exit
logout
Connection to carrier.lizella.net closed.

Poti observa o conexiune catre carrier.lizella.net, si verificarea


permisiilor pe fisierul MANIFEST file.

13.7 email

Posta electronica este unul dintre lucrurile cele mai cunoscute pe


care le poate face cineva pe Internet. S-a reportat ca in 1998 a fost trimisa
mai multa posta electronica decat clasica. Este intra-devar comun si
folositor.
Sub Slackware, oferim un mail server standard si diferiti clienti de mail.
Toti clientii descrisi mai jos sunt bazati pe text. Multi utilizatori Windows ar
putea sa fie impotriva acestui lucru, dar vei afla ca un client bazat pe text este
foarte convenabil, in special cand verifici mail-ul de la distanta. Nu te teme,
sunt multi clienti de e-mail grafici cum ar fi Kmail-ul de la KDE. Daca vrei sa
folosesti unul dintre acelea verifica in meniul de ajutor.

13.7.1 pine
pine(1) nu este elm. Sau asa se spune. Universitea din Washington a
creat programul lor pentru stirile de pe Internet si e-mail din nevoia pentru

164
Comenzi primare de retea
un cititor de mail simplu pentru sutdentii lor. pine este unul dintre cei mai
populari clienti de mail folositi azi si este disponibil pentru aproape toate
genurile de Unix si Windows.
Figura 13-2. Meniul Pine principal

Vei vedea un meniu de comenzi si un rand de chei comanda in


partea de jos. pine este intr-adevar un program complex, asa ca nu vom
discuta fiecare trasatura a acestuia aici.
Pentru a vedea ce este in inbox, apasa pe i. Mesajele tale sunt listate
cu data, autorul si subiectul. Marcheaza mesajul pe care il vrei si apasa
enter pentru a-l vizualiza. Apasand pe r va incepe un reply la mesaj.
Odata ce ai scris raspunsul, apasa pe Ctrl+X pentru a-l trimite. Poti apasa
pe i pentru a te intoarce la lista mesajelor.
Daca vrei sa stergi un mesaj, apasa pe d. Va marca mesajul selectat
pentru stergere. pine sterge mailul cand parasesti programul. pine te lasa
de asemenea sa iti stochezi mailul in directoare. Poti vedea lista
directoarelor apasand s. La listarea mesajelor, apasa s pentru a-l salva in
alt director. Iti va cere numele directorului in care sa scrie mesajul.
pine are multe, foarte multe caracteristici; ar trebui neaparat sa te
uiti la pagina manual pentru mai multe informatii. Va contine cea mai
recenta informatie despre program.

13.7.2 elm
elm(1) este un alt client de mail popular bazat pe text. Desi nu la fel
de prietenos ca si pine, este cu siguranta prezent de mai multa vreme.

165
Slackware Linux Essentials
Figura 13-3. Ecranu principal Elm

Esti plasat in inbox-ul tau implicit. Mesajele sunt listate cu numarul


mesajului, data, expeditor si subiect. Foloseste tastele sageata pentru a
marca mesajele pe care le vrei. Apasa Enter pentru a citi mesajul.
Pentru a compune un mesaj nou, apasa m la meniul principal. Tasta
dva marca un mesaj pentru stergere. Tasta r va raspunde mesajului pe care
il citesti. Toate aceste taste sunt afisate in partea de jos a ecranului cu un
prompt.
Pagina de manual discuta despre elm in mai mult detaliu, deci
probabil ca vei vrea sa o consulti inainte de a folosi elm.

13.7.3 mutt
“Toti clientii de mail sunt naspa. Aceasta e naspa mai putin ca
celelalte.” Interfata originala.mutt a fost bazata pe elm cu trasaturi
adaugate in alti clienti de mail populari, rezultand intr-un mutt hibrid.
Cateva dintre trasaturile luimutt
• suport pentru culori
• filetarea mesajelor
• suport pentru MIME si PGP/MIME
• suport pentru pop3 si imap
• suport pentru multiple formaturi mailbox (mbox, MMDF, MH,
maildir)
• foarte configurabil

166
Comenzi primare de retea
Figura 13-4. Ecranul principal Mutt

Daca cauti un client de mail care te va lasa sa fii in control total


asupra tot, atunci iti va placea mutt. Toate setarile implicite pot fi
configurate, combinatiile de taste pot fi schimbate. Daca iti place sa adaugi
un macrox, poti.
Probabil ca vei vrea sa arunci o privire la pagina de manual a muttrc
care iti va spune cum sa configurezi totul. Sau uita-te la fisierul exemplu
muttrc inclus.

13.7.4 nail
nail(1) este un client de mail condus de linia de comanda. Este
foarte primitiv si nu ofera cam nimic ca si interfata utilizator. Desi, mailx
este util in momentele cand vrei sa trimiti ceva repede, scriptarea unui bulk
mailer, testarea instalatiei MTA sau ceva similar. Tine minte ca Slackware
creeaza link-uri simbolice catre nail la /usr/bin/mail si
/usr/bin/mailx. Oricare dintre aceste trei comenzi executa acelasi
program. De fapt, vei vedea ca nail este cel mai des referit ca mail. mail.
Linia de comanda primara este:
% mailx <subject> <to-addr>

mailx citeste corpul mesajului de la intrarea standard. Asa ca poti


concatena un fisier acestei comenzi pentru a o trimite, sau poti pur si
simplu sa tastezi textul si sa apesi Ctrl+D cand termini cu mesajul.
Aici este un exemplu de trimite a sursei unui program unei alte persoane.

167
Slackware Linux Essentials
% cat randomfunc.c | mail -s "Here's that function"
asdf@example.net

Pagina de manual explica mai mult din ceea ce poate nail sa faca,
asa ca vei vrea probabil sa arunci o privire acolo inainte de a-l folosi.

13.8 Navigatoare (browser)

Primul lucru la care se gandesc oamenii cand aud cuvantul Internet


este “navigarea pe net”. Sau verificarea paginilor web folosind un browser
web. Acesta este probabil cea mai populara folosire a Internetului pentru
utilizatorul obisnuit. Slackware furnizeaza web browsere grafice populare
in seriile “XAP”, precum si browsere text in seriile “N”. Vom arunca o
privire rapida asupra catorva dintre optiunile cele mai obisnuite.

13.8.1 lynx
lynx(1) este un browser web bazat pe text. Este o metoda foarte
rapida de a cauta ceva pe Internet. Cateodata grafica iti sta pur si simplu in
cale daca stii exact ce cauti. Pentru a porni lynx, tasteaza pur si simplu
lynx la prompt:

% lynx

Figura 13-5. Pagina implicita la pornirea Lynx

Vei vrea sa specifici o pagina pe care sa o deschida lynx:


168
Comenzi primare de retea
% lynx http://www.slackware.com
lynx afiseaza tastele comanda si ce fac in josul ecranului. Tastele
sageata sus si jos te poarta prin document, Enter alege link-ul marcat, iar
sageata stanga te duce la pagina anterioara. Apasand d va descarca
fisierul selectat. Comanda g afiseaza prompt-ul Go, unde poti sa-i dai lui
lynx un URL pe care sa-l deschida.
Sunt multe alte comenzi in lynx. Poti consulta fie pagina
manualului, sau sa apesi pe h pentru a vedea ecranul de ajutor pentru mai
multe informatii.

13.8.2 links
La fel ca si lynx, links este un browser web mod text, unde faci
toata navigarea folosind tastatura. Desi, cand apesi pe tasta Esc va activa
un meniu foarte convenabil in susul ecranului. Acesta il face foarte usor de
folosit, fara a trebui sa inveti toate scurtaturile tastaturii. Oameni care nu
folosesc un browser text in fiecare zi vor aprecia aceasta trasatura.
links pare sa aiba mai mult suport pentru frame-uri si tabele, fata de
lynx.

Figura 13-6. Links, cu meniul fisier deschis

13.8.3 wget
wget(1) este un utilitar pe linia de comanda care va downloada
fisiere dintr-un URL specific. Pe cand nu este un web browser de fapt,
wget este folosit pentru a lua parti intregi sau partiale ale paginilor web

169
Slackware Linux Essentials
pentru vizualizarea offline, sau pentru download-uri rapide ale fisierelor de
pe servere HTTP sau FTP. Sintaxa de baza este:
% wget <url>

Poti sa ii dai si optiuni. De exemplu, aceasta va downloada pagina


web Slackware:
% wget --recursive http://www.slackware.com

wget va crea un director www.slackware.com si va stoca fisierele


acolo, la fel cum face site-ul.
wget poate downloada de asemenea de pe site-uri FTP; specifica
doar un URL FTP in locul unuia HTTP.
% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
--12:18:16-- ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
=> `wget-1.8.2.tar.gz'
Resolving ftp.gnu.org... done.
Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /gnu/wget ... done.
==> PORT ... done. ==> RETR wget-1.8.2.tar.gz ... done.
Length: 1,154,648 (unauthoritative)

100%[==================================>] 1,154,648
209.55K/s ETA 00:00

12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]

wget are mai multe optiuni, care il fac util pentru scripturi specifice
web (oglindirea paginilor web s.a.m.d.). Pentru mai multe informatii ar
trebui sa fie consultata pagina de manual..

13.9 Clienti FTP

FTP inseamna File Transfer Protocol. Iti permite sa trimiti si sa


primesti fisiere intre doua calculatoare. Este serverul si clientul FTP. In
aceasta sectiune discutam despre client.
Pentru cei curiosi, clientul esti tu. Serverul este calculatorul care iti
raspunde cererilor tale FTP si te lasa sa te loghezi. Vei downloada fisiere si
vei uploada fisiere pe server. Clientul nu poate accepta conexiuni FTP,
poate doar sa se conecteze la alte servere.
170
Comenzi primare de retea
13.9.1 ftp
Pentru a te conecta la un server FTP, ruleaza comanda ftp(1) si
specifica host-ul:
% ftp <hostname> [port]

Daca host-ul ruleaza un server FTP, ii va cere un nume de utilizator


si o parola. Poti sa te loghezi cu username-ul tau sau cu “anonymous”.
Site-urile FTP anonime sunt foarte populare pentru arhive software. De
exemplu, pentru a lua Slackware Linux prin FTP, trebuie sa folosesti un
FTP anonim.
Odata conectat, vei fi la promptul ftp>. Sunt comenzi speciale pentru
FTP, dar ele sunt similare cu alte comenzi standard. Tabelul urmator arata
cateva dintre comenzile de baza si ce fac ele:
Tabelul 13-1. comenzi ftp
Cpmanda Scop
ls Listeaza fisiere
cd <numedirector> Schimba director
bin Seteaza modul de transfer binar
ascii Seteaza modul de transfer ASCII
get <numefisier> Downloadeaza un fisier
put <numefisier> Uploadeaza un fisier
hash Porneste/Opreste indicatorul de tranfer
tick Porneste/Opreste indicatoul pentru byte
prom
Porneste/Opreste modul interactiv pentru
downloaduri
mget <mask>
Downloadeaza un fisier sau un grup de fisiere; sunt
permise caracterele de potrivire
mput <mask>
Uploadeaza un fisier sau un grup de fisiere; sunt
permise caracterele de potrivire
quit Paraseste serverul FTP
Poti de asemenea sa folosesti cateva dintre comenzile urmatoare care
se explica singure: chmod, delete, rename, rmdir. Pentru o lista completa
a tuturor comenzilor si insemnatatea lor, tasteaza help sau ? si vei vedea o
listare completa pe ecran.

171
Slackware Linux Essentials
FTP este un program destul de simplu de folosit, dar ii lipseste
interfata cu utilizatorul cu care multi dintre noi suntem obisnuiti. Pagina de
manual discuta cateva dintre optiunile liniei de comanda pentru ftp(1).
ftp> ls *.TXT
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-rw-r--r-- 1 root 100 18606 Apr 6 2002
BOOTING.TXT
-rw-r--r-- 1 root 100 10518 Jun 13 2002
COPYRIGHT.TXT
-rw-r--r-- 1 root 100 602 Apr 6 2002
CRYPTO_NOTICE.TXT
-rw-r--r-- 1 root 100 32431 Sep 29 02:56
FAQ.TXT
-rw-r--r-- 1 root 100 499784 Mar 3 19:29
FILELIST.TXT
-rw-r--r-- 1 root 100 241099 Mar 3 19:12
PACKAGES.TXT
-rw-r--r-- 1 root 100 12339 Jun 19 2002
README81.TXT
-rw-r--r-- 1 root 100 14826 Jun 17 2002
SPEAKUP_DOCS.TXT
-rw-r--r-- 1 root 100 15434 Jun 17 2002
SPEAK_INSTALL.TXT
-rw-r--r-- 1 root 100 2876 Jun 17 2002
UPGRADE.TXT
226 Transfer complete.
ftp> tick
Tick counter printing on (10240 bytes/tick increment).
ftp> get README81.TXT
local: README81.TXT remote: README81.TXT
200 PORT command successful.
150 Opening BINARY mode data connection for README81.TXT
(12339 bytes).
Bytes transferred: 12339
226 Transfer complete.
12339 bytes received in 0.208 secs (58 Kbytes/sec)

13.9.2 ncftp
ncftp(1) (pronuntat "Nik-F-T-P") este o alternativa pentru traditionalul
client ftp care vine cu Slackware. Este tot un program bazat pe text, dar
ofera multe avantaje fata de ftp, incluzand:
• Completare Tab
• Fisier de Bookmarks
• Caractere de potrivire mai liberale

172
Comenzi primare de retea
• Istoria comenzilor
Implicit, ncftp va incerca sa se autentifice ca anonymous la serverul
pe care il specifici. Il poti forta sa prezinte un prompt de login cu optiunea
“-u”. Odata logat, poti folosi aceleasi comenzi ca la ftp, doar ca vei
observa o interfata mai draguta, una care functioneaza ca bash.
ncftp /pub/linux/slackware > cd slackware-current/
Please read the file README81.TXT
it was last modified on Wed Jun 19 16:24:21 2002 - 258 days
ago
CWD command successful.
ncftp ...ware/slackware-current > ls
BOOTING.TXT FAQ.TXT
bootdisks/
CHECKSUMS FILELIST.TXT extra/
CHECKSUMS.asc GPG-KEY isolinux/
CHECKSUMS.md5 PACKAGES.TXT kernels/
CHECKSUMS.md5.asc PRERELEASE_NOTES pasture/
COPYING README81.TXT
rootdisks/
COPYRIGHT.TXT SPEEKUP_DOCS.TXT
slackware/
CRYPTO_NOTICE.TXT SPEEK_INSTALL.TXT source/
CURRENT.WARNING Slackware-HOWTO
ChangeLog.txt UPGRADE.TXT
ncftp ...ware/slackware-current > get README81.TXT
README81.TXT: 12.29
kB 307.07 kB/s

13.10 Comunicarea cu alti oameni

13.10.1 wall
wall(1) este un mod rapid de a scrie un mesaj utilizatorilor de pe sistem.
Sintaxa de baza este:
% wall [file]

Aceasta va rezulta in afisarea continutului lui [fisier] pe terminalele


tuturor utilizatorilor logati in mod actual pe sistem. Daca nu specifici un
fisier, wall va citi de pe intrarea standard, asa ca iti poti scrie mesajul, si
sa-l termini cu Ctrl+d.

173
Slackware Linux Essentials
wall nu are multe trasaturi, si pe langa faptul ca iti lasa utilizatorii sa
stie ca vei face ceva serios pe sistem, sau chiar sa restartezi, astfel incat sa-
si poata salva munca si sa iasa de pe sistem :)

13.10.2 talk
talk(1) le permite utilizatorilor sa vorbeasca. Imparte ecranul in
jumatate, pe orizontala. Pentru a initia o convorbire cu alta persoana,
foloseste aceasta comanda:
% talk <person> [ttyname]

Figura 13-7. Doi utilizatori intr-o sesiune talk

Daca specifici doar un nume de utilizator, cerinta de convorbire se


presupune ca este locala, deci doar utilizatorii locali sunt intrebati.
ttyname-ul este cerut daca vrei sa vorbesti un utilizator pe un terminal
specific (daca utilizatorul este logat de mai multe ori). Informatia de care
are nevoie talk se poate obtine cu comanda w(1).
talk poate de asemenea sa sune utilizatorii de pe hosturi aflate la
distanta. Pentru numele de utilizator specifici pur si simplu o adresa de
email. talk va incerca sa contacteze acel utilizator aflat la distanta pe acel
host.
talk este oarecum limitat. Suporta doar doi utilizatori si este half-
duplex.

174
Comenzi primare de retea
13.10.3 ytalk
ytalk(1) este un inlocuitor compatibil cu versiuni anterioare talk.
El vine cu Slackware sub comanda ytalk. Sintaxa este similara, dar are
cateva diferente:
% ytalk <username>[#ttyname]

Figura 13-8. Doi utilizatori intr-o sesiune ytalk

Numele de utilizator si terminalul sunt specificate ca si sub talk, doar


ca trebuie sa le pui impreuna cu semnul diez (#).
ytalk ofera cateva avantaje:
• Suporta mai mult de doi utilizatori.
• Are un meniu de optiuni care poate fi activat oricand cu tasta Esc.
• Poti sa iesi in shell in timp ce esti inca in sesiunea ytalk.
• Plus altele...
Daca esti administratorul unui server, vei vrea sa te asiguri ca portul ntalk
este activat in /etc/inetd.conf. ytalk are nevoie de acest lucru pentru a
functiona corespunzator.

175
Capitolul 14

Securitatea
14.1 Dezactivarea servicilor
14.2 Controlarea accesului bazat pe host-uri
14.3 Mentinerea la curent

Securitatea in orice sistem este importanta; ea poate preveni lumea sa


lanseze atacuri de pe masina ta, cat si protejeaza datele sensibile. Acest
capitol indica modul de a incepe securizarea calculatorului tau Slackware
impotriva script kiddies-ilor, cracker-ilor si totodata impotriva rogue
hamster-ilor. Tine minte ca acesta este doar inceputul securizarii
sistemului; securitatea este un proces, nu o stare.

177
Slackware Linux Essentials

14.1 Dezactivarea servicilor

Primul pas dupa instalarea Slackware-ului ar trebui sa fie


dezactivarea servicilor de care nu ai nevoie. Orice serviciu este o potentiala
expunere la un risc de securitate, deci este important sa ruleze cu cat mai
putin posibile servici (i.e. numai acelea care sunt necesare). Servicile sunt
pornite din doua parti importante - inetd si scripturile init.

14.1.1 Servicii pornite de inetd


Multi daemon-i care vin cu Slackware sunt rulati din inetd(8).
inetd este un daemon care asculta pe toate porturile folosite de serviciile
configurate sa fie pornite de el si porneste o instanta a daemon-ului
corespunzator cand se incearca o conexiune. Daemon-ii porniti din inetd
pot fi dezactivati prin comentarea catorva linii din /etc/inetd.conf.
Pentru a face asta deschide acest fisier in editorul favorit (e.g. vi)si ar
trebui sa vezi linii similare cu acestea:
telnet stream tcp nowait root /usr/sbin/tcpd
in.telnetd

Poti dezactiva acest servici, si oricare altele de care nu ai nevoie,


prin comentarea lor (i.e. adaugarea unui simbol # (diez) la inceputul liniei).
Atunci linia de mai sus ar deveni:
#telnet stream tcp nowait root /usr/sbin/tcpd
in.telnetd

Dupa ce inetd a fost repornit, acest serviciu va fi dezactivat. Poti reporni


inetd inetd cu comanda:
# kill -HUP $(cat /var/run/inetd.pid)

14.1.2 Servicii pornite de scripturi init


Restul serviciilor pornite la deschiderea calculatorului sunt pornite de
catre scripturi init din /etc/rc.d/. Acestea pot fi dezactivate in doua moduri
diferite, primul fiind scoaterea permisiunilor de executare a init scriptului res-
pectiv, si al doilea este comentarea linilor corespunzatoare din scripturile init.
De exemplu, SSH este pornit de catre propriul init script
/etc/rc.d/rc.sshd. Poti sa-l dezactivati folosind:

178
Securitatea
# chmod -x /etc/rc.d/rc.sshd

Pentru servicile care nu au propriul init script, va fi nevoie sa


comentezi linile respective din init script-uri pentru a le dezactiva. De
exemplu, daemon-ul portmap este pornit de urmatoarele linii in
/etc/rc.d/rc.inet2:

# This must be running in order to mount NFS volumes.


# Start the RPC portmapper:
if [ -x /sbin/rpc.portmap ]; then
echo "Starting RPC portmapper: /sbin/rpc.portmap"
/sbin/rpc.portmap
fi
# Done starting the RPC portmapper.

Acestea pot fi dezactivate prin adaugarea simbolurilor # la inceputul


linilor care nu incep deja cu ele, astfel:
# This must be running in order to mount NFS volumes.
# Start the RPC portmapper:
#if [ -x /sbin/rpc.portmap ]; then
# echo "Starting RPC portmapper: /sbin/rpc.portmap"
# /sbin/rpc.portmap
#fi
# Done starting the RPC portmapper.

Aceste schimbari vor intra in vigoare ori dupa ce resetezi sau schimband
din runlevel-ul 3 sau 4 si inapoi. Poti face asta tastand urmatoarele in
consola (va trebui sa te logezi din nou dupa schimbarea in runlevel 1):
# telinit 1
# telinit 3

14.2 Controlarea accesului bazat pe host-uri

14.2.1 iptables
iptables este programul de configurare a filtrari pachetelor de la
Linux 2.4 in sus. Kernel-ul 2.4 (2.4.5, pentru exactitate) a fost primul
introdus in Slackware (ca optiune) in versiunea 8.0 si a fost facut implicit
in Slackware 8.1. Aceasta sectiune acopera numai bazele utilizari sale si ar
trebui sa te uiti peste http://www.netfilter.org/ pentru mai multe detalii.
Aceste comenzi pot fi introduse in /etc/rc.d/rc.firewall, care trebuie
setat drept executabil pentru ca aceste reguli sa aiba efect la pornire. Ai

179
Slackware Linux Essentials
grija la comenzile incorecte iptables care te pot bloca in afara propriului
calculator. Decat daca esti 100% sigur de cunostiintele tale n-ar trebui sa te
asiguri ca ai aces local pe masina.
Primul lucru care majoritatea lumii ar trebui sa o faca este sa seteze
politica implicita pentru fiecare lant inbound pe DROP:
# iptables -P INPUT DROP
# iptables -P FORWARD DROP

Cand totul este blocat, poti incepe sa deschizi treptat. Primul lucru
care trebuie deschis este traficul pentru sesiunile ce sunt deja stabilite:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j
ACCEPT

Pentru a nu impiedica aplicatile ce comunica folosind adresa de


loopback, este in general bine sa adaugi o regula ca aceasta:
# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j
ACCEPT

Aceste reguli permit orice trafic spre si de la 127.0.0.0/8 (127.0.0.0 -


127.255.255.255) prin interfata(lo). Cand creezi reguli este o idee buna sa
fi cat mai specific posibil, pentru a te asigura ca regulile tale nu lasa loc
pentru ceva rau. Acestea fiind spuse, regulile care permit prea putin
inseamna mai multe reguli si mai multa tastare.
Urmatorul lucru care ar trebui sa-l faci ar fi sa lasi acces servicilor
specifice ce ruleaza pe masina ta. Daca, de exemplu, ai vrut sa rulezi un
server web pe masina ta, ar trebui sa folosesti o regula similara cu aceasta:
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT

Aceasta va permite acces de la orice masina prin port-ul 80 la masina


ta prin intermediul interfetei ppp0. Ai putea sa restrictionezi accesul la
acest serviciu astfel incat numai anumite masini sa-l poata accesa. Aceasta
regula permite acces catre serviciul tau de web dinspre 64.57.102.34:
# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0
-j ACCEPT

Permiterea traficului ICMP poate fi folositor pentru diagnosticare. Pentru a


face asta, ai folosi o regula ca aceasta:
# iptables -A INPUT -p icmp -j ACCEPT

180
Securitatea
Majoritatea oamenilor ar vrea sa seteze pe masina lor gateway si
Network Address Translation (NAT), ca alte calculatoare din reteaua lor sa
acceseze internetul prin ea. Ar trebui sa folosesti urmatoarea regula pentru
a face asta:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

La fel va trebui sa permiti IP forwarding. Poti face asta temporar,


folosind comanda:
# echo 1 > /proc/sys/net/ipv4/ip_forward

Pentru a permite IP forwarding intr-un mod permanent (i.e. astfel


incat schimbarea sa fie retinuta dupa repornire), va trebui sa deschizi
fisierul/etc/rc.d/rc.inet2 in editorul preferat si sa schimbi urmatoarea
linie:
IPV4_FORWARD=0

...cu asta:
IPV4_FORWARD=1

Pentru mai multe informatii despre NAT, vezi NAT HOWTO.

14.2.2 tcpwrappers
tcpwrappers controleaza accesul daemon-ilor la nivelul aplicatiei,
altfel decat la nivel de IP. Aceasta poate oferi o fasie in plus de securitate
in momentele in care la nivelele de contol de acces IP (e.g. Netfilter) nu
functioneaza corect. De exemplu, daca recompilezi kernelul dar uiti sa
incluzi suport iptables, nivelul de protectie IP va esua dar tcpwrappers va
continua sa ajute protejarea sistemului tau.
Accesul la servicii protejate de tcpwrappers poate fi controlat
utilizand /etc/hosts.allow si /etc/hosts.deny.
Majoritatea lumii va avea o singura linie in fisierul
/etc/hosts.deny si anume sa impiedice accesul la orice daemon-i
implicit. Aceasta linie ar fi:
ALL : ALL

Cand este facut acest lucru, te poti concentra inspre permiterea


servicilor pentru host-uri specifice, domenii, sau intervale de IP. Aceast
lucru poate fi facut in fisierul /etc/hosts.allow care urmeaza acelasi
format.
181
Slackware Linux Essentials
Multi oameni ar incepe prin permiterea accesului tuturor
conexiunilor dinspre localhost. Acest lucru poate fi realizat asa:
ALL : 127.0.0.1

Pentru a permite acces SSHd dinspre 192.168.0.0/24, ai putea


folosi oricare dintre urmatoarele reguli:
sshd : 192.168.0.0/24
sshd : 192.168.0.

Este deopotriva posibil sa restrictionezi accesul catre host-uri din


anumite domenii. Asta poate fi facut folosind urmatoarea regula (vezi ca
aceasta se bazeaza pe increderea inversarea intrari DNS pentru host-ul ce
se conecteaza, deci as recomanda impotriva utilizari pentru host-uri ce se
conecteaza de pe Internet): :
sshd : .slackware.com

14.3 Mentinerea la curent

14.3.1 Lista de mail-uri slackware-security


Oricand o problema de securitate afecteaza Slackware, un email este
trimis tuturor abonatilor listei de mail slackware-security@slackware.com.
Rapoarte sunt trimise privind vulnerabilitatile oricarei parti a Slackware-
ului, separat de software-ul din /extra or /pasture. Aceste email-uri cu
anunturi de securitate includ detalii privind obtinerea versiunilor de
pachete reinoite Slackware sau metode de evitare, daca exista.
Inscrierea la listele de mail Slackware este acoperita in Sectiunea
2.2.2.

14.3.2 Directorul /patches


Oricand pachetele reinoite sunt eliberate pentru o versiune a
Slackware-ului (deobicei numai pentru a rezolva o problema de securitate,
in cazul deja existent al versiunilor pachetelor Slackware), ele sunt puse in
directorul /patches. Calea intreaga catre aceste patch-uri depind de
mirror-ul pe care-l folositi, dar vor lua forma /path/to/slackware-
x.x/patches/.

182
Securitatea
Inainte de a instala oricare din aceste pachete, este o idee buna de a
verifica md5sum pachetului. md5sum(1)este o utilitate in linie de comanda
care creaza un hash matematic "unic" al fisierului. Daca un singur bit al
fisierului a fost schimbat, atunci va fi generat un md5sum diferit.
% md5sum package-<ver>-<arch>-<rev>.tgz
6341417aa1c025448b53073a1f1d287d package-<ver>-<arch>-
<rev>.tgz

Ar trebui sa verifici acesta cu linia noului pachet din fisierul


CHECKSUMS.md5 din radacina directorului slackware-$VERSION (la fel si in
directorul /patches pentru patch-uri) sau in email-ul primit de la lista
slackware-security.
Daca ai un fisier cu valorile md5sum in el, il poti scoate cu optiunea
-c pentru md5sum.
# md5sum -c CHECKSUMS.md5
./ANNOUNCE.10_0: OK
./BOOTING.TXT: OK
./COPYING: OK
./COPYRIGHT.TXT: OK
./CRYPTO_NOTICE.TXT: OK
./ChangeLog.txt: OK
./FAQ.TXT: FAILED

Precum vezi, orice fisier pe care il evalueaza md5sum ca fiind corect


este listat cu “OK” in timp ce fisierele ce au esuat sunt etichetate
“FAILED”. (Da, aceasta a fost o insulta adresata inteligentei tale. De ce ma
suporti?)

183
Capitolul 15

Fisiere Arhiva
15.1 gzip
15.2 bzip2
15.3 tar
15.4 zip

185
Slackware Linux Essentials

15.1 gzip

gzip(1) este programul de compresie GNU. Preia un singur fisier si


il comprima. Este folosit in general ca:
% gzip filename

Fisierul rezultat se va numi numefisier.gz si de obicei va fi mai


mic decat fisierul introdus. Notati ca numefisier.gz va inlocui
numefisier. Aceasta inseamna ca numefisier nu va mai exista, desi o
copie gzip-uita a sa va fi. Fisierele text obisnuite se vor comprima bine, in
timp ce fisierele jpeg, mp3 si altele de acest tip nu vor fi comprimate prea
bine deoarece ele sunt deja comprimate. Aceasta functie de baza ofera o
balanta intre marimea finala a fisierului si timpul de compresie. Compresia
maxima se obtine in felul urmator:
% gzip -9 filename

Aceasta va cere mai mult timp pentru compresia fisierului, dar


rezultatul va fi cel mai mic care se poate obtine cu gzip. Folosirea
valorilor mai mici in optiunea liniei de comanda va face compresia mai
rapida, dar fisierul nu va mai fi la fel de bine comprimat.
Decompresia fisierelor gzip-uite se poate face folosind doua
comenzi, care de fapt sunt acelasi program. gzip va decomprima orice
fisier cu o extensie recunoscuta. O extensie recunoscuta poate fi oricare din
urmatoarele: .gz, -gz, .z, -z, .Z, sau -Z. Prima metoda este folosirea
gunzip(1) pe un fisier, in acest fel:

% gunzip filename.gz

Aceasta va lasa o versiune decomprimata a fisierului introdus in


directorul curent si extensia .gz va fi stearsa de la numele fisierului.
gunzip este de fapt o parte a gzip si este identic cu gzip -d. Din acest
motiv, gzip este adeseori pronuntat gunzip, pentru ca suna mai misto. :^)

186
Fisiere arhiva

15.2 bzip2

bzip2(1) este un program alternativ de compresie instalat pe


Slackware Linux. Foloseste un algoritm de compresie diferit de gzip, ceea
ce aduce niste avantaje si dezavantaje. Principalul avantaj al lui bzip2 este
marimea fisierului comprimat. bzip2 va comprima, aproape tot timpul,
mai bine decat gzip. In anumite cazuri aceasta duce la fisiere considerabil
mai mici. Acesta poate fi un mare avantaj pentru cei ce au conexiuni mai
lente prin modem. De asemenea, cand se download-eaza software de pe un
server ftp public, este in general o dovada de netiquette-a buna (n.t. termen
folosit cu sensul de buna cuvinta pe internet) download-area fisierelor .bz2
in locul fisierelor .gz deoarece in acest fel nu veti incetini serverul
oamenilor generosi care vi l-au pus la dispozitie.
Dezavantajul lui bzip2 este faptul ca consuma mai mult din
resursele CPU decat gzip. Acest lucru inseamna ca arhivand un fisier cu
bzip va dura de obicei mai mult si va folosi mai mult din CPU decat
arhivandu-l cu gzip. Cand alegem ce program de comprimare sa folosim,
trebuie sa contrabalansam viteza de comprimare cu marimea fisierului
comprimat si sa determinam care dintre astea doua este mai important.
Folosirea lui bzip2 este aproape la fel ca la gzip, deci nu vom
pierde timpul discutand desprea asta. La fel ca gunzip, bunzip2 este
identic cu bzip2 -d. Principala diferenta in practica este ca bzip2foloseste
extensia .bz2.
% bzip2 filename
% bunzip2 filename.bz2
% bzip2 -9 filename

15.3 tar

tar(1)este arhivatorul de casete GNU. Acesta ia mai multe fisiere


sau directoare si creeaza un fisier mare. Aceasta iti permite sa comprimi un
director intreg, ceea ce este imposibil folosind doar gzip sau bzip2. tar
are multe optiuni in linie de comanda, acestea sunt explicate in pagina sa
man. Aceasta sectiune va acoperi doar cele mai utilizate optiuni ale lui tar.

187
Slackware Linux Essentials
tar este cel mai des folosit pentru a decomprima si dezarhiva un
pachet pe care l-ai download-at de pe o pagina web sau de pe un ftp.
Majoritatea fisierelor vor avea externsia .tar.gz. Acesta este numit de
obicei un “tarball”. Inseamna ca mai multe fisiere au fost arhivate folosind
tar si apoi comprimate folosind gzip. De asemenea il poti gasi scris si ca
un fisier .tar.Z. Inseamna acelasi lucru, dar de obicei se intalneste pe
sisteme Unix mai vechi.
De asemenea ai putea sa gaseste un fisier .tar.bz2 undeva. Sursele
kernel-ului sunt distribuite in acest fel pentru ca download-ul sa fie mai
mic. Dupa cum banuiesti, acesta reprezinta mai multe fisiere arhivate cu
tar si apoi bzip-uit.
Poti ajunge la toate fisierele din aceasta arhiva folosind tar si cateva
argumente in linie de comanda. Pentru dezarhivarea unui tarball se
foloseste optiunea -z ceea ce inseamna ca fisierul va fi intai decomprimat
cu gunzip. Cea mai des intalnita cale de a decomprima un tarball este
aceasta:
% tar -xvzf filename.tar.gz

Cam multe optiuni acolo. Deci ce inseamna ele de fapt? Optiunea -x


inseamna extrage. Asta este important pentru ca ii spune lui tar exact ce
trebuie facut cu acel fisier. In acest caz, il va imparti inapoi in toate
fisierele din care a fost facut. Optiunea -v inseamna sa fie verbal. Aceasta
va afisa toate fisierele care sunt dezarhivate. Se accepta omiterea aceste
optiuni, desi este plictisitor fara. Puteti altfel sa folositi -vv pentru a fi mai
verbal si a afisa mai multe informatii despre fiecare fisier dezarhivat.
Optiunea -z ii spune lui tar sa foloseasca numefisier.tar.gz in gunzip
mai intai. In fine, -f ii spune lui tarca urmatorul sir de fisier din linia de
comanda va fi numele fisierului cu care va lucra.
Exista si alte cai de executa aceeasi comanda. Pe sisteme mai vechi
fara o copie buna de GNU tar, ai putea sa o vezi scrisa astfel:
% gunzip filename.tar.gz | tar -xvf -
Aceasta comanda va decomprima fisierul si va trimite rezultatul in
tar. Din moment ce gzip isi va scrie rezultatul in iesirea standard daca i se
va cere, aceasta comanda va scrie fisierul decomprimat in iesirea standard.
Teava il trimite apoi la tar pentru dezarhivare. Caracterul “-” inseamna sa
lucreze cu intrarea standard. Va dezarhiva sirul de data primit de la gzip si
il va scrie pe disc.
O alta cale de a scrie prima comanda este de a omite cratima din fata
optiunilor, astfel:

188
Fisiere arhiva
% tar xvzf filename.tar.gz
Ai putea intalni si o arhiva bzip-uita. Versiunea de tar inclusa in
Slackware Linux poate lucra si cu acestea la fel cum o face si cu cele gzip-
uite. In locul folosirii optiunii -z vei folosi -j:
% tar -xvjf filename.tar.bz2

Trebuie sa retii ca tar va pune fisierele dezarhivate in directorul curent.


Deci, daca ai o arhiva in /tmp pe care vrei sa o decomprimi in directorul
tau home exista cateva optiuni. Prima, arhiva ar putea fi mutata in
directorul tau home si apoi trecuta prin tar. A doua, ai putea da calea catre
fisierul arhiva in linia de comanda. A treia, poti folosi optiunea -C pentru a
"exploda" tarball-ul intr-un director dat.
% cd $HOME
% cp /tmp/filename.tar.gz .
% tar -xvzf filename.tar.gz

% cd $HOME
% tar -xvzf /tmp/filename.tar.gz

% cd /
% tar -xvzf /tmp/filename.tar.gz -C $HOME

Toate comenzile de mai sus sunt echivalente. In fiecare caz, arhiva


este despachetata in directorul tau home si fisierul original este lasat la
locul lui. Cu ce te ajuta daca poti sa decomprimi aceste arhive dar nu poti
sa le creezi? Ei bine, tar se ocupa si de asta. In majoritatea cazurilor este
suficient sa inlaturi optiunea “-x” si sa o inlocuiesti cu optiunea “-c”.
% tar -cvzf filename.tar.gz .

In aceasta linie, optiunea -c ii spune lui tar sa creeze o arhiva, in


timp ce optiunea -z ruleaza gzip pe rezultat pentru a-l comprima.
numefisier.tar.gz este fisierul pe care doresti sa-l creezi.
Specificarea optiunii “-f” nu este intotdeauna necesara, dar de obicei
este bine sa fie folosita. Fara ea, tar scrie in iesirea standard, ceea ce de
obicei este dorit la intubarea iesirii lui tar cu un alt program astfel.
% tar -cv filename.tar . | gpg --encrypt

Acea comanda creeaza o arhiva tar necomprimata a directorului


curent, intubeaza tarball-ul cu gpg care cripteaza si comprima tarball-ul, in
acest fel este practic imposibil sa fie citit de cineva care nu stie cheia
secreta.

189
Slackware Linux Essentials
15.4 zip

In sfarsit, exista doua utilitare care pot fi folosite pe fisierele zip.


Acestea sunt foarte comune in lumea Windows, deci Linux are programe
pentru a le putea folosi. Programul de compresie se numeste zip(1), si
programul de decompresie se numeste unzip(1).
% zip foo *

Aceasta va crea fisierul foo.zip, care va contine toate fisierele din


directorul curent. zip va adauga automat extensia .zip deci nu este nevoie
sa o includeti in numele fisierului. Puteti de asemenea sa parcurgeti
recursiv directorul curent, zip-uind orice alte directoare din preajma:
% zip -r foo *

Decompresia fisierelor este si ea usoara.


% unzip foo.zip

Aceasta va extrage toate fisierele din foo.zip, inclusiv orice director


din arhiva.
Utilitarele zip au multe optiuni avansate pentru crearea unor arhive
care se extrag singure, omiterea unor fisiere, controlarea marimii fisierului
comprimat, afisarea a ceea ce se va intampla si multe altele. Vezi paginile
man pentru zip si unzip pentru a afla cum sa folosesti aceste optiuni.

190
Capitolul 16

Vi
16.1 Pornirea programului vi
16.2 Moduri
16.3 Deschiderea fisierelor
16.4 Salvarea fisierelor
16.5 Iesirea din programul vi
16.6 Configurarea vi
16.7 Tastele vi

vi(1) este programul standard de editare Unix, iar in timp ce stapanirea lui
nu mai este atat de esentiala cum obisnuia sa fie, atingerea obiectivul este
inca una plina de recompense. Exista cateva versiuni (sau clone) de vi
disponibile, incluzand vi, elvis, vile, si vim. Una dintre acestea este
disponibila in aproape orice versiune de Unix, la fel si pe Linux. Toate
aceste versiuni includ aceleasi comenzi si seturi de instructiuni de baza, deci
invatand o clona ar trebui sa faca usoara invatarea alteia. Cu varietatea de
editoare text incluse de distributile Linux si variantele de Unix in zilele
noastre, multi oameni nu mai folosesc vi. Cu toate acestea, ramane cel mai
universal editor de texte peste Unix si derivate Unix. Stapanirea vi inseamna
ca nu vei sta niciodata la o masina Unix fara sa fi confortabil cu cel putin un
singur editor de texte. vi include un numar mare de utilitati puternice
incluzand syntax highlighting, formatarea codului, un mecanism puternic de
cautare si inlocuire, macro-uri, si multe altele. Aceste functii il fac in special
atractiv pentru programatori, dezvoltatori de web, si cei in genul.
Administratorii de sistem vor aprecia automatizarea si integrarea posibila cu
shell-ul. In Slackware Linux, versiunea implicita de vi disponibila este
elvis. Alte versiuni - incluzand vim si gvim - sunt disponibile daca ai
instalat pachetele corespunzatoare. gvim este o versiune X Window al vim
care include toolbar-uri, meniuri detasabile, si casute de dialog.

191
Slackware Linux Essentials

16.1 Pornirea programului vi

vi poate fi pornit din linia de comanda in modalitati diferite. Cea


mai simpla forma este doar:
% vi

Figura 16-1. O sesiune vi..

Aceasta va porni vi cu un buffer gol. In acest moment, vei vedea un


ecran majoritar negru. El se afla acum in "modul comanda" asteptandu-te
pe tine sa faci ceva. Pentru o discutie legata de modurile diferite vi, vezi
Sectiunea 16.2. Pentru a iesi din vi, tasteaza urmatoarele:
:q

Presupunand ca nu au avut schimbari in fisier, acesta va cauza vi sa


iasa. Daca exista modificari facute, te va anunta ca exista schimbari si iti
spune cum sa nu le iei in considerare. Ignorarea schimbarilor inseamna
deobicei adaugarea unui semn de exclamare dupa “q” asa:
:q!

192
Vi
Semnul de exclamare inseamna deobicei sa fortezi o actiune. O sa
discutam despre asta si alte combinatii de chei mai tarziu.
Poti sa pornesti vi deasemnea cu un fisier pre-existent. De exemplu,
fisierul /etc/resolv.conf va fi deschis asa:
% vi /etc/resolv.conf

In final, vi poate fi pornit pe o linie anume dintr-un fisier. Aceasta


este in special folositoare programatorilor cand un mesaj de eroare include
linia pe care a bombardat-o programul lor. De exemplu, poti porni vi pe
linia 47 a /usr/src/linux/init/main.c asa:
% vi +47 /usr/src/linux/init/main.c

vi va afisa fisierul specificat si va pune cursorul la linia specificata.


In cazul in care specifici o linie care este dupa sfarsitul fisierului, vi va
plasa cursorul pe ultima linie. Acest fapt este in mod special util
programatorilor, caci pot sa sara direct la locatia unde a avut loc eroarea,
fara sa trebuiasca sa o caute.

16.2 Moduri

vi opereaza in moduri variate, care sunt folosite pentru a obtine


lucruri diferite. Cand pornesti prima data vi, esti pus in command mode.
Din acest punct, poti sa trimiti diferite comenzi pentru a manipula textul,
pentru a te misca prin fisier, sa salvezi, sa iesi, si sa schimbi moduri.
Editarea textului se face in modul insert. Poti sa te misti rapid intre moduri
printr-o varietate de combinatii de taste, care sunt explicate mai jos.

16.2.1 Modul de comanda


Prima data esti pus in modul de comanda. Din acest mod, nu poti sa
introduci direct text sau sa editezi ce este deja acolo. Oricum, poti
manipula textul, cauta, iesi, salva, incarca fisiere noi, si mai multe. Aceasta
este menita a fi doar o introducere in modul de comanda. Pentru o
descriere a diferitelor comenzi, vezi Sectiunea 16.7.
Probabil cea mai folosita comanda in modul de comanda este
schimbarea in modul de inserare. Aceasta este indeplinita prin tastarea
tastei i. Cursorul isi schimba forma, si -- INSERT -- este afisat in josul
ecranului (vezi ca asta nu se intampla in toate clonele vi). De aici, toate

193
Slackware Linux Essentials
tastarile sunt introduse in buffer-ul curent si sunt afisate pe ecran. Pentru a
reveni la modul de comanda, apasa tasta ESCAPE.
Modul de comanda este si locul unde te misti prin fisier. Pe unele
sisteme, poti sa folosesti tastele sageti sa te misti. Pe altele, s-ar putea sa fi
nevoit sa folosesti tastele traditionale “hjkl”. O simpla lista despre cum se
folosesc aceste taste pentru a te misca este:
h mergi in stanga un caracter
j mergi in jos un caracter
k mergi in sus un caracter
l mergi in dreapta un caracter
Apasa o tasta ca sa te misti. Cum vei vedea mai tarziu, aceste taste
pot fi combinate cu un numar pentru a te misca mult mai eficient.
Multe dintre comenzile care le vei folosi in modul de comanda incep
cu doua puncte. De exemplu, iesirea este :q, precum a fost discutat mai
devreme. Doua puncte indica o comanda, in timp ce “q” ii spune vi-ului sa
iasa. Alte comenzi se reprezinta un numar optional, urmat de o litera.
Aceste comenzi nu au doua puncte inaintea lor, si sunt in general folosite
la manipularea textului.
De exemplu, stergerea unei linii dintr-un fisier este realizata prin
dd.Aceasta va sterge linia pe care se afla cursorul. Folosind comanda 4dd
ii vei spune vi sa stearga linia pe care se afla cursorul si urmatoarele trei.
In general, numarul spune lui vi de cate ori sa execute comanda.
Poti combina un numar cu tastele de miscare pentru a te misca cu
cateva caractere deodata. De exemplu,10k se va deplasa cu zece linii in sus
pe ecran.
Modul de comanda poate fi folosit deasemenea pentru a efectua cut
si paste, inserare de text, si citirea altor fisiere in buffer-ul curent. Copierea
textului este realizata de tasta y (y de la yank). Copierea liniei curente este
efectuata tastand yy, si aceasta poate fi prefixata de un numar pentru a
yank-a mai multe fisiere. Apoi, du-te la locatia pentru copie si apasa p.
Textul este pus in linia inaintea celei curente.
Taierea de text este facuta prin tastarea dd, si p poate fi folosit
pentru a insera textul inapoi in fisier. Citind text din alt fisier este o
procedura simpla. Tasteaza doar :r, urmat de un spatiu si numele fisierului
ce contine textul de inserat. Continutul fisierului va fi introdus in buffer-ul
curent pe linia de dupa cursor. Clone mai sofisticate ale vi-ului contin
completarea numelui fisierului similar celui al shell-ului.

194
Vi
Ultima utilizare acoperita va fi cautarea. Modul de comanda permite
cautare simpla, la fel ca si comenzi complicate de cautare si inlocuire care
fac uz de o versiune puternica de regular expressions. O discutie completa
legata de regular expressions este peste scopul acestui capitol, asa ca
sectiunea va acoperi numai metode simple de cautare.
O cautare simpla este realizata prin apasarea tastei / urmata de textul
cautat. vi va cauta in fata de la cursor pana la sfarsitul fisierului pentru o
pereche, oprindu-se cand gaseste una. Vezi ca perechile inexacte vor face
deasemenea vi sa se opreasca. De exemplu, o cautare dupa “the” va face
vi sa se opreasca la “then”, “therefore”, si asa mai departe. Asta se
intampla pentru ca toate acele cuvinte contin “the”.
Dupa ce vi a gasit prima pereche, poti continua sa cauti urmatoarea
pereche prin apasarea tastei / urmata de enter. Poti sa cauti si invers in
fisier inlocuind slash-ul cu tasta ?. De exemplu, cautand inapoi in fisier
pentru “the” ar fi realizat prin tastarea ?the.

16.2.2 Modul de inserare


Inserarea si inlocuirea textului este realizata in modul de inserare.
Cum s-a discutat anterior, poti intra in modul de inserare tastand i in modul
de comanda. Apoi, tot textul pe care il tastezi este inserat in buffer-ul
curent. Apasand tasta ESCAPE te duce inapoi in modul de comanda.
Inlocuirea textului este realizata in cateva feluri. Din modul de
comanda, apasand r te va lasa sa inlocuiesti singurul caracter de sub
cursor. Doar tasteaza noul caracter si va inlocui pe cel de sub cursor. Vei fi
apoi repus imediat in modul de comanda. Apasand R permite sa inlocuiesti
cate caractere vrei. Pentru a iesi din acest mod de inlocuire, apasa
ESCAPE si vei intra inapoi in modul de comanda.
Mai exista inca o metoda de a jongla intre modul de inserare si cel de
inlocuire. Apasand tasta INSERTdin modul de comanda te va duce in
modul de inserare. Odata ce esti in modul de inserare, tasta INSERT
foloseste ca un mod de a trece dintre modul de inserare si cel de inlocuire.
Apasandu-l odata iti permite sa inlocuiesti. Apasand inca odata iti da voie
inca odata sa inserezi text.

195
Slackware Linux Essentials

16.3 Deschiderea fisierelor

vi iti permite sa deschizi fisiere din modul de comanda la fel ca


specificarea descrieri unui fisier in linia de comanda. Pentru a deschide
fisierul /etc/lilo.conf:
:e /etc/lilo.conf

Daca ai efectuat schimbari asupra buffer-ului curent fara sa salvezi,


vi se va plange. Poti sa deschizi in continuare fisierul fara sa salvezi
buffer-ul curent tastand :e!, urmat de un spatiu si numele fisierului. In
general, avertizarile vi pot fi suprimate prin comanda urmata de semnul
exclamarii.
Daca vrei sa redeschizi fisierul curent, poti sa o faci simplu tastand
e!. Asta este in mod particular folositor daca ai sticat cumva fisierul curent
si vrei sa-l redeschizi.
Unele clone vi (de exemplu, vim) permit buffer-e multiple sa fie
deschise concomitent. De exemplu, pentru a deschide fisierul 09-vi.sgml
in directorul meu home in timp ce alt fisier este deschis, as tasta:
:split ~/09-vi.sgml

Noul fisier este afisat in partea de jumatate sus a ecranului, si vechiul


fisier este afisat in partea de jos a jumatatii ecranului. Sunt multe comenzi
care manipuleaza ecranul impartit, si multe dintre aceste comenzi incep sa
semene cu ceva din Emacs. Cel mai bun loc sa te uiti dupa aceste comenzi
ar fi pagina man a clonei tale vi. Vezi ca multe clone nu suporta ideea de
ecran impartit, deci s-ar putea sa nu poti sa-o folosesti.

16.4 Salvarea fisierelor

Exista cateva metode de a salva in vi. Daca vrei sa salvezi buffer-ul


curent in fisierul randomness, ar trebui sa tastezi:
:w randomness

Odata ce ai salvat fisierul prima data, salvandu-l din nou este simpla
tastare a :w. Orice schimbari vor fi scrise in fisier. Dupa ce ai salvat
196
Vi
fisierul, esti trimis inapoi in modul de comanda. Daca vrei sa salvezi
fisierul si sa iesi din vi (o operatiune foarte comuna), ar trebui sa tastezi
:wq. Asta spune lui vi sa salveze fisierul curent si sa iasa inapoi in shell.
Ocazional, vrei sa salvezi un fisier care este marcat ca read-only. Poti
sa faci asta adaugand un semn de exclamare dupa comanda de scriere, asa:
:w!

Oricum, vor exista situatii in care nu vei putea salva fisierul (de
exemplu, incerci sa editezi un fisier care este detinut de alt utilizator).
Cand se intampla asta, vi iti va spune ca nu poate salva fisierul. Daca chiar
vrei sa editezi fisierul, va trebui sa revi si sa-l editezi ca root sau
(preferabil) ca detinatorul fisierului respectiv.

16.5 Iesirea din programul vi

Un mod de a iesi din vi este prin :wq, care va salva buffer-ul curent
inainte de a iesi. Poti sa iesi si fara sa salvezi cu :q sau (in mod obisnuit)
:q!. Cel din urma este folosit cand ai modificat fisierul dar nu vrei sa
salvezi schimbarile efectuate in el.
Ocazional, masina ta s-ar putea sa cada sau chiar vi. Oricum, si
elvis cat si vim vor face tot posibilul sa minimizeze stricaciunile oricarui
buffer deschis. Ambele editoare salveaza buffer-ele deschise intr-un fisier
temporar ocazional. Acest fisier este denumit deobicei similar celui
deschis, dar cu un punct la inceput. Asta face fisierul ascuns.
Fisierul temporar este sters odata cu iesirea normala din editor. Asta
inseamna caci copia temporara va mai exista daca ceva cade. Cand te duci
inapoi sa editezi fisierul, vei fi intrebat cu ce actiune sa continuui. In
majoritatea cazurilor, o mare parte a muncii nesalvate poate fi recuperata.
elvis iti va trimite si un mail (din Graceland, destul de ciudat :) spunandu-
ti ca o copie back-up exista.

16.6 Configurarea vi

Clona ta de vi poate fi configurata in cateva feluri.


Exista o varietate de comenzi ce pot fi introduse in timp ce esti in
modul de comanda pentru a seta vi exact cum il vrei. Depinzand de editor,

197
Slackware Linux Essentials
poti sa setezi anumite lucruri sa faca programarea mai usoara (ca syntax
highlighting, auto-identare, si mai multe), poti sa setezi macro-uri care sa
automatizeze task-urile, sa permiti substitutia de text, si multe alte lucruri.
Aproape toate comenzile pot fi puse intr-un fisier de configurare in
directorul tau home. elvis asteapta un fisier .exrc iar vim asteapta un
fisier .vimrc. Majoritatea comenzilor de setare ce pot fi introduse in
modul de comanda pot fi puse in fisierul de configurare. Asta include
informatia legata de setari, substitutii text, macro-uri, etc.
Discutand toate aceste optiuni si diferentele intre editoare este un
subiect evoluat. Pentru mai multe informatii verifica pagina man sau
website-ul editorului vi. Unele editoare (ca vim) au un help extins in cadrul
lor care poate fi accesat prin comanda :help sau ceva similar. Poti sa te uiti
si peste cartea O'Reilly Learning the vi Editor scrisa de Lamb si Robbins.
Multe programe cunoscute in Linux vor incarca un fisier text in vi
implicit. De exemplu, editarea crontab-urilor va porni in vi implicit. Daca
nu-ti place vi si ai vrea alt editor sa fie pornit in locul lui, tot ce trebuie sa
faci este sa setezi variabila de mediu VISUAL catre editorul preferat. Pentru
informatii privind setarea variabilelor de mediu, vezi sectiunea numita
Variabilele de mediu din capitolul 8. Daca vrei sa fi sigur ca editorul tau va
fi implicit data viitoare cand te logezi, adauga setarea VISUAL fisierului
tau .bash_profile sau .bashrc.

16.7 Tastele vi

Aceasta sectiune reprezinta o referinta scurta catre multe comenzi


comune vi. Unele dintre acestea au fost discutate mai devreme in acest
capitol, iar multe altele vor fi noi.
Tabelul 16-1. Miscarea
Operatie Tasta
stanga, jos, sus, dreapta h, j, k, l
Sfarsitul liniei $
Inceputul liniei ^
Sfarsitul fisierului G
Inceputul fisierului :1
Linia 47 :47

198
Vi
Tabelul 16-2. Editarea
Operatie Tasta
Stergerea unei linii dd
Stergerea a cinci linii 5dd
Inlocuirea unui caracter r
Stergerea unui caracter x
Stergerea a zece caractere 10x
Anularea ultimei actiuni u
Uneste linia curenta si urmatoarea J
Inlocuieste old cu new, global %s'old'new'g
Tabelul 16-3. Cautarea
Operatie Tasta
Cauta “asdf” /asdf
Cauta invers “asdf” ?asdf
Repeta ultima cautare inainte /
Repeta ultima cautare inapoi ?
Repeta ultima cautare, aceiasi directie n
Repeta ultima cautare, directie opusa N
Tabelul 16-4. Salvarea si iesirea
Operatie Tasta
Iesire :q
Iesire fara a salva :q!
Scriere si iesire :wq
Scriere fara a iesi :w
Reincarca fisierul deschis curente :e!
Scrie buffer in fisierul asdf :w asdf
Deschide fisierulhejaz :e hejaz
Citeste fisierul asdf in buffer :r asdf
Citeste output-ul ls in buffer :r !ls

199
Capitolul 17

Emacs
17.1 Pornirea programului emacs
17.2 Buffer-e
17.3 Moduri
17.4 Editari de baza
17.5 Salvarea fisierelor

In timp ce vi (si clonele sale) este fara indoiala cel mai popular editor pe
sistemele Unix-like, Emacs este pe locul doi si destul de aproape. In locul
folosirii unor "moduri" diferite, cum face vi sunt folosite combinatii cu
tastele Control si Alt pentru introducerea comenzilor, intr-un mod
asemanator cu folosirea combinatiilor de Control si Alt intr-un procesor
de texte si in multe alte aplicatii. (Totusi trebuie stiut ca aceste comenzi nu
corespund prea des; deci in timp ce aplicatiile moderne folosesc Ctrl-C/ X/
V pentru copy, cut, paste, Emacs foloseste alte taste si un sistem oarecum
diferit pentru a face acelasi lucru.)
De asemenea, spre deosebire de vi, care este un editor (excelent) dar nimic
mai mult, Emacs este un program cu posibilitati aproape nesfarsite. Emacs
este (in mare parte) scris in Lisp, un limbaj de programare foarte puternic
care are proprietatea deosebita ca orice program scris in el devine automat
un compilator de Lisp in sine. Asta inseamna ca utilizatorul poate extinde
Emacs si poate chiar sa scrie programe noi “in Emacs”.
In concluzie, Emacs nu mai este doar un editor. Exista multe pachete
disponibile pentru Emacs (multe dintre ele vin cu sursele programului)
care aduc tot felul de functii. Multe dintre acestea sunt legate de editarea
textului, care este la urma urmei functia de baza a Emacs-ului, dar nu se
opresc la atat. Exista de exemplu mai multe programe de calcul tabelar
pentru Emacs, exista baze de date, jocuri, clienti de mail si news (cel mai
bun fiind Gnus), etc.
Exista doua versiuni principale de Emacs: GNU Emacs (versiunea care
vine cu Slackware) si XEmacs. Ultima nu este o versiune de Emacs care

201
Slackware Linux Essentials
ruleaza sub X. De fapt, si Emacs si XEmacs pot rula atat in consola cat si
sub X. XEmacs a inceput ca un proiect de curatare al codului Emacs. In
prezent, amandoua versiunile sunt in continua dezvoltare, iar cele doua
echipe de dezvoltatori comunica des. In acest capitol nu conteaza daca
folosesti Emacs sau XEmacs, diferentele dintre ele nu sunt relevante pentru
un utilizator normal.

202
Emacs

17.1 Pornirea programului emacs

Emacs poate fi pornit din shell prin tastarea comenzii emacs. Cand
rulezi X, Emacs (in mod normal) va porni in propria sa fereastra X, de
obicei cu o bara de meniu sus, unde se gasesc cele mai importante functii.
La pornire, Emacs va afisa intai un mesaj de intampinare, apoi, dupa
cateva secunde, te va lasa in *scratch* buffer. (Vezi Sectiunea 17.2.)

Poti porni Emacs si cu un fisier existent print tastarea:


% emacs /etc/resolv.conf

Aceasta va face Emacs-ul sa inceapa cu fisierul respectiv deschis,


fara a mai afisa mesajul de intampinare.

17.1.1 Taste
Dupa cum s-a spus mai sus, Emacs foloseste combinatii de taste cu
Control si Alt pentru comenzi. Conventia de scriere obisnuita este C-
litera si M-litera. Deci C-x inseamna Control+x, si M-x inseamna Alt+x.
(Litera M este folosita in locul literei A pentru ca initial tasta nu se numea
Alt ci Meta. Tasta Meta n-a disparut de pe tastaturi, iar in Emacs tasta Alt
i-a preluat functionalitatea.)
203
Slackware Linux Essentials
Multe comenzi Emacs sunt secvente de taste si combinatii de taste.
De exemplu, C-x C-c (Control-x urmat de Control-c ) opreste Emacs, C-
x C-s salveaza fisierul curent. Tine minte ca C-x C-b nu este acelasi lucru
cu C-x b. Prima inseamna Control-x urmat de Control-b, in timp ce
ultima inseamna Control-x urmat doar de 'b'.

17.2 Buffer-e

In Emacs, conceptul de “buffers” este esential. Fiecare fisier pe care


il deschizi este incarcat in propriul sau buffer. Mai mult, Emacs are mai
multe buffere speciale, care nu contin un fisier dar sunt folosite pentru alte
lucruri. De exemplu, buffer-ul deschis de Emacs la pornire este asa-
numitul *scratch* buffer. In *scratch* buffer poti tasta text ca de obicei,
dar textul scris in el nu este salvat cand Emacs este oprit.
Mai exista un buffer special despre care trebuie sa stii, acesta este
minibuffer-ul. Acesta are doar o linie si este intotdeauna pe ecran: este
chiar ultima linie a ferestrei Emacs, sub bara de stare (status bar) a buffer-
ului curent. Minibuffer-ul este locul in care Emacs arata mesajele pentru
utilizator, de asemenea este locul in care comenzile care necesita date de
intrare de la utilizator sunt executate. De exemplu, cand deschizi un fisier,
Emacs va cere numele sau in minibuffer.
Trecerea dintr-un buffer intr-altul se poate face folosind comanda C-
x b. Aceasta iti va cere numele unui buffer (numele buffer-ului este de
obicei numele fisierului editat in el), si ofera o alegere standard, care este
in mod normal buffer-ul in care te aflai inainte de a crea sau a trece in
buffer-ul curent. Apasarea tastei Enter va face trecerea in acel buffer
standard.
Daca vrei sa treci in alt buffer decat cel standard oferit de Emacs
trebuie doar sa-i tastezi numele. Tine cont ca poti folosi Tab-completion
(autocompletarea folosind tasta Tab): tasteaza primele litere ale numelui
buffer-ului si apasa Tab; Emacs va completa numele buffer-ului. Tab
completion functioneaza peste tot unde are sens in Emacs.
Poti vedea o lista a buffer-elor deschise tastand C-x C-b. Aceasta
comanda de obicei va imparti ecranul in doua, afisand buffer-ul in care
lucrai in jumatatea de sus si un nou buffer numit *Buffer List* in
jumatatea de jos. Acest buffer contine o lista a tuturor buffer-elor,
marimilor si modurilor, a fisierelor, daca exista, vizitate (asa se numeste in
Emacs) de acele buffere. Poti scapa de ecranul dublu tastand C-x 1.

204
Emacs
Sub X, lista buffer-elor este disponibila si in meniul Buffer din bara
de meniu.

17.3 Moduri

Fiecare buffer din Emacs are asociat un mod. Acest mod este diferit
de ideea de mod din vi: un mod iti spune in ce fel de buffer te afli. De
exemplu, exista modul text (text-mode) pentru fisiere text normale, dar
exista si c-mode pentru editarea programelor C, sh-mode pentru editarea
scripturilor shell, latex-mode pentru editarea fisierelor LaTeX, mail-mode
pentru editarea mesajelor de email si news, etc. Un mod iti ofera setari si
functionalitati utile tipului de fisier pe care il editezi. Este posibil chiar ca
un mod sa redefineasca taste si comenzi din taste. De exemplu, in modul
text, tasta Tab doar sare la urmatorul tab stop, dar in multe moduri pentru
limbaje de programare tasta Tab indenteaza linia curenta conforma
adancimii blocului in care se afla acea linie.
Modurile mentionate mai sus se numesc moduri principale (major
modes). Fiecare buffer are fix un mod principal. Pe langa acesta, un buffer
poate avea unul sau mai multe moduri secundare (minor modes). Un mod
secundar ofera functii in plus care pot fi utile pentru anumite necesitati de
editare. De exemplu, daca apesi tasta INSERT poti porni modul de
suprascriere (overwrite-mode), care face ceea ce te-ai astepta sa faca.
Exista de asemenea un modul auto-fill, care este util in combinatie cu
modul text sau module latex: face ca fiecare linie pe care o scrii sa fie
automat impachetata (wrapped) cand linia are un anumit numar de
caractere. Fara modul auto-fill trebuie sa tastezi M-q pentru a umple un
paragraf. (Pe care il poti folosi si pentru a reformata un paragraf dupa ce ai
editat o parte din textul sau si nu mai este completat frumos.)

17.3.1 Deschiderea fisierelor


Pentru a deschide un fisier in Emacs tasteaza:
C-x C-f

Emacs iti va cere numele fisierului, completand un path standard


pentru tine (de obicei ~/ ). Dupa ce tastezi numele fisierului (poti folosi
Tab completion) si apesi ENTER , Emacs va deschide fisierul intr-un
buffer nou si va afisa acel buffer pe ecran.

205
Slackware Linux Essentials

Emacs va crea automat un buffer nou, nu va incarca fisierul in


bufferul curent.
C-x C-f apoi tastand un nume de fisier, la fel cum ai deschide un
fisier existent. Emacs va observa ca fisierul tastat nu exista si va crea un
nou buffer si va anunta “(New file)” in minibuffer.
Cand tastezi C-x C-f si apoi scrii numele unui director in locul
numelui unui fisier Emacs va crea un nou buffer in care vei gasi o lista a
tuturor fisierelor din acel director. Poti muta cursorul pe fisierul pe care il
cauti si sa tastezi, iar Emacs il va deschide. (De fapt se pot face mai multe
lucruri asa, cum ar fi, stergerea, redenumirea si mutarea fisierelor, etc.
Emacs se afla acum in dired-mode, care este in esenta un file manager
simplu).
Cand ai tastat C-x C-f dar te-ai razgandit poti tasta C-g pentru a
anula comanda. C-g functioneaza aproape peste tot unde vrei sa anulezi o
actiune sau comanda pe care ai inceput-o, dar pe care nu vrei sa o termini.

17.4 Editare de baza

Cand ai deschis un fisier vei putea desigur sa te misti prin el cu


ajutorul cursorului. Tastele cursor si PgUp, PgDn fac ceea ce te astepti sa
faca. Home si End sar la inceputul si sfarsitul unei linii. (In versiuni mai
vechi sare chiar la inceputul si sfarsitul bufferului.) Totusi, exista si
combinatii cu Control si Meta (Alt) care muta cursorul. Pentru ca nu
trebuie sa-ti misti mainile pe alta bucata din tastatura pentru aceste sunt
mult mai rapide dupa ce te-ai obisnuit cu ele. Cele mai importante astfel de
comenzi sunt insirate in Tabelul 17-1.
Table 17-1. Comenzi de Baza Editare Emacs
Commanda Resultat
C-b un caracter inapoi
C-f un caracter inainte
C-n o linie in jos
C-p o linie in sus
C-a inceput de linie
C-e sfarsit de linie
M-b un cuvant inapoi

206
Emacs

Commanda Resultat
M-f un cuvant inainte
M-} un paragraf inainte
M-{ un paragraf inapoi
M-a un enunt inapoi
M-e un enunt inainte
C-d sterge caracterul de sub cursor
M-d sterge pana la sfarsitul cuvantului curent
C-v coboara un ecran (i.e., PgDn)
M-v urca un ecran (i.e., PgUp))
M-< inceputul buffer-ului
M-> sfarsitul buffer-ului
undo (poate fi repetat); tine cont ca va trebui sa
C-_
tastezi Shift+Control+cratima
C-k sterge pana la sfarsitul liniei
C-s cautare inainte
C-r cautare inapoi
Tine cont ca multe comenzi Meta seamana cu comenzi Control
numai ca lucreaza pe unitati mai mari: in timp ce C-f merge inainte un
caracter, M-f merge inainte un intreg cuvant, etc.
De asemenea tine cont ca M-< si M-> cer sa apesi
Shift+Alt+virgula si respectiv Shift+Alt+punct in moment ce < si > sunt
Shift+virgula si Shift+punct. (Mai putin in cazul in care ai la tastatura un
layout diferit de standard US.)
C-k sterge (kills, cum se mai spune) tot textul dupa cursor pana la
sfarsitul de linie, dar nu sterge linia in sine (i.e., nu sterge caracterul
newline de la sfarsit). Sterge linia doar daca nu era nici un text dupa
cursor. Cu alte cuvinte, pentru a sterge o linie complet, trebuie sa pui
cursorul la inceputul liniei si sa apesi C-k de doua ori: o data pentru a
sterge textul de pe linie, inca o data pentru a sterge linia.

207
Slackware Linux Essentials

17.5 Salvarea fisierelor

Pentru a salva un fisier, tastezi


C-x C-s

Emacs nu-ti va cere un nume de fisier, buffer-ul va fi salvat in fisierul


din care a fost incarcat. Daca vrei sa-ti salvezi textul in alt fisier, scrie
C-x C-w

Cand salvezi fisierul pentru prima data in aceasta sesiune Emacs va


salva in mod normal versiunea veche a fisierului tau intr-o copie de
siguranta (backup), care are acelasi nume dar cu o tilda la sfarsit: deci daca
editezi un fisier “cars.txt”, Emacs va crea un backup “cars.txt~”.
Acest fisier backup este o copie a fisierului pe care l-ai deschis. Cat
timp lucrezi, Emacs va crea in mod regulat o copie auto-save a ceea ce
lucrezi intr-un fisier numit cu simboluri diez: #cars.txt#. Acest backup
este sters cand salvezi fisierul cu C-x C-s.
Cand ai terminat cu editarea fisierului poti sa inchizi (kill) bufferul
care il contine tastand
C-x k

Emacs te va intreba ce buffer vrei sa inchizi, cu buffer-ul curent ca


raspus stadard, ce poate fi selectat tastand ENTER. Daca nu ti-ai salvat
fisierul inca, Emacs te va intreba daca vrei sa inchizi buffer-ul.

17.5.1 Iesirea din Emacs


Cand ai terminat cu Emacs, poti tasta
C-x C-c

Aceasta inchide Emacs. Daca ai un fisier pe care nu l-ai salvat,


Emacs iti va spune si te va intreba daca vrei sa-l salvezi pe fiecare in parte.
Daca raspunzi nu la oricare din ele, Emacs iti va cere pentru ultima oara
confirmarea apoi se va inchide.

208
Administrarea pachetelor Slackware

Capitolul 18

Administrarea
pachetelor Slackware
18.1 O privire de ansamblu asupra formatului pachetelor
18.2 Utilitare de pachete
18.3 Crearea pachetelor
18.4 Crearea Etichetelor si a Fisierelor Eticheta (pentru setup)

Un pachet software reprezinta o colectie de programe asociate pregatite


pentru a fi instalate de tine. Cand iei o arhiva de cod sursa, trebuie sa
configurezi, compilezi si sa o instalezi manual. Cu un pachet software,
acestea au fost facute deja pentru tine. Tot ceea ce trebuie sa faci este sa
instalezi pachetul. O alta caracteristica folositoare a utilizarii pachetelor
software este ca e foarte usor sa le inlaturi si sa le imbunatatesti, daca asa
doresti. Slackware vine cu programe pentru toate nevoile tale de
administrare a pachetelor. Poti instala, inlatura, imbunatati, crea si examina
pachetele foarte usor. Exista un mit printre utilizatori, inca de cand Red
Hat a prezentat Red Hat Package Manager (RPM), cum ca Slackware nu ar
avea un manager de pachete. Este cat se poate de neadevarat. Slackware a
avut intotdeauna un manager de pachete, chiar inainte ca Red Hat sa existe.
Chiar daca nu are atat de multe optiuni si nu este atat de titrat ca si rpm
(sau deb), pkgtool si programele conexe sunt tot atat de bune pentru
instalarea pachetelor ca si rpm. Adevarul despre pkgtool este nu ca ar fi
inexistent, ci ca nu verifica dependintele pachetelor instalate. Se pare ca
multa lume din comunitatea Linux crede ca un manager de pachete trebuie
prin definitie sa includa si o rutina de verificare a dependintelor. Ei bine,
nu este cazul, sau cel putin in Slackware nu se pune problema. Asta nu
inseamna ca pachtele Slackware nu au dependinte, doar ca managerul de
pachete pur si simplu nu le verifica. Managementul dependintelor este o
problema lasata in grija administratorului de sistem, si noua asa ne place.

209
Slackware Linux Essentials

18.1 Formatul pachetelor Slackware

Inainte de a invata utilitarele, ar trebui sa te familiarizezi cu formatul


unui pachet Slackware. Un pachet este un simplu fisier arhiva tar care a fost
comprimat cu gzip.Un pachet este construit in asa fel incat sa poata fi extras
in sistemul de fisiere radacina. Acesta e un program inventat si pachetul lui
exemplu:
./
usr/
usr/bin/
usr/bin/makehejaz
usr/doc/
usr/doc/makehejaz-1.0/
usr/doc/makehejaz-1.0/COPYING
usr/doc/makehejaz-1.0/README
usr/man/
usr/man/man1
usr/man/man1/makehejaz.1.gz
install/
install/doinst.sh

Sistemul de pachete va extrage acest fisier in directorul radacina pentru


a il instala. Va fi creata o intrare in baza de date a pachetelor care contine
continutul acestui pachet ca sa poata fi imbunatatit sau mai tarziu inlaturat.
Observa subdirectorul install/. Acesta este un director special care
contine un script de postinstalare numit doinst.sh. Daca sistemul de
pachete gaseste acest fisier, il va executa dupa instalarea pachetului.
Alte scripturi pot fi incarcate in pachet, dar acelea sunt discutate
detaliat in sectiunea intitulata makepkg.

18.2 Utilitare de pachete

Sunt patru utilitare principale pentru administrarea pachetelor.


Ele executa instalarea, inlaturarea si imbunatatirea pachetelor.

18.2.1 pkgtool
pkgtool(8) este un program bazat pe meniuri care permite instalarea
si inlaturarea pachetelor. Meniul principal arata asa:

210
Administrarea pachetelor Slackware
Figura 18-1. Meniul principal Pkgtool.

Instalarea este oferita din directorul curent, alt director, sau de pe


dischete. Alege metoda de instalare pe care o vrei si pkgtool va cauta in
locatia respectiva pachete valabile pe care sa le instaleze.
Poti de asemenea sa vezi si o lista de pachete instalate, care ar arata asa:
Figura 18-2. Mod de vizualizare a pachetelor

211
Slackware Linux Essentials
Daca vrei sa inlaturi pachete, alege optiunea remove si iti va fi
oferita o lista alfabetica a tuturor pachetelelor instalate. Marcheaza-le pe
cele pe care vrei sa le inlaturi si alege OK. pkgtool le va inlatura.
Unii utilizatori prefera acest utilitar in favoarea celor de la linia de
comanda, desi ar trebui notat notat ca utilitarele liniei de comanda ofera
mult mai multe optiuni. De asemenea capacitatea de a imbunatati pachetele
este oferita doar prin intermediul utilitarelor de la linia de comanda.

18.2.2 installpkg
installpkg(8) manipuleaza instalarea noilor pachete pe sistem.
Sintaxa este urmatoarea:
# installpkg option package_name

Sunt oferite trei optiuni pentru installpkg. Doar o singura optiune


se poate folosi la un moment dat.
Tabelul 18-1. Optiuni installpkg
Optiuni Efecte
-m Executa o operatiune makepkg pe directorul actual.
Arata ce s-ar intampla daca ai instala pachetul specificat. Acesta e
-warn util pentru sisteme de productie ca sa poti vedea exact ce s-ar
intampla inainte de a instala ceva.
Instaleaza toate pachetele din directorul actual in jos in mod
-r recursiv. Poate folosi si potrivirea caracterelor, care ar fi utilizate
ca masca de cautare cand instalezi recursiv.
Daca dai variabila de mediu ROOT inainte de installpkg, acea cale
va fi folosita pentru directorul radacina. Acesta este folositor pentru setarea
noilor unitati pentru directorul tau radacina. Tipic, acestea vor fi montate in
/mnt sau altceva decat /.
Inregistrarea in baza de date a pachetelor instalate este stocata in
/var/log/packages. “Inregistrarea” este de fapt doar un fisier text
obisnuit, unul pentru fiecare pachet. Daca pachetul are un script de
postinstalare, este scris in /var/log/scripts/.
Poti specifica mai multe pachete sau sa folosesti caractere de
potrivire pentru numele pachetului. Nu uita ca installpkg nu iti va spune
daca scrii peste un pachet instalat. Pur si simplu va instala peste cel vechi.
Daca vrei sa te asiguri ca fisierele vechi din pachetul anterior sunt
inlaturate in siguranta, foloseste upgradepkg.

212
Administrarea pachetelor Slackware
18.2.3 removepkg
removepkg(8) se ocupa de inlaturarea pachetelor instalate pe sistem.
Sintaxa este urmatoarea:
# removepkg option package_name

Exista patru optiuni pentru removepkg. Doar o singura optiune poate


fi folosita la un moment dat.
Tabelul 18-2. Optiuni removepkg
Optiuni Efect
Pachetul este copiat in directorul de pachete conservate. Acesta
-copy
creeaza un arbore al pachetului original fara a il inlatura.
Salveaza fisierele temporare create in timpul inlaturarii. Este
-keep
folositor doar pentru scopuri de depanare.
- Pachetul este inlaturat, dar copiat in directorul de pachete
preserve conservate in acelasi timp.
-warn Arata ce s-ar intampla daca ai inlatura pachetul.
Daca specifici variabila de mediu ROOT inainte de removepkg, acea
cale va fi folosita pentru directorul radacina. Acesta este util pentru setarea
noilor unitati pentru directorul tau radacina. Tipic, ele vor fi montate in to
/mnt sau altceva decat /.
removepkg se uita la celelalte pachete instalate si inlatura doar
fisierele unice pachetului pe care il specifici. Va scana de asemenea si
scriptul de postinstalare si va inlatura orice link-uri simbolice care au fost
create de catre el.
In timpul procesului de inlaturare, este afisat un raport de situatie.
Dupa inlaturare, inregistrarea din baza de date a pachetelor este mutata in
/var/log/removed_packages si scriptul de postinstalare este mutat in
/var/log/removed_scripts.
La fel ca si cu installpkg, poti specifica diferite pachete sau folosi
caractere de potrivire pentru numele pachetului.

18.2.4 upgradepkg
upgradepkg(8) va imbunatati un pachet Slackware instalat. Sintaxa
este urmatoarea:
# upgradepkg package_name

213
Slackware Linux Essentials
sau
# upgradepkg old_package_name%new_package_name

upgradepkg functioneaza instaland prima data pachetul nou si pe


urma inlaturandu-l pe cel vechi asa ca fisierele vechi nu mai sunt prin
preajma pe sistem. Daca numele pachetului imbunatatit s-a schimbat,
foloseste sintaxa cu semnul procent pentru a specifica vechiul pachet (cel
care este instalat) si noul pachet (cel care va imbunatati).
Daca specifici variabila de mediu ROOT inainte de upgradepkg, acea
cale va fi folosita pentru directorul radacina. Acesta este util pentru setarea
noilor unitati pe directorul tau radacina. Tipic, acestea vor fi montate in
/mnt sau altceva decat /.
upgradepkg nu este perfect. Ar trebui sa iti salvezi fisierele de
configurare. Daca se scrie peste ele, vei avea o copie dupa originale pentru
orice munca necesara de reparatii.
Ca si cu installpkg si removepkg, poti specifica mai multe pachete
sau folosi caractere de potrivire pentru numele pachetului.

18.2.5 rpm2tgz/rpm2targz
Administratorul de pachete pe Red Hat este un sistem popular de
impachetare disponibil azi. Multi distribuitori de software isi ofera
produsele in format RPM. Din moment ce nu acesta este formatul nostru
nativ, nu le recomandam oamenilor sa se bazeze pe ele. Desi, cateva
lucruri sunt disponibile doar ca si RPM (chiar si sursa).
Noi furnizam un program care va transforma pachetele RPM in
formatul nostru nativ .tgz. Acesta iti va permite sa extragi pachetul (poate
cu explodepkg) intr-un director temporar si sa ii examinezi continutul.
Programul rpm2tgz va crea un pachet Slackware cu o extensie .tgz
in timp ce rpm2targz creaza o arhiva cu o extensie .tar.gz.

18.3 Crearea pachetelor

Crearea pachetelor Slackware poate fi si usoara si dificila. Nu este


nici o metoda specifica pentru construirea unui pachet. Singura cerinta este
ca pachetul sa fie un fisier tar comprimat cu gzip si daca exista un script de
postinstalare, acesta trebuie sa fie /install/doinst.sh.

214
Administrarea pachetelor Slackware
Daca esti interesat in crearea pachetelor pentru sistemul tau sau
pentru o retea pe care o administrezi, ar trebui sa arunci o privire la
diferitele scripturi de constructie in arborele sursa al Slackware. Sunt mai
multe metode pe care le folosim pentru crearea pachetelor.

18.3.1 explodepkg
explodepkg(8) va face acelasi lucru ca si installpkg va extrage
pachetul, dar de fapt nu il instaleaza si nu il inregistreaza in baza de date a
pachetelor. Il extrage doar in directorul actual.
Daca te uiti la arborele sursa al Slackware, vei vedea cum folosim
aceasta comanda pentru pachetele “schelet”. Aceste pagini contin un
schelet a ceea ce va fi pachetul final. Contin toate numele fisierelor
necesare (lungime zero), permisiuni si apartenente. Scriptul de construire
va da cat continutului pachetului din directorul sursa in directorul
constructie al pachetului.

18.3.2 makepkg
makepkg(8) va impacheta directorul curent intr-un pachet Slackware
valabil. Va cauta arborele pentru o legatura simbolica si va adauga un bloc
de creatie scriptului de postinstalare pentru a le crea in timpul instalarii
pachetului. Avertizeaza de asemenea si despre fisierele cu lungime zero
din arborele pachetului.
Aceasta comanda este rulata in mod tipic dupa ce ti-ai creat arborele
pachetului.

18.3.3 Scriptul SlackBuild


Pachetele Slackware sunt create in diverse forme, dupa necesitati.
Nu toate programele de pachete sunt scrise de programatorii lor, pentru a
se compila asa cum este de dorit. De multe ori se intampla ca unele optiuni
sa nu fie disponibile in pachetele folosite de Slackware. Uneori s-ar putea
sa ai nevoie de aceste optiuni; atunci va trebui sa iti compilezi propriul
pachet. Din fericire, pentru multe pachete Slackware, poti gasi scripturi
Slackbuild in sursa pachetului.
Ce este deci un script SlackBuild? Scripturile SlackBuild sunt
scripturi care pot fi executate in shell, de catre root pentru a configura,
compila si crea pachete Slackware. Poti modifica dupa bunul plac aceste
scripturi din directorul cu surse si le poti rula pentru a-ti crea propriile
versiuni ale pachetelor Slackware originale.

215
Slackware Linux Essentials
18.4 Crearea Etichetelor si a Fisierelor Eticheta
(pentru setup)

Programul setup Slackware manipuleaza instalarea pachetelor


software pe sistemul tau. Sunt fisiere care ii spun programului setup ce
pachete trebuie instalate, care sunt optionale si care sunt alese ca default de
programul setup.
Un fisier eticheta este primul director al seriilor software si este
numit tagfile. El afiseaza pachetele in acel disc set particular si starea lor.
Starea poate fi:
Table 18-3. Optiuni de Stare a Fisierelor Eticheta
Optiune Semnificatie
Este nevoie de pachet pentru functionarea corespunzatoare a
ADD
sistemului
SKP Pachetul va fi omis in mod automat
REC Nu este nevoie de pachet dar este recomandat
OPT Pachetul este optional
Formatul este simplu:
package_name: status

Un pachet pe linie. Fisierele eticheta originale pentru fiecare serie


software sunt stocate ca tagfile.org. Asa ca daca il strici pe al tau, il poti
restaura pe cel original.
Multi administratori prefera sa isi scrie propriile fisiere eticheta sa
inceapa programul de instalare si sa aleaga “full”. Programul setup va citi
fisierele eticheta si va executa instalarea in conformitate cu continutul lor.
Daca folosesti REC sau OPT, ii va fi prezentata o casuta de dialog
utilizatorului intrebandu-l daca vrea sau nu vrea un pachet paticular. Prin
urmare, este recomandat sa te tii de ADD si SKP cand scrii fisiere eticheta
pentru instalari automate.
Asigura-te doar ca fisierele tale eticheta sunt scrise in aceeasi locatie
cu originalele. Sau poti specifica o cale proprie pentru fisierul eticheta daca
ai fisiere eticheta proprii.

216
Capitolul 19

ZipSlack
19.1 Ce este ZipSlack?
19.2 Obtinere Zipslack
19.3 Initializare ZipSlack

217
Slackware Linux Essentials

19.1 Ce este ZipSlack?

“ZipSlack” este o versiune speciala de Slackware Linux. Este o


copie preinstalata de Slackware pregatita pentru a rula dintr-o partitie DOS
sau Windows. Este o instalare de baza, nu vei obtine chiar tot din ceea ce
vine cu Slackware.
ZipSlack isi ia numele din modul in care este distribuit: un imens fisier
ZIP. Utilizatorii de DOS si Windows sunt probabil familiarizati cu aceste
fisiere. Acestea sunt arhive comprimate. Arhiva ZipSlack contine tot ceea ce
ai putea avea nevoie pentru a putea porni si rula un sistem Slackware.
Este important sa intelegi ca ZipSlack este semnificativ diferit fata
de o instalare normala. Chiar daca functioneaza la fel si contine aceleasi
programe, functiile si persoanele carora i se adreseaza, sunt diferite. Cateva
avantaje si dezavantaje ale ZipSlack sunt discutate mai jos..
Si inca ceva: poti intotdeauna cerceta documentatia inclusa in
directorul ZipSlack. Acesta contine informatii de ultima ora in ceea ce
priveste instalarea, initializarea si utilizarea la modul general a acestui
produs.

19.1.1 Avantaje
• Nu este necesara repartitionarea hard disk-ului tau.
• Poti sa inveti Slackware Linux fara a iti complica viata cu procesul
de instalare.

19.1.2 Dezavantaje
• Foloseste sistemul de fisiere DOS, mult mai lent decat sistemul de
fisiere nativ Linux.
• Nu va functiona sub Windows NT.

19.2 Obtinerea ZipSlack

Obtinerea lui ZipSlack este simpla. Daca ai cumparat setul oficial de


CD-uri Slackware Linux, atunci ai deja ZipSlack. Nu este nevoie decat sa
gasesti CD-ul care contine directorul zipslack si sa-l introduci in unitatea

218
ZipSlack
ta CD-ROM. De obicei, este al treilea sau al patrulea disc, si intotdeauna
poti avea incredere in etichetele CD-urilor.
Daca doresti sa descarci ZipSlack, va trebui ca mai intai sa vizitezi
sectiunea “Get Slack” pentru ultimele informatii legate de download:
http://www.slackware.com/getslack/
ZipSlack face parte din fiecare versiune Slackware. Gasesti
versiunea dorita, si apoi te duci in directorul respectiv de pe serverul FTP.
Directorul ultimei versiuni poate fi gasit la adresa:
ftp://ftp.slackware.com/pub/slackware/slackware/
Vei gasi ZipSlack in directorul /zipslack. ZipSlack este disponibil
ca un singur mare fisier .ZIP sau in imagini de 1.44 MB (capacitatea unui
floppy disk). Imaginile se afla in directorul /zipslack/split.
Numai fisierul .ZIP este suficient. Va trebui, de asemenea, sa
descarci fisierele ce compun documentatia, precum si orice imagini de boot
care apar in acel director.

19.2.1 Instalarea
Dupa ce ai descarcat componentele necesare, va fi nevoie sa
dezarhivezi fisierul .ZIP. Asigura-te ca folosesti un dezarhivator pe 32 biti.
Marimea si lungimea numelor de fisiere din arhive sunt prea mult pentru
un dezarhivator pe 16 biti. Exemple de dezarhivatoare pe 32 biti sunt
WinZip si PKZIP pentru Windows.
ZipSlack este astfel realizat incat sa se extraga direct in radacina
partitiei/hard disk-ului (cum ar fi C: sau D:). Un director \LINUX va fi
creat, director ce va contine intreaga instalare Slackware. De asemenea, vei
gasi si fisierele necesare initializarii sistemului tot in acelasi director.
Dupa ce vei extrage fisierele, va trebui sa ai un director \LINUX pe
partitia/hard disk-ul ales (presupunem de acum inainte ca acesta este C:.

19.3 Initializare ZipSlack

Exista cateva moduri de a initializa ZipSlack. Cel mai simplu este sa


folosesti LINUX.BAT pentru a initializa din DOS (sau din DOS-mode sub
Windows 9x). Acest fisier va trebui editat pentru a se potrivi cu sistemul
tau inainte de a-l folosi.
Incepe prin a deschide fisierul C:\LINUX\LINUX.BAT in editorul tau de
text favorit. La inceputul acestui fisier, vei observa un numar de linii de

219
Slackware Linux Essentials
comentariu, care va explica de ce este nevoie sa editezi acest fisier (si de
asemenea ce ai de facut daca doresti sa initializezi de pe un drive ZIP extern).
Nu te speria daca nu intelegi setarile gen root=. Sunt cateva example, deci
alege unul dintre ele, si inceara sa initializezi sistemul. Daca nu functioneaza,
poti edita fisierul din nou, transformand in comentarii liniile pe care le-ai
decomantat.
Dupa ce vei activa liniile stergand caracterul “rem” de la inceputul
liniei, salveaza fisierul si iesi din editor, apoi reporneste-ti calculatorul in
modul DOS.
NU porni o fereastra DOS in Windows 9x, pentru ca NU va
functiona!.
Scrie C:\LINUX\LINUX.BAT pentru a initializa sistemul. Daca totul
merge corect, vei ajunge in final in fata prompt-ului de login.
Te poti loga ca root, fara nici o parola. Vei dori (bineinteles) sa iti
setezi propria parola de root, si de asemenea un cont de utilizator pentru
tine. Din acest punct poti folosi indicatiile disponibile in alte sectiuni ale
acestei carti pentru a cunoaste modul general de utilizare a sistemului.
Daca fisierul LINUX.BAT nu iti initializeaza sistemul, citeste fisierul
C:\LINUX\README.1ST pentru a cunoaste alte moduri in care poti initializa
sistemul.

220
Glosar

Account
Toata informatia despre un utilizator, incluzand numele utilizator,
parola, informatia finger, UID si GID si directorul camin. Crearea
unui cont inseamna adaugarea si definirea unui utilizator.
Background
Orice proces care ruleaza fara acceptarea sau controlarea intrarii
unui terminal se spune ca ruleaza in background.
Boot disk
O discheta care contine un sistem de operare (in cazul nostru,
kernel-ul Linux) de pe care poate fi pornit un calculator.
Compile
Convertirea codului sursa in cod care poate fi citit de catre
calculator, cod “binar”.
Daemon
Un program destinat sa ruleze in background si fara interventia
utilizatorului, sa execute o sarcina specifica (de obicei furnizeaza
un serviciu).
Darkstar
Hostname-ul default in Slackware; calculatorul tau va fi numit
darkstar daca nu specifici alt nume.
Unul din calculatoarele de dezvoltare ale lui Patrick Volkerding's ,
numit dupa “Dark Star”, o melodie de Grateful Dead.
Desktop Environment
O interfata grafica (GUI) care ruleaza pe Sistemul de Ferestre X si
furnizeaza caracteristici cum ar fi aplicatii integrate, un look-and-
feel coeziv intre programe si componente, posibilitati de
administrare de fisiere si ferestre, etc. Un pas mai departe de
simplul administrator de ferestre.
Device driver
O bucata de cod in kernel care controleaza in mod direct
componentele.
Device node
Un tip special de fisier in sistemul de fisiere /dev care reprezinta o
componenta hardware pentru sistemul de operare.

221
Slackware Linux Essentials
DNS
Domain Name Service. Un sistem in care calculatoarelor aflate
intr-o retea li se dau nume care se traduc in adrese numerice.
Domain name
Numele DNS al unui calculator, fara hostname-ul acestuia.
Dot file
In Linux, fisierele care sunt ascunse au nume de fisiere care incep
cu un punct ('.').
Dotted quad
Formatul adreselor IP, numite asa pentru ca sunt alcatuie din patru
numere (raza 0-255 decimala) separate de puncte.
Dynamic loader
Cand programele sunt compilate sub Linux, acestea folosesc de
obicei bucati de cod (functii) din librarii externe. Cand aceste
programe sunt rulate, acele librarii trebuie gasite si functiile cerute
sunt incarcate in memorie. Aceasta este slujba unui dynamic
loader.
Environment variable
O variabila setata in shell-ul utilizatorului la care poate face
referire acel utilizator sau programe rulate de catre acel utilizator
inauntrul acelui shell. Variabilele de mediu sunt in general folosite
pentru a stoca preferinte si parametrii.
Epoch
O perioada in istorie; in Unix, “Epoch-ul” incepe la 00:00:00 UTC
Ianuarie 1, 1970. Acesta este considerat “inceputul timpului” de
catre Unix si sisteme de operare Unix-like si restul timpului este
calculat relativ cu aceasta data.
Filesystem
O reprezentare a datelor stocate in care “fisierele” de date sunt
tinute organizat in “directoare”. Sistemul de fisiere este forma
aproape universala a reprezentarii datelor stocate pe discuri(fixe si
amovibile).
Foreground
Un program care accepta sau controleaza intrarea unui terminal se
spune ca ruleaza in foreground.
Framebuffer
Un tip de dispozitiv grafic; in Linux, asta se refera de obicei la
framebuffer-ul software, care furnizeaza o interfata framebuffer
standard catre programe in timp ce tine diverse driver-e ale
componentelor ascunse de ele. Acest strat de abstractie elibereaza

222
Glosar
programele de nevoia de comunicare cu diversele driver-e
hardware.
FTP
File Transfer Protocol. FTP este o metoda foarte populara de
transferare a datelor intre calculatoare.
Gateway
Un calculator prin care datele de pe o retea sunt transferate pe o
alta retea.
GID
Group Identifier. GID-ul este un numar unic atribuit unui grup de
utilizatori.
Group
Utilizatorii in Unix apartin “grupurilor”, care pot contine multi alti
utilizatori si sunt folosite pentru un control de accese mai generale
decat poate oferi existenta de sine statatoare a utilizatorilor.
GUI
Graphical User Interface. O interfata software care foloseste
elemente grafice interpretate ca si butoanele, scrollbar-urile,
ferestre, etc. mai degraba decat intrari si iesiri bazate doar pe text
Home directory
Directorul “camin” al unui utilizator este directorul in care
utilizatorul este plasat imediat dupa logare. Utilizatorii au
permisiuni maxime si mai mult sau mai putin domnia in
directoarele lor camin.
HOWTO
Un document care descrie “how to(cum sa)” faci ceva, ca si
configurarea unui firewall sau administrarea utilizatorilor si a
grupurilor. Este o mare colectie de asemenea documente
disponibile de la Proietul de Documentare Linux.
HTTP
Hypertext Transfer Protocol. HTTP este protocolul primar pe care
lucreaza World Wide Web.
ICMP
Internet Control Message Protocol. Un protocol foarte primar de
retea, folosit in general pentru ping-uri.
Kernel
Inima unui sistem de operare.Kernel-el este partea care furnizeaza
controlul primar de procese si interfetele cu componentele
calculatorului.

223
Slackware Linux Essentials
Kernel module
O bucata de cod kernel, de obicei un driver, care poate fi incarcat
si descarcat din memorie separat de corpul principal al kernel-ului.
Modulele sunt foarte utile cand imbunatatesti sau testezi setarile
kernel-ului, deoarece ele pot fi incarcate si descarcate fara a rebuta
sistemul.
Library
O colectie de functii care pot fi impartite intre programe.
LILO
LInux LOader. LILO este cel mai folosit administrator de but
Linux.
LOADLIN
LOADLIN este un program care ruleaza sub MS DOS sau
Windows si buteaza un sistem Linux. Este de obicei folosit pe
calculatoare cu mai multe sisteme de operare (incluzand Linux si
DOS/Windows, desigur).
Man section
Paginile in manualul online standard Unix ("man") sunt grupate in
sectiuni pentru o referire mai usoara. Toate paginile referitoare la
programarea in C sunt in sectiunea 3, paginile de administrare a
sistemului in sectiunea 5, etc.
MBR
Master Boot Record. Un spatiu rezervat de pe un hard disk unde
este stocata informatia referitoare la ce se va intampla in timpul
butarii. LILO sau alti administratori de butare pot fi scrisi aici.
Motif
Un ansamblu de unelte de programare folosite in mai multe
programe X vechi.
MOTD
Message of the Day. motd-ul (stocat in Linux in /etc/motd este
un fisier text care este afisat tuturor utilizatorilor la logare. In mod
traditional este folosit de catre administratorul de sistem ca si un
fel de “buletin de stiri” pentru comunicarea cu utilizatorii.
Mount point
Un director gol intr-un sistem de fisier unde un alt sistem de fisiere
urmeaza a fi “montat”, sau altoit.
Nameserver
Un server de informatii DNS. Nameservere-le traduc numele DNS
in adrese IP numerice.

224
Glosar
Network interface
O reprezentare virtuala a unui dispozitiv de retea furnizat de catre
kernel. Interfetele de retea le permit utilizatorilor si programelor sa
comunice cu dispozitivele retea.
NFS
Network Filesystem. NFS permite montarea sistemelor de fisiere
aflate la distanta ca si cum ar fi locale calculatorului tau si astfel
furnizeaza o metoda transparenta de impartire a fisierelor.
Octal
Sistem de numarare in baza 8, cu cifrele 0-7.
Pager
Un program X care ii permite utilizatorului sa vada si sa se plimbe
prin mai multe “desktop-uri”.
Partition
O parte a unei unitati hard. Sistemele de fisiere exista pe partitii.
PPP
Point-to-Point Protocol. PPP se foloseste in mod primar pentru
conectare la un Internet Service Provider prin intermediul unui
modem.
Process
Un program care ruleaza.
Root directory
Reprezentat ca “/”, directorul root este la varful sistemului de
fisiere, cu toate celelalte directoare ramificandu-se sub el intr-un
“arbore de fisiere”.
Root disk
Discul (de obicei reparat) pe care este salvat directorul root.
Routing table
Setul de informatii pe care kernel-ul le foloseste in “rutarea” datelor
de pe o retea. Contine anumite delicatese cum ar fi gateway-ul tau
default, care interfata de retea este conectata pe ce retea, etc.
Runlevel
Starea de sistem definita de init. Nivelul de rulare 6 este rebutarea,
nivelul de rulare 1 este “mod de utilizator singur”, nivel de rulare 4
este o logare X, etc. Sunt 6 nivele de rulare disponibile pe un
sistem Slackware.
Secure shell
O metoda criptata (prin urmare sigura) de logare la distanta pe un
calculator. Sunt disponibile multe programe secure shell; e nevoie
si de un client si de un server.

225
Slackware Linux Essentials
Service
Impartirea informatiei si/sau a datelor intre programe si
calculatoarele de la un singur “server” catre mai multi “clienti”.
HTTP, FTP, NFS, etc. sunt servicii.
Shadow password suite
Suita de parole shadow permite parolelelor criptate sa fie ascunse
de utilizatori, pe cand restul informatiei in fisierul /etc/passwd
ramane vizibila pentru toti. Asta ajuta la prevenirea atacurilor
brute-force de ghicire a parolelor.
Shell
Shell-urile ofera o interfata de linie de comanda utilizatorului.
Cand te uiti la un prompt text, esti intr-un shell.
Shell builtin
O comanda incorporata in shell, opus furnizarii acestuia de un
program extern. De exemplu, bash are o incorporata cd.
Signal
Programele Unix pot comunica intre ele folosind simple
“semnale”, care sunt enumerate si au sensuri specifice. kill -l va
lista semnalele disponibile.
SLIP
Serial Line Interface Protocol. SLIP este un protocol similar cu
PPP, in sensul ca este folosit pentru conectare calculatoarelor
printr-o interfata seriala.
Software package
Un program si fisierele asociate acestuia, arhivate si comprimate
intr-un singur fisier impreuna cu orice scripturi necesare sau
informatii in ajutorarea instalarii, imbunatatirii si inlaturarii acelor
fisiere.
Software series
O colectie de pachete software in Slackware. Toata pachetele KDE
sunt in seriile “kde”, pachetele de retea sunt in seriile “n” , etc.
Source code
Cod care poate fi citit (mai mult sau mai putin) de catre oameni in
care sunt scrise majoritatea programelor. Codul sursa este compilat
in cod “binar” .
Standard Error (stderr)
Iesirea Unix standard pentru erori. Programele scriu orice mesaje
de eroare pe stderr, astfel incat sa poata fi separate de iesirea
normala.

226
Glosar
Standard Input (stdin)
Intrarea Unix standard. Datele pot fi redirectate sau intubate in
intrarea unui program de la orice sursa.
Standard Output (stdout)
Iesirea Unix standard. Produsul normal de text al unui program
este scris pe stdout, care este separat de mesajele de eroare
raportate pe stderr si poate fi intubat sau redirectat in intrarile altor
programe sau intr-un fisier.
Subnet
O raza a unui adrese IP care face parte dintr-o raza mai mare. De
exemplu , 192.168.1.0 este un subnet al 192.168.0.0 (unde 0 este o
masca care este “nedefinita”); este de fapt, subnet-ul “.1”.
Superblock
In Linux, partitiile sunt discutate in termeni de blocuri. Un bloc are
512 bytes. Superblocul reprezinta primii 512 bytes ai unei partitii.
Supplemental disk
In Slackware, o discheta folosita in timpul instalarii care nu
contine nici kernel-ul (care este pe discheta de but) nici sistemul de
fisiere root (care este pe discheta root), dar fisiere aditionale cum
ar fi module de retea sau suport PCMCIA.
Suspended process
Un proces care a fost inghetat pana cand va fi ucis sau reluat.
Swap space
Spatiu pe disc folosit de kernel ca si RAM “virtual”. Este mai lent
decat RAM-ul, dar pentru ca spatiul pe disc este mai ieftin, swap-
ul este de obicei mai indestulator. Spatiul swap este folositor
pentru kernel pentru tinerea datelor mai putin folosite si ca un
ultim punct de sprijin cand RAM-ul fizic este epuizat.
Symbolic link
Un fisier special care pur si simplu indica catre locatia unui alt
fisier. Legaturile simbolice sunt folosite pentru a evita duplicarea
datelor cand este nevoie de un fisier in mai multe locuri.
Tagfile
Un fisier folosit de programul Slackware setup in timpul instalarii,
care descrie un set de pachete care urmeaza a fi instalat.
Terminal
O interfata om-calculator care consista din cel putin un ecran (sau
ecran virtual) si o metoda de introducere a datelor (aproape
intotdeauna cel putin o tastatura).

227
Slackware Linux Essentials
Toolkit, GUI
O cutie de unelte GUI este o colectie de librarii care furnizeaza
unui programator coduri cu care sa faca “widget-uri” cum ar fi
scrollbar-urile, casutele, etc. si sa construiasca o interfata grafica.
Cutia de unelte GUI folosita de un program deseori defineste
“aspectul si simtul” acestuia.
UID
User Identifier. Un numar unic care identifica un utilizator
sistemului. UID-urile sunt folosite de majoritatea programelor in
loc de numele de utilizator pentru ca e mai usor sa lucreze cu
numere; numele de utilizator este de obicei folosit doar cand
utilizatorul vrea sa vada cum se intampla lucrurile.
VESA
Video Electronics Standards Association. Termenul “VESA” este
deseori folosit pentru a denota un standard specificat de aceasta
asociatie. Aproape toate adaptoarele video moderne sunt
compatibile VESA.
Virtual terminal
Folosirea software-ului pentru simularea mai multor terminale in
timp ce folosesti doar un set de dispozitive de intrare/iesire
(tastatura, monitor, mouse). Combinatii speciale de taste schimba
intre terminalele virtuale la un singur terminal fizic.
Window manager
Un program X al carui scop este sa furnizeze o interfata grafica
dincolo de simplele desene dreptunghiulare ale Sistemului de
Ferestre X. Administratoarele de ferestre furnizeaza de obicei bare
de titlu, meniuri pentru rularea programelor, etc.
Working directory
Directorul in care un program considera ca se afla in timpul rularii.
Wrapper program
Un program al carui unic scop este sa ruleze alte programe, dar sa
le schimbe comportamentul intr-un fel prin alterarea mediului lor
sau filtrarea intrarii lor.
X server
Programul in Sistemul de Ferestre X care face legatura cu
componentele grafice si manipuleaza rularea actuala a programelor X.
X Window System
Interfata grafica orientata spre retea folosit pe majoritatea
sistemelor de operare Unix-like, inclusiv Linux.

228
Appendix A.
The GNU General Public License

Table of Contents
A.1. Preamble
A.2. TERMS AND CONDITIONS
A.3. How to Apply These Terms to Your New Programs
GNU GENERAL PUBLIC LICENSE

Version 2, June 1991


Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

A.1. Preamble

The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to most of the
Free Software Foundation's software and to any other program whose authors
commit to using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to your
programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish), that you
receive source code or can get it if you want it, that you can change the software
or use pieces of it in new free programs; and that you know you can do these
things.
To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions translate to
certain responsibilities for you if you distribute copies of the software, or if you
modify it.
For example, if you distribute copies of such a program, whether gratis or for a
fee, you must give the recipients all the rights that you have. You must make sure
that they, too, receive or can get the source code. And you must show them these
terms so they know their rights.

229
Slackware Linux Essentials
We protect your rights with two steps: (1) copyright the software, and (2) offer
you this license which gives you legal permission to copy, distribute and/or
modify the software.
Also, for each author's protection and ours, we want to make certain that everyone
understands that there is no warranty for this free software. If the software is
modified by someone else and passed on, we want its recipients to know that what
they have is not the original, so that any problems introduced by others will not
reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to
avoid the danger that redistributors of a free program will individually obtain
patent licenses, in effect making the program proprietary. To prevent this, we have
made it clear that any patent must be licensed for everyone's free use or not
licensed at all.
The precise terms and conditions for copying, distribution and modification
follow.

A.2. Terms And Conditions

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND


MODIFICATION
1. This License applies to any program or other work which contains a
notice placed by the copyright holder saying it may be distributed under
the terms of this General Public License. The “Program”, below, refers to
any such program or work, and a “work based on the Program” means
either the Program or any derivative work under copyright law: that is to
say, a work containing the Program or a portion of it, either verbatim or
with modifications and/or translated into another language. (Hereinafter,
translation is included without limitation in the term “modification”.)
Each licensee is addressed as “you”.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of running the
Program is not restricted, and the output from the Program is covered
only if its contents constitute a work based on the Program (independent
of having been made by running the Program). Whether that is true
depends on what the Program does.
2. You may copy and distribute verbatim copies of the Program's source
code as you receive it, in any medium, provided that you conspicuously
and appropriately publish on each copy an appropriate copyright notice
and disclaimer of warranty; keep intact all the notices that refer to this
License and to the absence of any warranty; and give any other recipients
of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you
may at your option offer warranty protection in exchange for a fee.

230
The GNU General License
3. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such
modifications or work under the terms of Section 1 above, provided that
you also meet all of these conditions:
a. You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b. You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c. If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but does
not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be
reasonably considered independent and separate works in themselves,
then this License, and its terms, do not apply to those sections when you
distribute them as separate works. But when you distribute the same
sections as part of a whole which is a work based on the Program, the
distribution of the whole must be on the terms of this License, whose
permissions for other licensees extend to the entire whole, and thus to
each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on
the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under the
scope of this License.
4. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections
1 and 2 above provided that you also do one of the following:
a. Accompany it with the complete corresponding machine-
readable source code, which must be distributed under the terms
of Sections 1 and 2 above on a medium customarily used for
software interchange; or,

231
Slackware Linux Essentials
b. Accompany it with a written offer, valid for at least three years,
to give any third party, for a charge no more than your cost of
physically performing source distribution, a complete machine-
readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange; or,
c. Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with
such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to control
compilation and installation of the executable. However, as a special
exception, the source code distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies the
executable.
If distribution of executable or object code is made by offering access to
copy from a designated place, then offering equivalent access to copy the
source code from the same place counts as distribution of the source
code, even though third parties are not compelled to copy the source
along with the object code.
5. You may not copy, modify, sublicense, or distribute the Program except
as expressly provided under this License. Any attempt otherwise to copy,
modify, sublicense or distribute the Program is void, and will
automatically terminate your rights under this License. However, parties
who have received copies, or rights, from you under this License will not
have their licenses terminated so long as such parties remain in full
compliance.
6. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if
you do not accept this License. Therefore, by modifying or distributing
the Program (or any work based on the Program), you indicate your
acceptance of this License to do so, and all its terms and conditions for
copying, distributing or modifying the Program or works based on it.
7. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the original
licensor to copy, distribute or modify the Program subject to these terms
and conditions. You may not impose any further restrictions on the

232
The GNU General License
recipients' exercise of the rights granted herein. You are not responsible
for enforcing compliance by third parties to this License.
8. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot distribute
so as to satisfy simultaneously your obligations under this License and
any other pertinent obligations, then as a consequence you may not
distribute the Program at all. For example, if a patent license would not
permit royalty-free redistribution of the Program by all those who receive
copies directly or indirectly through you, then the only way you could
satisfy both it and this License would be to refrain entirely from
distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents
or other property right claims or to contest validity of any such claims;
this section has the sole purpose of protecting the integrity of the free
software distribution system, which is implemented by public license
practices. Many people have made generous contributions to the wide
range of software distributed through that system in reliance on consistent
application of that system; it is up to the author/donor to decide if he or
she is willing to distribute software through any other system and a
licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
9. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original
copyright holder who places the Program under this License may add an
explicit geographical distribution limitation excluding those countries, so
that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
10. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and “any
later version”, you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number

233
Slackware Linux Essentials
of this License, you may choose any version ever published by the Free
Software Foundation.
11. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software
Foundation, write to the Free Software Foundation; we sometimes make
exceptions for this. Our decision will be guided by the two goals of
preserving the free status of all derivatives of our free software and of
promoting the sharing and reuse of software generally.
12. NO WARRANTY
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE
EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS”
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU
ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
OR CORRECTION.
13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
OR DATA BEING RENDERED INACCURATE OR LOSSES
SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED
OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

A.3. How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to
the public, the best way to achieve this is to make it free software which everyone
can redistribute and change under these terms.

234
The GNU General License
To do so, attach the following notices to the program. It is safest to attach them to
the start of each source file to most effectively convey the exclusion of warranty;
and each file should have at least the “copyright” line and a pointer to where the
full notice is found.
<one line to give the program's name and a brief idea of what it
does.>
Copyright (C) <year> <name of author>

This program is free software; you can redistribute it and/or


modify
it under the terms of the GNU General Public License as
published by
the Free Software Foundation; either version 2 of the License,
or
(at your option) any later version.

This program is distributed in the hope that it will be


useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public


License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA

Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in
an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type
`show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than `show w' and `show c'; they could even be mouse-
clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school,
if any, to sign a “copyright disclaimer” for the program, if necessary. Here is a
sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
program
`Gnomovision' (which makes passes at compilers) written by

235
Slackware Linux Essentials
James Hacker.

<signature of Ty Coon>, 1 April 1989


Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may consider it
more useful to permit linking proprietary applications with the library. If this is
what you want to do, use the GNU Library General Public License instead of this
License.

236
by dahn
2005

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