vii
Inhoud
Inhoud Voorwoord
i
1
1
Wat is Linux 1.1 1.2
2
De geschiedenis van Linux: UNIX Van UNIX naar Linux 1.2.1 De kernel 1.2.2 De shell 1.2.3 GNU-utility’s 1.2.4 Het X Window System 1.2.5 Windowmanagers en desktop environments 1.2.6 Netwerkfunctionaliteit 1.3 Licenties 1.4 Linux-distributies 1.4.1 SUSE 1.4.2 Red Hat 1.4.3 Mandriva 1.4.4 Debian 1.4.5 Knoppix 1.5 Veelgebruikte Linux-services 1.5.1 Apache 1.5.2 Squid 1.5.3 Samba 1.5.4 Sendmail 1.5.5 Netfilter 1.5.6 DNS Samenvatting Oefenopgaven
1 3 5 7 8 9 10 11 12 13 14 14 15 15 15 16 16 16 16 17 17 18 18 18
Basisvaardigheden
19
2.1 2.2 2.3 2.4
19 21 23 24 25 26 28 30 34 35 36
2.5
Opstarten: lilo en Grub Inloggen Werken met Linux-opdrachten Redirection en piping 2.4.1 Piping 2.4.2 Redirection Help opvragen 2.5.1 Man 2.5.2 Info 2.5.3 Help 2.5.4 Informatie uit documenten
viii
LEERBOEK LINUX – DEEL 1
2.6
3
Basistaken uitvoeren 2.6.1 Instellen van het wachtwoord 2.6.2 Inloggen onder een andere naam 2.6.3 Bekijken van en manoeuvreren in de directorystructuur 2.7 De inrichting van een Linux-bestandssysteem 2.7.1 Standaarddirectory’s 2.7.2 Bestandsnamen 2.7.3 Soorten bestanden 2.7 Bekijken van inhoud van bestanden en output van opdrachten 2.9 Zoeken naar bestanden en tekst 2.10 Kopiëren, verplaatsen, verwijderen en aanmaken van directory’s 2.11 Nog meer basisopdrachten 2.12 Aanmaken van tekstbestanden 2.12.1 Geschiedenis 2.12.2 Opdrachtmodus en inputmodus 2.12.3 Opslaan en afsluiten 2.12.4 Verwijderen en toevoegen 2.12.5 Zoeken, knippen en plakken 2.12.6 Algemene instellingen 2.13 Afsluiten Samenvatting Opdrachten Oefenopgaven
37 37 38 39 41 42 47 48 50 50 54 55 56 57 57 59 59 60 61 62 64 64 66
Werken met de shell
67
3.1 3.2
67 68 69 69 70 71 71 71 72 72 73 74 75 76 76 76 79 80 81 82 83 88
3.3
3.4
Wat is een shell? De verschillende shells 3.2.1 UNIX-shells 3.2.2 De Bourne Again Shell 3.2.3 tcsh 3.2.4 pdksh 3.2.5 Andere shells 3.2.6 Verschijningsvormen van de shell Basisfuncties van bash 3.3.1 Input/Output, redirection en piping 3.3.2 Uitvoering op de voorgrond of achtergrond 3.3.3 Substitutie: tekens met een speciale betekenis 3.3.4 Quoting: opheffen van substitutie 3.3.5 Control-keys 3.3.6 Help 3.3.7 Aanpassen van opdrachtregels 3.3.8 History expansion Standaardinstellingen 3.4.1 Aliassen 3.4.2 Opties 3.4.3 Variabelen 3.4.4 Shells, subshells en variabelen
ix
Inhoud
4
5
3.4.5 Opstartbestanden van de shell 3.4.6 Boodschappen tonen aan gebruikers Samenvatting Opdrachten Oefenopgaven
89 90 91 91 92
Bewerken en verwerken van tekstbestanden
93
4.1 4.2
Reguliere expressies Hulpprogramma’s voor het verwerken van tekstbestanden 4.2.1 grep en find 4.2.2 sort 4.2.3 cut 4.2.4 uniq 4.2.5 cat 4.2.6 tr 4.2.7 nl 4.2.8 od 4.2.9 split 4.2.10 join 4.3 Programmeerbare filters 4.3.1 sed 4.3.2 gawk Samenvatting Opdrachten Oefenopgaven
93 95 96 96 98 98 99 99 99 99 100 100 100 101 105 106 107 107
Het bestandssysteem
109
5.1 5.2
109 110 111 114 116 123 125 125 126 128 130 130 131 132 133 133 134 137 137
5.3
5.4
5.5
Wat is een bestandssysteem? De opbouw van het bestandssysteem 5.2.1 Directory’s en inodes 5.2.2 Links 5.2.3 Mounten 5.2.4 Onderhoud van het bestandssysteem Werken met het bestandssysteem 5.3.1 Bekijken van beschikbare ruimte 5.3.2 Compressie en archivering van bestanden 5.3.3 Bewerken van bestanden: Midnight Commander 5.3.4 Beheer van bestanden met grafische utility’s 5.3.5 Mtools Verschillende bestandssystemen 5.4.1 Werken met ReiserFS 5.4.2 Werken met ext3 Over de indeling van een harddisk en het opstarten van Linux 5.5.1 Indeling in partities 5.5.2 Partities en bestandssystemen 5.5.3 Aanmaken van partities
x
6
7
LEERBOEK LINUX – DEEL 1
5.5.5 Aanmaken van het bestandssysteem: mkfs 5.5.6 Swap-files en -partities Samenvatting Opdrachten Verdiepingsopdrachten Oefenopgaven
143 144 147 147 149 149
Opstarten van Linux
151
6.1 6.2
De opstartprocedure De bootloader 6.2.1 Opbouw van de bootsector 6.2.2 Locatie van de bootloader 6.2.3 Linux opstarten met lilo 6.2.4 Opstarten met Grub 6.2.5 Verschillende soorten opstartdiskettes 6.3 Init en inittab 6.4 De bootscripts van uw distributie 6.4.1 Algemene bootscripts 6.4.2 Geautomatiseerd starten van services Samenvatting Opdrachten Oefenopgaven
151 152 153 154 156 160 164 165 168 168 169 174 175 175
Gebruikers, groepen en permissies
177
7.1
177 178 178 179 180 185 187 189 189 190 190 191 191 192 194 195 196 196 205 207 207 208 209
Gebruikers aanmaken 7.1.1 De bestanden /etc/passwd en /etc/shadow 7.1.2 Gebruikersbeheer in een netwerkomgeving 7.1.3 Systeemaccounts en normale gebruikers 7.1.4 De configuratiebestanden /etc/passwd en /etc/shadow 7.1.5 Verdere restricties van gebruikers instellen 7.1.6 Fijnstellen van gebruikersinstellingen met PAM 7.2 Groepen 7.2.1 Standaardgroepen 7.2.2 Opbouw van /etc/group 7.2.3 Lidmaatschap van meerdere groepen 7.3 Aanmaken van gebruikers en groepen 7.3.1 Algemene opdrachten 7.3.2 Andere opdrachten voor beheer van gebruikers en groepen 7.4 Toegangsbeheer 7.4.1 Ownership 7.4.2 Group-ownership 7.4.3 Permissies 7.5 Werken met Quota Samenvatting Opdrachten Verdiepingsopdrachten Oefenopgaven
Inhoud
8
9
xi
Het X Window System
211
8.1
Inleiding: de onderdelen van X 8.1.1 Verschillende versies 8.1.2 X-server en X-client 8.1.3 Desktop environment en windowmanager 8.1.4 Library-bestanden 8.2 Meer over X-server 8.2.1 Overzicht 8.2.2 Configuratiebestanden 8.2.3 Opstarten van X 8.2.4 Afsluiten van X 8.2.5 Meer configuratieprogramma’s voor X. 8.3 X in een netwerkomgeving 8.3.1 Het systeem toegankelijk maken voor X-clients 8.3.2 De remote client-toepassing opstarten 8.3.3 De variabele DISPLAY 8.4 Algemene X-programma’s 8.4.1 xterm 8.4.2 xconsole 8.4.3 xload 8.4.4 xset 8.4.5 xedit 8.4.6 xman 8.4.7 xboard 8.4.8 xbill 8.5 Windowmanagers en Desktop Environments 8.5.1 Basishandelingen 8.5.2 Opstarten van de windowmanager 8.5.3 Twm 8.5.4 Fvwm2 8.6 Desktop environments 8.6.1 KDE 8.6.2 Gnome Samenvatting Opdrachten Oefenopgaven
211 211 212 213 214 215 215 217 225 229 229 229 230 230 231 233 234 234 234 234 234 235 236 236 237 237 238 239 241 242 244 246 248 249 249
Installeren van toepassingen
251
9.1
251 252 252 253 253 262 263 265 266
Bronbestanden of programmabestanden 9.1.1 Werken met bronbestanden 9.1.2 Verschillende soorten archieven 9.2 Installatie van software 9.2.1 Werken met RPM 9.2.2 Werken met Debian-packages 9.2.3 Werken met .tar.gz-archieven 9.3 Installatie van bronbestanden Samenvatting
xii
10
11
LEERBOEK LINUX – DEEL 1
Opdrachten Oefenopgaven
267 267
Beheer van processen
269
10.1 10.2
Soorten processen Beheer van processen 10.2.1 Bekijken van activiteit van processen 10.2.2 Processen op de achtergrond 10.2.3 Deactiveren van processen 10.3 Schedulen van processen 10.3.1 De daemon cron 10.3.2 De opdracht at 10.4 Prioriteit 10.5 Logging van procesactiviteit 10.5.1 Werking en configuratie van syslogd. 10.5.2 Interpretatie van /var/log/messages 10.5.3 Roteren van logbestanden 10.6 Processen en het pseudo-bestandssysteem /proc Samenvatting Opdrachten
269 272 273 273 275 277 277 279 280 281 281 285 286 288 291 291
De kernel en beheer van hardware
293
11.1
293 296 296 300 302 303 304 305 306 307 308 309 310 310 311 311 314 315 316 316 316 317 317
11.2
11.3
De functie van de kernel 11.1.1 Geheugenbeheer 11.1.2 Procesbeheer 11.1.3 Device-drivers 11.1.4 Het bestandssysteem De opbouw van de kernel: uit één stuk of modulair 11.2.1 Het laden van modules 11.2.2 Handmatig modules laden 11.2.3 Depmod en modprobe 11.2.4 Zelf modules toevoegen 11.2.5 Configuratiebestanden voor gebruik van modules De onderdelen van de kernel 11.3.1 Code maturity level options 11.3.2 Processor type and features 11.3.3 Loadable module support 11.3.4 General setup 11.3.5 Plug-and-Play-support 11.3.6 Block-devices 11.3.7 Networking options 11.3.8 Telephony Support 11.3.9 SCSI-support 11.3.10 Network device support 11.3.11 Amateur Radio support
Inhoud
12
xiii
11.3.12 IrDA subsystem support 11.3.13 ISDN subsystem 11.3.14 Old CD-ROM drivers 11.3.15 Character-devices 11.3.16 Filesystems 11.3.17 Console drivers 11.3.18 Sound card support 11.3.19 USB-support 11.3.20 Kernel hacking 11.4 De kernel opnieuw compileren 11.4.1 Bronbestanden en opbouw van de kernel 11.4.2 Automatiseren van de compilatie: make 11.4.3 De locatie van de bronbestanden 11.4.4 Een kernel op maat maken 11.4.5 De wijzigingen wegschrijven 11.5 Vernieuwen van de kernel 11.5.1 Updates 11.5.2 Patches 11.6 Mogelijke problemen met de kernel 11.6.1 Library’s 11.6.2 Modules 11.6.3 Verkeerde versie van modules 11.6.4 Probleem met patches 11.6.5 Modules worden niet geladen 11.6.6 Kernel Panic en oops 11.7 Beheer van hardware 11.7.1 SCSI 11.7.2 Informatie opvragen over PCI-apparaten. 11.7.3 Tunen van uw vaste schijf 11.7.4 Werken met plug en play 11.7.5 Werken met seriële interfaces en USB 11.7.6 Instellen van de tijd Samenvatting Opdrachten Oefenopgaven
317 317 317 318 319 320 320 320 321 322 322 323 325 326 329 332 333 334 334 334 335 335 336 336 336 337 337 338 338 340 340 340 341 342 342
Configuratie van de netwerkkaart
343
12.1
343 344 344 346 346 347 347 354 354
Basiskennis TCP/IP 12.1.1 Werken met IP-adressen 12.1.2 Opbouw van een IP-adres 12.1.3 De noodzaak te registreren 12.1.4 Speciale adressen 12.1.5 Genoeg adressen 12.1.6 Subnetten in detail 12.1.7 CIDR-notatie Oefenvragen
xiv
13
14
LEERBOEK LINUX – DEEL 1
12.2
Configuratie van een netwerkkaart 12.2.1 De netwerkkaart configureren met ifconfig 12.2.2 Geavanceerde opties van ifconfig 12.2.3 Linux als DHCP-client 12.2.4 Andere opdrachten om een IP-configuratie te beheren 12.2.5 Configureren van een draadloze netwerkkaart 12.2.6 Instellen van de standaardroute en DNS-server 12.3 Configuratie van een PPP-interface 12.4 Testen of het werkt 12.4.1 Een netwerkverbinding testen met ping 12.4.2 Functionaliteit van routers testen met traceroute 12.4.3 De status van netwerkverbindingen controleren met netstat Samenvatting Opdrachten Oefenopgaven
354 355 356 357 358 361 363 365 377 377 380 381 382 383 383
Printen met Linux
385
13.1
385
LPD-printing: de weg van gebruiker tot printer 13.1.1 De queue: centraal punt in de afhandeling van een printopdracht 13.1.2 Beheer van de lpd printomgeving: lpq, lprm en lpc 13.1.3 De printopdracht 13.1.4 Interpretatie van een printopdracht 13.1.5 De printer 13.2 Common UNIX Printing System 13.2.1 CUPS-drivers 13.2.2 Beheer van CUPS 13.3 printerconfiguratie met CUPS 13.3.1 Installatie van een CUPS-printer 13.3.2 CUPS over het netwerk Samenvatting Opdrachten Oefenopgaven
386 388 390 391 394 395 396 397 398 398 403 405 406 406
Shell-scripts
407
14.1 14.2
407 408 408 408 409 410 411 411 416 418 418
14.3
Inleiding De basis 14.2.1 Structuur van de inhoud 14.2.2 Activeren van een script 14.2.3 Functies 14.2.4 Richtlijnen Werken met variabelen en parameters 14.3.1 Positionele parameters 14.3.2 Variabelen 14.3.3 Werken met invoer 14.3.4 String-operatoren
Inhoud
15
xv
14.4
Flow-control in shell-scripts 14.4.1 Hulpmiddelen bij flow-control 14.4.2 if then else 14.4.3 For 14.4.4 case 14.4.5 while en until Samenvatting Opdrachten Oefenopgaven
423 423 427 429 431 432 433 433 434
Linux Server basis
435
15.1
435 436 437 437 439 439 440 442 443 443 444 444 446 448 448 449 452 455 458 459 461 463 464 465 466 466 467 468 469 469 470
Inetd en Xinetd 15.1.1 Configuratie van inetd. 15.1.2 xinetd 15.1.3 Xinetd configureren 15.2 Linux als DHCP-server 15.2.1 Werking van DHCP 15.2.2 Configuratie van de server: dhcpd.conf 15.2.3 De DHCP-server 15.2.4 De DHCP relay-agent 15.3 Samba 15.3.1 Samba-processen 15.3.2 Het Samba-configuratiebestand smb.conf 15.3.3 Samba en gebruikers 15.3.4 Permissies 15.4 Linux als DNS server 15.4.1 Inleiding in DNS 15.4.2 Configuratie van DNS 15.4.3 Configuratie van uw eigen DNS-domein 15.5 De Apache-webserver 15.5.1 Installatie en setup van de Apache-webserver 15.5.2 Structuur en configuratiebestanden van de Apache-webserver 15.5.3 Inrichting van httpd.conf 15.5.4 Beperken van toegang tot de webserver 15.6 NFS-shares 15.7 Remote-services 15.7.1 Secure shell 15.7.2 Secure copy 15.8 Webmin Samenvatting Opdrachten Oefenopgaven
Appendix A SUSE Linux installeren
471
Appendix B Examenvragen
483
xvi
LEERBOEK LINUX – DEEL 1
Appendix C Overzicht opdrachten
495
Appendix D Additionele informatie voor LPI
633
D.1
Sendmail-configuratie D.1.1 Introductie in het werken met mailservers D.1.2 Sendmail D.1.3 Componenten van mailoplossing D.1.4 Aanpassen van sendmail.cf D.1.5 Client en server configuraties D.1.6 Aliassen en doorsturen van mail D.1.7 Starten en stoppen van sendmail D.1.8 Voorbeeld gebruik Sendmail Configuratie van een Netfilter-firewall D.2.1 Tables en Chains D.2.2 Werken met tables en chains D.2.3 Iptables in de praktijk
633 633 634 635 636 640 642 643 644 647 647 649 659
Appendix E Antwoorden bij de examenvragen van Appendix B
663
Appendix F De dvd
664
Index
665
D.2