Documente Academic
Documente Profesional
Documente Cultură
2005
Slackware Linux
Essentials
by Dahn
2005
Contributii la traducere
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
11
Modificari fata de Prima Editie
12
Organizarea Acestei Carti
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.
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
15
Exemple
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.
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
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.
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. :^)
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
25
Slackware Linux Essentials
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
Daca vrei mai multe detalii despre aceste comenzi, citeste pagina
man a comenzii respective pentru detalii. ;)
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.
28
Ajutor
2.2.1 Pagina si Forumul Oficial
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.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. .
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
31
Capitolul 3
Instalare
3.1 Obtinerea Slackware
3.2 Cerinte de Sistem
3.3 Partitionarea
3.4 Programul setup
33
Slackware Linux Essentials
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.
35
Slackware Linux Essentials
3.2.1 Seriile de Pachete
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.
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.
% dd if=bare.i of=/dev/fd0
3.3 Partitionarea
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.
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
42
Instalare
3.4.1 HELP
3.4.2 KEYMAP
43
Slackware Linux Essentials
3.4.3 ADDSWAP
3.4.4 TARGET
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
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
3.4.7 INSTALL
46
Instalare
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
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.
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.
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.
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
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.
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
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
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
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
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.
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.
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.
62
Configurarea sistemuluie
4.2.2.1 Compilarea versiunii 2.4.x a Kernel-ului Linux
% su -
Password:
# cd /usr/src/linux
63
Slackware Linux Essentials
configurare. Va scrie fisierele de configurare necesare. Acum putem
pregati arborele sursa pentru o constructie:
# make dep
# make clean
64
Configurarea sistemuluie
# make bzImage V=1
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.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.
# 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
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:
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
# 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
5.4 PPP
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
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.
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
78
Configurarea retelei
5.6 Network File Systems
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
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
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
82
Capitolul 6
Configurarea X
6.1 xorgconfig
6.2 xorgsetup
6.3 xinitrc
6.4 xwmconfig
6.5 xdm
83
Slackware Linux Essentials
6.1 xorgconfig
85
Slackware Linux Essentials
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
6.3 xinitrc
87
Slackware Linux Essentials
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
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
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
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
90
Configurarea X
6.5 xdm
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
92
Capitolul 7
Initializarea (booting)
7.1 LILO
7.2 LOADLIN
7.3 Dual Boot
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
7.2 LOADLIN
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
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.
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.
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
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
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
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:
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.
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
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
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
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.
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.
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
113
Slackware Linux Essentials
9.1 Apartenenta
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
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
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
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
118
Structura sistemului de fisiere
9.4 Montarea dispozitivelor
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
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.
120
Structura sistemului de fisiere
9.5 Monturi NFS
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.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
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/
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$
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.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
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.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
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
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.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
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
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
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
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>
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
133
Slackware Linux Essentials
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
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
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]
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]
11.4 kill
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
11.5 top
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
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
143
Capitolul 12
Administrarea de Sistem
Esentiala
12.1 Utilizatori si Grupuri
12.2 Utilizatori si Grupuri, Metoda Dificila
12.3 Oprirea Corespunzatoare
145
Slackware Linux Essentials
146
Administrarea de sistem esentiala
User ID ('UID') [ defaults to next available ]:
147
Slackware Linux Essentials
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...
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
149
Slackware Linux Essentials
Si penru a-l inlatura
# groupdel cvs
Password:
Changing the login shell for chris
Enter the new value, or press return for the default
Login Shell [/bin/bash]:
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
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
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.
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
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
157
Slackware Linux Essentials
13.1 ping
13.2 traceroute
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
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
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
;; 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
13.4 finger
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>
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]
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
Poti sa faci la fel pentru orice alt protocol plain-text, atat timp cat sti
pe ce port sa te conectezi.
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.
13.7 email
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
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
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
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>
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.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
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.
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>
100%[==================================>] 1,154,648
209.55K/s ETA 00:00
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..
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.1 wall
wall(1) este un mod rapid de a scrie un mesaj utilizatorilor de pe sistem.
Sintaxa de baza este:
% wall [file]
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]
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]
175
Capitolul 14
Securitatea
14.1 Dezactivarea servicilor
14.2 Controlarea accesului bazat pe host-uri
14.3 Mentinerea la curent
177
Slackware Linux Essentials
178
Securitatea
# chmod -x /etc/rc.d/rc.sshd
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.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
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
...cu asta:
IPV4_FORWARD=1
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
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
183
Capitolul 15
Fisiere Arhiva
15.1 gzip
15.2 bzip2
15.3 tar
15.4 zip
185
Slackware Linux Essentials
15.1 gzip
% gunzip filename.gz
186
Fisiere arhiva
15.2 bzip2
15.3 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
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
% cd $HOME
% tar -xvzf /tmp/filename.tar.gz
% cd /
% tar -xvzf /tmp/filename.tar.gz -C $HOME
189
Slackware Linux Essentials
15.4 zip
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
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
16.2 Moduri
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.
195
Slackware Linux Essentials
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.
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
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
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
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.)
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
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.)
205
Slackware Linux Essentials
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
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)
209
Slackware Linux Essentials
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.
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
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
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
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.
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.
215
Slackware Linux Essentials
18.4 Crearea Etichetelor si a Fisierelor Eticheta
(pentru setup)
216
Capitolul 19
ZipSlack
19.1 Ce este ZipSlack?
19.2 Obtinere Zipslack
19.3 Initializare ZipSlack
217
Slackware Linux Essentials
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.
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:.
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
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.
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
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>
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.
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