Arnold Willemer
Linux-Server einrichten und administrierenmit Debian 6 GNU/Linux
Auf einen Blick
TEIL I Installationsanleitung
1 Installation eines Debian-Servers ............................... 27
TEIL II Das Handbuch
2 Debian GNU/Linux .................................................... 67
3 Grundkenntnisse Debian GNU/Linux ......................... 79
4 Die Shell ................................................................... 103
5 Konsolenprogramme ................................................. 151
6 Architektonische Betrachtungen ................................ 229
7 Netzwerk .................................................................. 243
8 Netzinformationen sammeln ..................................... 289
9 Grundlegende TCP/IP-Dienste ................................... 303
10 Sicherheit im Netzwerk ............................................. 327
11 Die Zeit .................................................................... 363
12 Festplatten ............................................................... 369
13 Benutzerverwaltung .................................................. 415
14 Drucker .................................................................... 447
15 Datensicherung ......................................................... 455
16 Diagnose .................................................................. 471
17 Das X Window System .............................................. 501
18 Dateiserver ............................................................... 521
19 Datenbanken ............................................................ 591
20 Webserver ................................................................ 617
21 Domain Name System ............................................... 651
22 Der Mailserver .......................................................... 675
23 Virtuelle Domänen und Maschinen ........................... 715
TEIL III Workshops
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 5 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
Vorwort ........................................................................................................ 21
TEIL I: Installationsanleitung
1 Installation eines Debian-Servers ................................... 27
1.1 Von 0 auf 100 zum Server ..................................................... 271.1.1 Installationsmedium .............................................. 281.1.2 Booten der Installations-CD ................................ 321.1.3 Die Installation beginnt ........................................ 331.1.4 Die Festplatte partitionieren ............................... 361.1.5 Benutzer einrichten ............................................... 381.1.6 Pakete installieren ................................................. 39
1.2 Softwarepakete nachinstallieren .......................................... 411.2.1 Grafisch installieren ............................................... 421.2.2 Grafisch aktualisieren ............................................ 461.2.3 Aufgabe per Tasksel wählen ................................. 471.2.4 Aptitude installiert ................................................ 481.2.5 Auf apt-get getippt ................................................ 501.2.6 Software aktualisieren ........................................... 521.2.7 Paketquellen anpassen ......................................... 541.2.8 Debian-Paket-Manager ......................................... 55
1.3 Source-Pakete manuell installieren ...................................... 571.3.1 Vorarbeiten ............................................................. 571.3.2 make macht das schon ......................................... 59
TEIL II: Das Handbuch
2 Debian GNU/Linux .............................................................. 67
2.1 Software soll frei sein ............................................................. 672.1.1 Wie UNIX unfrei wurde ........................................ 682.1.2 GPL: Lizenz für die Freiheit .................................. 692.1.3 Die Anwender profitieren .................................... 70
2.2 Inhaltsstoffe ohne Nebenwirkungen ................................... 722.2.1 Was wirklich drin ist .............................................. 722.2.2 Pakete verwalten ................................................... 742.2.3 Debian-Release ...................................................... 75
2.3 Wer hinter Debian steht ........................................................ 76
5
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 6 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
3 Grundkenntnisse Debian GNU/Linux ............................ 79
3.1 Alles ist Datei ........................................................................... 803.1.1 Ich will so heißen, wie ich will ............................ 803.1.2 Dateieigentum und Rechte .................................. 813.1.3 Dateien ausführen ................................................. 833.1.4 Links: Zwei Namen, eine Datei ........................... 833.1.5 Sockets und Pipes kommunizieren ..................... 863.1.6 Mit Geräten verbunden ........................................ 87
3.2 In Verzeichnisse sortiert ......................................................... 883.2.1 Der UNIX-Verzeichnisbaum ................................. 883.2.2 Standardverzeichnisse ........................................... 89
3.3 Dateisysteme ........................................................................... 913.4 Auf Speichermedien zugreifen .............................................. 933.5 Prozesse .................................................................................... 95
3.5.1 Mit dem Scheduler Prozesse wechseln .............. 973.5.2 Prozesse, hört die Signale! ................................... 973.5.3 Parallele Prozesse und Threads ........................... 99
4 Die Shell ................................................................................ 103
4.1 Shell-Start ................................................................................. 1044.2 Befehlsempfänger ................................................................... 105
4.2.1 Befehl, Optionen, Argumente ............................. 1054.2.2 Befehlspfade ........................................................... 1064.2.3 Zugriff auf mehrere Objekte ................................ 1084.2.4 Fehler ....................................................................... 109
4.3 Kommandos verknüpfen ....................................................... 1104.3.1 Ein- und Ausgabe als Datenstrom ...................... 1104.3.2 Datenströme umleiten .......................................... 1114.3.3 Durch die Röhre schicken .................................... 1134.3.4 Quoting: Befehle verschachteln .......................... 1144.3.5 Von der Shell Prozesse steuern ........................... 1154.3.6 Anweisungen gruppieren ..................................... 118
4.4 History ....................................................................................... 1204.4.1 Funktionstasten ...................................................... 1204.4.2 vi-Kommandos ....................................................... 1224.4.3 C-Shell-History ....................................................... 123
4.5 Shell-Startdateien ................................................................... 1244.5.1 alias .......................................................................... 1254.5.2 ulimit ........................................................................ 126
6
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 7 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
4.6 Shell-Skripte ............................................................................. 1264.7 Variablen .................................................................................. 129
4.7.1 Shell- und Umgebungsvariablen ......................... 1304.7.2 Vordefinierte Umgebungsvariablen .................... 1314.7.3 Mit Variablen rechnen .......................................... 1344.7.4 Auf die Parameter zugreifen ................................ 1364.7.5 Prozessnummern .................................................... 137
4.8 Ablaufsteuerung ...................................................................... 1384.8.1 Die Unterscheidung: if .......................................... 1384.8.2 Bedingungen ........................................................... 1394.8.3 Rückgabewert von Programmen ......................... 1424.8.4 Die Fallunterscheidung: case ............................... 1424.8.5 Die while-Schleife .................................................. 1444.8.6 Die for-Schleife ....................................................... 1464.8.7 Funktionen .............................................................. 147
4.9 Ein- und Ausgaben aus dem Skript ...................................... 149
5 Konsolenprogramme .......................................................... 151
5.1 Operationen mit Dateien ...................................................... 1515.1.1 Dateien auflisten: ls ............................................... 1515.1.2 Dateien kopieren: cp ............................................. 1575.1.3 Dateien verschieben oder umbenennen: mv .... 1595.1.4 Dateien löschen: rm .............................................. 159
5.2 Verzeichnisbefehle .................................................................. 1605.2.1 Navigation ............................................................... 1615.2.2 Verzeichnis anlegen: mkdir .................................. 1625.2.3 Verzeichnis löschen: rmdir ................................... 163
5.3 Dateieigenschaften ................................................................. 1645.3.1 Eigentümer wechseln: chown ............................. 1645.3.2 Gruppenwechsel: chgrp ........................................ 1655.3.3 Berechtigungen: chmod ....................................... 1655.3.4 Neuer Zeitstempel: touch .................................... 1715.3.5 Links: ln ................................................................... 1715.3.6 Der Dateityp: file ................................................... 174
5.4 Editoren .................................................................................... 1755.4.1 vi ............................................................................... 1765.4.2 emacs ....................................................................... 1875.4.3 nano ......................................................................... 192
5.5 Nach Dateien suchen ............................................................. 1935.5.1 Suchen und Agieren: find ..................................... 193
7
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 8 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
5.5.2 Mit Datenbankunterstützung suchen: locate ... 2005.6 Die Werkzeugkiste .................................................................. 201
5.6.1 Datei ausgeben: cat ............................................... 2015.6.2 Seitenweise: more ................................................. 2025.6.3 Durchsuchungsbefehl: grep ................................. 2025.6.4 Wenn ich auf das Ende sehe: tail ........................ 2045.6.5 Anfangsbetrachtungen: head ............................... 2055.6.6 Ausschneiden: cut ................................................. 2055.6.7 Teilen: split .............................................................. 2065.6.8 Zeilen umbrechen: fold ......................................... 2075.6.9 Zeichen umcodieren: tr ........................................ 2075.6.10 Textdateien unterscheiden: diff ........................... 2095.6.11 Dateien aufs Byte geschaut .................................. 2105.6.12 Worte zählen: wc ................................................... 2115.6.13 In Reihenfolge bringen: sort ................................ 2115.6.14 Datenströme editieren: sed ................................. 2125.6.15 Zerlegen, filtern und rechnen mit awk .............. 216
5.7 Reguläre Ausdrücke ................................................................ 2205.8 Pack deine Sachen und geh ... .............................................. 223
5.8.1 Verschnüren: tar ..................................................... 2245.8.2 Zusammenpressen: compress und gzip ............. 2265.8.3 Kombination aus Packen und Pressen ............... 228
6 Architektonische Betrachtungen .................................... 229
6.1 Hardwarezugriff per Gerätedatei: /dev ............................... 2296.2 Dynamische Zuordnung: udev .............................................. 231
6.2.1 Regeln ...................................................................... 2326.3 Das System startet .................................................................. 235
6.3.1 Vom BIOS zum Kernel .......................................... 2356.3.2 Durchlaufen der Runlevel .................................... 2376.3.3 Startskripte der Dienstleister ............................... 238
7 Netzwerk ............................................................................... 243
7.1 Anschluss und Medium ......................................................... 2437.2 TCP/IP ....................................................................................... 2447.3 Die IP-Adresse ......................................................................... 245
7.3.1 Netzwerkklasse und Netzwerkmaske ................. 2467.3.2 Private IP-Adressen ............................................... 2497.3.3 CIDR – Classless Inter-Domain Routing ............. 250
8
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 9 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
7.3.4 Den Netzadapter einstellen: ifconfig ................. 2517.3.5 Die IP-Adresse festlegen ...................................... 2537.3.6 Der GNOME Network Manager ......................... 254
7.4 Mit ping prüfen ....................................................................... 2567.5 Routing: Netzwerke verbinden ............................................ 259
7.5.1 Gateway und Router ............................................. 2597.5.2 Eine Route statisch festlegen ............................... 2617.5.3 Subnetze .................................................................. 2637.5.4 Dynamisch routen ................................................. 266
7.6 Namen auflösen ...................................................................... 2667.6.1 Der Host- und Domainname ............................... 2677.6.2 Die Datei /etc/hosts .............................................. 2687.6.3 Die Datei /etc/services .......................................... 2697.6.4 Auf den DNS-Server zugreifen ............................ 271
7.7 Dynamische IP-Adressen (DHCP) ........................................ 2737.7.1 Protokollfragen ....................................................... 2747.7.2 DHCP-Clients .......................................................... 2757.7.3 DHCP-Server ........................................................... 278
7.8 Mehr IP-Adressen für die Zukunft: IPv6 ............................. 2837.8.1 Die IPv6-Adresse ................................................... 2847.8.2 Debian und IPv6 .................................................... 2857.8.3 Probleme durch den Umstieg .............................. 2867.8.4 IPv6-Probleme abschalten ................................... 287
8 Netzinformationen sammeln ........................................... 289
8.1 Status des Netzwerks: netstat .............................................. 2898.1.1 Prozessverbindungen beobachten ...................... 2898.1.2 Netzwerkadapter anzeigen .................................. 2918.1.3 Routingtabellen analysieren ................................ 292
8.2 Routen verfolgen: traceroute ................................................ 2938.3 Der kleine Netzwerkschnüffler tcpdump ............................ 2938.4 Der große Netzwerkschnüffler Wireshark .......................... 2958.5 Netzlasthitparade mit iftop ................................................... 2978.6 Netzwerkecho netcat ............................................................. 2998.7 Netzwerk abklappern: nmap ................................................ 300
9 Grundlegende TCP/IP-Dienste ......................................... 303
9.1 Abschied vom Super-Server inetd und xinetd ................... 3039.1.1 Der Inet-Dämon ..................................................... 304
9
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 10 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
9.1.2 xinetd ....................................................................... 3059.2 Der Terminaldienst Telnet ..................................................... 3069.3 Sitzung verschlüsseln: SSH .................................................... 310
9.3.1 Terminalsitzung mit dem ssh-Client ................... 3109.3.2 Dateien sicher übertragen mit scp ...................... 3129.3.3 SSH-Server .............................................................. 3149.3.4 SSH und Windows ................................................. 3149.3.5 Schlüsselgewalt ...................................................... 3149.3.6 Kopieren und Einloggen ohne Passwort ............ 3169.3.7 Konfigurationsdateien ........................................... 3189.3.8 Verzögerung beim Einloggen ............................... 3199.3.9 Tunnelbau: Andere Protokolle sichern ............... 320
9.4 Vertrauensvoll: Remote Shell ................................................ 3219.4.1 Remote Copy (rcp) ................................................ 3229.4.2 Remote Login rlogin .............................................. 3239.4.3 Befehle ausführen mit rsh .................................... 3239.4.4 Passwortfrei arbeiten ............................................ 323
9.5 Aspekte bei Terminalfernwartung ........................................ 3259.5.1 Tod beim Ausloggen: nohup ................................ 3259.5.2 Parallele Schirme: screen ...................................... 326
10 Sicherheit im Netzwerk ..................................................... 327
10.1 Firewall ..................................................................................... 32710.1.1 Wie funktioniert eine Firewall? ........................... 32810.1.2 Beispielhafter Regelaufbau mit iptables ............ 32910.1.3 Regeln verwalten ................................................... 33110.1.4 Ziele bestimmen .................................................... 33310.1.5 Pakete spezifizieren ............................................... 33410.1.6 Spezialfälle .............................................................. 33510.1.7 Eigene Ketten bilden ............................................. 33510.1.8 Die Firewall automatisch starten ........................ 336
10.2 Masquerading mit NAT .......................................................... 33710.3 Proxy ......................................................................................... 339
10.3.1 Den Browser anpassen ......................................... 34110.3.2 Der Proxy squid ...................................................... 34110.3.3 Transparenter Proxy ............................................... 343
10.4 Einbrüche erkennen ............................................................... 34410.4.1 Schnüffeln am Netzwerk: Snort .......................... 34410.4.2 Konfigurationen vergleichen mit AIDE .............. 34610.4.3 Nach Rootkits suchen ........................................... 346
10
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 11 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
10.4.4 Honeypot ................................................................ 34710.5 SELinux ..................................................................................... 34810.6 Verschlüsseln und Signieren .................................................. 351
10.6.1 Verschlüsselungsbeispiel für Romantiker .......... 35210.6.2 GnuPG ..................................................................... 35310.6.3 Schlüssel erzeugen ................................................. 35310.6.4 Verschlüsseln und Entschlüsseln ......................... 355
10.7 VPN: Auf unsicheren Pfaden tunneln ................................. 35610.7.1 Konfigurationsoptionen ........................................ 35710.7.2 Eine einfache Verbindung .................................... 35810.7.3 Tunnelung durch HTTPS ....................................... 35910.7.4 Zertifikate für VPN ................................................ 35910.7.5 Zertifizierte Verbindung ........................................ 361
11 Die Zeit .................................................................................. 363
11.1 Die aktuelle Zeit ...................................................................... 36311.2 Zeitabgleich per NTP .............................................................. 36511.3 Wiederkehrende Jobs mit der crontab ............................... 36611.4 Zeitversetzter Job mit at ........................................................ 367
12 Festplatten ........................................................................... 369
12.1 S-ATA, IDE und andere Festplatten .................................... 36912.2 Gerätenamen und UUID ........................................................ 37012.3 Partitionieren ........................................................................... 372
12.3.1 Die Festplatte verteilen ........................................ 37212.3.2 PC-Erblasten ........................................................... 37312.3.3 Mit fdisk partitionieren ......................................... 37312.3.4 Logical Volume Manager ...................................... 378
12.4 Swap-Partition ......................................................................... 38212.5 Dateisysteme ........................................................................... 384
12.5.1 Dateisystem erstellen: mkfs ................................. 38512.5.2 Konsistenz der Dateisysteme: fsck ...................... 38512.5.3 Dateisystem einbinden: mount ........................... 38612.5.4 mount und /etc/fstab ............................................ 38712.5.5 Dateisystem aushängen: umount ....................... 38812.5.6 Belegung ermitteln: df und du ............................ 38912.5.7 Festplattenplatz zuteilen: Quota ........................ 39012.5.8 Journal-Dateisysteme ............................................ 392
12.6 RAID-Systeme .......................................................................... 393
11
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 12 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
12.6.1 Hardware-RAID ...................................................... 39512.6.2 Software-RAID ....................................................... 396
12.7 Windows-Dateisysteme ......................................................... 40012.8 Access Control Lists (ACL) ..................................................... 40512.9 Der Bootmanager GRUB ........................................................ 408
12.9.1 Die aktuelle Version: GRUB2 ............................... 40912.9.2 Der Vorgänger: GRUB1 ......................................... 41012.9.3 Bootprobleme ........................................................ 412
13 Benutzerverwaltung ........................................................... 415
13.1 Der Administrator root .......................................................... 41513.2 Benutzerkonten ....................................................................... 417
13.2.1 Aufbau der Datei /etc/passwd ............................ 41813.2.2 Verborgene Passwörter: shadow ......................... 42013.2.3 Vorlage für das Benutzerverzeichnis: /etc/skel . 42113.2.4 Benutzerpflege automatisieren ........................... 42113.2.5 Gruppen verwalten ................................................ 42513.2.6 Netzgruppen: /etc/netgroup ................................ 42613.2.7 who und finger ....................................................... 427
13.3 Kurzfristig den Benutzer wechseln: su ................................ 42813.4 Administrationsaufgaben starten: sudo .............................. 42913.5 Benutzer netzwerkweit verwalten ....................................... 431
13.5.1 Network Information Service: NIS ...................... 43113.5.2 Netzwerkweite Benutzer per LDAP .................... 437
14 Drucker .................................................................................. 447
14.1 Protokolle im Netzwerkdruck ............................................... 44714.2 CUPS – Common UNIX Printing System ............................. 449
14.2.1 Die Konfigurationsdateien ................................... 44914.2.2 CUPS vom Terminal verwalten ............................ 451
15 Datensicherung ................................................................... 455
15.1 Vorüberlegungen .................................................................... 45515.2 Systemsicherung ...................................................................... 45815.3 Wohin mit der Datenflut? ..................................................... 459
15.3.1 Das Bandlaufwerk .................................................. 45915.3.2 Externe Festplatten ............................................... 460
12
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 13 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
15.3.3 Selbstgebranntes .................................................... 46015.4 Dateisystem sichern: dump ................................................... 46115.5 Verpackungskünstler tar ........................................................ 46415.6 cpio ............................................................................................ 46615.7 Medien kopieren: dd ............................................................. 468
16 Diagnose ............................................................................... 471
16.1 Kennenlernphase .................................................................... 47116.1.1 Versionsinformationen: uname ........................... 47116.1.2 Arbeitsspeicher und Festplattenreserven .......... 47216.1.3 Wie war der Start? dmesg .................................... 47316.1.4 Hardwaredetails: lspci und lsusb ........................ 474
16.2 Der Syslog-Dämon und die Protokolldatei ........................ 47616.3 Umgang mit großen Protokolldateien ................................. 47916.4 Prozessverwaltung .................................................................. 483
16.4.1 Prozesstabelle anzeigen: ps ................................. 48316.4.2 Prozesshitparade: top ........................................... 48616.4.3 Prozesskontrolle per Signal .................................. 487
16.5 Auslastung ................................................................................ 49016.5.1 Bootzeitpunkt und Systemlast: uptime ............. 49016.5.2 Belastungs-EKG mit vmstat ................................. 49016.5.3 Prioritäten ändern: Nice ....................................... 49216.5.4 Aktion »Freundliche Festplatte«: ionice ............ 494
16.6 Offene Dateien ........................................................................ 49516.7 Nagios: Monitoring per Intranet .......................................... 49616.8 Das Verzeichnis /proc ............................................................. 49716.9 Programmzusammenbrüche (Core-Dump) ......................... 49916.10 Systemabsturz (Kernel-Panic) ............................................... 500
17 Das X Window System ...................................................... 501
17.1 Installation und Start .............................................................. 50217.1.1 Desktop beim Booten starten ............................. 50317.1.2 Sitzung von Hand starten ..................................... 50417.1.3 Grafisches Einloggen: Der Display Manager ..... 504
17.2 Grafisches Einloggen über das Netz .................................... 50717.2.1 Protokoll XDMCP .................................................. 50817.2.2 XDMCP-Strategien ................................................ 51017.2.3 Nacktes X-Terminal ............................................... 51017.2.4 X-Terminal im Fenster ........................................... 512
13
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 14 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
17.3 Grafische Anwendungen über das Netzwerk steuern ...... 51317.3.1 X-Anwendung per SSH starten ............................ 51317.3.2 Die Umgebungsvariable DISPLAY ...................... 514
17.4 Konfiguration ........................................................................... 51517.4.1 xorg.conf ................................................................. 51617.4.2 Problemfälle ............................................................ 518
18 Dateiserver ........................................................................... 521
18.1 SAMBA – die Windows-Connection ................................... 52118.1.1 Installation .............................................................. 52318.1.2 Verzeichnisse für alle ............................................. 52418.1.3 Testwerkzeuge ........................................................ 52718.1.4 Protokolldaten ....................................................... 52918.1.5 Benutzer für SAMBA einrichten .......................... 53018.1.6 Benutzerbasierte Zugriffsrechte .......................... 53118.1.7 Benutzerverzeichnisse ........................................... 53318.1.8 Drucken mit SAMBA ............................................. 53418.1.9 SAMBA als Primary Domain Controller ............. 53818.1.10 SAMBA als Mitglied in einer Domäne ............... 54418.1.11 SAMBA-Konfiguration mit SWAT ....................... 546
18.2 Clientzugriff auf SMB-Server ................................................. 55118.2.1 Zugriff per Konsole ................................................ 55118.2.2 GNOME als SAMBA-Client .................................. 55418.2.3 MacOS X als SAMBA-Client ................................ 55518.2.4 Windows als SAMBA-Client ................................ 555
18.3 NFS – Network File System ................................................... 55918.3.1 NFS-Server .............................................................. 56018.3.2 NFS-Client ............................................................... 56318.3.3 Sicherheitsprobleme mit NFSv3 .......................... 56518.3.4 Änderungen bei NFSv4 ......................................... 56618.3.5 Automatisches Mounten ...................................... 567
18.4 File Transfer Protocol (FTP) ................................................... 57118.4.1 FTP-Clients und die FTP-Kommandos ............... 57118.4.2 Der FTP-Server ....................................................... 57818.4.3 Anonymer FTP-Server ........................................... 579
18.5 Zentraler Datenabgleich ........................................................ 58118.5.1 Versionsverwaltung mit Subversion ................... 58118.5.2 Binärdatenabgleich mit rsync .............................. 587
14
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 15 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
19 Datenbanken ........................................................................ 591
19.1 Tabellen, Daten und Beziehungen ....................................... 59219.2 Eine kleine Einführung in SQL .............................................. 593
19.2.1 Data Definition Language (DDL) ........................ 59319.2.2 Data Manipulation Language (DML) ................. 599
19.3 MySQL ...................................................................................... 60219.3.1 Installation und erste Schritte ............................. 60219.3.2 Benutzerverwaltung .............................................. 60419.3.3 Administrationstools ............................................. 60519.3.4 Datensicherung ...................................................... 60919.3.5 Konfigurationsdateien ........................................... 609
19.4 PostgreSQL ............................................................................... 61019.4.1 Installation und erste Schritte ............................. 61019.4.2 Benutzer anlegen ................................................... 61219.4.3 Datensicherung ...................................................... 61319.4.4 Zugriffskonfiguration ............................................. 614
20 Webserver ............................................................................. 617
20.1 Der Apache-Server .................................................................. 61720.2 Konfiguration ........................................................................... 618
20.2.1 Zergliederte Dateien ............................................. 61820.2.2 Websitekonfiguration ........................................... 62020.2.3 Laufzeitverhalten konfigurieren .......................... 62420.2.4 Protokollarisches .................................................... 62620.2.5 Private Verzeichnisadministration: .htaccess .... 627
20.3 Virtuelles Hosting ................................................................... 63020.4 Ein Blick auf das Protokoll HTTP .......................................... 63220.5 Gesicherte Übertragung ......................................................... 63420.6 CGI: Der Server schlägt zurück ............................................. 63620.7 Dynamische Websites mit PHP ............................................ 638
20.7.1 Installation des PHP-Moduls ............................... 63820.7.2 Die grundlegenden Sprachelemente .................. 63820.7.3 Auswertung von Formularen ............................... 64120.7.4 Dateizugriffe mit PHP ........................................... 64320.7.5 Kommunikation mit Datenbanken ..................... 644
20.8 Alternativen für dynamische Websites ............................... 64720.8.1 Servlets und Java Server Pages: Tomcat ............. 64720.8.2 Ruby on Rails .......................................................... 64820.8.3 Der Client hilft mit: JavaScript ............................ 649
15
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 16 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
21 Domain Name System ....................................................... 651
21.1 DNS-Server einrichten ........................................................... 65221.1.1 Überblick über die Konfigurationsdateien ........ 65221.1.2 Konfiguration testen ............................................. 657
21.2 Mailserver der Domäne definieren ...................................... 65921.3 Master und Slave .................................................................... 65921.4 Balance und Lastverteilung ................................................... 66121.5 Syntax in den Konfigurationsdateien .................................. 662
21.5.1 Die Datei named.conf ........................................... 66221.5.2 Die Zonendatei ...................................................... 667
21.6 Einrichten von DNS-Clients .................................................. 67121.6.1 GNOME als DNS-Client ....................................... 67121.6.2 MacOS X als DNS-Client ..................................... 67221.6.3 Windows als DNS-Client ...................................... 673
22 Der Mailserver ..................................................................... 675
22.1 Übersicht und Rückblick ........................................................ 67522.1.1 Von der lokalen Nachricht zur Internetmail ..... 67522.1.2 Vertraulichkeiten ................................................... 67622.1.3 Massenposthaltung ............................................... 677
22.2 Protokollfragen ........................................................................ 67722.2.1 POP3 ........................................................................ 67822.2.2 IMAP ........................................................................ 68122.2.3 SMTP ........................................................................ 68222.2.4 Mailserver und Domain ........................................ 683
22.3 Die Erbschaft der UNIX-Mail ................................................ 68422.3.1 Uralt-Client mail ..................................................... 68422.3.2 Mailablage Mbox oder Maildir ........................... 68522.3.3 Benutzerzuordnung mit aliases ........................... 686
22.4 Standard MTA Exim ................................................................ 68622.4.1 Mitgelieferte Informationen ................................ 68722.4.2 Grundkonfiguration ............................................... 68822.4.3 Fehlerprotokolle ..................................................... 69222.4.4 Konfigurationsdateien und Makros .................... 69322.4.5 Verschlüsselt zur Post ............................................ 69422.4.6 Wer ist denn da? .................................................... 69522.4.7 Direktaufruf von Exim ........................................... 698
22.5 Der Kampf gegen das Böse ................................................... 69922.5.1 Spamassassin gegen Werbung ............................. 699
16
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 17 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
22.5.2 Virenschutz ............................................................. 70122.6 POP3 und IMAP-Server Courier ........................................... 702
22.6.1 POP3-Server ........................................................... 70222.6.2 IMAP-Server ........................................................... 70322.6.3 Benutzerverwaltung .............................................. 704
22.7 Post sammeln: Fetchmail ....................................................... 70622.8 Postfix, die weitverbreitete Alternative .............................. 707
22.8.1 Installation .............................................................. 70822.8.2 Konfiguration .......................................................... 70822.8.3 Mbox und Maildir ................................................. 71022.8.4 Lookup-Tabellen .................................................... 71122.8.5 Warteschlangen ..................................................... 71222.8.6 Virtuelle Domänen ................................................ 712
23 Virtuelle Domänen und Maschinen ................................ 715
23.1 Virtuelle Domänen für Service Provider ............................. 71523.2 VirtualBox und der PC im Fenster ........................................ 71723.3 OpenVZ und der geteilte Kernel .......................................... 72023.4 KVM und die Prozessoren .................................................... 723
23.4.1 Konfiguration .......................................................... 72623.4.2 Virtuelle Maschine auf Wanderschaft ................ 727
TEIL III: Workshops
24 Benutzer und Passwörter .................................................. 731
24.1 Benutzer manuell anlegen ..................................................... 73124.2 Über die Sicherheit von Passwörtern .................................. 733
25 Festplattenerweiterung ..................................................... 735
25.1 Eine neue Festplatte vorbereiten ......................................... 73525.2 Ein Dateisystem für die Benutzerdaten ............................... 74025.3 Eine neue Festplatte verteilen .............................................. 741
26 Den Zugang wiederherstellen .......................................... 745
26.1 Bootproblem lösen ................................................................. 74526.2 Master Boot Record sichern ................................................. 748
17
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 18 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
26.3 Passwort vergessen ................................................................. 748
27 Verschlüsselte Dateisysteme ........................................... 751
27.1 Bei der Installation einrichten .............................................. 75227.2 Externe Festplatten verschlüsseln ........................................ 754
28 Datensicherungsthemen ................................................... 757
28.1 Inkrementelle Datensicherung mit tar ................................ 75728.2 Gebrannte Sicherung .............................................................. 75928.3 Wiederherstellungsprobleme bei Festplattenwechsel ..... 76428.4 Datensicherung bei USB-Kontakt ........................................ 766
29 Stromausfall verhindern .................................................... 771
29.1 Klein und handlich: apcupsd ................................................ 77129.2 Network UPS Tools ................................................................. 773
30 Netzwerkrouting ................................................................. 777
30.1 Ins Internet per DynDNS ....................................................... 77730.2 Statisches Routing .................................................................. 782
30.2.1 Routerkonfiguration .............................................. 78430.2.2 Paket auf Reisen ..................................................... 785
30.3 Ein Notebook als UMTS-Router ........................................... 78630.3.1 UMTS-Modem in Betrieb nehmen ..................... 78730.3.2 Verbindung zum Internet herstellen .................. 78730.3.3 Die Verbindung veröffentlichen .......................... 78930.3.4 Clients automatisch konfigurieren ...................... 789
31 Netzwerkverwaltung mit DHCP ...................................... 793
31.1 DHCP auf dem Router ........................................................... 79331.2 Der eigene DHCP-Server ....................................................... 796
31.2.1 Internet für alle ...................................................... 79631.2.2 Individualisten ........................................................ 797
18
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 19 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
32 Drucker administrieren ...................................................... 801
32.1 Einkaufen gehen ...................................................................... 80132.2 CUPS-Server konfigurieren .................................................... 803
32.2.1 Drucker per Webbrowser verwalten .................. 80332.2.2 CUPS in GNOME verwalten ................................ 805
32.3 Netzwerkclients einrichten ................................................... 80632.3.1 Linux-GNOME druckt ........................................... 80632.3.2 Macintosh druckt ................................................... 80732.3.3 Windows druckt .................................................... 809
32.4 Fehlerverfolgung ..................................................................... 810
33 SAMBA – Netzwerkplatten für alle ................................ 813
33.1 Ein simpler Server ohne Zugriffskontrolle .......................... 81333.1.1 Konfiguration .......................................................... 81433.1.2 Einrichten der Ressourcen .................................... 81633.1.3 SAMBA starten ....................................................... 817
33.2 Die Angestellten der Firma Klein GmbH ............................ 81733.2.1 Benutzerverwaltung .............................................. 81833.2.2 Benutzerverzeichnisse ........................................... 82233.2.3 Die Post an das Sekretariat .................................. 822
34 Intranet und Webapplikationen ..................................... 825
34.1 Superkurzeinstieg in HTML ................................................... 82534.2 LED-Vorwiderstand mit JavaScript ....................................... 83034.3 Interaktive Website mit CGI ................................................. 83234.4 Ein einfacher Besucherzähler in PHP ................................... 83634.5 Der Kundenstamm per LAMP im Intranet ......................... 838
34.5.1 Datenbank MySQL einsetzen .............................. 83934.5.2 PHP-Programmierung ........................................... 842
35 E-Mail-Varianten ................................................................. 847
35.1 E-Mails lokal verteilen ........................................................... 84735.2 Internetverstrickung ............................................................... 850
35.2.1 Konfiguration von Exim4 ...................................... 85035.2.2 E-Mails in die weite Welt ..................................... 85435.2.3 Smarthost ................................................................ 85535.2.4 Internetmails mit fetchmail abholen .................. 857
19
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 9. Mai 2011, 9:40 Uhr Umlaut-Check: äöüÄÖÜ.
S. 20 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: trennung , Aktueller Job: debian
Inhalt
35.2.5 Dienstleister für das lokale Netzwerk ................ 85835.2.6 Zugriff auf die E-Mails vom Arbeitsplatz aus .... 859
35.3 Mailsystem auf PostgreSQL-Basis ........................................ 86035.3.1 PostgreSQL .............................................................. 86035.3.2 Courier IMAP-Server ............................................. 86335.3.3 Konfiguration von MTA Exim .............................. 864
36 Schulcomputer und Arbeitsplatzrechner ...................... 869
36.1 Der anonyme Arbeitsplatzrechner ....................................... 87036.1.1 /home auf dem USB-Stick .................................... 87036.1.2 Benutzerverzeichnis-Template ............................. 875
36.2 Benutzerverzeichnis im Netzwerk ........................................ 87636.2.1 Benutzerverzeichnisse automatisch einbinden . 87836.2.2 Anpassungen für NFSv4 ....................................... 87836.2.3 Benutzerverwaltung .............................................. 879
36.3 Applikationsserver und Thin Client ..................................... 88136.3.1 Den Zentralrechner einrichten ............................ 88236.3.2 X-Terminal von GDM starten ............................... 88436.3.3 Ein reines X-Terminal ............................................. 884
36.4 Festplatte kopieren: eine für alle ......................................... 88636.4.1 Vorbereitungen und Problemzonen ................... 88736.4.2 Kopierumgebung ................................................... 88836.4.3 Sonderfall Oberflächenkopie mit dd .................. 88836.4.4 Partitionieren und Einhängen .............................. 88936.4.5 Kopieren mit tar ..................................................... 89036.4.6 GRUB installieren ................................................... 891
37 Groupware ............................................................................ 893
37.1 eGroupware ist raus ................................................................ 89337.2 Citadel ....................................................................................... 89437.3 Kolab ......................................................................................... 896
Glossar .......................................................................................................... 901
Index ............................................................................................................. 911
20
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 27 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Bevor Sie sich mit allen möglichen Hintergründen, Befehlen undWorkshops beschäftigen, ist es vielleicht besser, erst einmal Faktenzu schaffen und einen Debian-Server einzurichten.
1 Installation eines Debian-Servers
Falls Sie noch nie ein Debian-System installiert haben, sollten Sie nicht in Der erste Schritt
Panik geraten. Heutzutage ist die Installation eines Debian-Systems keineZauberei. Wenn Sie fertig sind, haben Sie ein System zur Verfügung, mitdem Sie alles das, was im weiteren Buch beschrieben wird, nachvollzie-hen können.
1.1 Von 0 auf 100 zum Server
Beschreiben wir zunächst, was das Ziel dieser Installation ist.
Zielvorstellung
Es soll ein Standard-PC als Debian-Server eingerichtet werden. Verwenden Siedazu ruhig einen älteren PC, in dem sich eine leere Festplatte befindet odereine, auf der alle Daten gelöscht werden können. Da wir eine Installation überdas Internet machen, ist ein Breitbandzugang erforderlich. Neben dem Basissys-tem erhält der Server eine grafische Oberfläche. Datenbanken, Webserver undandere Dienste werden bei Bedarf nachinstalliert und bei der Grundinstallationnicht angewählt.
Sie können neben Debian auch noch andere Betriebssysteme auf einer Reiner Debian-ServerFestplatte installieren, die Sie beim Booten auswählen und dann starten.
Es ist auch möglich, ein bereits installiertes Windows-System zu erhalten,in der Größe zu reduzieren und zusätzlich ein Debian-System zu installie-ren. Dies alles ist allerdings bei einem Server wenig sinnvoll, schließlichläuft ein Server meist durchgängig und wird nicht immer wieder neugestartet.
Für Ihre ersten Experimente sollten Sie einen Standard-PC verwenden, Einfacher PC
gern ein wenig älter, aber bitte nicht so alt, dass Ihre jüngeren Kollegen
27
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 28 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
staunen, was einst einmal als Computer verkauft wurde. Je alltäglicherdie Hardware ist, desto unproblematischer verläuft die Installation.
Sollten Sie keinen PC für Ihre Experimente zur Verfügung haben, könnenVirtueller Server
Sie für Ihre Experimente eine Virtualisierungssoftware wie VirtualBox1
einsetzen.
1.1.1 Installationsmedium
Mit diesem Buch wird eine DVD mitgeliefert, die für die Installation einesBuch-DVD
Debian-Servers geeignet ist. Wenn Sie diese verwenden wollen, könnenSie den Rest des Abschnitts überblättern und gleich in Abschnitt 1.1.2 abSeite 32 weiterlesen. Die beigefügte DVD ist bootfähig und enthält dieaktuelle Version Debian Squeeze. Sollten Sie mehr Pakete benötigen, alsauf der DVD vorhanden sind, werden diese automatisch aus dem Internetnachgeladen.
Sie können einen kompletten Satz Debian-DVDs verwenden, um DebianKomplett-DVDs
zu installieren. Damit sind Sie bei der Installation unabhängig von einerBreitbandanbindung des Zielrechners. Solche DVDs können Sie bei di-versen Händlern kaufen. Eine Übersicht der Anbieter finden Sie auf derWebsite von Debian http://www.debian.de.
Wenn Sie eine schnelle Internetverbindung haben, können Sie diese auchNachladen ausdem Internet herunterladen, wie Sie gleich sehen werden. Da aber nicht jeder die Soft-
ware von acht DVDs auf seinen PC laden will, ist es auch möglich, nurmit einem Teil zu arbeiten. Die DVDs sind so organisiert, dass auf derersten DVD die meistverwendete Software zu finden ist. Seltener be-nötigte Software erscheint auf einer späteren DVD. Bei der Installationerhalten Sie die Gelegenheit, dem System alle Medien bekannt zu ma-chen. Installieren Sie später eine Software nach, erkennt Debian, ob sieauf einer der Medien ist, und fordert sie gegebenenfalls an. Alle anderenSoftwarepakete beschafft das System aus dem Repository im Internet.
Medien aus dem Internet beschaffen
Sie können die Installationsmedien auch direkt aus dem Internet herun-Debian im Internet
terladen. Unter der URL http://www.debian.de können Sie zwischen demkompletten DVD-Satz oder der schlanken Netinstall-CD auswählen. Dieseenthält nur das Nötigste, was zum Start der Installation erforderlich ist.Alle Installationsdaten kommen frisch aus dem Internet. Die Website von
1 VirtualBox siehe in Abschnitt 23.2 ab Seite 717 und http://www.virtualbox.org
28
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 29 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Von 0 auf 100 zum Server 1.1
Debian ist aber auch grundsätzlich ein guter Startpunkt auf der Suchenach Informationen, Dokumentationen und Foren.
Abbildung 1.1 Website von Debian
Über den Punkt Debian besorgen gelangen Sie auf die Website zumDownload der Installationsmedien.
Images
Sofern Sie also keine Installations-DVD besitzen oder verwenden wollen, Netinstall
laden Sie hier eine Netinstall-CD herunter. Diese CD ist recht klein undlängst nicht vollständig gefüllt. Sie dient nur als »Sprungbrett«, um fürden Computer eine Internetverbindung aufzubauen, über die er dannseine eigentlichen Pakete installiert.
Unter den Links der Hauptseite (siehe Abbildung 1.1) finden Sie unter CD-ISO-Images
dem Titel Debian besorgen den Stichpunkt Netzwerk-Installation. Die-sen wählen Sie an. Auf der Folgeseite finden Sie Links mit verschiedenenArchitekturen unter dem Titel Kleine CDs. Sie befinden sich nun auf derWebsite http://www.debian.de/distrib/netinst.
Architektur
Für die »Stable«-Version finden Sie eine Auswahl an unterstützten Com- Architektur
puter-Architekturen. Diese Architekturen werden vor allem durch denProzessor bestimmt, um den herum sie aufgebaut sind. Beispielsweisefinden Sie einen Sparc-Prozessor in den UNIX-Maschinen von Sun undden PowerPC in den AIX-Maschinen von IBM.
29
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 30 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
amd64 armel kfreebsd-i386 kfreebsd-amd64 i386 ia64mips mipsel powerpc sparc
Bei einem PC funktioniert die Architektur »i386« in jedem Fall. Hat Ihr32 oder 64 Bit
PC 64 Bit, können Sie auch »amd64« verwenden. Heutzutage werden nurnoch 64-Bit-Rechner verkauft. Ob Sie einen Intel- oder AMD-Prozessoreingebaut haben, ist bei der Entscheidung unerheblich. Intel hatte dieersten 32-Bit-Prozessoren, und AMD war schneller bei 64 Bit. So ergabensich die Namen. Der Hauptunterschied liegt in der Größe des Haupt-speichers. Ein 32-Bit-Prozessor kann architekturbedingt maximal 4 GBverwalten. Sollten Sie mittelfristig mehr Speicher benötigen, sollten Siedie 64-Bit-Version verwenden. Die Geschwindigkeitsvorteile einer 64-Bit-CPU sind nur bei Programmen spürbar, die im großen Umfang Fließkom-maberechnungen durchführen. Bei manchen Anbietern von Fremdsoft-ware kann es passieren, dass nur eine 32-Bit-Version verfügbar ist.
Klicken Sie die gewünschte Architektur mit der rechten Maustaste an,Image-Datei
und speichern Sie die dahinterliegende Image-Datei auf Ihrem Rechner.Ein Image ist eine Datei, die die Oberfläche eines Datenträgers enthält.Die meisten Brennprogramme sind in der Lage, aus diesen Images eineCD oder DVD zu brennen. Ich werde darauf noch zurückkommen.
Alternative Download-Verfahren
Sie können das Image direkt herunterladen. Dazu werden die ProtokolleFTP2 (File Transfer Protocol) oder HTTP (Hypertext Transfer Protocol) ver-wendet. Allerdings sind vor allem die vollständigen DVD-Images derartgroß, dass diese Techniken nicht besonders ideal sind. Der Browser kannnämlich eine einmal unterbrochene Übertragung nicht an derselben Stel-le wieder aufsetzen. Bei einer Verbindungsstörung müssen Sie die Dateikomplett neu übertragen. Das kostet unnötig Zeit, und der Debian-Serverwird sinnlos zusätzlich belastet.
Jigsaw Download
Statt FTP und HTTP bietet Debian den Download per Jigsaw DownloadNur Neuheitennachladen an, der kürzer als »jigdo« bezeichnet wird. Die Grundidee liegt darin,
dass sich auf den verschiedenen Installationsmedien viele Dateien stän-dig wiederholen. Warum sollte also jede Datei mehrfach auf dem Serverherumliegen? Stattdessen sammelt der jigdo-Manager die benötigten Da-teien des Images vom Server ein, transportiert sie zum Anwender underzeugt dort aus den Dateien ein Image. Besonders interessant wird der
2 FTP siehe Abschnitt 18.4 ab Seite 571
30
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 31 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Von 0 auf 100 zum Server 1.1
Jigsaw Download, wenn Sie bereits ein Image besitzen und es nur aktua-lisieren möchten. In diesem Fall werden nur die Dateien ausgetauscht,die sich verändert haben.
Für die Verwaltung dieser Dateien gibt es das Programm jigdo. Wenn Sie jigdo
bereits ein laufendes Debian- oder Ubuntu-System zur Verfügung haben,können Sie jigdo mit dem folgenden Befehl installieren:
debian # apt-get install jigdo-file
Für alle anderen Systeme finden Sie Unterstützung auf der folgendenWebsite:
http://www.atterer.net/jigdo
Nun wählen Sie auf der Debian-Website die jigdo-Dateien aus, die für jigdo-Datei
Ihre Architektur passen und laden sie herunter. Für jedes Image gibt eszwei Dateien. Eine endet auf jigdo, die andere auf template. Nehmen wiran, Sie wollten die erste DVD der nächsten Testversion von Debian für64-Bit-Systeme herunterladen. Dann enden die passenden Dateien aufamd64-DVD-1.jigdo und amd64-DVD-1.template.
Sie starten nun das Programm mit dem Aufruf:
debian $ jigdo-lite debian-6.x-amd64-DVD-1.jigdo
Bei der Rückfrage Files to scan geben Sie einfach die Return-Taste ein. Serverwahl
Das Programm fragt nun nach dem Mirror-Server. Wenn Sie jigdo aufeinem Ubuntu-Rechner starten, kann es sein, dass das Programm sogareinen Ubuntu-Server vorschlägt. Stattdessen geben Sie allerdings Folgen-des ein:
http://ftp.de.debian.org/debian
Wenn Sie nicht in Deutschland sind, verwenden Sie statt des »de« das Lokale Server
Kürzel Ihres Landes. Das Programm sucht automatisch einen Server inIhrer Nähe. Das Programm lädt nun eigenständig die benötigten Paketeund setzt sie zu einem Image zusammen. Wenn alles heruntergeladen ist,wird das Ergebnis gegen die Prüfsumme getestet, um zu gewährleisten,dass keine Lesefehler aufgetreten sind.
Verteilter Download per Bittorrent
Das Bittorrent-Verfahren ist besonders geeignet, große Dateien zu vertei- Entlastung derServerlen. Das Prinzip beruht darauf, dass jeder Client auch gleichzeitig zum
Server für die bereits heruntergeladenen Teile der Datei wird. Damit dieVerteilung möglichst optimal wird, wird die Datei quasi streifenweise
31
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 32 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
zerteilt, und die Streifen werden in zufälliger Reihenfolge geladen. Esentsteht aus allen Interessierten einer Datei ein Verbund, der sich gegen-seitig Teile der Datei anbietet. Damit wird der Server entlastet, und dieÜbertragungsgeschwindigkeit steigt.
Aber auch für Teilnehmer mit geringer Bandbreite ist das Verfahren vonUnterbrechbar
Vorteil. So kann der Download jederzeit unterbrochen und später wiederaufgenommen werden. Es ist sogar möglich, die Download-Rate währenddes Tages so weit zu drosseln, dass der parallele Download beim Surfennicht stört, und nachts die volle Bandbreite anzufordern.
Statt der ISO-Datei wird eine Torrent-Datei heruntergeladen, die von demSoftware
Bittorrent-Programm verwendet wird. Bei den gängigen Linux-Variantenist ein Bittorrent-Programm standardmäßig an Bord. Sie finden aber einenBittorrent-Client für jede Plattform unter folgender URL:
http://www.bittorrent.com
Image-Datei brennen
Sollten Sie die Installation mit einer VirtualBox3 ausführen wollen, kön-nen Sie die Image-Datei direkt als virtuelles CD-Laufwerk angeben. Siemüssen dann kein Medium brennen.
Der erste Teil wäre nun geschafft. Sie besitzen nun das Image einer CDBrennerei
als Datei. Nun müssen Sie aus der Image-Datei eine CD brennen. Falls Siebereits ein Linux-System verwenden, klicken Sie die Image-Datei mit derrechten Maustaste an. Dort wird zum Brennen das Programm »Brasero«oder »k3b« angeboten, je nachdem, ob Sie GNOME oder KDE als Desktopeinsetzen. Auch unter Windows führt ein Rechtsklick mit der Maus zumZiel. Im Menü erscheint oben Datenträgerabbild brennen, das Sie zueinem Dialog führt, der die Image-Datei auf einen CD-Rohling bannenkann. Auf dem Macintosh klicken Sie die Image-Datei an und wählen imMenü Ablage den Punkt debian...iso auf CD/DVD brennen.
1.1.2 Booten der Installations-CD
Für die Installation müssen Sie von der Installations-CD booten. Bei man-Bootreihenfolge
chen Computern reicht es, die CD beim Start einzulegen. In vielen Fällenwird der Rechner allerdings vorzugsweise von der Festplatte booten. DieSuche nach einer bootfähigen CD verzögert den Rechnerstart, doch siewird ja nur bei der Installation von Systemen, also eher selten, benötigt.
3 VirtualBox siehe Seite 717
32
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 33 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Von 0 auf 100 zum Server 1.1
Bei vielen Rechnern taucht der Hinweis auf, dass Sie ein Bootmedium Bootmenü
auswählen können. Häufig muss dazu direkt nach dem Einschalten dieTaste
��
��F12 oder
��
��F10 verwendet werden.
Sollten Sie damit keinen Erfolg haben, können Sie im BIOS die Rei- BIOS-Einstellung
henfolge der Bootmedien so ändern, dass die CD bevorzugt wird. Aufden meisten Rechnern gelangen Sie über die Tasten
��
��F2 oder
��
��Entf ins
BIOS. Da es verschiedene BIOS-Hersteller gibt, müssen Sie selbst nachdem Stichwort »Bootreihenfolge« suchen. Die Tasten zur Bedienung so-wie kurze Hilfstexte finden Sie entweder unten oder am rechten Randdes Bildschirms.
Berücksichtigen Sie, dass Sie im BIOS noch keinen deutschen Tastatur- US-Tasten-belegungtreiber geladen haben. Die Tastenbelegung entspricht der amerikanischen
Tastatur. Dort sind neben einigen Sonderzeichen auch die Tasten��
��Z und
��
��Y vertauscht. Werden Sie also nach Y oder N gefragt, müssen Sie für die
positive Antwort vermutlich die Taste��
��Z drücken.
1.1.3 Die Installation beginnt
Wenn das Installationsmedium korrekt gestartet wurde, sollten Sie diesenBegrüßungsbildschirm vor sich sehen.
Abbildung 1.2 Installationsbeginn
33
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 34 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Die Bedienung der Menüs ist sehr einheitlich. Mit der Return-Taste wirdTastatur
der Dialog bestätigt. Die Leertaste aktiviert einen Schalter, wenn sich derCursor gerade darauf befindet. Die Elemente können mit den Pfeiltastenfür oben und unten gewählt werden. Wenn in besonderen Situationen,wie beispielsweise in einer virtuellen Maschine, keine Cursor-Tasten zurVerfügung stehen, können auch die Tastenkombinationen
��
��Strg +��
��P für
oben und��
��Strg +��
��N für unten verwendet werden. Die Tabulatortaste
wechselt zwischen mehreren Auswahlfeldern oder Eingabemöglichkei-ten.
Wahl der grafischen Oberfläche
Vor dem eigentlichen Start der Installation können Sie die später verwen-Auswahl
dete grafische Oberfläche auswählen. Falls Sie also eine andere Oberflächeals GNOME verwenden möchten, ist es das Einfachste, diese vor dem ei-gentlichen Start der Installation auszuwählen. Dazu rufen Sie Advanced
options auf. Hier finden Sie den Punkt Alternative desktop environ-
ments. An dieser Stelle können Sie zwischen GNOME KDE, LXDE oderXfce wählen.
Wenn Sie Debian als Server einsetzen wollen, benötigen Sie keine gra-GUI nichtnotwendig ... fische Oberfläche. Sie können alles von der Konsole aus administrieren.
Auch eine Fernwartung über ssh stellt kein Problem dar.
Auf der anderen Seite sind die Ressourcen für eine grafische Oberfläche... aber hilfreich
nicht mehr so knapp, dass es notwendig wäre, darauf zu verzichten. Eini-ge Bereiche wie die Druckeradministration oder Benutzereinrichtung istper Mausklick schneller, einfacher und auch übersichtlicher zu machen.Vor allem können Sie bei einer grafischen Oberfläche mehrere Terminal-fenster nebeneinander öffnen. Während Sie in dem einen Fenster IhreEinstellungen machen, können Sie auf dem anderen Fenster die Proto-kolldateien beobachten.
GNOME ist die Standardoberfläche bei Debian. Sie ist sehr einfach zuGNOME
handhaben und bietet einige Administrationswerkzeuge, unter anderemSynaptic. Es ermöglicht die Softwarepaket-Installation auf sehr übersicht-liche Weise. Sie finden dieses Programm im Menü System • Systemver-
waltung. Weitere Informationen dazu finden Sie in Abschnitt 1.2.1 abSeite 44.
KDE ist die Alternative im Desktopbereich. Die Unterschiede zu GNOMEKDE
aufzuführen ist etwa so sinnvoll wie die Beschreibung der Unterschiedezweier Bundesligavereine. Beide Oberflächen haben ihre Fans und wer-den keine Argumente für die andere gelten lassen. Sie können KDE aber
34
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 35 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Von 0 auf 100 zum Server 1.1
auch als Alternative nachinstallieren und bei jedem Einloggen entschei-den, wem Sie heute den Vorzug geben.
apt-get install kde
Sie werden dabei allerdings feststellen, dass KDE komplett auf Englischeingestellt ist. Um dies zu ändern, installieren Sie die deutsche Lokalisie-rung.
apt-get install kde-l10n-de
LXDE ist ein ressourcensparender Desktop, der ideal sein dürfte, wenn LXDE
die grafische Oberfläche vor allem dazu dienen soll, mehrere Terminalsit-zungen in Fenstern nebeneinanderstellen zu können.
Auch Xfce gilt als ressourcenschonender Desktop. Er kann vor allem Xfce
GNOME und KDE-Programme sehr gut integrieren.
Dieser Abschnitt beschreibt die Installation eines Debian-Systems anhand Experten-beschreibungeiner Experten-Installation. Sollten Sie lieber die normale Installation ver-
wenden, wird auch sie in dieser Form ablaufen. Allerdings wird DebianSie nicht so oft nach Ihrer persönlichen Meinung fragen. CharakterstarkeMenschen können das ertragen. Beim Lesen sollten Sie sich einfach nichtwundern, wenn Ihnen bei Ihrer Installation nicht jede Frage begegnet.
Region
Mit der Return-Taste werden die Fragedialoge gestartet, die erkunden, Regionales
wie Ihr zukünftiges Debian-System aussehen soll. Als Erstes wird dieSprache abgefragt. Da Sie dieses Buch offensichtlich gut lesen können,wird Deutsch keine schlechte Wahl sein. Die Amerikaner haben mit derAussprache von »Deutsch« so ihre Schwierigkeiten. Also finden Sie hierden Begriff »German«. Im nächsten Schritt wird der Standort geklärt.Hier haben Sie eine reiche Auswahl von Belgien bis zur Schweiz. DieTastaturbelegung kann unabhängig von Sprache und Standort gewähltwerden.
Netzwerkumgebung
Im nächsten Schritt wird die Netzwerkhardware untersucht und in der Automatik mitDHCPRegel auch auf Anhieb erkannt. Anschließend wird das Netzwerk einge-
richtet. Sofern im Netzwerk ein DHCP-Server4 läuft, der Neuzugängeneinen Weg ins Internet weist, können Sie diesem getrost die Netzwerk-einrichtung überlassen. Selbst wenn Sie bislang nicht wussten, dass Sie
4 DHCP siehe Abschnitt 7.7 Seite 273
35
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 36 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
so etwas besitzen, kann es sein, dass ein solcher Server existiert, wennSie beispielsweise einen DSL-Router verwenden, um ins Internet zu ge-langen.
Sollten Sie keinen DHCP-Server haben, benötigen Sie die IP-Adresse desManuelleEinrichtung Rechners, des Gateways und des DNS-Servers. Selbst wenn Sie einen
DHCP-Server im Netz haben, gibt es gute Gründe, auf dessen Unter-stützung zu verzichten. Schließlich soll ein Server nicht jeden Tag eineandere IP-Adresse haben. Bei der automatischen Installation wird aberbei Vorhandensein eines DHCP-Servers keine manuelle Einstellung ange-boten. Um sie zu erzwingen, können Sie beim Start der Installation dasEthernetkabel herausziehen. So wird die DHCP-Konfiguration verlässlichscheitern. Natürlich müssen Sie den Stecker nach Eingabe der Adressendann wieder einstecken.
Bei einer manuellen Installation geben Sie die Netzwerkparameter an. FürBeispiel-konfiguration die IP-Adresse verwenden Sie beispielsweise 192.168.1.12. Die Netzmas-
ke setzen Sie beispielsweise auf 255.255.255.0. Das Standard-Gatewayund der DNS-Server könnten beispielsweise beide mit 192.168.1.1 an-gegeben werden, wenn dies die Adresse des Routers ist. Abschließendwerden Sie noch einmal gefragt, ob alles korrekt eingegeben wurde.
Sie werden gefragt, wie der Name des Rechners lauten soll. Dieser NameHostname
wird Hostname genannt; er unterscheidet ihn von den anderen Compu-tern in Ihrem Netzwerk. Geben Sie dem Rechner einen markanten Na-men. Im nächsten Dialog werden Sie nach dem Domainnamen gefragt.Dies ist etwas vereinfacht der Name des Netzwerks, in dem sich Ihr Servertummelt. Im Buch verwende ich dafür willemer.edu. Benutzen Sie eineneigenen Namen Ihrer Wahl. Er sollte möglichst nicht bereits im Internetvorkommen, sofern Sie nicht genau wissen, was Sie tun. Wenn Sie IhreDomäne beispielsweise google.de nennen, wird es Ihnen schwerfallen, diegleichnamige Suchmaschine im Internet zu erreichen.
1.1.4 Die Festplatte partitionieren
Nun steht die Partitionierung der Festplatte an. Hier werden OptionenManuell odergeführt? mit LVM (Logical Volume Manager) angeboten, die an anderer Stelle in
diesem Buch behandelt werden.5 Ansonsten steht die Möglichkeit, diePartitionierung von Hand durchzuführen oder die vollständige Festplatte
5 Zum Thema LVM finden Sie in Abschnitt 12.3.4 ab Seite 378 weitere Informa-tionen.
36
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 37 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Von 0 auf 100 zum Server 1.1
zu verwenden und sich dabei der Führung von Debian anzuvertrauen.Sie stoßen dabei auf folgende Auswahl:
� Geführt – verwende vollständige Festplatte
� Geführt – gesamte Platte verwenden und LVM einrichten
� Geführt – gesamte Platte mit verschlüsseltem LVM
� Manuell
Geführt
Sie dürfen die gewünschte Festplatte auswählen. In den meisten Com- GesamteFestplatte geführtputern ist nur eine eingebaut. So entstehen immerhin keine nagenden
Zweifel, welche gemeint sein könnte. Nun werden drei Möglichkeitenangeboten. Sie können eine große Partition verwenden. Dies ist für An-fänger empfehlenswert und wird auch von uns gewählt. Wenn Sie diePartitionierung anders einrichten wollen, finden Sie in Abschnitt 12.3ab Seite 372 eine ausführlichere Erläuterung zum Thema. Die Installa-tionsroutine richtet zwei Partitionen ein: eine große Datenpartition fürSystem- und Nutzerdateien und eine Swap-Partition. Nach einer weiterenRückfrage werden die Partitionen angelegt, und das Grundsystem wirdeingerichtet.
Manuell
Wählen Sie statt der geführten Partitionierung den Punkt Manuell, lan-den Sie in einem Dialog, in dem Sie neben einigen weiteren Menüpunk-ten eine Liste der Festplatten und deren Partitionen finden.
Wenn Sie die komplette Festplatte auswählen, erhalten Sie die Möglich- NeuePartitionstabellekeit, eine neue Partitionstabelle anzulegen und damit alle vorhandenen
Partitionen zu löschen.
In der Partitionstabelle kann ein Bereich als freier Speicher angegeben Freier Speicher
sein. Wenn Sie diesen anwählen, erhalten Sie die Möglichkeit, eine neuePartition anzulegen. Sie geben an, welche Größe die Partition haben soll.Der Dialog zeigt Ihnen daraufhin die maximal zur Verfügung stehendeGröße an. Sie werden gefragt, ob es sich um eine primäre oder logi-sche Partition handeln soll. Solange Sie nicht mehr als vier Partitionenbenötigen, können Sie alle als primäre Partitionen einrichten.
Debian bemerkt, dass Sie nicht den gesamten freien Platz verwenden und Typ undEinhängepunktfragt, ob Sie die Partition am Anfang oder am Ende der Platte ausrichten
wollen. Nachdem Sie hier Anfang angegeben haben, erreichen Sie einen
37
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 38 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Dialog, in dem Sie angeben müssen, welchen Dateisystemtyp Sie auf die-ser Partition nutzen wollen. Für ein Debiansystem empfehlen sich dieDateisystemtypen »ext3« und »ext4«. Hier ist »ext3« das altbewährte Sys-tem und »ext4« dessen Nachfolger. Dann müssen Sie den Einhängepunktangeben, und hier sollten Sie einen einsamen Schrägstrich verwenden.Über den Punkt Anlegen der Partition beenden schreiben Sie diesePartition in die Partitionstabelle.
Wenn Sie eine vorhandene Partition anwählen, können Sie diese »be-Partitionbearbeiten nutzen«. Das bedeutet, dass Sie den Typ des Dateisystems angeben und
die Stelle, an der die Partition im Verzeichnisbaum eingehängt wird. Bei-spielsweise könnten Sie auf der Partition ein ext3-Dateisystem anlegenund diese als Wurzelverzeichnis (/) verwenden. Darüber hinaus gebenSie an, ob die Partition neu formatiert werden soll. Dies sollten Sie nurdann unterlassen, wenn Sie gute Gründe haben, warum Sie die Dateienauf der Partition noch benötigen. Sie können die Partition nachträglich inihrer Größe verändern oder aber die Partition komplett löschen.
Für die Swap-Partition wiederholen Sie das Anlegen der Partition mitSwap
leichten Variationen. Wieder wechseln Sie auf Freier Speicher. Sie erstel-len wieder eine neue Partition. Diesmal können Sie bei der Frage nachder Größe alles nehmen. Wieder wird es eine primäre Partition.
Im Folgedialog wählen Sie als Benutzung Auslagerungsspeicher (Swap).Einen Einhängepunkt brauchen Sie hier nicht anzugeben. Sie wählenAnlegen der Partition beenden.
Sie schließen die Partitionierung ab und übernehmen die Änderungen.Abschluss
Sie müssen ein weiteres Mal bestätigen, dass die Änderungen auf dieFestplatte geschrieben werden sollen. Nun, da die Zielpartition fertig ist,werden die auf dem Installationsmedium vorhandenen Dateien auf dieFestplatte kopiert und installiert.
1.1.5 Benutzer einrichten
Ein Benutzer existiert auf jedem Debian-System, und das ist der Admi-Passwort root
nistrator, der immer den Benutzernamen root trägt. Für diesen wird einPasswort benötigt. Da root alles darf, sollte das Passwort nicht allzu trivialsein. Nach der Eingabe wird das Passwort ein zweites Mal angefordert,damit Tippfehler ausgeschlossen werden.
Ein gutes Passwort sollte nicht in einem Lexikon stehen, kein Name seinEinfach merken,schwer zu knacken und nicht zu wenig Buchstaben enthalten. Vielfach wird sogar empfohlen,
dazwischen eine Zahl oder ein Sonderzeichen einzufügen. Und natürlich
38
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 39 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
Von 0 auf 100 zum Server 1.1
dürfen Sie es nicht aufschreiben. Schon gar nicht auf einen dieser gelbenKlebezettel, die anschließend am Monitorrand befestigt werden. Das tutnämlich jeder! Ein kleiner Kniff hilft hier. Denken Sie sich einen Satzaus, der Ihnen Freude bereitet und den Sie sich leicht merken können.Beispielsweise: »Ich bin ein toller Hecht und der Stolz der ganzen Firma«.Nun nehmen Sie die Anfangsbuchstaben: IbetHudSdgF. Das sieht schonganz toll aus. Wenn Sie nun an einem 24. Geburtstag haben, fügen Sie ander vierten Stelle eine 2 ein: Ibe2tHudSdgF. Auf dieses Passwort kommtkein Mensch, und Sie freuen sich jedes Mal, wenn Sie es eintippen.
Das Administrationskonto darf niemals für normale Aktivitäten verwen- Normalo
det werden. Dazu hat der Administrator immer ein zusätzliches, »ziviles«Konto. Für dieses fordert das Installationsprogramm anschließend dieInformationen an. Es beginnt mit dem vollen Namen des Benutzers. An-schließend wird aus dem Vornamen ein Benutzername gebildet, den Sieallerdings ändern können. Der Benutzername ist der, mit dem Sie sicham System anmelden. Abschließend wird auch für diesen Benutzer einPasswort eingegeben und durch erneute Eingabe bestätigt.
1.1.6 Pakete installieren
Auch wenn Sie von den vollständigen Installationsmedien installieren, Repository-Server
sollten Sie einen Debian-Paket-Server für Ihren Computer einstellen. Hierbekommen Sie Updates und Upgrades her. Das ist vor allem im Falle vonSicherheitslücken wichtig. Die Debian-Server weisen sich gegenüber Ih-rem System mit Zertifikaten aus. Dadurch wird gewährleistet, dass Ihnennicht schädliche Software untergeschoben wird. Von diesen Servern er-halten Sie auch die Softwarepakete, die Sie später nachinstallieren. Solan-ge Sie Ihre Software dort beziehen, riskieren Sie nicht, dass Ihnen Fremdeböse Software unterschieben.
Damit die Pakete für den Downlaod nicht sinnlos um die halbe Welt Regionale Server
segeln, sollen Sie das Land eingeben, aus dem die Pakete heruntergeladenwerden sollen. Anschließend erscheint eine Liste der Spiegelserver ausdiesem Land. Wählen Sie einen beliebigen Server aus.
Die Pakete werden über das Protokoll HTTP geladen. Falls der zu instal- Proxy
lierende Rechner nur über einen Proxy6 ins Internet kommt, müssen Sienun die Proxydaten eingeben. Sie erfahren Sie vom Netzwerkadministra-tor. Sofern Ihr Netzwerkadministrator nichts vorschreibt, lassen Sie dasFeld am besten leer.
6 Proxy siehe Abschnitt 10.3 Seite 339
39
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 40 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: wsinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Es werden Ihnen nun ein paar Fragen gestellt, bei denen Sie einfach dieNachfragen
Vorgaben belassen können. Eine Rückfrage betrifft die Dienste, die nungestartet werden sollen. Es ist »cron« aufgeführt. Mit Weiter kommen Siezum nächsten Schritt. Sie werden jetzt aufgefordert zu bestätigen, dass dieLaufwerk-Geräte-IDs umbenannt werden. Sie werden gefragt, ob Sie ander Paketverwendungserfassung teilnehmen würden. Damit versucht dasDebian-Team zu ermitteln, welche Pakete oft installiert werden. DieseInformationen beeinflussen die Verteilung der Pakete auf die DVDs.
Schließlich werden Sie gefragt, welche Software installiert werden soll.Sie bekommen folgende Liste angeboten:
� Grafische Desktop-Umgebung
� Web-Server
� Druck-Server
� DNS-Server
� Datei-Server
� Mail-Server
� SQL-Datenbank
� SSH-Server
� Laptop
� Standard-Systemwerkzeuge
Vorgewählt ist der erste und der letzte Punkt. Wenn Sie eine grafischeHauptpaketewählen Oberfläche wollen, lassen Sie den Punkt angewählt. Wenn Sie ihn ab-
wählen, ist die Installation deutlich schneller. Sie müssen dann allerdingsden Server komplett über die Tastatur warten.
Die Entscheidungen sind nicht endgültig. Sie können alle Pakete auchEntscheidungen
nachträglich installieren. Durch die spätere Auswahl können Sie die Pake-te sehr viel genauer auswählen. Für den Anfang würde ich Ihnen durch-aus zu einer grafischen Desktopumgebung raten. Auf die Standard-Sys-temwerkzeuge sollten Sie keinesfalls verzichten. Wenn Sie ein Notebookverwenden, sollten Sie auch das Laptop-Paket wählen, und ein SSH-Ser-ver sollte eingerichtet werden, wenn Sie Ihren Server über das Netzwerkwarten wollen.
Nach einiger Zeit des Ladens und Installierens wird GRUB, der Bootloa-Bootloader
der, installiert. Prinzipiell kann er sowohl in der Partition als auch im
40
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 41 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
MBR (Master Boot Record) installiert werden. Um das System starten zukönnen, muss GRUB in den MBR. Die Anfragen sind etwas verwirrend,da man zuerst fortfahren muss, ohne den Bootloader zu installieren, umihn dann doch im MBR einrichten zu können. Das Thema Bootloaderwird in Abschnitt 12.9 ab Seite 408 behandelt.
Nun ist die Installation beendet, und das System startet neu. Sie können Abschluss
sich nun anmelden, den Rechner erkunden und den Beispielen im Buchfolgen. Wenn Sie den Rechner wieder ausschalten wollen, melden Sie sichals root an und fahren dann das System mit dem Befehl halt herunter.Sollten Sie eine grafische Oberfläche installiert haben, finden Sie im MenüSystem den Menüpunkt zum Herunterfahren des Systems.
1.2 Softwarepakete nachinstallieren
Nachdem ein Debian-Server installiert wurde, ist er bereits mit derGrundausstattung an Software versorgt. Wenn Sie weitere Softwarebenötigen, können Sie diese über die gleichen Server nachinstallieren,von denen Sie auch Ihr Debian-System bekommen haben. Auch wenn esUpdates gibt, werden sie über diese Server geliefert. Debian hat im Laufeder Jahre ein ausgeklügeltes System geschaffen, um die Installation vonSoftware stabil und sicher zu gestalten. Die herausragenden Fähigkeitendieses Systems umfassen vor allem folgende Punkte:
� Der Anwender kann sich mit entsprechenden Werkzeugen einenÜberblick über die Software verschaffen und nach Programmensuchen, die seine Probleme lösen.
� Die Softwarepakete können aus verschiedenen Quellen geladen wer-den. Es können sowohl beliebig viele Server im Internet als auch CDs,DVDs oder lokale Repositorys genutzt werden. Dies alles ist für denAnwender unsichtbar. Er erhält einfach die Software, die zusammen-passt und auf dem aktuellsten Stand ist.
� Es ist möglich, einen kompletten Release-Wechsel ohne Eingriff desAnwenders herbeizuführen.
� Die Programmpakete stammen aus gesicherter Quelle. Es wird nurdann von einem Server Software bezogen, wenn er sich mit seinerSignatur ausweist.
Die Installation von Programmen ist nicht ganz so trivial, wie es dem Abhängigkeiten
Anwender scheint. Beispielsweise wird das Programm Kaffeine, mit dem
41
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 42 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
man prima fernsehen kann, in einer GNOME-Umgebung nicht so richtigglücklich, da es für den Desktop KDE geschrieben wurde und dessenBibliotheken benötigt. Wenn Sie nun die Version von Kaffeine auftreiben,die unter KDE 3.5 vorbildlich lief und einfach zu bedienen war, so würdesie auf einem aktuellen KDE 4.x nicht laufen, weil sich die Bibliothekeninzwischen verändert haben.
So enthält das Programmpaket für Kaffeine das Programm selbst sowieRekursiveInstallation die wichtigsten Konfigurationsdateien und einen Verweis auf die KDE-
Bibliotheken, die es zum Laufen benötigt. Diese Verweise enthalten auchdie benötigte Versionsnummer der Bibliothek. Soll das Kaffeine-Paketinstalliert werden, wird geprüft, ob die passenden Bibliotheken bereitsinstalliert sind. Sind diese nicht vorhanden, werden auch sie nachgela-den und installiert. Auch die Pakete, die von den Bibliotheken benötigtwerden, werden wiederum automatisch in die Installation integriert, so-dass es passieren kann, dass das Einrichten eines einzigen Programmseine ganze Reihe von Paketen nach sich zieht. All dies leistet das Debian-Installationssystem in vorbildlicher Weise.
Das Debian-Paket-System ist komplex und daher nicht ganz einfach zuTop Down
verstehen. Damit Sie möglichst schnell einen Einstieg in den Umgangmit Debian-Paketen gewinnen, beginne ich mit der Beschreibung dergrafischen Werkzeuge. Diese ermöglichen eine schnelle Übersicht undmacht das Erfassen leichter. Durch die Netzwerkfähigkeit des X-Protokollsist es möglich, die Anwendungen fernzusteuern, wie es in Abschnitt 1.2.1gezeigt wird. Als Administrator ist es aber auch wichtig, mit den zugrundeliegenden Programmen auf der Konsole umgehen zu können. In manchenFällen müssen Sie über eine einfache ssh-Verbindung fernwarten. WennSie dann nur einen Windows-Rechner zur Verfügung haben, nützt Ihnendie Netzwerkfähigkeit von X nicht viel, da Windows sie nicht beherrscht.
1.2.1 Grafisch installieren
Die grafische Oberfläche GNOME stellt mehrere Werkzeuge zur Verfü-gung, um mit der Debian-Paketverwaltung arbeiten zu können. KDE bie-tet eigene Werkzeuge mit Adept. Aber Sie können Synaptic oder dasSoftware-Center auch aufrufen, wenn Sie KDE als Desktop verwenden.
Software-Center
Die einfachste Methode, an Software zu gelangen, stellt das Software-Anwendergerecht
Center dar. Dieses erreichen Sie über das Menü System • Systemverwal-
tung • Software-Center. Hier ist die Software so angeordnet, dass ein
42
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 43 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
durchschnittlicher Anwender die Software finden wird, die er für seineAnwendungen benötigt. Die Programme sind nach Themen geordnet.Der Anwender klickt sich durch die Kategorien, bis er das Programmgefunden hat, das er installieren will.
Abbildung 1.3 GNOME Software-Center
Wenn der Anwender beispielsweise ein Programm für das Homebanking Homebanking-Beispielsucht, kann er die Sparte Büro anklicken und findet dort das Programm
HomeBank. Für jedes Programm gibt es eine eigene Seite, die einen Bild-schirmabzug und eine kurze Beschreibung enthält, wie in Abbildung 1.4zu sehen.
Wenn der Anwender nun den Button Installieren – kostenlos anklickt, Installation
wird er nach dem root-Passwort gefragt. Das ist erforderlich, da Software-installation zu den Aufgaben des Administrators gehört. Ohne dessenBefugnis darf Software nicht installiert, gelöscht oder geändert werden.Das dient als Schutz, damit keine Schadsoftware eingerichtet werdenkann.
Anschließend wird das Programm heruntergeladen, eingerichtet undsteht sofort unter dem Menü Anwendungen • Büro • HomeBank zurVerfügung.
43
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 44 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Abbildung 1.4 Software-Center Programmbeschreibung
Synaptic
Während sich das Software-Center eher an den reinen Anwender rich-tet, ist Synaptic mehr das Allround-Tool mit vielen Möglichkeiten. DasProgramm Synaptic finden Sie über das Menü System • Systemverwal-
tung • Synaptic-Paketverwaltung. Anschließend werden Sie nach demAdministratorpasswort gefragt.
Auch wenn Sie an einem anderen PC sitzen, können Sie Synaptic aufrufen.Fernwartung
Voraussetzung ist allerdings, dass Sie einen Linux-Computer verwenden,der ein X Window System installiert hat. In diesem Fall rufen Sie denZielrechner, der im Beispiel debian heißt, per ssh7 mit der Option -X füreine Umleitung des Displays auf.
linux $ ssh -X debianarnold@debian's password:
Last login: Fri Aug 27 03:40:33 2010 from hape.localarnold@debian:~$
Dort rufen Sie nun das Programm synaptic auf. Das Fenster wird aufroot-Rechte
dem Bildschirm Ihres Arbeitsplatzrechners erscheinen, da der Standard-Display ja über die SSH-Verbindung umgeleitet wird. Da Synaptic aller-
7 siehe Abschnitt 9.3 Seite 310
44
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 45 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
dings root-Rechte benötigt, rufen Sie es über das Programm gksu auf, dasSie zunächst nach dem root-Passwort des Rechners debian fragen wird.
arnold@debian:~$ gksu synaptic
Das Programm erscheint nun auf Ihrem Arbeitsplatz und lässt sich genau GUI hier,Aktion daso bedienen, als würde es hier laufen. Tatsächlich arbeitet aber nur die
grafische Oberfläche hier. Alle Aktionen werden auf dem Rechner debianausgeführt.
Das Programm Synaptic hat ein gegliedertes Hauptfenster, wie in Abbil- Hauptfenster
dung 1.5 zu sehen ist. Rechts oben steht eine Liste der Softwarepakete.In dem Feld darunter findet sich eine Beschreibung des angewählten Pa-kets. Links oben befindet sich eine Reihe von Auswahlfeldern, mit denenbeispielsweise bestimmte Themen selektiert werden können. Der Inhaltdieser Liste wird durch die Buttons bestimmt, die nach Sektionen, demStatus und anderen Filtern auswählen können.
Abbildung 1.5 Synaptic
In der oberen Leiste befindet sich der Button Suche. Wie der Name bereits Software suchen
erahnen lässt, können Sie damit einen Dialog starten, in dem Sie Stich-worte eingeben, die das Paket spezifizieren. Nach der Eingabe reduziertsich die Liste auf diejenigen Pakete, die alle angegebenen Stichwörter imNamen oder in der Beschreibung enthalten.
45
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 46 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Wenn in der Liste ein Paket erscheint, das Ihren Vorstellungen entspricht,Zur Installationanwählen können Sie es anklicken. Im Fensterbereich rechts unten erscheint eine
Beschreibung. Wollen Sie das Paket installieren, klicken Sie den Eintragin der Liste mit der rechten Maustaste an oder klicken in das Kästchenlinks neben dem Eintrag. Es erscheint ein Menü, das den Punkt Zum
Installieren vormerken enthält. Sobald Sie diesen angewählt haben,erscheint gegebenfalls ein Dialog, der Sie informiert, falls weitere Paketevorgemerkt werden müssen, um das ausgewählte Paket zu installieren.Wenn Sie diesen Dialog bestätigen, erhält das Kästchen einen kleinenPfeil, und der Button Anwenden in der Hauptleiste wird aktivierbar. Siekönnen nun weitersuchen und weitere Pakete zur Installation vormerkenoder beispielsweise installierte Pakete löschen.
Pakete, die ein grünes Kästchen besitzen, sind bereits installiert. Wenn SieEntfernen
dieses Kästchen anklicken, sind in dem daraufhin erscheinenden MenüPunkte zum Entfernen des Pakets freigeschaltet. Sie können allerdingsauch das Paket erneut installieren.
Sobald Sie den Button Anwenden anklicken, erscheint ein Dialog, der SieÄnderungenanwenden über den Umfang der gewünschten Installationen oder Deinstallationen
aufklärt. Sobald Sie diesen mit Anwenden bestätigen, startet die eigent-liche Installation. Ein Verlaufsbalken zeigt den Download. Dann wird dieKonfiguration gemeldet. In deren Verlauf kann es passieren, dass Sie nachbestimmten für die Installation erforderlichen Informationen gefragt wer-den. Anschließend erscheint wieder das Hauptfenster von Synaptic.
1.2.2 Grafisch aktualisieren
Die grafischen Oberflächen bieten auch ein Werkzeug, mit dem die Up-Aufruf
dates durchgeführt werden können. Unter GNOME findet man es unterdem Menüpunkt System • Systemverwaltung • Aktualisierungsver-
waltung. In der Grundeinstellung startet es sogar automatisch und mel-det die vorliegenden Paketaktualisierungen.
In der oberen Liste werden alle Pakete angezeigt, für die AktualisierungenKandidaten
vorliegen. Dabei sind diese untergliedert in sicherheitskritische Updatesund solche, die Programmfehler beseitigen oder Erweiterungen mitbrin-gen. Sie können auch einzelne Pakete von der Aktualisierung ausschlie-ßen. Dabei werden abhängige Pakete automatisch ausgeschlossen.
Mit dem Button Prüfen können Sie die Liste der Aktualisierungen nochPrüfen
einmal laden. Durch Klicken auf den Button Aktualisierungen instal-
lieren startet die Installation.
46
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 47 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
Wenn Sie ein Paket mit der Maus anwählen, können Sie im unteren Detail-informationenFenster die Liste der Änderungen des Pakets sehen. Dies ermöglicht eine
Abschätzung, wie eilig die Aktualisierung des Pakets ist.
Abbildung 1.6 Aktualisierungsverwaltung
1.2.3 Aufgabe per Tasksel wählen
Das Programm Tasksel kennen Sie bereits von der Installation. Es eignet Grobauswahl
sich vor allem dazu, mehrere Programmpakete auf einmal zu installierenund damit die Hauptaufgaben des Computers festzulegen.
Sie wählen damit vor, ob der Computer mit einer grafischen Oberfläche Menü
versehen ist oder ob es sich um einen Laptop handelt. Ansonsten könnenSie verschiedene Serverarten vorgeben.
Wenn Sie den Punkt Manuelle Paketauswahl auswählen, wird das Pro- Rufe Aptitude
gramm Aptitude aufgerufen.
47
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 48 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Abbildung 1.7 Tasksel
1.2.4 Aptitude installiert
Das Programm Aptitude ist eine Terminallösung für den Umgang mitPaketauswahl
den Softwarepaketen. Seine besondere Fähigkeit gegenüber dem Aufrufder anderen APT-Konsolenprogramme ist die erleichterte Auswahl vonSoftwarepaketen, wie es beispielsweise Synaptic beherrscht. GegenüberLetzterem benötigt es keine grafische Umgebung und kann darum perSSH gestartet werden und auch noch auf sehr schlanken Umgebungeneingesetzt werden.
Der Bildschirm ist zweigeteilt. In der oberen Liste sehen Sie die Katego-Bildschirm-aufteilung rien für die Installationen. Sie können mit dem weiß hinterlegten Balken
über eine Kategorie fahren und sie mit der Return-Taste auswählen. Da-runter finden Sie weitere Untergliederungen, bis Sie auf die einzelnenPakete stoßen. Im unteren Bereich des Bildschirms werden die Pakete,Kategorien und Aktivitäten näher beschrieben.
In der obersten Zeile finden Sie ein Menü, das Sie über die Tastenkom-Menü
bination��
��Strg +��
��T erreichen. Die wichtigsten Tastenkürzel werden al-
lerdings bereits in der zweiten Zeile angezeigt. Mit dem Kommando q
können Sie das Programm verlassen.
48
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 49 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
Abbildung 1.8 Aptitude
Das Kommando u sorgt dafür, die Paketverzeichnisse zu aktualisieren, Aktualisierung
und entspricht dem Befehl apt-get update. Sie können dies auch überdas Menü Aktionen • Paketliste aktualisieren erreichen.
Mit dem Schrägstrich können Sie per Stichwort nach Programmpaketen Suchen
suchen. Bei der Eingabe jeder Taste wird die Liste der Pakete kleiner.
Die Pakete werden mit bestimmten Kommandos dahingehend markiert, Paketauswahlmarkierenob sie installiert +, deinstalliert - oder komplett gelöscht _ werden sollen.
Dazu wandern Sie mithilfe der Pfeiltasten und der Return-Taste durch dieKategorien und verwenden die in der Tabelle 1.1 aufgeführten Komman-dos, um die Pakete zu markieren. Weitere Befehle finden Sie unter demMenü Paket. Auf der rechten Seite jedes Menüpunkts finden Sie auch einTastenkürzel für die jeweilige Funktion.
Kommando Wirkung
+ (Plus) Paket installieren
- (Minus) Paket deinstallieren
_ (Unterstrich) Paket komplett deinstallieren
Tabelle 1.1 Markierungskommandos für Pakete
Wenn Sie mit der Auswahl fertig sind, rufen Sie über das Menü��
��Strg Markierungen
ausführen+��
��T den Punkt Aktionen • Installieren/Entfernen von Paketen auf.
Sie können auch das Kommando g verwenden. Achten Sie darauf, dassSie das kleine »g« verwenden und dass Sie sich dabei in der Hauptebe-
49
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 50 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
ne befinden. Daraufhin wird das Programm kurzzeitig verlassen, und eserscheinen die Meldungen der apt-get-Aufrufe, die das Programm gene-riert hat. Das Programm bittet um die Eingabe der Return-Taste und kehrtdann wieder zu aptitude zurück.
1.2.5 Auf apt-get getippt
Der Befehl apt-get eignet sich ideal dazu, einzelne Kommandos abzu-Einzelbefehle
setzen, um Programmpakete zu installieren, zu entfernen oder Updatesanzustoßen. Direkt auf das Kommando apt-get folgt ein Befehl, der an-gibt, welche Aktion benötigt wird.
Installation: apt-get install
In diesem Buch werden Sie am häufigsten auf die Befehlskombinationapt-get install
apt-get install stoßen, wenn darauf hingewiesen wird, welche Paketefür welche Aufgaben benötigt werden. Durch den Aufruf von apt-get
mit dem Parameter install und dem Paketnamen wird die Installationausgelöst. Der Befehl zeigt an, welche Pakete aufgrund von Abhängigkei-ten hinzuinstalliert werden müssen. Es wird gemeldet, wie viele Datenheruntergeladen werden müssen und welchen Platz das zu installieren-de Paket auf der Festplatte einnehmen wird. Anschließend bekommenSie noch einmal die Möglichkeit, die Installation abzubrechen oder zubestätigen.
Aufruf von apt-get install
apt-get install <Paketname> [ <Paketname> ] *
Die Installation des Apache-Servers gelingt mit dem Aufruf
debian # apt-get install apache2
apt-get gibt die eigentliche Installation an dpkg weiter. Falls dieser aberSoftwarepakete vermisst, sucht apt-get zunächst die Pakete zusammenund lässt dann dpkg die Pakete in der richtigen Reihenfolge installieren.
Pakete entfernen
Das Programm apt-get kann auch für die Deinstallation eines Software-pakets sorgen. Dabei prüft es, welche anderen Pakete von dem zu entsor-genden Paket betroffen sind, und schlägt diese ebenfalls zur Deinstallati-on vor.
50
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 51 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
Die Entfernung kennt allerdings drei Intensitäten. Der Befehl remove apt-get remove
entfernt die Softwaredateien von der Festplatte, belässt aber die Konfi-guration. Auf diese Weise bleiben die bisherigen Einstellungen erhalten,sollte die Software später wieder installiert werden.
Aufruf von apt-get remove
apt-get remove <Paketname> [ <Paketname> ] *
Soll auch die bisherige Konfiguration entfernt werden, weil nicht beab- apt-get purge
sichtigt ist, das Paket noch einmal zu installieren, oder weil Sie ebenbewusst die bisherige Konfiguration loswerden möchten, dann ist derBefehl purge der richtige Befehl.
Aufruf von apt-get purge
apt-get purge <Paketname> [ <Paketname> ] *
In beiden Fällen liegt allerdings das Softwarepaket, aus dem die Softwareinstalliert wurde, noch auf dem Rechner. Es ist jedoch nicht entpackt.Wenn Sie das Paket also erneut installieren, wird kein neuer Downloadveranlasst, weil aus dem lokalen Archiv-Cache installiert werden kann.Im Verzeichnis /var/cache/apt/archives findet sich noch die Debian-Paket-Datei.
Soll mit dem Softwarepaket auch der Archiv-Cache aufgeräumt werden, apt-get clean
so verwenden Sie den Befehl clean.
Aufruf von apt-get clean
apt-get clean <Paketname> [ <Paketname> ] *
Sollten Pakete liegen bleiben, die nicht mehr benötigt werden, erkennt apt-getautoremovedas System auch dieses. Bei den Installationsaufrufen werden Sie darauf
aufmerksam gemacht, dass Sie sie mit dem Befehl apt-get autoremove
bereinigen können. Der Befehl benötigt keine Parameter.
Aufruf von apt-get autoremove
apt-get autoremove
51
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 52 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Bevor das große Aufräumen stattfindet, werden Sie allerdings noch ein-Bestätigung
mal auf den Umfang der Arbeiten hingewiesen und erhalten eine Chance,alles wieder abzublasen.
debian # apt-get autoremovePaketlisten werden gelesen... FertigAbhängigkeitsbaum wird aufgebautStatus-Informationen einlesen... FertigDie folgenden Pakete werden ENTFERNT:
dvgrab frei0r-plugins gnome-audio gnome-pilot gnome-pi...libasound2-plugins libavahi-core6 libboost-regex1.42.0......
0 aktualisiert, 0 neu installiert, 54 zu entfernenund 338 nicht aktualisiert.Nach dieser Operation werden 79,8MB Plattenplatz freigegeben.Möchten Sie fortfahren [J/n]?
Paketlistenverzeichnis aktualisieren
Die Informationen, welche Softwarepakete zur Verfügung stehen, werdenapt-get update
lokal gehalten. Allerdings kann es unter bestimmten Bedingungen pas-sieren, dass diese Informationen nicht mehr synchron mit dem Stand imInternet sind. Sie merken dies beispielsweise daran, dass Sie Fehlermel-dungen bekommen, die Datei sei nicht verfügbar. In diesem Fall solltenSie sich ein neues Verzeichnis aus dem Internet holen. Der Befehl dazulautet apt-get update. Da sich der Befehl auf das gesamte Verzeichnisbezieht, benötigt er keine Parameter.
Aufruf von apt-get update
apt-get update
Der Begriff »Update« bezieht sich hier also nicht etwa auf das Updateder Programmpakete, sondern auf die Aktualisierung der Paketinforma-tionen.
1.2.6 Software aktualisieren
Um die installierte Software auf den aktuellen Stand zu bringen, brauchenapt-get upgrade
Sie nur den Befehl apt-get upgrade einzugeben.
Aufruf von apt-get upgrade
apt-get upgrade
52
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 53 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
Das Programm ermittelt daraufhin die verfügbaren Aktualisierungen aller Aktualisierung
installierten Softwarepakete. Vor dem Herunterladen werden die neue-ren Pakete aufgezählt, und ihr Umfang wird angezeigt. Sie haben danndie Wahl, ob Sie fortfahren möchten. Anschließend werden die Paketeheruntergeladen und installiert.
debian # apt-get upgradePaketlisten werden gelesen... FertigAbhängigkeitsbaum wird aufgebautStatus-Informationen einlesen... FertigDie folgenden Pakete sind zurückgehalten worden:bind9 bind9-host bind9utils cpp-4.4 dnsutils festival...xserver-xorg-video-chips xserver-xorg-video-sis
293 aktualisiert, 0 neu installiert, 0 zu entfernenund 60 nicht aktualisiert.Es müssen 439MB an Archiven heruntergeladen werden.Nach dieser Operation werden 1.189kB Plattenplatzzusätzlich benutzt.Möchten Sie fortfahren [J/n]?Hole:1 http://ftp...queeze/main base-files 5.9 [68,5kB]Hole:2 http://ftp.../main perl-modules 5.10.1-14 [3.481kB]...0% [2 perl-modules 2.691kB/3.481kB 77%] ... 2S 31Min 35s
Der Befehl dist-upgrade geht deutlich weiter als der normale upgrade. apt-getdist-upgradeLetzterer wird nicht weiterarbeiten, wenn ein Konflikt auftritt. Dagegen
wird dist-upgrade weniger wichtige Pakete deinstallieren, wenn es da-mit möglich ist, ein wichtiges Paket zu installieren.
debian # apt-get dist-upgradePaketlisten werden gelesen... FertigAbhängigkeitsbaum wird aufgebautStatus-Informationen einlesen... FertigDie folgenden Pakete sind zurückgehalten worden:bind9 bind9-host bind9utils cpp-4.4 dnsutils festival ......
Die folgenden Pakete werden aktualisiert:apache2 apache2-mpm-prefork apache2-utils apache2.2-bin......xserver-xorg-video-chips xserver-xorg-video-sis ...
278 aktualisiert, 0 neu installiert, 0 zu entfernenund 60 nicht aktualisiert.Es müssen 437MB an Archiven heruntergeladen werden.Nach dieser Operation werden 1.250kB Plattenplatz zusätzlichbenutzt.
53
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 54 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
Möchten Sie fortfahren [J/n]?...
1.2.7 Paketquellen anpassen
Es stellt sich natürlich die Frage, woher apt-get denn weiß, vonsources.list
wo es die Pakete beziehen soll. Dazu gibt es die Konfigurationsdatei/etc/apt/sources.list. Darin stehen die Paketquellen. Das können CDs, aberauch URLs aus dem Internet sein. Um die Pflege dieser Datei müssen Siesich zunächst nicht weiter kümmern.
Die Datei sources.list ist eine normale Textdatei. Sie können sie mit IhremStruktursources.list Lieblingseditor bearbeiten. Und wie immer im Leben ist es auch hier gut,
wenn Sie wissen, was Sie tun. So finden sich in meiner Konfigurationunter anderem folgende Zeilen:
deb http://ftp2.de.debian.org/debian/ squeeze maindeb-src http://ftp2.de.debian.org/debian/ squeeze maindeb http://security.debian.org/ squeeze/updates main
Die Spalten sind durch Leerzeichen getrennt und enthalten folgende In-formationen:
� PakettypHier steht typischerweise »deb« oder »deb-src«, je nachdem, ob essich um ein binäres, also ausführbares Paket oder um die Quelltextehandelt.
� URIIn der zweiten Spalte wird angegeben, wo die Daten zu finden sind.Drei Arten von Adressen werden Sie hier normalerweise vorfinden.Mit »cdrom« werden CDs oder DVDs bezeichnet. »http« ist für Server,die die Daten nach dem HTTP-Protokoll8 verbreiten, und »ftp« fürServer, die das FTP-Protokoll9 verwenden. Wenn Sie ein eigenes, lo-kales Repository aufbauen wollen, können Sie auch »file« als Adresseverwenden.
� DistributionHier steht in der aktuellen Version squeeze oder squeeze/updates.
� KomponentenHier können Attribute wie main, non-free, contrib oder andere Begrif-
8 siehe Abschnitt 20.4 Seite 6329 siehe Abschnitt 18.4 Seite 571
54
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 55 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
Softwarepakete nachinstallieren 1.2
fe stehen, die die verfügbaren Pakete einschränken. Auch stable undunstable können hier aufgeführt werden.
Bei der Installation wird das Installationsmedium in die Quellen ein- apt-cdrom add
getragen. Eine Ausnahme bilden lediglich die Netinstall-Medien, derenSoftware gerade ausreicht, um die Installation zu starten, und dann al-le Pakete aus dem Internet zieht. Bei der Installation geben Sie an, inwelchem Land Sie wohnen. Daraus wird ermittelt, welche Server für Sieam günstigsten sind. Auch die werden zu den Installationsquellen hin-zugefügt. Weitere CDs oder DVDs können Sie jederzeit mit dem Befehlapt-cdrom add zu den Installationsquellen hinzufügen.
1.2.8 Debian-Paket-Manager
Die Basisanwendung für die Installation und Deinstallation von Debian- Installationsknecht
Paketen heißt dpkg. Letztlich ist es dieses Programm, das von Synapticbis apt-get aufgerufen wird. Das Programm ist in der Lage, ein Paketzu entpacken und alle Bestandteile an die richtige Position zu bringen.Es ist später auch in der Lage, das Paket wieder zu deinstallieren. DasProgramm weiß ja, wo die Dateien hingekommen sind, und sammelt siealle wieder auf.
Das Programm dpkg kann auch die im Softwarepaket hinterlegten Abhän- Abhängigkeiten
gigkeiten auslesen und wird melden, wenn versucht wird, ein Paket zuinstallieren, obwohl die Voraussetzungen dafür nicht vorliegen. Anders-herum wird es eine Deinstallation verweigern, wenn das Paket noch vonanderen Paketen benötigt wird.
dpkg ist nicht in der Lage, diese Abhängigkeiten aufzulösen. Es kann nur BegrenzteFähigkeitenlokal vorliegende Paketdateien verarbeiten und nicht eigenständig Datei-
en aus dem Repository nachladen. Damit liegt die Versionsverwaltung inden höheren Werkzeugen wie etwa apt-get.
Aufruf von dpkg
dpkg -i <DebianPaket>dpkg -r <DebianPaket>dpkg -P <DebianPaket>
Die Option -i bewirkt die Installation des Pakets. Die Option -r entfernt Optionen
die Installation, abgesehen von den Konfigurationsdateien. Bei erneuterInstallation wird so die bisherige Konfiguration beibehalten. Ist das nicht
55
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 56 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: aptinstall , Aktueller Job: debian
1 Installation eines Debian-Servers
gewünscht,kann mit der Option -P oder --purge auch das Löschen derKonfigurationsdateien veranlasst werden.
Wenn Sie nach bestimmten Paketen suchen, können Sie mit der OptionPaketsuche
-l nach bestimmten Worten suchen. Wenn Sie einen Stern benutzen,kann es sinnvoll sein, das Suchmuster in Anführungszeichen zu setzen.
debian # dpkg -l *ldap*Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler:
GROSS=schlecht)||/ Name Version Beschreibung+++-==============-==============-=======================...un ldap-client <keine> (keine Beschreibung vor...un ldap-server <keine> (keine Beschreibung vor...ii ldap-utils 2.4.17-2.1 OpenLDAP utilitiesii libaprutil1-ld 1.3.9+dfsg-3 The Apache Portable Run...un libldap-2.3-0 <keine> (keine Beschreibung vor...ii libldap-2.4-2 2.4.17-2.1 OpenLDAP librariesun libldap2 <keine> (keine Beschreibung vor...un libnet-ldap-pe <keine> (keine Beschreibung vor...ii libnss-ldap 264-2.2 NSS module for using LD...un libnss-ldapd <keine> (keine Beschreibung vor...ii libpam-ldap 184-8.5 Pluggable Authenticatio...un libsasl2-modul <keine> (keine Beschreibung vor...un openldap-utils <keine> (keine Beschreibung vor...un openldapd <keine> (keine Beschreibung vor...un proftpd-mod-ld <keine> (keine Beschreibung vor...un smbldap-tools <keine> (keine Beschreibung vor...un sudo-ldap <keine> (keine Beschreibung vor...un umich-ldap-uti <keine> (keine Beschreibung vor...un umich-ldapd <keine> (keine Beschreibung vor...
Sie können auch feststellen, welche Datei durch welches Paket installiertPaketinhalt
wurde. Dabei hilft Ihnen die Option -S Der folgende Aufruf ermittelt,dass das Programm testparm zum SAMBA-Paket gehört.
debian # dpkg -S testparmsamba-doc: /usr/share/doc/samba-doc/...pages/testparm.1.htmlsamba-common-bin: /usr/share/man/man1/testparm.samba3.1.gzsamba-common-bin: /usr/bin/testparm.samba3
Wenn Sie die grafische Oberfläche GNOME verwenden, ist das ProgrammGNOME-Version
GDebi installiert, das die Funktionalität von dpkg enthält. Wenn eine Pa-ketdatei auf dem Desktop liegt, können Sie sie mit der rechten Maustasteanklicken und aus dem Menü den Punkt Mit GDebi öffnen auswäh-
56
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 57 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
Source-Pakete manuell installieren 1.3
len. Das Programm GDebi wird ein paar Informationen über das Paketausgeben und eine Installation anbieten.
Abbildung 1.9 GDebi: GNOME-GUI für dpkg
GDebi wird prüfen, ob die Paketabhängigkeiten erfüllt sind, und abbre-chen, wenn dies nicht der Fall ist. GDebi wird die Abhängigkeiten nichtauflösen und keine weiteren Pakete hinzuziehen.
1.3 Source-Pakete manuell installieren
Bei einem Open-Source-Betriebssystem sollte man es nicht für ungewöhn-lich halten, dass man auch mal ein Paket als Source bekommt und diesesinstallieren soll. Allerdings gehört dies heutzutage zu den Ausnahmen.Am ehesten kommt man in die Verlegenheit, wenn eine spezielle Hard-ware eingebunden werden muss, für die der Hersteller den Quellcode zurVerfügung stellt.
1.3.1 Vorarbeiten
Für alle Debian-Pakete können Sie den Quellcode erhalten. Das garantiertIhnen die GPL (GNU Public Licence). Der Quellcode wird als Debian-Paketgeliefert und beispielsweise mit dpkg ausgepackt.
Wenn die Quelltexte nicht in einem Debian-Paket kommen, werden sie Fremde Pakete
vermutlich als gepackte Tar-Datei geliefert. Diese können mit dem Bord-mittel tar10 ausgepackt werden. Um Speicherplatz und Transferzeit zu
10 siehe Abschnitt 15.5 ab Seite 464
57
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 58 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
1 Installation eines Debian-Servers
sparen, ist das Paket zumeist komprimiert. Sie erkennen dies an der En-dung tgz.
Sie werden für das Installieren mindestens das Programm make benötigen,Werkzeugeinstallieren das Sie, sofern Sie es nicht bereits an Bord haben, durch das Paket gleichen
Namens nachinstallieren können. Mit großer Wahrscheinlichkeit wird dieSoftware in C oder C++ geschrieben sein. Zur Übersetzung benötigen Sieden GNU-Compiler. Das Paket heißt g++.
debian # apt-get install make g++
Für das Auspacken des Pakets sollten Sie ein Verzeichnis anlegen. HatVerzeichnisanlegen der Anbieter die Daten nicht in einem Verzeichnis gebündelt, müssen Sie
ansonsten die einzelnen Dateien aus Ihren Dateien heraussuchen.
debian $ mkdir srcdebian $ mv sourcepaket.tgz srcdebian $ cd srcdebian $ tar xvz sourcepaket.tgz...
Durch die Option v können Sie sehen, wie die Daten abgelegt sind. WarVoraussetzungenprüfen der Anbieter ordentlich und hat noch ein Verzeichnis beigefügt, müs-
sen Sie nun dort hineinwechseln. Hier befindet sich meist das Programmconfigure. Dieses prüft, ob die Umgebung vorhanden ist, um das Pro-gramm zu übersetzen und zu installieren. In manchen älteren Paketenwird der gleiche Effekt durch den Aufruf von make depend erreicht.
debian $ ./configure
Das Programm configure ist recht geschwätzig. Es zählt auf, was es allesfür die Übersetzung benötigt, und stoppt, wenn etwas wirklich Wichti-ges fehlt. Sie müssen dann die fehlenden Bestandteile nachinstallieren,bevor Sie noch einmal configure aufrufen. Sobald das Programm pro-blemlos durchgelaufen ist, können Sie die Übersetzung mit dem Befehlmake starten.
debian $ make
Auch dieses Programm wird reichlich Ausgaben produzieren. Mit diesemÜbersetzung
Befehl starten Sie nämlich die Übersetzung des Pakets. Das kann zwi-schen ein paar Minuten bis zu mehreren Stunden in Anspruch nehmen,je nachdem, wie umfangreich die Software ist. Irgendwann sollte aber dieÜbersetzung zu einem erfolgreichen Ende kommen. Dann muss die Soft-ware installiert werden. Auch dafür wird das Programm make verwendet.
58
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 59 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
Source-Pakete manuell installieren 1.3
debian $ su -debian # make install
Tatsächlich funktioniert diese Form der Einrichtung in vielen Fällen sehr Nachteile
gut. Allerdings gibt es zwei erhebliche Nachteile dieses Verfahrens. Ers-tens installieren Sie am Debian-Paket-Management vorbei. AutomatischeUpdates und die Überprüfung auf Paketabhängigkeiten können mit Soft-ware, die auf diese Weise installiert wurde, nicht gelingen. Zweitens kannes sein, dass diese Übersetzung misslingt. Und sofern Sie nicht selbst pro-grammieren können, müssen Sie es lernen11, jemanden fragen, der sichdamit auskennt, oder aufgeben.
1.3.2 make macht das schon
Das Programm make ist ein wichtiges Werkzeug für Programmierer, die Abhängigkeiten
damit die Übersetzung ihrer Programme organisieren. Wenn Sie das Pro-gramm ohne weitere Parameter starten, wird es im aktuellen Verzeichniszunächst nach der Datei Makefile und dann nach der Datei makefile su-chen. In dieser findet make die Anweisungen, was es »machen« soll. ImMakefile können Regeln aus Abhängigkeiten von Dateien definiert wer-den, die zu Aktionen führen. Insbesondere wenn eine Datei nicht existiertoder älter ist als eine andere, wird die Aktion aufgerufen. Dies ist vor al-lem für Programmierer wichtig. Wenn Sie etwas an einer Quelltextdateigeändert haben, ist sie neuer als das Programm. Darum muss die Quell-textdatei vom Compiler übersetzt werden, damit eine neue Version desProgramms entsteht. Es müssen aber nicht alle Module übersetzt wer-den, sondern nur diejenigen, die geändert wurden. Am einfachsten istein Makefile anhand eines Beispiels zu verstehen.
Stellen Sie sich vor, Sie seien Programmierer und Sie wollen das Pro-gramm meinprog erstellen. Dieses besteht aus den Source-Dateien haupt.c,test.c und tools.c. Jede dieser Dateien hat eine Header-Datei (haupt.h, test.hund tools.h), die die Datei jeweils selbst einbindet. Header-Dateien ent-halten Code, der Deklarationen beinhaltet, von denen die Source-Dateienabhängen. Ändert sich eine Header-Datei, betrifft das jede Source-Datei,die sie einbindet. Dazu bindet haupt.c jede andere Header-Datei ein, undjedes Modul bindet die globalen Definitionen aus haupt.h ein. Wenn eineSource-Datei übersetzt wird, entsteht eine Objektdatei. Die aus der Über-setzung der Datei haupt.c entstehende Datei heißt haupt.o. Im letzten
11 Es gibt im Verlag Galileo Press das Buch »Einstieg in C++« von diesem außer-ordentlich sympathischen und kompetenten Autor, dessen Name mir geradenicht einfällt.
59
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 60 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
1 Installation eines Debian-Servers
Schritt werden die Objektdateien durch den Linker zusammengebunden,und es entsteht so die Datei meinprog.
test.h
test.c
test.o
haupt.h
haupt.c
haupt.o
meinprog
tools.h
tools.c
tools.o
Abbildung 1.10 Beispielprojekt für make
Sie legen nun eine Datei namens Makefile an und beschreiben darin denWeg der Übersetzung vom Quelltext zum fertigen Programm. Das Pro-gramm meinprog hängt von den Dateien test.o, haupt.o und tools.o ab. DieFormulierung in einem Makefile ist folgendermaßen:
meinprog: test.o haupt.o tools.o
Diese Zeile beschreibt die Abhängigkeit der Datei meinprog von den Da-teien test.o, haupt.o und tools.o. Man bezeichnet meinprog als »Ziel« oderenglisch als »target«. Die auf die Abhängigkeitsregel folgenden Zeilenbeschreiben, wie die Zieldatei erstellt wird.
meinprog: test.o haupt.o tools.occ -o meinprog test.o haupt.o tools.o
Die Datei meinprog wird generiert, indem der Linker mit cc -o gestartetwird. Dabei werden die Objektdateien als Parameter übergeben. SolcheAktionszeilen müssen mit einem Tabulator beginnen. Es dürfen keineLeerzeichen verwendet werden.
Nun soll make noch wissen, wie die Objektdateien erzeugt werden. DieAbhängigkeiten bestehen einerseits zur jeweiligen Source-Datei, aberauch zu jeder Header-Datei, die die Source-Datei mit einbindet.
60
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 61 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
Source-Pakete manuell installieren 1.3
test.o : test.c test.h haupt.h
tools.o : tools.c tools.h haupt.h
haupt.o : haupt.c haupt.h test.h tools.h
Die Aktionszeile ruft den Compiler mit cc -c auf. Er erzeugt eine gleich-namige Objektdatei zu der angegebenen Source-Datei.
test.o : test.c test.h haupt.hcc -c test.c
Das Programm make ermittelt nun anhand seiner Regeln, wie man mit GeringsterAufwandminimalem Aufwand Zieldateien aus den Quelldateien generieren kann.
make erkennt, wenn eine der Quelldateien neuer als die Zieldatei ist, undruft die Generierungsprogramme auf, bis die Zieldateien neuer als diejeweiligen Quellen sind oder eine Aktion scheitert.
Zusammenfassend lassen sich die Einträge in der Datei Makefile folgen-dermaßen darstellen:
Grundstruktur eines Makefile-Eintrags
<Ziel> : <Abhängigkeiten><Generierungskommando>
Diese Grundstruktur nennt man Regel. Eine neue Regel muss mit ei- Regeln
ner Leerzeile von der vorherigen getrennt werden. Denken Sie daran:Der Leerraum vor dem Generierungskommando muss ein Tabulatorzei-chen sein. Es können auch mehrere Kommandozeilen nacheinander an-gegeben werden. Alle müssen mit einem Tabulator eingerückt sein. DieKommandozeilen werden jeweils in einer separaten Shell abgearbeitet.In manchen Situationen erzeugt das Seiteneffekte, die Sie berücksichti-gen müssen. Probieren Sie einmal das folgende Beispiel für eine Makefile-Datei aus:
try :cd .. ; pwdpwd
Die Ergebnisse der beiden Aufrufe von pwd sind nicht gleich. Der Wechselmit cd .. gilt nur für die aktuelle Zeile. In der nächsten Zeile wird wiederim bisherigen Verzeichnis gearbeitet:
61
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 62 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
1 Installation eines Debian-Servers
cd .. ; pwd/home/arnold/my/src/unixpwd/home/arnold/my/src/unix/make
Hängen also Kommandos so zusammen, dass sie in einer gemeinsamenShell bearbeitet werden müssen, sollten sie in dieselbe Zeile geschrie-ben und mit Semikolons getrennt werden. Bei langen Zeilen kann miteinem Backslash die Zeile in der nächsten Zeile fortgesetzt werden. AlsKommentarzeichen gilt # in der ersten Spalte.
Variablen im Makefile
Durch die Verwendung von Variablen können die Makefiles besser struk-make arbeitetmit Variablen turiert und flexibler gestaltet werden. Wie in einer Shell können Sie auch
im Makefile einer Variablen eine Zeichenkette zuweisen und deren Inhaltdurch Voranstellen eines $-Zeichens vor den Variablennamen auswerten.
Im Beispiel werden die Objektdateien zusammen behandelt und zweimalaufgezählt; einmal in der Abhängigkeitsbeschreibung von meinprog unddann im Compileraufruf:
meinprog: test.o haupt.o tools.occ -o meinprog test.o haupt.o tools.o
Hier können Sie eine Variable OBJS für die Auflistung der Objektdateiendefinieren. Durch Einsetzen von OBJS ergibt sich folgende Makedatei:
OBJS = test.o haupt.o tools.o
meinprog: $(OBJS)cc -o meinprog $(OBJS)
Die Variablen müssen nicht im Makefile selbst definiert werden. makekann auf Umgebungsvariablen zurückgreifen, die von der aufrufendenShell festgelegt wurden.
Vordefinierte Variablen
Es ist möglich, mehrere Ziele mit einer Regel zu behandeln. So könntebeispielsweise $(OBJS) als Ziel verwendet werden. Die einzelnen Zielewerden nacheinander aufgelöst. Im Generierungskommando kann aufdas aktuelle Ziel Bezug genommen werden. Dazu gibt es vordefinierteVariablen, die in Tabelle 1.2 am Beispiel haupt.o aufgezeigt werden.
62
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 63 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
Source-Pakete manuell installieren 1.3
Variablen Bedeutung
$@ Dateiname des Ziels (haupt.o)
$* Basisname des Ziels (haupt)
Tabelle 1.2 Vordefinierte make-Variablen
Suffixregeln
Die Suffixregeln beschreiben den Übergang einer Dateiendung zu eineranderen. Eine solche Regel erkennen Sie daran, dass als Ziel die zwei Da-teiendungen mit dem jeweiligen Punkt am Anfang direkt hintereinanderstehen:
.quell.ziel:
Der typischste Übergang ist sicher der von C-Sourcen zu Objekten. DieSourcen enden auf .c und die Objektdateien auf .o. Die entsprechendeSuffixregel lautet dann:
.c.o:cc -c $<
Die interne Variable $< darf nur bei Suffixregeln verwendet werden undbezeichnet das aktuelle Ziel.
Mehrere Ziele
Ein Makefile kann mehrere Programme generieren. Diese Fähigkeit wird Voneinanderabhängige Zieledann eingesetzt, wenn gleiche Quelltexte für mehrere Projekte gebraucht
werden, die vielleicht sogar noch voneinander abhängig sind. Ein typi-sches Beispiel sind Client- und Serverprogramme, die in den Headerngleiche Datenstrukturen verwenden:
all: client server
client: $(SENDHEADER) $(COMMONOBJS) $(CLTOBJS)...
server: $(SENDHEADER) $(COMMONOBJS) $(SRVOBJS)...
Das erste Ziel ist immer das Ziel des gesamten Makefiles. In diesem Fall Zielabhängigkeiten
würde also beim Aufruf von make erst das Ziel »all« generiert werden. Daes keinerlei verbundene Aktion gibt, wird lediglich geprüft, ob die Ab-hängigkeiten erfüllt sind. Entsprechend wird als Nächstes das Ziel »client«und dann das Ziel »server« gebildet. Es ist nicht zwingend, aber üblich,
63
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 64 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: make , Aktueller Job: debian
1 Installation eines Debian-Servers
das Pseudoziel, das alle Programme eines Makefiles generiert, »all« zunennen.
Wenn Makefiles zur Installation verwendet werden, wird ein Pseudozielmake alsInstallationstool »install« eingeführt, das überprüft, ob alle Dateien des Projekts an den
richtigen Stellen vorhanden sind, und ansonsten als Aktion einfache Ko-pierbefehle absetzt. Sie können das Ziel »install« direkt als Parameter vonmake aufrufen:
make install
64
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 103 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
»Das ist meine Mupfel!«Der Pinguin Ping in »Urmel aus dem Eis«
4 Die Shell
Der Kommandointerpreter unter UNIX wurde von Anfang an Shell ge-nannt. Verschiedene Shells wurden im Laufe der Jahrzehnte entwickelt,immer wieder verbessert und verändert. Unter Linux wurde die Shellstark erweitert und unter dem Namen bash (Bourne Again Shell) zurStandard-Shell.
Die Leistungsfähigkeit der Shell führt dazu, dass erfahrene Linux-Anwen- Leistungsfähig
der immer wieder die Maus zur Seite schieben und ein paar kurze Befehleper Tastatur eingeben. In vielen Fällen geht dies schneller als mit jedergrafischen Oberfläche.
Wenn Sie einen Server betreiben, werden Sie feststellen, dass viele Ar-beiten von der Konsole aus schneller gehen. Insbesondere können dieKommandos zu Skripten zusammengefasst werden, die bestimmte Ab-läufe steuern. Ein wichtiger Aspekt ist, dass die Shell über das Netzwerkaufgerufen werden kann und damit eine vollständige Administration ausder Ferne möglich ist.
Shell-Spaltereien
Welche Shell nach dem Einloggen gestartet wird, steht in der Datei Login-Shell
/etc/passwd1. Eine Shell, die auf diese Weise gestartet wird, bezeichnetman als interaktive Login-Shell. Sie können eine Shell aber auch direktaus einer anderen Shell oder durch das Starten einer Terminalemulationder grafischen Oberfläche starten. Eine solche Shell ist keine Login-Shell,aber dennoch eine interaktive Shell.
Es gibt auch nicht interaktive Shells. Diese dienen als reiner Komman- Nicht interaktiveShell dashdointerpreter zur Ausführung eines Shell-Skripts. Mit dem Ende des
Skripts endet auch die Shell. Unter Debian Squeeze wird dash als Nach-fahre der ash als nicht interaktive Shell eingesetzt, da sie sehr schnell undklein ist.
1 siehe Abschnitt 13.2 Seite 417
103
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 104 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Der POSIX-Standard fordert nach POSIX.2, dass jedes konforme Betriebs-Shell und POSIX
system durch den Aufruf von sh eine POSIX-konforme Shell startet. DaPOSIX ein Mindeststandard ist, wird diese Forderung von der komforta-blen bash erfüllt.
4.1 Shell-Start
Im EDV-Raum stand früher am UNIX-Server immer noch ein Terminal,das über eine serielle Schnittstelle angeschlossen war. Diese ermöglichteauch dann noch den Zugang zum Server, wenn das Netzwerk zusammen-gebrochen war.
Bei Linux sind solche Terminals bereits im System integriert. Wenn SieSechs Konsolen
vor der grafischen Oberfläche eines Linux-Systems sitzen, können Sie mitder Tastenkombination
��
��Strg +��
��Alt +��
��F1 auf die erste Konsole umschal-
ten. Wenn Sie��
��Alt +��
��F2 drücken, kommen Sie auf eine weitere Konsole.
Standardmäßig sind sechs Konsolen eingebaut. Durch die Tastenkombi-nation
��
��Strg +��
��Alt +��
��F7 kommen Sie wieder zurück in die grafische
Umgebung.
Mit der Tastenkombination��
��Strg +��
��Alt +��
��F8 erhalten Sie eine Fehler-
konsole, auf der Sie die letzten Systemmeldungen finden, die Debian fürberichtenswert hält.
Auf diese Methode können Sie eine Notadministration auch dann nochSerielles Terminal
durchführen, wenn im Netzwerk gar nichts mehr geht. Theoretisch kannes Ihnen natürlich passieren, dass die grafische Oberfläche nicht mehrmitarbeiten will oder die Tastatur blockiert. Auch dagegen können Siesich noch absichern. Falls Sie an Ihrem Server noch eine serielle Schnitt-stelle haben und auf dem Dachboden noch ein serielles Terminal finden,können Sie es auch heute noch an Ihren Debian-Server anschließen. Soll-te Ihnen diese Hardware fehlen, können Sie mit einem gängigen USB-RS232-Adapter und einer Terminalemulation auf einem Notebook dengleichen Effekt erzielen. Ob Sie eine solche Umgebung aufbauen wollen,hängt ganz von Ihren persönlichen Sicherheitsbedürfnissen ab.
Sehr viel wahrscheinlicher wird es sein, dass Sie aus der grafischen Ober-Grafisches Terminal
fläche eine Terminalsitzung öffnen. Bei GNOME erreichen Sie über An-
wendungen • Zubehör • Terminal eine Terminalemulation im Fenster.Der Vorteil dieser grafischen Terminals ist die Möglichkeit, beliebig vieledavon aufrufen zu können. So haben Sie Ihre Terminalsitzungen direkt
104
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 105 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Befehlsempfänger 4.2
nebeneinander und können sie sogar noch durch Farbgebung nach Tätig-keitsgebiet markieren.
Sie können sich auf Ihrem Server auch über das Netzwerk anmelden. Fernbedienungper sshDazu verwenden Sie ssh2. Auf diesem Weg können Sie Ihren Server
administrieren, obwohl Sie sich sehr weit davon entfernt befinden. Auchin diesem Fall arbeiten Sie über eine Kommandoeingabe der Shell.
4.2 Befehlsempfänger
Wenn Sie eine Terminalsitzung eröffnet haben, finden Sie an jedem Zei-lenanfang einen sogenannten »Prompt«. Unter Debian steht darin stan-dardmäßig der Hostname und der aktuelle Pfad. Es folgt ein Dollarzeichenbei normalen Benutzern oder ein Doppelkreuz, falls Sie als root angemel-det sind. Daneben blinkt der Cursor. Dort geben Sie Ihre Kommandos einund schließen sie mit der Return-Taste ab. Diese Eingaben gehen an dieShell. Sie übernimmt die Interpretation der Befehle und ruft zur Ausfüh-rung das Betriebssystem oder die angesprochenen Programme auf.
4.2.1 Befehl, Optionen, Argumente
Ein Befehl beginnt mit dem Befehlsnamen. Dieser bezeichnet meist einProgramm. Es gibt allerdings auch Befehle, die die Shell selbst interpre-tiert.
Es folgen ein oder mehrere Leerzeichen, um die Parameter vom Befehls- Leerzeichen istTrennzeichennamen zu trennen. Auch die Parameter werden voneinander durch Leer-
zeichen getrennt. Parameter unterteilen sich in Optionen und Argumente.
Optionen sind an einem Minuszeichen zu erkennen. Sie bewirken eine Optionen
Veränderung der Programmausführung. Werden mehrere Optionen mit-gegeben, können diese direkt hintereinandergeschrieben werden, undnur ein Minuszeichen muss am Anfang vergeben werden. Statt -l -a
kann es also auch -la heißen.
Neuere Programme verwenden gern Wörter als Optionen. Zur Unter- Doppel-Minus
scheidung von kombinierten Optionen benutzen sie meistens zwei Bin-destriche3.
2 siehe Abschnitt 9.3 Seite 3103 Eine Ausnahme bildet beispielsweise find, das Optionswörter, aber nur einen
Bindestrich verwendet.
105
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 106 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Schließlich haben die meisten Befehle Argumente. Dies sind die Objekte,Argumente
auf denen die Befehle ausgeführt werden sollen, meist Dateien oder Ver-zeichnisse. Je nach Art des Befehls kann es gar keine oder beliebig vieleArgumente geben. Die Argumente werden durch Leerzeichen getrennt.Sie können auch durch sogenannte Wildcards beschrieben werden.4
Um Befehl, Option und Argument etwas anschaulicher darzustellen, grei-fen wir auf den alten Schlager »Und dann hau ich mit dem Hämmerchenmein Sparschwein« von Chris Howland zurück. Auf einer Linux-Konsolewürde Chris Howland es vielleicht so formulieren:
debian $ hau --haemmerchen sparschwein
Der Befehl hau wird aufgerufen. Die Option --haemmerchen besagt, aufwelche Weise der Befehl ausgeführt wird und sparschwein ist das Argu-ment, auf das der Befehl wirkt.
4.2.2 Befehlspfade
Externe Befehle sind Programme, die sich irgendwo im VerzeichnisbaumPATH
befinden können. Damit der Computer nicht bei jedem Befehl eine kom-plette Hausdurchsuchung der Festplatte ausführt, werden die Befehle nurin bestimmten Verzeichnissen abgelegt. Die Namen der Verzeichnissewerden in der Reihenfolge der Wichtigkeit in der UmgebungsvariablenPATH notiert. Die Verzeichnisnamen werden durch Doppelpunkte von-einander getrennt.5
Da die Pfade in einer Variablen stehen, können für Anwender und Admi-nistrator unterschiedliche Pfadfolgen verwendet werden. Jeder Benutzerkann seinen Pfad individuell ändern, indem er den Inhalt der Variablenim Startskript ändert.
Der Befehl which
Wenn Sie nachvollziehen wollen, welche Programme die Shell verwen-which, whereis
det, können Sie die Befehle whereis und which zurate ziehen. Der Unter-schied zwischen den Strategien ist meist nur geringfügig.
Der Befehl which: Welches Programm wird gestartet?
which <Befehl>
4 Wildcards siehe Abschnitt 4.2.3 Seite 1085 siehe Abschnitt 4.7.2 Seite 132
106
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 107 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Befehlsempfänger 4.2
Der Befehl which ermittelt, wo sich das Programm befindet, das als Argu- Pfadbestimmung
ment angegeben wird. Wenn Sie einen Befehl eingeben, durchsucht dieShell die Befehlspfade anhand der Umgebungsvariablen PATH nach dempassenden Programm.
Das erste Programm im Pfad, das dem Namen entspricht, wird inklusiveseines Pfades angezeigt. Wenn es also mehrere Programme gleichen Na-mens im Suchpfad gibt, zeigt das Programm which an, welches Programmdavon ausgeführt wird. Im folgenden Beispiel wird der Pfad des Skriptscddasi angezeigt.
debian $ which cddasi/home/arnold/bin/cddasi
Anhand des Pfades lässt sich also erkennen, dass es sich bei cddasi nichtum ein Systemprogramm handelt, sondern um ein Skript, das der An-wender selbst geschrieben hat.
Der Befehl whereis: Suchen nach einem Programm
whereis <Befehl>
Ein naher Verwandter dieses Befehls ist whereis. Er wird genauso auf- Standardorte
gerufen wie which und liefert auch den Pfad eines Programms. Darüberhinaus zeigt er aber auch den Ort der Manpage. Das Programm whereis
folgt nicht der Variablen PATH, sondern durchsucht die typischen Pfade,in denen das gesuchte Programm stehen könnte. Aus diesem Grund wür-de whereis das Skript cddasi nicht finden. Dafür findet der Befehl denPfad von Administrationsprogrammen, die gar nicht im Pfad des norma-len Benutzers stehen. Im folgenden Beispiel zeigt whereis sowohl denPfad des Befehls ifconfig6 als auch dessen Manpage, obwohl dieser Be-fehl nur im Pfad des Superusers root liegt und bei Aufruf durch normaleBenutzer nicht gefunden würde.
debian $ whereis ifconfigifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
Der Befehl which ifconfig meldet tatsächlich keinen Pfad. Und auch derAufruf von ifconfig erzeugt eine Fehlermeldung, da der Pfad /sbin nichtin der Variablen PATH der normalen Anwender aufgeführt ist. Dagegenführt der Aufruf mit dem Pfad auch für den normalen Benutzer zu einemErgebnis. Tatsächlich ist der Befehl für den Normalbenutzer sogar recht
6 Der Befehl ifconfig zeigt und ändert die Netzwerkschnittstellen des Systems(siehe Abschnitt 7.3.4 Seite 251).
107
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 108 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
hilfreich, wenn es darum geht, festzustellen, ob der eigene Computerkorrekt ins Netzwerk eingebunden ist.
debian $ /sbin/ifconfigeth0 Protokoll:Ethernet Hardware Adresse 00:19:7D:4C:FD:0B
inet Adresse:192.168.109.101 Bcast:192.168.109.255...
4.2.3 Zugriff auf mehrere Objekte
Sollen mehrere Dateien als Argumente für einen Befehl verwendet wer-Argumentliste
den, lassen sie sich meist einfach aufzählen. Die meisten Kommando-zeilenprogramme sind so geschrieben, dass sie beliebig viele Dateien alsArgumente akzeptieren. Um die Aufzählung zu vereinfachen, können Siedurch eine Maske mehrere Dateien zusammenfassen. Die Shell sucht dieauf die Maske passenden Dateien zusammen und übergibt sie dem auf-gerufenen Programm als Liste.
Wildcards: *, ? und die eckigen Klammern
Um Dateien mit ähnlichen Namen zu ermitteln, wird meist der Stern alsStern
Platzhalter für die Zeichen verwendet, die sich unterscheiden. Der Sternsteht als Ersatz für beliebig viele Zeichen. An der Stelle des Sterns kannauch gar kein Zeichen stehen. Die folgende Liste zeigt einige Beispiele fürArgumente des Befehls ls:
� ls prog* – alle Dateien, die mit prog anfangen.
� ls *mein – alle Dateien, die mit mein aufhören.
� ls OS*.c – alle Dateien, die mit OS anfangen und mit .c aufhören.
� ls *dat* – alle Dateien, die dat im Namen enthalten.
Soll eine genaue Anzahl von Zeichen freigehalten werden, benutzt manFragezeichen
das Fragezeichen. Es steht für genau ein Zeichen. M??s steht also für Maus,Mais oder Muks. Murks würde nicht passen, da die drei Buchstabenzwischen M und s nicht zu den zwei Fragezeichen passen. Auch eineKombination aus Fragezeichen und Sternen kann sinnvoll sein. Wennman beispielsweise alle Dateien und Verzeichnisse, die mit einem Punktbeginnen, löschen möchte,7 sollte man lieber nicht rm -r .* eingeben.Da der Stern auch die leere Zeichenkette symbolisiert, würden damit das
7 Es ist übrigens keine gute Idee, diese Dateien aus dem Benutzerverzeichnis zulöschen. Sollten Sie es dennoch gerade getan haben, vergessen Sie bitte, wo Siedas gelesen haben.
108
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 109 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Befehlsempfänger 4.2
aktuelle und das Elternverzeichnis ausgeräumt. Das Elternverzeichnis istdas davor liegende Verzeichnis und wird mit .. angesprochen. Besser istda der Gedanke, mit rm -r .??* zu arbeiten. Damit werden dann weder. noch .. getroffen, da beide nicht aus drei Zeichen bestehen. Allerdingswürde auch die Datei .ab erhalten bleiben.
Neben diesen Wildcards gibt es noch die Möglichkeit, mit den recht- Eckige Klammern
eckigen Klammern gewisse Alternativen für ein Zeichen zu verwenden.Beispielsweise bedeutet [Mm]akefile, dass die Datei makefile oder Make-file heißen kann. Die Maske [A-Z][0-9]?* beschreibt alle Dateien, derenNamen mit einem Großbuchstaben beginnen. Darauf muss eine Zifferfolgen. Außerdem muss der Dateiname mindestens aus drei Zeichen be-stehen.
Sonderzeichen als Parameter
Es kommt vor, dass ein Befehlsparameter ein Zeichen enthält, das vonder Shell interpretiert wird. Um diesen an ein Programm zu übergeben,muss das Sonderzeichen vor der Interpretation durch die Shell geschütztwerden.
Bei einzelnen Zeichen verwenden Sie dazu einfach einen Backslash (\). Backslash
Der deutsche Begriff dafür heißt wörtlich übersetzt »rückwärtiger Schräg-strich«. \* steht für einen Stern, \? für ein Fragezeichen im Namen. Wennein Dateiname ein Leerzeichen enthält, muss auch diesem ein Backslashvorangestellt werden, damit die Shell nicht aus dem einen Namen zweimacht.
Alternativ kann das Argument auch in Anführungszeichen (”) oder Hoch- Anführungszeichen
kommata (’) gesetzt werden. In diesem Fall interpretiert die Shell nicht dieSonderzeichen, sondern reicht sie direkt an das aufgerufene Programmweiter. Der Unterschied zwischen beiden ist, dass Variablen in Anfüh-rungszeichen noch aufgelöst werden, in Hochkommata nicht.8
4.2.4 Fehler
Jedes Programm liefert nach seiner Fertigstellung Fehlernummern zu- Fehlernummern
rück. Systemweit einheitlich ist, dass die Rückgabe von Null dafür steht,dass das Programm fehlerfrei beendet wurde. Jede andere Nummer giltals Fehler. Die Bedeutung der jeweiligen Fehlernummer legt allerdingsjedes Programm selbst fest.
8 siehe Abschnitt 4.8.2 Seite 141
109
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 110 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Auf dem Bildschirm erscheinen im Fehlerfall Meldungen, die vom auf-Fehlermeldung
gerufenen Programm stammen. Die Shell meldet sich, wenn sie das auf-gerufene Programm nicht kennt oder die Struktur des Befehls ihr nichtbehagt. So könnte nach dem Aufruf von abcdefg eine Meldung wie diefolgende erscheinen:
abcdefg: command not found.
Da es kein Programm namens abcdefg gibt, wird die Shell melden, dasssie diesen Befehl nicht ausführen konnte.
Kommt ein korrekt aufgerufenes Programm mit der Eingabe nicht zu-Fehlermeldung desProgramms grep recht, meldet es sich. Zum Beispiel erscheint nach der Eingabe grep o p
folgende Meldung:
debian $ grep suchwas dateigrep: datei: No such file or directorydebian $
Der Befehl grep sucht die Zeichenfolge »suchwas« in der Datei namensdatei, die es offenbar nicht gibt.9
4.3 Kommandos verknüpfen
Idealerweise erledigt jedes Programm genau seine Aufgabe und liefert ei-Kurz und knapp
ne Ausgabe, die von anderen Programmen wieder als Eingabe verwendetwerden kann. Die Shell stellt über Pipes die Verbindung her. So ist esmöglich, die Programme wie Legosteine miteinander zu verbinden.
4.3.1 Ein- und Ausgabe als Datenstrom
Die Tastatureingabe und die Bildschirmausgabe werden jeweils als Dateistdin und stdout
aufgefasst. Die Standardeingabe heißt stdin und die Ausgabe stdout. Diemeisten Programme erwarten ihre Eingaben von stdin und schreiben ihreErgebnisse nach stdout.
Es gibt einen zweiten Ausgabekanal, der für die Ausgabe von Fehlermel-stderr
dungen verwendet wird und darum stderr heißt. Im Normalfall wird erwie stdout auf dem Bildschirm ausgegeben. Wenn Sie aber die Ergeb-nisse von Programmen zur Weiterverarbeitung umleiten, können Sie dieFehlermeldungen auf dem Bildschirm belassen. Dort stören sie nicht die
9 grep siehe Abschnitt 5.6.3 Seite 202
110
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 111 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Kommandos verknüpfen 4.3
Weiterverarbeitung, und Sie können sofort erkennen, wenn ein Fehlerauftritt.
Wenn die Tastatureingaben als Datei interpretiert werden, ist es von Zeit Dateiende-kennungzu Zeit erforderlich, mit der Tastatur ein Ende der Datei zu simulieren.
Dafür dient die Tastenkombination��
��Strg +��
��D am Anfang der Zeile. Wenn
Sie dies in der Eingabeaufforderung einer Shell tun, geht diese vom Endeder Verarbeitung aus und beendet sich selbst.
4.3.2 Datenströme umleiten
Wenn Sie die Ausgabe eines Befehls in eine Datei umlenken wollen, Größerzeichen
hängen Sie das Größerzeichen an das Ende der Befehlszeile, gefolgt vondem Namen der Ausgabedatei.
debian $ ls -l > ausgabedateidebian $
Der Befehl ls -l zeigt die Langform aller Dateinamen im aktuellen Ver- Zieldatei
zeichnis an. In dem Befehl wurde diese Ausgabe in die Datei namensausgabedatei umgeleitet. Darum erscheint sofort der Prompt wieder. Inder Datei finden Sie nun die Ausgabe des Befehls. Sie könnten sie weiterbearbeiten oder als Protokoll archivieren.
So wie es möglich ist, die Ausgabe umzuleiten, können Sie auch die Ein- Eingabeumleitung
gabe umleiten. Dazu verwenden Sie das Kleinerzeichen. Auch dies wirdan das Ende des Befehls angehängt, gefolgt von der umzuleitenden Da-tei. Auf diese Weise können Sie bei Programmen, die mehrere Eingabennacheinander einfordern, Ablaufszenarien vorbereiten und diese mit ei-nem einzigen Befehl ablaufen lassen.
debian $ navi < TanteAnna
Im Beispiel wird dem Navigationsprogramm navi der Inhalt der DateiTanteAnna zugeführt. In dieser Datei könnte beispielsweise folgenderInhalt stehen:
61250UsingenFriedrich-Stengel-Str. 1j
Diese fünf Zeilen antworten auf die Eingaben, auf die das Programmnavi wartet: »Postleitzahl«, »Ort«, »Straße und Hausnummer«, »sofortstarten«. Wie von Zauberhand geführt, wird das Programm automatischweiterlaufen.
111
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 112 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Sie können sowohl die Eingabe als auch die Ausgabe umleiten, wie dasfolgende Beispiel zeigt:
sort <eingabedatei >ausgabedatei
Auf diese Weise wird die Datei eingabedatei als Eingabe für den Sortier-befehl verwendet und die Ergebnisse werden in der Datei ausgabedateiabgelegt.
Beim Umleiten einer Ausgabe wird die Zieldatei zunächst geleert. DiesenDatei stutzen
Effekt kann man nutzen, wenn eine Protokolldatei zu groß wird. Da sol-che Dateien von anderen Prozessen beschrieben werden, kann man sienicht einfach löschen. Auch wenn man die Datei unter diesem Namenwieder neu erzeugt, ist es nicht dieselbe Datei, die der Hintergrundpro-zess bearbeitet hatte. Mit dem Größerzeichen und dem Dateinamen wirddie Datei sofort auf 0 Byte zurückgesetzt.
> /var/log/messages
Nicht immer soll der Inhalt der Datei gelöscht werden, in die man dieAusgabeanhängen: >> Ausgabe umleitet. Verwendet man statt eines Größerzeichens zwei, so
wird die Ausgabe an die existierende Datei angehängt.
Um stderr umzuleiten, wird eine 2 vor das Größerzeichen geschrieben.stderr umleiten: 2>
Dies ist beispielsweise wichtig, wenn die Fehlermeldungen eines Compi-lers in einer Datei aufgefangen werden sollen.10
g++ mistprogramm.c 2>fehlerliste
Um stdout und stderr in die gleiche Datei umzuleiten, wird dem Umlei-tungszeichen ein kaufmännisches Und Zeichen vorangestellt.
g++ mistprogramm.c &> fehlerliste
Befehl Wirkung
g++ haus.c > out Umleitung der Standardausgabe, Fehler am Terminal
g++ haus.c 2> out Umleitung der Fehler, Standardausgabe am Terminal
g++ haus.c &> out Umleitung der Standardausgabe und der Fehler
Tabelle 4.1 Umleitungen
Manchmal entstehen Ausgaben, die nur stören. Um sie loszuwerden, kön-/dev/null
nen Sie sie einfach in die für solche Zwecke vorgesehene Datei /dev/nullumleiten. Alle Daten, die auf diese Pseudodatei umgeleitet werden, ver-schwinden auf Nimmerwiedersehen.
10 Das funktioniert nicht in der C-Shell.
112
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 113 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Kommandos verknüpfen 4.3
4.3.3 Durch die Röhre schicken
Die Umleitung der Dateieingaben und -ausgaben kann auch so gestaltetwerden, dass ein Programm die Ausgaben eines anderen Programms alsEingabe erhält. Eine solche Verknüpfung wird als »Pipe« bezeichnet. Syn-taktisch wird ein senkrechter Strich zwischen den Aufruf der Programmegesetzt. Ein typisches Beispiel ist die Anzeige eines längeren Verzeich-nisses, das zur leichteren Betrachtung seitenweise ausgegeben werdensoll. Der Befehl ls -l erzeugt die Ausgabe, die an das Programm more
weitergeleitet wird. Die Aufgabe von more ist es, den Dateneingang sei-tenweise anzuzeigen und jeweils zum Seitenende auf den Tastendruckdes Anwenders zu warten.
ls -l | more
Durch den senkrechten Strich | wird eine Pipe aufgebaut, die die Ausga- SeitenweisesBlätternbe des links stehenden Kommandos in die Eingabe des rechts stehenden
Kommandos umleitet. Programme, die im Datenstrom einer Pipe ver-wendet werden, nennt man Filter.
Die Pipe lenkt nur die Standardausgabe um. Der Fehlerkanal wird auf dem Fehlerkanal
Bildschirm ausgegeben. Sie können aber ähnlich wie bei der Umleitungden Fehlerkanal und die Standardausgabe gebündelt in die Pipe senden,indem Sie hinter den senkrechten Strich ein kaufmännisches Und (&)stellen.
verarbeite |& protokolliere
Im obigen Beispiel würde das Ergebnis des Skripts verarbeite durchdas Skript protokolliere übernommen werden, und zwar sowohl dieAusgabe als auch der Fehlerkanal.
Einige Programme geben ihre Ergebnisse nicht auf stdout aus, sondern be- Bindestrich alsDateinamenutzen immer eine Ausgabedatei. Auch benannte Dateien können in eine
Pipe umgeleitet werden. Dazu wird statt des Dateinamens ein Bindestrichverwendet. Umgekehrt kann auch statt der Eingabedatei ein Bindestrichverwendet werden.
Ein Beispiel für eine solche Pipe ist das Kopieren eines Verzeichnisbaums Verzeichniskopieper tardurch das Datensicherungsprogramm tar11. Zunächst wird tar aufgerufen,
um den aktuellen Verzeichnispfad in eine Datei zu sichern. In diesembesonderen Fall wird dies eine Pipe sein, also erhält der Befehl statt desDateinamens einen Bindestrich. Es folgt der senkrechte Strich als Zeicheneiner Pipe.
11 siehe Abschnitt 15.5 Seite 464
113
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 114 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Nach dem Aufbau der Pipe wird in das Zielverzeichnis gewechselt. DortZielwechsel
soll der Datenstrom wieder in Dateien umgewandelt werden. Um denInhalt der Pipe auszulesen, wird wiederum der Bindestrich verwendet.Hier der komplette Befehl, der den Inhalt des Verzeichnisses /home/paulin das Verzeichnis /home/johannes sichert:
debian $ cd /home/pauldebian $ tar cf - . | ( cd /home/johannes ; tar xfp - )
Datenabzweigung: tee
Die Daten, die per Pipe von einem zum anderen Programm gelangen,Ausgabevervielfältigen sind nach außen nicht sichtbar. Manchmal werden die Daten, die durch
die Pipe geleitet werden, später noch einmal für andere Zwecke benötigt.In diesem Fall können Sie das Kommando tee, gefolgt von einem Datei-namen, in die Pipe einfügen. Dann wird der aktuelle Datenstrom in dieseDatei kopiert, während die nächste Anwendung in der Pipe trotzdem denDatenstrom unverändert weiterverarbeiten kann. Beispiel:
debian $ ls | tee out | wc
In der Datei out befinden sich nach der Ausführung des Befehls die Datei-Abzweigung
namen des aktuellen Verzeichnisses, während die Ausgabe des Befehls dieAnzahl der Dateien darstellt. Das Programm tee bildet also das T-Stückim Datenstrom und zweigt Daten in die angegebene Datei ab.
4.3.4 Quoting: Befehle verschachteln
Bei der Pipe werden die Ergebnisse des Programms als Input eines an-Argumentliste
deren Programms verwendet. Sollen die Ergebnisse als Argumentlisteverwendet werden, benutzt man das Quoting.
Nehmen wir an, Sie möchten alle C++-Sourcen editieren, in denen dieFunktion TuDochWasEgon verwendet wird. Der Befehl grep12 listet mitder Option -l alle Dateien, die den übergebenen Suchbegriff enthalten.Diese Liste der Dateien könnte dem Editoraufruf als Parameter überge-ben werden. Damit der Editor diese Liste als Parameter bekommt, wirdder grep-Befehl in rückwärtige Hochkommata (backquotes) gesetzt.13 Aufamerikanischen Tastaturen finden Sie den Backquote rechts neben demApostroph. Auf einer deutschen Tastatur befindet er sich rechts nebendem
��
��ß in Kombination mit der Hochstelltaste.
12 siehe Abschnitt 5.6.3 Seite 20213 Von manchen Anwendern wird dieses Zeichen auch »Rückwärtsdüdel« genannt.
Leider kann ich für die korrekte Schreibweise nicht garantieren.
114
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 115 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Kommandos verknüpfen 4.3
debian $ vi `grep -l TuDochWasEgon`
Dieser Mechanismus ist auch sehr praktisch, um Dateilisten anzufertigen, Dateilisten
die von Skripten oder Befehlen verarbeitet werden sollen. Dazu schreibenSie die betroffenen Dateinamen in eine Datei und lassen sie vom Befehlcat ausgeben.
debian $ verarbeite `cat Dateiliste`
In diesem Fall wird der Inhalt der Datei Dateiliste mit cat14 ausgegeben cat als Quelle
und so als Argumentliste dem Skript verarbeite übergeben. Man könntedie Datei Dateiliste als Liste der Dateien zu einem Programmierprojektbenutzen. Um diese zu übersetzen, könnte der folgende Befehl abgesetztwerden:
debian $ g++ -o projekt `cat Dateiliste`
Eine Sicherung der Quelltexte könnte die gleiche Datei verwenden:
debian $ cp `cat Dateiliste` /usr/projekt/backup
Leider sind die Backquotes optisch kaum von einem Apostroph zu unter- Alternativ-schreibweisescheiden, haben aber eine völlig andere Bedeutung. Als Alternativschreib-
weise bietet die bash an, den in Backquotes stehenden Ausdruck einzu-klammern und ein Dollarzeichen voranzustellen. Damit sind die beidenunten stehenden Ausdrücke gleichbedeutend:
debian $ verarbeite `cat filelist`debian $ verarbeite $(cat filelist)
4.3.5 Von der Shell Prozesse steuern
Wenn Sie von der Shell ein Programm aufrufen, wird die Shell gestoppt Elternschaft
und wartet, bis das Programm endet. Anschließend steht sie für neueAbenteuer zur Verfügung. Mit dem Aufruf des Programms wird ein neu-er Prozess geboren. Die Shell ist der Elternprozess, und jedes von derShell gestartete Programm ist ihr Kindprozess. Damit hat jeder Prozesseinen eindeutigen Elternprozess. Der Elternprozess wartet immer aufden Kindprozess und wertet dessen Rückgabewert aus.
In bestimmten Fällen möchten Sie aber dieses Warten durchbrechen und Ampersand
Prozesse im Hintergrund arbeiten lassen, während Sie im Vordergrundweiterarbeiten. Um ein Programm in den Hintergrund zu starten, setzenSie einfach ein kaufmännisches Und (&) hinter den Aufruf. Dieses Zei-chen wird schon wegen des holprigen deutschen Namens gern mit dem
14 cat siehe Abschnitt 5.6.1 Seite 201
115
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 116 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
englischen Begriff »Ampersand« bezeichnet. Das folgende Beispiel zeigt,wie ein Kompilierlauf15 in den Hintergrund gestellt wird:
debian $ g++ meinprogramm.cpp &[1] 13147debian $...debian $[1]+ Exit 1 g++ meinprogramm.cppdebian $
Die Ausgaben dieses Kompilierlaufes werden allerdings weiterhin aufdem Terminal angezeigt, mit dem Sie weiterarbeiten. Das kann lästigwerden, wenn im Vordergrund andere Programme laufen. Aus diesemGrund empfiehlt es sich, die Ausgaben von Hintergrundprozessen in Da-teien umzuleiten.
debian $ g++ meinprogramm.cpp >out 2>err &[1] 13147debian $...debian $[1]+ Exit 1 g++ meinprogramm.cpp >out 2> errdebian $
Jobs
Neben der PID führt die bash für jeden in den Hintergrund gestelltenJobnummer
Prozess eine Jobnummer. Diese Nummern sind für den Anwender etwasübersichtlicher, weil sie immer wieder von vorn gezählt werden. Mitdieser Nummer können die Prozesse von der Shell aus angesprochenwerden.
Sie können Ihre Hintergrundprozesse betrachten, indem Sie den BefehlProzessbeobachter
jobs verwenden. Sie erhalten eine Übersicht über die Prozesse, die Sie inden Hintergrund gestellt haben, die aber noch nicht abgelaufen sind.
gaston> jobs[1]- Running xman &[2]+ Running xedit &gaston>
Sie können sehen, dass hier die Programme xman und xedit in den Hin-tergrund gestellt worden sind. Es ist übrigens kein Zufall, dass beide
15 Ein Compiler übersetzt den Quelltext des Programmierers in ein ausführbaresProgramm.
116
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 117 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Kommandos verknüpfen 4.3
Programme unter X laufen, also die grafische Oberfläche verwenden.Normalerweise wird man alle grafischen Programme von der Shell ausin den Hintergrund stellen. Während die Shell auf die normalen Kom-mandos warten wird, um ihr Ergebnis weiterzuverarbeiten, laufen diegrafischen Programme in direkter Interaktion mit dem Benutzer, ohnedie Shell zu benutzen. Da ist es am besten, Sie stellen diese Programmegleich in den Hintergrund.
Signale, die Prozesse morden
Ein von der Shell im Vordergrund gestarteter Prozess kann meist mit der Programmendedurch Strg+CTastenkombination
��
��Strg +��
��C abgebrochen werden. Der Prozess erhält
dadurch das Terminierungssignal SIGINT. Sofern das Programm das Signalnicht abfängt und verweigert, stirbt der Prozess.
Sie können einen Prozess auch kurzfristig anhalten. Dazu verwenden Programmunter-brechung durchStrg+Z
Sie die Tastenkombination��
��Strg +��
��Z und erzeugen damit das Signal
SIGTSTP. Es erscheint die Meldung, dass der Prozess gestoppt worden ist,und die Kommandozeile wird für weitere Eingaben frei:
debian $ xedit debian.tex^Z[1]+ Angehalten xedit debian.tex
In der rechteckigen Klammer steht die Jobnummer aus Sicht der Shell,in diesem Fall eine 1. Diese Nummer darf nicht mit der PID verwechseltwerden. Auf die Jobnummer beziehen sich die Kommandos fg, bg undkill, wenn ein Prozentzeichen vorangestellt wird.
Der Prozess wurde durch das Signal SIGTSTP angehalten. Bei einer grafi- Gestoppt
schen Anwendung erkennen Sie dies daran, dass das Fenster nicht aktua-lisiert wird, wenn Sie ein anderes Fester darüberlegen und anschließendwieder wegnehmen.
Sie können nun entscheiden, ob Sie den gestoppten Job im Vordergrund Fortsetzung folgt
oder im Hintergrund fortsetzen wollen. Sie können ihn auch vollständigstoppen. Wollen Sie den Prozess wieder durch die Shell kontrollieren,holen Sie ihn mit dem Kommando fg erneut in den Vordergrund:
debian $ fg %1
Damit wird die Situation, die vor dem Unterbrechen herrschte, wieder- Vorn oder hinten
hergestellt. Das kann sinnvoll sein, wenn man kurz das Terminal fürandere Zwecke benötigt. Soll der Prozess dagegen ab sofort im Hinter-grund laufen, verwenden Sie das Kommando bg. Dieses Vorgehen istganz typisch, wenn man einen Prozess versehentlich im Vordergrund ge-
117
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 118 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
startet hat. Mit der Tastenkombination��
��Strg +��
��Z wird der Prozess kurz
unterbrochen und mit dem Kommando bg in den Hintergrund geschickt.
debian $ bg %1
Letztendlich kann man den zunächst gestoppten Job auch terminieren:
debian $ kill %1
Insbesondere bei kill ist es wichtig, das Prozentzeichen vor der ZahlProzente sindwichtig! nicht zu vergessen, da diese Zahl die Jobnummer und nicht die PID
bezeichnet. Es wird bitter, wenn es Ihnen gelingen sollte, den Prozessmit der PID 1 abzuschießen.
4.3.6 Anweisungen gruppieren
Sie können mehrere Befehle in einer Zeile aufrufen, wenn Sie ein Se-mikolon dazwischensetzen. Das Semikolon hat die gleiche Wirkung, alshätten Sie zwischen den beiden Kommandos die Enter-Taste verwendet.Das folgende Beispiel ruft zuerst den Befehl make auf und nach dessenBeendigung den Befehl date.
debian $ make; date
Der Befehl make16 wird vor allem von Programmierern verwendet, umHintereinander
komplexere Abläufe zu starten. Diese können manchmal recht lange dau-ern, und so kann auf die oben beschriebene Weise nach Abschluss derArbeiten mithilfe des Befehls date angezeigt werden, wann der Durchlaufbeendet wurde. date zeigt neben dem Datum auch die aktuelle Uhrzeitan.
Wenn Sie die Ergebnisse beider Befehle in einem Ausgabedatei umleitenUmleiten
wollen, werden Sie feststellen, dass die Umleitung nur auf den zweitenBefehl wirkt.
debian $ make; date > ausgabedatei
Dieses Verhalten ist logisch, wenn Sie das Semikolon als Ersatz für das Be-enden des Befehls sehen. Eine Abhilfe wäre, wenn die beiden Programmejeweils eine Umleitung erhielten.
debian $ make > ausgabedatei; date >> ausgabedatei
Wichtig ist hier, dass der Befehl date zwei Größerzeichen verwendet,sonst würde die Ausgabe von make beim Start von date wieder gelöscht.
16 siehe Abschnitt 1.3.2 Seite 59
118
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 119 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Kommandos verknüpfen 4.3
Damit die beiden Kommandos zu einem zusammengefasst werden, kön- Klammersatz
nen Sie eine Klammer um beide setzen. Statt der normalen Klammerkönnen Sie auch eine geschweifte Klammer verwenden. Dann muss aberjeder Befehl mit einem Semikolon abgeschlossen werden. Im folgendenBeispiel sehen Sie den Unterschied in der Syntax.
( kommando1 ; kommando2 ) >ausgabedatei{ kommando1 ; kommando2 ; } >ausgabedatei
Die Zusammenfassung gilt nicht nur für die Ausgabeumleitung, sondernauch für das Starten der Prozesse in den Hintergrund.
Es gibt einen feinen Unterschied zwischen den beiden Klammerarten. Feiner Unterschied
Die runden Klammern laufen in einer Subshell ab. Das heißt, dass bei-spielsweise Änderungen an den Umgebungsvariablen nach Verlassen derKlammer keine Wirkung mehr haben. Wie das folgende Skript zeigt, heißtSubshell nicht, dass ein neuer Interpreterprozess gestartet wird.17
HI="hi"(echo $HI;KL=kl;echo $$){ echo $HI;GK=gk;echo $$; }echo $KL $GK
Wird das Skript gestartet, geschieht Folgendes:
debian $ . klammerhi3979hi3979gkdebian $ vi klammer
Sie sehen, dass der Inhalt von KL leer ist, obwohl die Variable in derrunden Klammer belegt wurde. Sie sehen auch, dass auf die VariableHI sowohl innerhalb der geschweiften Klammer als auch innerhalb derrunden Klammer zugegriffen werden kann, ohne dass man sie exportie-ren muss. Und Sie sehen, dass die PID in den beiden Klammerarten diegleiche ist.
Zwei Kommandos können nicht nur einfach getrennt werden. Es ist auch Abhängigkeiten
möglich, ein Kommando in Abhängigkeit davon auszuführen, ob ein an-deres Kommando Erfolg hatte. So können Sie beispielsweise ein Doku-ment mit LATEX generieren und dieses nur dann in PostScript konvertieren,wenn der erste Lauf erfolgreich war:
17 Umgebungsvariablen siehe Abschnitt 4.7.1 Seite 130
119
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 120 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
debian $ latex dokument.tex && dvips dokument
Andererseits gibt es auch den Fall, dass ein Kommando nur dann aufge-rufen werden soll, wenn der vorherige Befehl erfolglos war. So könnenSie eine Fehlermeldung ausgeben, wenn der Übersetzungslauf unbefrie-digend war:
debian $ latex dokument.tex || echo "Schlimmer Fehler"
Syntax Ausführung
prog1 ; prog2 Erst prog1, dann prog2 ausführen
prog1 && prog2 prog2 nur bei Erfolg von prog1 ausführen
prog1 || prog2 prog2 nur bei Misserfolg von prog1 ausführen
Tabelle 4.2 Start mehrerer Programme
4.4 History
Sie können zuvor abgegebene Befehle zur Wiederverwendung in dieGeschichts-schreibung Kommandozeile zurückholen. Dazu verwenden Sie die Pfeiltasten. Mit
dem Pfeil oben holen Sie die letzten Befehle zurück. In der Datei.bash_history im Benutzerverzeichnis jedes Benutzers speichert die bashdie letzten 1.000 eingegebenen Befehle. Die Datei speichert sie imKlartext. Zur Wahrung der Intimsphäre ist diese Datei für niemandenlesbar, außer dem Besitzer.
Die Datei .bash_history dient nicht etwa dem Schmökern in alten Zei-Alte Kamellenaufwärmen ten und Befehlen, sondern speichert die Befehle, um sie auf Anwender-
wunsch wieder hervorzuzaubern. Das geschieht, sobald die Pfeiltaste mitdem Pfeil nach oben gedrückt wird. Bei jedem Tastendruck geht es eineZeile weiter zurück in der Geschichte der Befehlseingaben. Die Pfeiltastenach unten geht wieder in Richtung Zukunft.
4.4.1 Funktionstasten
Sind die alten Befehle erst einmal hervorgekramt, lassen sie sich nachStandardbelegung
Herzenslust verändern. Natürlich funktionieren auch die Pfeiltasten nachlinks und rechts. Eingegebene Buchstaben werden an der Cursor-Positioneingefügt. Mit der Taste
��
��Entf kann das Zeichen unter dem Cursor ge-
löscht werden, und mit der Backspace-Taste wird das Zeichen links vomCursor entfernt.
120
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 121 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
History 4.4
Aber es gibt noch mehr Steuerungsmöglichkeiten. Sie werden feststellen,dass Sie viele der Tastenkombinationen vom Editor emacs18 her kennen.
Die Tastenkombination��
��Strg +��
��A bewegt den Cursor an den Anfang der Bewegung
Zeile, genau wie es die Taste��
��Pos1 auch bewirkt. Wenn der Anfang mit
��
��Strg +��
��A erreicht wird, überrascht es nicht, dass die Tastenkombination
��
��Strg +��
��E den Cursor ans Ende der Zeile bringt. Das Löschen des Zeichens
unter dem Cursor funktioniert, wie bereits gesagt, mit der Taste��
��Entf .
Alternativ klappt es auch mit��
��Strg +��
��D . Den Rest der Zeile löschen Sie
mit der Tastenkombination��
��Strg +��
��K .
Ein besonderes Feature ist die Befehlsvervollständigung durch die Tabu- Vervollständigung
latortaste. Wenn Sie die ersten Buchstaben eines Befehls eingeben unddann die Tabulatortaste drücken, wird der Befehlsname so weit vervoll-ständigt, wie er eindeutig bestimmbar ist. Die Vervollständigung stocktan der Stelle, an der es mehrere Möglichkeiten gibt. Mit einem weiterenDruck auf die Tabulatortaste lernen Sie auch die Kandidaten kennen, dieinfrage kommen.
Was mit dem Befehl funktioniert, geht auch bei den Dateinamen, die Argumentations-hilfeals Argument des Befehls verwendet werden. Sie geben die ersten Buch-
staben ein, drücken die Tabulatortaste, und die bash sucht aus den imaktuellen Verzeichnis vorliegenden Dateien diejenige aus, die passt. Inden neueren Versionen geht es sogar so weit, dass die bash prüft, welcheder Dateien zu dem Befehl passt. So sucht die bash nach dem Befehl cdnur Verzeichnisse heraus. Haben Sie kpdf eingegeben, werden Ihnen nurdie PDF-Dateien aus dem Verzeichnis angeboten.
Auch bei Umgebungsvariablen funktioniert es. Geben Sie echo ein Leer- Umgebungs-variablenzeichen, ein Dollarzeichen und ein paar Buchstaben ein, vervollständigt
die bash in gewohnter Art das Argument um alle denkbaren Umgebungs-variablen.
Die inkrementelle Suche verwendet wie emacs19 die Tastenkombinati- Auf der Suche
on��
��Strg +��
��R . Bei jedem Tastendruck wird in der History nach einem
passenden Befehl gesucht. Dabei schlägt die bash immer den nächstenpassenden Befehl vor.
debian $(reverse-i-search)`gr': ps -ef | grep kppp
Sie sehen im Beispiel, wie der Anwender »gr« eingegeben hat. Sie müssen SignifikanteFragmentealso nicht mit dem Anfang der Zeile beim Suchen anfangen. Im Gegenteil,
18 emacs siehe Abschnitt 5.4.2 Seite 18719 siehe Abschnitt 5.4.2 Seite 190
121
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 122 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Sie sind schneller am Ziel, wenn Sie eine markante Zeichenfolge aus derMitte wählen. Falls die angegebene Zeile es nicht ist, können Sie vor demWeitertippen auch noch einmal
��
��Strg +��
��R eingeben. Dadurch wird der
nächstältere Befehl, der »gr« enthält, herausgesucht.
Mit der Tastenkombination��
��Strg +��
��T tauschen Sie das unter dem CursorHütchenspiel
stehende Zeichen mit dem links daneben stehenden. Dabei wird derCursor um ein Zeichen weiter nach rechts versetzt.
Wenn Sie auch noch die Meta-Taste verwenden, die auf PC-TastaturenMeta-Möglichkeiten mit Alt bezeichnet ist, erhalten Sie noch ein paar weitere Möglichkeiten.
So wird��
��Alt +��
��D das aktuelle Wort ab der Cursor-Position löschen. Mit
��
��Alt +��
��T tauschen Sie das aktuelle Wort mit dem linken Nachbarn.
Taste Funktion��
��Strg +����A An den Anfang der Zeile
��
��Strg +����E An das Ende der Zeile
��
��Strg +����D Löscht das Zeichen unter dem Cursor
��
��Strg +����K Löscht bis an das Ende der Zeile
��
��Strg +����L Löscht den Bildschirm, aber nicht die Eingabezeile
��
��Strg +����R Inkrementelles Suchen
��
��Strg +����T Tauscht das Zeichen mit dem linken Nachbarn
Tabelle 4.3 Funktionstasten in bash
4.4.2 vi-Kommandos
Sollten Ihnen die Kommandos von vi lieber sein, können Sie mit demset -o vi
Befehl set -o vi dessen Tastenkombinationen aktivieren.
Danach schalten Sie mit der��
��Esc -Taste in den Editiermodus um. Sie kön-Kommandos
editieren wie in vi nen nun mit + und – die vergangenen Zeilen wieder heranziehen, bis Siezu dem Befehl gelangen, den Sie ausführen möchten. Hier können Siemit dem Schrägstrich in den bisherigen Kommandos suchen. Haben Sieden gewünschten Befehl gefunden, können Sie ihn noch modifizieren.Innerhalb der Zeile können Sie mit i einfügen und mit d löschen. Das Be-wegen innerhalb der Zeile funktioniert mit der Leertaste und Backspace,aber auch wortweise mit w und b. Wer mit vi umgehen kann, wird sichdabei wohlfühlen.
122
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 123 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
History 4.4
Kommandos Funktion
ˆ An den Anfang der Zeile
$ An das Ende der Zeile
x Löscht das Zeichen unter dem Cursor
d $ Löscht bis an das Ende der Zeile
/ Inkrementelles Suchen
Tabelle 4.4 Funktionskommandos der bash im vi-Modus
Wenn Sie wieder die emacs-Kommandos aktivieren wollen, geben Sieeinfach den folgenden Befehl ein:
set -o emacs
4.4.3 C-Shell-History
Auch Freunde der C-Shell finden in der bash ihre History-Funktionen mitdem Ausrufezeichen implementiert. Dazu gelten die Befehle aus Tabelle4.5.
Zeichen Wirkung
!! Ruft die letzte Zeile noch einmal auf
!5 Ruft die fünftletzte Zeile noch einmal auf
!abc Ruft die letzte Zeile auf, die mit abc beginnt
!?abc Ruft die letzte Zeile auf, die abc enthält
!\$ Verwendet das Argument der letzten Zeile an dieser Stelle
Tabelle 4.5 C-Shell-History
Teile des letzten Kommandos können ersetzt werden. Betrachten Sie dazufolgendes Beispiel:
hpsrv 2: lx hel*lx: Command not found.hpsrv 3: ^lx^lsls hel*hello.cpphpsrv 4:
Das fehlerhafte lx wird durch das korrekte ls ausgetauscht. Nach Returnwird der korrigierte Befehl gestartet. Im folgenden Beispiel wird nocheinmal der Befehl geholt, der mit ls beginnt. Im Anschluss wird das
123
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 124 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Argument des letzten Kommandos im neuen Kommando wieder verwen-det:
hpsrv 4: !lsls hel*hello.cpphpsrv 5: echo !$echo hel*hello.cpphpsrv 6:
4.5 Shell-Startdateien
Für diverse Voreinstellungen ist es sehr praktisch, dass die Shell bashGlobal: /etc/profile
beim Start einige Skriptdateien ausführt. Nach dem Einloggen werdenzunächst die Befehle abgearbeitet, die in der Datei /etc/profile stehen. Dadiese Datei vom Systemadministrator verwaltet wird, werden zunächstalso die systemweiten Vorgaben von allen Benutzern ausgeführt. Dazuzählen in der Voreinstellung vor allem die Umgebungsvariablen und dieWerte für ulimit20.
Danach führt die bash, wenn sie als Login-Shell gestartet wurde, dieIm Benutzer-verzeichnis folgenden Dateien aus:
� .bash_profile: Wenn sie existiert, wird sie ausgeführt.
� Wenn die Datei nicht existiert, wird die Datei .bash_login ausgeführt.
� Existiert auch diese Datei nicht, wird die Datei .profile abgearbeitet.
Beim Abmelden wird die Datei .bash_logout ausgeführt, sofern sie vor-handen ist.
Diese Abläufe erfolgen nur nach dem Einloggen. Wenn Sie eine normaleKonsole in einer grafischen Oberfläche starten, wird beispielsweise dieDatei .profile gar nicht ausgeführt. Damit also Änderungen darin gültigwerden, muss man sich noch einmal aus- und einloggen. Alternativ kön-nen Sie innerhalb einer Shell den Befehl su mit einem Minuszeichen,gefolgt von einem Leerzeichen und dem Benutzernamen, aufrufen.
Die Datei .bashrc des Benutzerverzeichnisses wird dagegen jedes MalBei jedemShell-Start ausgeführt, wenn eine neue Konsole gestartet wird.
20 ulimit siehe Abschnitt 4.5.2 Seite 126
124
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 125 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Shell-Startdateien 4.5
Einige Anwender legen sich gern eigene Skripte oder selbst geschriebene Pfadergänzung
Programme in ein eigenes Verzeichnis namens bin innerhalb ihres Benut-zerverzeichnisses. Um diese Befehle ohne explizite Pfadangaben verwen-den zu können, würde man die lokale Datei .bashrc durch den folgendenBefehl ergänzen:
export PATH=$PATH:~/bin
4.5.1 alias
Sie können mit dem Befehl alias ein neues Kommando, ein sogenannter Kurzkommandos
Alias, für komplexere Befehle erzeugen. Damit können Abkürzungen füroft verwendete längere Befehle angelegt werden. Sehr beliebt ist dieVerwendung eines einfachen »l« oder »ll« für das Komando ls -l. Dazuschreiben Sie in die Datei .bashrc: Folgendes definiert:
alias ll='ls -l'
Nun wird jedes Mal, wenn ll als Befehl an der Konsole eingetippt wird, Parameter
diese Zeichenkette durch ls -l ersetzt. Es ist durchaus möglich, an ll
auch Parameter anzuhängen. So kann die Ausgabe nach dem Entstehungs-zeitpunkt sortiert werden.
debian $ ll -rt *.cpp
Dieser Befehl wird vom Aliasmechanismus in folgenden Befehl aufgelöst:
ls -l -rt *.cpp
Um einen Alias wieder aufzuheben, wird der Befehl unalias verwendet. alias aufheben
debian $ unalias ll
Um festzustellen, ob der Befehl, den Sie gerade verwenden, vielleicht ein alias anzeigen
Alias ist, verwenden Sie den Befehl type. Er zeigt auch an, wie der Aliasdefiniert wurde.
debian $ type llll is aliased to `ls -l'
Handelt es sich bei dem Befehl nicht um einen Alias, wird der Pfad derProgrammdatei angezeigt. Mit dem Befehl file21 können Sie dann weiterfeststellen, ob es sich um ein Skript oder um ein kompiliertes Programmhandelt.
21 siehe Abschnitt 5.3.6 Seite 174
125
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 126 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
4.5.2 ulimit
Mit dem Befehl ulimit können den Anwendern Beschränkungen auf-Grenzen aufzeigen
erlegt werden, die die Größen von einigen Ressourcen betreffen. DerBefehl wird typischerweise in der Datei /etc/profile vom Administratorgesetzt. Die gesetzten Begrenzungen können Sie sich als Anwender mitdem Befehl ulimit -a ansehen.
Durch den Befehl ulimit kann auch die Größe des Core-Dumps be-Core-Dump
schränkt werden. Der Core-Dump stellt einen Speicherabzug dar, dererzeugt wird, wenn ein Programm abstürzt. Die heutigen Systeme sind soeingestellt, dass sie gar keinen Core-Dump mehr erzeugen. Ob das daranliegt, dass die Abstürze so selten sind, oder eher daran, dass inzwischendeutlich mehr Anwender als Programmierer Linux verwenden, bleibtganz Ihrer Spekulation überlassen. Falls Sie aber Programmierer sind,wird Sie vor allem interessieren, wie die Begrenzung des Core-Dumpsaufgehoben werden kann. Verwenden Sie dazu einfach folgenden Befehl:
ulimit -c unlimited
Die Optionen von ulimit sind in Tabelle 4.6 aufgeführt.
Option Wirkung
-a Anzeige aller aktuellen Limits
-c Maximale Größe eines Core-Dumps
-d Maximale Größe des Datensegments eines Prozesses
-f Maximale Größe einer Datei
-n Maximale Anzahl offener Dateien (nicht bei allen Systemen)
-s Maximale Größe des Stacks eines Prozesses
-t Maximale CPU-Zeit in Sekunden
-v Maximale Größe des virtuellen Speichers
Tabelle 4.6 Optionen von ulimit
4.6 Shell-Skripte
Die Shell ist nicht nur einfach ein Befehlsempfänger, sondern auch eineDie Shell alsInterpreter durchaus leistungsfähige Programmiersprache. Zusammen mit der Kom-
binierbarkeit der Kommandos entsteht die Möglichkeit, auch komplexereAbläufe zu programmieren. Insbesondere im Bereich der Systemverwal-tung ist diese Sprache einer Programmiersprache wie C sogar überlegen,
126
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 127 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Shell-Skripte 4.6
weil sie direkten Zugriff auf alle Kommandos hat und ohne großen Auf-wand Programme starten und deren Ergebnisse auswerten kann.
Shell-Skripte ermöglichen es, komplexere Abläufe durch einen einfachen Einsatz
Aufruf zu erledigen. Dazu gehören Administrationsarbeiten, die zeitver-setzt durch cron22 oder at23 gestartet werden. Auch Aufgaben, die persudo24 an Anwender weitergegeben werden sollen, können in Shell-Skripten festgelegt werden. Als rc-Skripte, die beim Booten gestartet wer-den, sind sie bei der Konfiguration des Systems erforderlich.
Erstellen und Starten eines Shell-Skripts
Um ein Shell-Skript zu erzeugen, starten Sie einen Editor und führen ein- Editor
fach ein paar Kommandos hintereinander zeilenweise auf. Beispielsweisesteht in der Datei skripttest:
# Mein erstes Skriptecho "ach ja"lsecho "soso"
Um die Textdatei wie ein Programm aufrufen zu können, reicht es, sie mit Ausführungsrechtesetzendem Befehl chmod 75525 ausführbar zu machen. Anschließend können Sie
das Skript durch Eingeben des Dateinamens direkt starten:
debian $ chmod 755 skripttestdebian $ ./skripttestach jaskripttestsosodebian $
Sie müssen vor den Aufruf von »skripttest« noch einen Punkt und einen Punkt Slash
Schrägstrich setzen. Das hängt damit zusammen, dass in der Umgebungs-variablen PATH der Punkt nicht aufgeführt ist. So können Programme imaktuellen Verzeichnis nur dann ausgeführt werden, wenn der Benutzerbewusst aus dem aktuellen Verzeichnis eben durch Voranstellen von ./aufruft.
Subshells aufrufen
Angenommen, in der Datei skripttest steht ein Shell-Skript, das nur darauf Direkter Aufruf
22 cron siehe Abschnitt 11.3 Seite 36623 at siehe Abschnitt 11.4 Seite 36724 sudo siehe Abschnitt 13.4 Seite 42925 siehe Abschnitt 5.3.3 Seite 165
127
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 128 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
wartet, ausgeführt zu werden. Um es zu starten, können Sie verschiedeneWege gehen. Der erste Weg wurde schon beschrieben. Sie ändern dieDateirechte auf ausführbar und starten dann das Skript wie ein normalesProgramm:
debian $ ./skripttest
Der zweite Weg, ein Skript auszuführen, besteht darin, eine Shell auf-Shell-Aufruf mitParametern zurufen und ihr die Datei als Parameter zu übergeben. Tatsächlich sind
diese beiden Arten, ein Shell-Skript zu starten, äquivalent. Auch bei demdirekten Start des Dateinamens wird eine neue Shell (Subshell) gestartet,die die Datei skripttest interpretiert:
debian $ bash skripttest
Mit dem Kommando . (Punkt) und dem Dateinamen kann man die DateiPunkt
skripttest von der aktuellen Shell ausführen lassen:
debian $ . skripttest
Der Unterschied zwischen dem Aufruf per Punkt und dem Aufruf perBeim Punktinterpretiert die
aktuelle ShellSubshell ist wichtig, da ein mit dem Punkt aufgerufenes Skript keine neueShell startet. Stattdessen interpretiert die laufende Shell das Skript. Nurso kann ein Skript den Zustand der aktuellen Shell verändern. Wechseltdas Skript das Verzeichnis, legt es Umgebungsvariablen an oder verändertes Variablen, bleiben diese Änderungen auch nach dem Ende des Skriptsgültig, da das Skript die aktuelle Arbeitsshell verwendet. Wird dagegeneine Tochter-Shell gestartet, wirken sich die Änderungen nur dort aus undhaben keinerlei Auswirkungen auf die aktuelle Shell. Anders ausgedrückt:Soll ein Skript Variablen setzen, die in der aktuellen Shell später gebrauchtwerden, muss dieses Skript zwingend mit dem Punkt aufgerufen werden.
Da der Punkt nicht gut zu lesen ist, kann man stattdessen auch den Befehlsource
source verwenden. Der Name veranschaulicht vielleicht noch mehr dieBedeutung des Befehls, nämlich dass der Inhalt der Datei als Quelltextin die aktuelle Shell mit einfließt. Vor allem, wenn in Shell-Skripten Va-riablendefinitionen in andere Skripte ausgelagert werden soll, sollte manden Befehl source statt des Punkts verwenden.
debian $ source skripttest
Ein Skript, der mit dem Punkt oder mit dem Befehl source aufgerufenwird, braucht auch kein Ausführungsrecht zu haben, da die Datei ja nichtausgeführt wird, sondern nur ihr Inhalt als Quelltext gelesen wird.
128
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 129 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Variablen 4.7
Kommentieren
Das Kommentarzeichen in einer Skriptdatei ist #. Alles, was in der glei-chen Zeile dahinter steht, geht den Interpreter nichts an.
Den Interpreter festlegen
In der ersten Zeile eines Skripts kann festgelegt werden, welche Shell Erste Zeile imKommentarbzw. welcher Interpreter für diese Datei geladen werden soll. Das erste
Zeichen ist ein Kommentarzeichen. Es folgt ein Ausrufezeichen. Dannwird der Interpreter mit komplettem Pfad genannt. Beispiel:
#!/bin/sh
Die Shell sh ist der Name der POSIX-kompatiblen Minimal-Shell. Ur-sprünglich bezeichnete sh eine Bourne-Shell. In der aktuellen Debian-Version Squeeze ist sh ein Link auf dash. dash ist eine abgespeckte Shell,die auf die Verwendung als Interpreter optimiert ist.
Sollten Sie im Skript Besonderheiten der bash-Shell verwenden, würdenSie an dieser Stelle auf der bash-Shell als Interpreter bestehen:
#!/bin/bash
Statt einer Shell können Sie auch beliebige andere Interpreter aufrufen.Typische Beispiele sind Perl oder Python. Im Falle von Perl würde derEintrag folgendermaßen lauten:
#!/usr/bin/perl
Zeilen umbrechen
Wenn ein Shell-Kommando länger als eine Zeile wird, können Sie den Backslash: \
Befehl aufspalten, indem Sie einen einzelnen Backslash (\) an das Endeder Zeile setzen. Achten Sie darauf, dass nicht ein Leerzeichen hinterdem Backslash steht. Im folgenden Beispiel werden vier Dateien durchden Befehl cat26 auf dem Bildschirm ausgegeben:
cat datei1 datei2 \datei3 datei4
4.7 Variablen
Variablen werden verwendet, um Informationen unter einem Namen zu Speicher undNamespeichern und wieder abrufbar zu machen. Ein typisches Beispiel ist die
26 siehe Abschnitt 5.6.1 Seite 201
129
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 130 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Variable PWD, die den aktuellen Verzeichnisnamen enthält, oder die Va-riable EDITOR, in der abgelegt wird, welchen Editor der Benutzer alsStandard verwendet. Sie können auch selbst Variablen verwenden, umbestimmte Informationen festzuhalten. Dazu müssen Sie festlegen, wel-chen Namen Ihre Variable haben soll. Der Name von Variablen beginntmit einem Buchstaben und kann dann beliebig viele Ziffern und Buchsta-ben enthalten. Auch der Unterstrich ist zulässig.
Sie weisen einer Variablen einen Inhalt zu, indem Sie dem Variablenna-Füllen undAuslesen men ein Gleichheitszeichen folgen lassen und dahinter den Wert ange-
ben, den die Variable in Zukunft haben soll. Dabei darf kein Leerzeichenzwischen der Variablen, dem Gleichheitszeichen und dem zugewiesenenWert stehen. Im folgenden Beispiel erhält die Variable INFO den Inhalt»Tolles Wetter!«.
INFO="Tolles Wetter!"
Sollte der Wert wie in diesem Fall Leerzeichen enthalten, schließen SieAuslesen
ihn wie oben zu sehen in Anführungszeichen ein. Um den Inhalt einerVariablen auszulesen, stellen Sie dem Variablennamen ein Dollarzeichenvoran. Zur Ausgabe von Variablen auf der Standardausgabe wird derBefehl echo verwendet:
echo $INFO
Eine Variable wird definiert, indem ihr ein Inhalt zugewiesen wird. Ent-Variablen-definition sprechend wird sie wieder entfernt, wenn man ihr einen leeren Inhalt
zuweist.
Übrigens müssen Variablennamen nicht zwingend in Großbuchstaben ge-Variablen inGroßbuchstaben setzt sein. Da die vom System vorgegebenen Variablennamen groß sind,
halten sich auch die meisten Anwender an diese Vorgabe. Der Übersicht-lichkeit wegen sollte man hier nicht ohne zwingenden Grund eine andereKonvention einführen.
4.7.1 Shell- und Umgebungsvariablen
Wenn Sie Variablen in Skripten oder auch in der normalen Shell ver-Shell-Variablen
wenden, gelten diese Variablen nur innerhalb des Skriptes oder in deraktuellen Shell. Man spricht darum auch von Shell-Variablen. Rufen Sieein anderes Programm oder ein weiteres Skript auf, sind die Shell-Va-riablen dort unbekannt. Wollen Sie erreichen, dass auch nachfolgendeProgramme oder Shell-Skripte den Inhalt der Variablen auslesen können,verwenden Sie den Befehl export.
130
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 131 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Variablen 4.7
debian $ MYENV="Tolles Wetter"debian $ export MYENV
In der bash kann das Setzen und Exportieren der Variable in einem Kom-mandoschritt ausgeführt werden:
debian $ export MYENV="Tolles Wetter"
Damit wird die Shell-Variable MYENV zur Umgebungsvariablen (engl.environment variables), die von jedem Prozess gelesen werden kann, dervon dieser Shell aus gestartet wird.
Sie können sich eine Liste der Umgebungsvariablen mithilfe des Befehls Variablenliste
env anzeigen lassen. Dabei werden Sie feststellen, dass Debian recht vieleUmgebungsvariablen verwendet. Damit Sie überhaupt eine Chance ha-ben, etwas zu finden, sollten Sie die Ausgabe durch more27 schicken oderam besten gleich mithilfe des Befehls grep28 nach den gesuchten Varia-blen filtern. Das folgende Beispiel zeigt, wie alle Umgebungsvariablenangezeigt werden, die die Silbe LANG enthalten:
debian $ env | grep LANGINOLANG=de_deLANG=de_DE@eurodebian $
4.7.2 Vordefinierte Umgebungsvariablen
Die Variable LANG wird auch als Language-Variable bezeichnet, weil mit LANG
ihr eingestellt wird, in welcher Sprache das System mit Ihnen kommuni-ziert. Durch Umschalten der Sprache gibt beispielsweise der Befehl dateDatum und Uhrzeit in unterschiedlichen Sprachen und Formaten wieder.
debian $ dateMo 17. Mai 21:49:25 CEST 2010debian $ export LANG=da_DKdebian $ dateman maj 17 21:51:38 CEST 2010debian $ export LANG=en_USdebian $ dateMon May 17 21:52:07 CEST 2010debian $
Wenn Sie in Ihrer Anmelde-Shell beispielsweise durch einen Eintrag inder Datei .profile die Umgebungsvariable LANG auf Dänisch umstellen,
27 more siehe Abschnitt 5.6.2 Seite 20228 grep siehe Abschnitt 5.6.3 Seite 202
131
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 132 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
werden Sie das Gefühl haben, dass Sie einen dänischen Computer vor sichhaben, obwohl alle anderen Benutzer dieses Computers weiterhin deut-sche Meldungen erhalten. Das hängt damit zusammen, dass alle ProzesseNachfahren der Anmelde-Shell sind und deren Umgebung erben.
Die Variable PATH enthält die Liste aller Verzeichnisse, auf denen diePATH
ausführbaren Programme zu finden sind. Die Verzeichnisse sind durcheinen Doppelpunkt voneinander getrennt.
debian $ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Wenn Sie auf diesem Computer also ein Programm aufrufen, wird es diefolgenden Verzeichnisse durchsuchen:
� /usr/local/sbin
� /usr/local/bin
� /usr/sbin
� /usr/bin
� /sbin
� /bin
Wenn Sie beispielsweise möchten, dass zudem die Programme im Ver-PATH erweitern
zeichnis /usr/games durchsucht werden, können Sie den folgenden Befehlgeben:
debian $ export PATH=$PATH:/usr/games
Eine besondere Rolle spielt der Punkt in der Liste der Verzeichnisse. NurPunkt im PATH
wenn der Punkt in der Liste auftaucht, wird auch das aktuelle Verzeichnisnach Befehlen durchsucht. In früheren UNIX-Versionen war der Punktimmer bei normalen Anwendern gesetzt. Nur beim Administrator roothatte man ihn aus der PATH-Variablen entfernt. Inzwischen wird er auchbei normalen Benutzern nicht mehr aufgeführt. Das hat zur Konsequenz,dass Sie auch beim Aufruf eines Programms, das sich im aktuellen Ver-zeichnis befindet, dem Befehl den aktuellen Verzeichnispfad voranstellenmüssen. Sie können dazu entweder den kompletten Pfad angeben oderverkürzt den einfachen Punkt als Zeichen für das aktuelle Verzeichnis.Da zwischen dem Pfad und dem Befehl immer ein Schrägstrich stehenmuss, wäre das Voranstellen von ./ die kürzeste Form. Ein Programm imaktuellen Arbeitsverzeichnis mit dem Namen prog würden Sie also durch./prog aufrufen können.
132
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 133 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Variablen 4.7
Die Reihenfolge der Verzeichnisse in der Variablen PATH ist ebenfalls von Reihenfolge
Interesse, da in dieser Reihenfolge die Verzeichnisse daraufhin durchsuchtwerden, ob das aufgerufene Programm dort zu finden ist. Wird einesgefunden, wird es gestartet und die Suche abgebrochen.
PS1 ist der Prompt, also die Zeichenkette, die im Normalfall links neben PS1 bestimmtden Promptdem Cursor steht. Standardmäßig steht dort für den normalen Anwender
ein Dollarzeichen ($) und für den Administrator ein Hashzeichen (#). In-zwischen ist es aber Mode geworden, dort alle möglichen Informationenabzulegen. Dadurch füllt auf manchem System der Prompt zwei Drittelder Zeile. Andererseits ist es sicher nicht verkehrt, wenn man darüberinformiert wird, wer man eigentlich ist und wo man sich gerade befin-det. Sie können sich aus dem Kürzel für den Anwender (\u), den lokalenRechner (\h) und das aktuelle Verzeichnis (\w) einen eigenen Promptbasteln.
debian $ PS1="\u@\h:\w >"arnold@debian:~/my/texte/tex/buch >
Die Variable PS2 bestimmt den Sekundärprompt. Er wird erzeugt, wenn PS2
das angefangene Kommando nach dem Return noch nicht beendet ist.Dies merkt die Shell bei Anführungszeichen oder Klammern, die gesetztwurden, aber deren Gegenstück nicht eingegeben wurde. PS2 ist norma-lerweise ein einfaches Größerzeichen und wird nur selten verändert.
In der Variablen HOME steht der Pfad des Benutzerverzeichnisses des HOME
Anwenders, unter dessen User-ID das Shell-Skript läuft.
Sie können das Benutzerverzeichnis auch durch die Tilde ˜ abkürzen.Beginnt ein Verzeichnis mit einer Tilde ˜, wird sie durch den Pfad desBenutzerverzeichnisses ersetzt. ˜/test wird die Shell zu /home/arnold/testauflösen, wenn das Benutzerverzeichnis /home/arnold ist.
In der Variablen PWD findet sich das aktuelle Arbeitsverzeichnis. Das PWD OLDPWD
zuletzt verlassene Verzeichnis finden Sie in der Variablen OLDPWD.
EDITOR enthält den Standardeditor, der von manchen Programmen ge- EDITOR
startet wird, wenn der Benutzer Textdateien bearbeiten soll. Diese Va-riable kann der Benutzer an eigene Bedürfnisse anpassen, wenn er bei-spielsweise lieber vim statt nano benutzt.
In der Variablen TERM wird der Bezeichner der Terminalemulation ge- TERM
speichert, unter der die Shell derzeit läuft. Unter Linux finden Sie nor-malerweise zwei Inhalte. Wenn Sie einen grafischen Desktop verwenden,lautet der Inhalt von TERM xterm. Wenn Sie dagegen ohne grafischeOberfläche arbeiten, enthält die Variable den Inhalt linux. Serielle Ter-
133
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 134 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
minals sind oft mit dem Uralt-Terminal VT-100 kompatibel. In Fällen,in denen Sie weder mit linux noch mit xterm gute Ergebnisse erzielen,könnte vt100 vielleicht weiterhelfen.
In den Variablen LOGNAME oder USER finden Sie den derzeit angemel-LOGNAME USER
deten Benutzer.
Variable Inhalt
EDITOR Der Standardeditor
HOME Benutzerverzeichnis des Benutzers
IFS Alle Zeichen, die wie ein Leerzeichen wirken sollen
LANG Codierung der Landessprache
LOGNAME Der angemeldete Benutzer
PATH Verzeichnisse, die nach Programmen durchsucht werden
PS1 PS2 Promptzeichen
PWD Das aktuelle Arbeitsverzeichnis
TERM Die Terminalemulation
Tabelle 4.7 Vorbelegte Umgebungsvariablen
4.7.3 Mit Variablen rechnen
Die folgende Zuweisung belegt die Variable dieZahlPi mit einem Wert:
dieZahlPi=3.14
Wenn Sie den Befehl echo \$dieZahlPi aufrufen, so entspricht die Aus-Textvariable
gabe genau dem, was Sie den Variablen zugewiesen haben. Bevor aberzu hohe Erwartungen entstehen, ist zu sagen, dass dieZahlPi keineswegseine Zahl ist. Sie ist nur die Zeichenkette »3.14«. Sie werden spätestensdann enttäuscht sein, wenn Sie versuchen, das Ergebnis einer Berechnungin einer Variablen abzulegen.
debian $ SUMME="2*2+4"debian $ echo $SUMME2*2+4
Die Variable enthält leider nur das, was Sie ihr übergeben haben. DieAnführungszeichen sind übrigens erforderlich, damit der Stern nicht alsDateimaske interpretiert wird.
Um dennoch das Ergebnis zu berechnen, können Sie das Programm bcbc
verwenden:
134
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 135 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Variablen 4.7
debian $ echo 2*2+4 | bc8
Um das Ergebnis einer Variablen zuzuweisen, können Sie die Backquo- Backquotes
tes29 verwenden:
debian $ WERT=`echo 2*2+4 | bc`debian $ echo $WERT8
Auch das Programm expr ermöglicht die Berechnung von Ausdrücken, ist expr
allerdings auf ganze Zahlen beschränkt. Der Befehl erwartet als Parametereinen numerischen Ausdruck wie etwa 3 + 3. Dabei ist darauf zu achten,dass zwischen den Zahlen und den Operatoren ein Leerzeichen steht. DasErgebnis solcher Rechenkünste können Sie ebenfalls über den Mechanis-mus der Backquotes einer Variablen zuweisen. Hier wird die alternativeSchreibweise verwendet, in der der Befehl eingeklammert wird und einDollarzeichen vorangestellt wird:
debian $ WERT=$(expr 2 \* 2 + 4)
Der Backslash vor dem * sorgt dafür, dass die Shell ihn nicht durch alleDateinamen des Verzeichnisses ersetzt. Mit dem vorangestellten Back-slash wird der Stern an den Befehl expr durchgereicht. In Tabelle 4.8steht, welche Operatoren für expr verwendet werden können.
Die in Shell-Skripten verwendbaren Operatoren unterscheiden sich wenigvon denen anderer Programmiersprachen.
Zeichen Bedeutung
+ Addition
– Subtraktion
* Multiplikation
/ Division
% Modulo: Rest einer Division
Tabelle 4.8 Operatoren in expr
Die bash hat von der Korn-Shell den Befehl let geerbt, der diese Berech- let
nungen ein wenig vereinfacht: Sie stellen den Befehl let einer Variablen-zuweisung voran. Als Operanden können +, –, *, / und % (als Modulo)verwendet werden. Auch Klammern werden korrekt interpretiert. Es darfallerdings kein Leerzeichen in dem Ausdruck stehen. Besonders praktisch
29 siehe Abschnitt 4.3.4 Seite 114
135
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 136 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
ist die Fähigkeit, mit verschiedenen Zahlensystemen zu arbeiten. Dazuwird einer Zahl die Basis, gefolgt von einem Hashzeichen (#), voran-gestellt. Die Dualzahl 2#11 entspricht einer dezimalen 3, und um dieHexadezimalzahl 1a darzustellen, wird 16#1a oder 16#1A verwendet.Beispiel:
debian $ let WERT=45+5debian $ echo $WERT50debian $ WERT=45+5debian $ echo $WERT45+5debian $ let WERT=16%5debian $ echo $WERT1debian $ let WERT=(1+3)*2debian $ echo $WERT8debian $ let WERT=16#1adebian $ echo $WERT26debian $
In der bash können arithmetische Ausdrücke in eine DoppelklammerAlternativeDoppelklammer gesetzt werden. Aber auch hier sind nur ganze Zahlen möglich.
debian $ WERT=$((45+5))debian $ echo $WERT50debian $ WERT=$((16%5))debian $ echo $WERT1debian $ WERT=$(((1+3)*2))debian $ echo $WERT8debian $
4.7.4 Auf die Parameter zugreifen
Sie können auch ein Shell-Skript mit Parametern aufrufen. Aus dem Shell-Aufrufparameter
Skript heraus können Sie die Parameter über Pseudovariablen auslesen.Die Pseudovariable \$0 enthält den Dateinamen, unter dem das Skriptgestartet wurde. \$1 enthält den ersten Parameter, \$2 den zweiten undso weiter. Aus der Variablen \$# erfährt das Skript, mit wie vielen Para-metern es aufgerufen wurde. Beispiel:
136
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 137 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Variablen 4.7
# Skript zeigeecho "Ich heiße " $0 " und habe " $# "Parameter"echo $2 $1
Listing 4.1 Aufrufparameter lesen
Das Skript soll zeige heißen. Nachdem Sie mit chmod die Rechte auf aus-führbar gesetzt haben, können Sie das Programm aufrufen. Das Ergebnissieht so aus:
debian $ zeige anton ernaIch heiße ./zeige und habe 2 Parametererna antondebian $
Wenn Sie alle Parameter nacheinander bearbeiten möchten, greifen Sie Weiterschiebender Parameterzunächst mit \$1 auf den ersten Parameter zu. Nach dessen Abarbeitung
rufen Sie den Befehl shift auf. Dadurch wird der zweite Parameter zumersten Parameter, der dritte zum zweiten und so weiter. Dieser Befehlwird vor allem im Zusammenhang mit Schleifen wichtig und wird darumin diesem Zusammenhang noch einmal ausführlicher behandelt.30
Eine Zusammenfassung der vordefinierten Variablen sehen Sie in Tabelle4.9.
Variablen Inhalt
$1 $2 .. Parameterstrings
$0 Name der Skriptdatei
$# Anzahl der übergebenen Parameter
$* Alle übergebenen Parameter als eine Zeichenkette
$@ Alle übergebenen Parameter als Folge der Parameter
Tabelle 4.9 Spezielle Variablen
4.7.5 Prozessnummern
In der Variablen \$\$ findet ein Shell-Skript seine eigene Prozess-ID. Mit- Eigene PID
hilfe dieser Nummer und dem Befehl kill könnte ein solches Skript alsoSelbstmord begehen. Die Kenntnis der eigenen PID hat aber auch nütz-liche Aspekte. So kann die PID an den Namen einer temporären Dateiangehängt werden. Damit wären Überschneidungen mit parallel laufen-den Prozessen ausgeschlossen. Der Dateiname /tmp/$0.$$ würde bei dem
30 siehe Abschnitt 4.8.5 Seite 144
137
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 138 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Skript machwas beispielsweise den Dateinamen /tmp/machwas.2305 erge-ben. Wird dasselbe Skript von einem anderen Benutzer aufgerufen, wirdes eine andere PID bekommen und damit eindeutig sein.31
Stellt ein Skript einen Prozess in den Hintergrund, so kann es aus derKindprozesse
Variablen \$! ermitteln, welche Prozess-ID der gestartete Prozess hat.Die Variable \$? enthält den Exit-Status des zuletzt beendeten Prozesses.Per Konvention bedeutet eine 0, dass alles in Ordnung ist. Alle anderenZahlen repräsentieren Fehlernummern.
4.8 Ablaufsteuerung
Werden die Kommandos einfach nur hintereinander ausgeführt, sprichtman von einem Batch-Lauf. Richtig interessant werden die Skripte aber,wenn sie auf äußere Umstände reagieren oder Arbeitsabläufe wiederho-len können. Dazu dienen die Kommandos der Ablaufsteuerung. Zu ihnengehören Unterscheidungen und Schleifen.
4.8.1 Die Unterscheidung: if
Das Kommando if prüft eine Bedingung und führt den hinter dem thenAbfrage
angegebenen Kommandoblock nur aus, wenn die Bedingung zutrifft. Siekönnen optional eine andere Folge von Befehlen festlegen, die danndurchlaufen wird, wenn die Bedingung nicht zutrifft. Dieser Bereich wirddurch den Befehl else eingeleitet. Einen else-Zweig müssen Sie nichtbilden. Das Kommando wird durch fi, also ein umgedrehtes if, abge-schlossen. Die Struktur einer Unterscheidung ist im folgenden Kastendargestellt.
Struktur einer if-Anweisung
if <Bedingung>then
<Befehle>[ else
<Befehle> ]fi
31 Das gilt natürlich nur dann, wenn die Skripte zeitgleich laufen und vor ihremEnde ihre Dateien löschen. Auf längere Sicht kann es durchaus sein, dass nacheiniger Zeit wieder ein Skript die gleiche PID bekommt.
138
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 139 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Ablaufsteuerung 4.8
Für den if-Befehl gibt es diverse Anwendungen. So kann ein Skript Anwendungsfälle
prüfen, ob ein bestimmtes Verzeichnis existiert und es anlegen, falls esnoch nicht vorhanden ist. Das Skript kann ein Programm nur unter derBedingung starten, das ein anderes Programm erfolgreich gelaufen ist.
Hinter dem Befehl if steht die Bedingung. Im einfachsten Fall ist das Bedingung
ein Programm. Linux bringt zwei Programme mit, die sich zum Erprobenvon Unterscheidungen prima eignen. Das eine Programm heißt true. SeinVerlauf ist immer erfolgreich. Das andere Programm heißt false, und eslässt sich leicht erahnen, dass dieses Programm immer ein fehlerhaftesErgebnis liefert.
if truethen
echo "gut"else
echo "schlecht"fi
Wenn Sie diese Befehlssequenz eingeben, erscheint auf dem Bildschirmdas Ergebnis »gut«. Tauschen Sie true gegen false aus, erhalten Sie dieAusgabe »schlecht«.
Hinter then und else können beliebig viele Befehle stehen. Es könnensogar weitere Unterscheidungen verschachtelt werden.
Informationen zu if finden Sie normalerweise auf der Manpage der Shell, Hilfe
also der bash. Allerdings ist diese Manpage recht umfangreich. Schnellerkommen Sie zum Ziel, wenn Sie den Befehl help if eingeben. Allerdingsist die Beschreibung recht kompakt.
4.8.2 Bedingungen
Für die meisten Strukturbefehle muss eine Bedingung abgefragt werden.Bei der Unterscheidung haben Sie dies ja schon gesehen. Bei Schleifen istes nicht anders.
Zum Vergleich von Variablen eignet sich der Befehl test. Er liefert einen test
Wahrheitswert in Abhängigkeit von seinen Parametern. In Tabelle 4.10sind die wichtigsten Bedingungen aufgeführt.
139
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 140 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
Ausdruck Wirkung
test -f Name Ist Datei Name eine existierende Datei?
test -d Name Ist Name ein existierendes Verzeichnis?
test Str Ist Str eine nichtleere Zeichenkette?
test Str1 = Str2 Sind die Zeichenketten Str1 und Str2 gleich?
test Str1 != Str2 Sind die Zeichenketten Str1 und Str2 ungleich?
test Nr1 -eq Nr2 Ist die Zahl Nr1 gleich Nr2?
test Nr1 -ne Nr2 Ist die Zahl Nr1 ungleich Nr2?
test Nr1 -ge Nr2 Ist die Zahl Nr1 größer oder gleich Nr2?
test Nr1 -gt Nr2 Ist die Zahl Nr1 größer als Nr2?
test Nr1 -le Nr2 Ist die Zahl Nr1 kleiner oder gleich Nr2?
test Nr1 -lt Nr2 Ist die Zahl Nr1 kleiner als Nr2?
Tabelle 4.10 Das Kommando test
Das folgende Beispielskript soll feststellen, ob es mit zwei Parameternaufgerufen wurde. Ist dies der Fall, gibt das Skript sie in umgekehrterReihenfolge aus. Anderenfalls erscheint eine Fehlermeldung.
# Skript tauscht seine Parameterif test $# -eq 2then
echo $2 $1else
echo "Falsche Parameterzahl"fi
Listing 4.2 Parameterzahl prüfen
Da die Schreibweise mit dem Kommando test für Benutzer anderer Pro-RechteckigeKlammernstatt test
grammiersprachen sehr gewöhnungsbedürftig ist, gibt es eine alternativeSchreibweise. Dabei wird das Wort test durch eine eckige, öffnendeKlammer ersetzt, die nach dem letzten Parameter von test wieder ge-schlossen wird. Das liest sich komplizierter, als es ist. Das Beispiel machtes deutlich:
# Skript tauscht seine Parameterif [ $# -eq 2 ]then
echo $2 $1else
140
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 141 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Ablaufsteuerung 4.8
echo "Falsche Parameterzahl"fi
Listing 4.3 Rechteckige Klammer statt test
Auf eine kleine Stolperfalle muss ich Sie jedoch hinweisen: Im folgenden Vorsicht!
Skript soll eine Diskette formatiert werden, wenn der Parameter new
angegeben wird. Das Abfragen des Parameters sieht fast genauso aus wiedas Abfragen der Anzahl der Parameter.
# Achtung Fehler!if [ $1 = "new" ]then
echo "Formatiere..."fiecho "Und weiter gehts..."
Listing 4.4 Harmlose Abfrage?
Nun rufen Sie das Skript dreimal auf. Einmal mit dem Parameter new,dann mit dem Parameter old und schließlich ohne Parameter. Und dagibt es eine Überraschung!
debian $ trick newFormatiere...Und weiter gehts...debian $ trick oldUnd weiter gehts...debian $ trick./trick: [: =: unary operator expectedUnd weiter gehts...debian $
Die Fehlermeldung sagt aus, dass der Operator = zwei Operanden erwar-tet, dass aber nur einer vorhanden war. Tatsächlich wird \$1 vor demVergleich ausgewertet, und da die Variable keinen Inhalt hat, befindetsich zwischen der eckigen Klammer und dem Gleichheitszeichen nichts.Es ist also so, als würde dort folgender Ausdruck stehen:
if [ = "new" ]
Sie können solche Überraschungen vermeiden, indem Sie die Variablen in Anführungszeichen
Anführungszeichen setzen. Wie bereits an anderer Stelle erwähnt wurde,bewirken die Anführungszeichen das Zusammenfassen mehrerer Wörterzu einem Parameter, aber sie lassen im Gegensatz zu den Hochkommatadie Auswertung der Variablen zu.
141
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 142 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
if [ "$1" = "new" ]then
echo "Formatiere..."fiecho "Und weiter gehts..."
Listing 4.5 Sichere Abfrage
Auch wenn die Variablenauswertung von $1 leer ist, steht nun links vomGleichheitszeichen etwas, nämlich zwei Anführungszeichen, also:
if [ "" = "new" ]
Dieser Ausdruck ist syntaktisch korrekt. Er liefert als WahrheitswertSyntax korrekt
»falsch«, aber das soll er ja auch, da der leere String nun mal nicht ei-nem »new« entspricht.
4.8.3 Rückgabewert von Programmen
Aufgerufene Programme liefern einen Wert zurück, der über den Erfolg0 ist wahr, allesandere ist falsch oder Misserfolg ihrer Tätigkeit Auskunft gibt. Dabei ist es Standard, dass
ein fehlerfrei gelaufenes Programm eine 0 zurückgibt. Diese wird dannvon if als wahr interpretiert. Liefert das Programm dagegen eine Zahlungleich 0 zurück, geht die Shell davon aus, dass es eine Fehlernummersein wird. Darum interpretiert if ein Ergebnis ungleich 0 als falsch.32
Einige dieser Programme sind geradezu prädestiniert für die Arbeit incmp vergleichtDateien Skripten. Der Befehl cmp vergleicht zwei Dateien. Wird er mit der Option
-s aufgerufen, macht er dabei keine Ausgaben. Er gibt bei Gleichheit 0,anderenfalls 1 zurück.
4.8.4 Die Fallunterscheidung: case
Die Fallunterscheidung ist eine Art gestaffeltes if. Der Inhalt einer Varia-Gestaffeltes if
blen wird untersucht, und für jeden denkbaren Inhalt wird eine Aktiondefiniert. Eine Anwendung findet sich in den Startskripten im Verzeich-nis init.d, die beim Booten und beim Herunterfahren des Systems ge-startet werden. In diesen Skripten wird unterschieden, ob als Parameterdie Wörter »start« oder »stop« übermittelt wurden bzw. ob ein anderesSchlüsselwort übergeben wurde.
32 Das ist für den C-Programmierer etwas ungewohnt, da dort eine 0 als falsch undalles andere als wahr interpretiert wird.
142
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 143 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Ablaufsteuerung 4.8
Struktur einer case-Anweisung
case <Variable> in<Maske>) <Kommandos> ;;<Maske>) <Kommandos> ;;*) <Default-Kommandos> ;;
esac
Eine Fallunterscheidung verzweigt in Abhängigkeit des Inhalts einer Va-riablen. Diese Variable steht zwischen den Schlüsselwörtern case undin. Ein Unterscheidungszweig legt zunächst den Inhalt der Variable fest,der vorliegen soll, damit dieser Zweig bearbeitet werden soll. Dieser In-halt kann Platzhalter verwenden, wie sie bei der Namensauswahl durchdie Shell üblich sind. Darum wird dieser Inhalt in der Strukturdarstel-lung auch als »Maske« bezeichnet. Diese wird durch eine rechte, rundeKlammer abgeschlossen. Es folgen die Kommandos, die in diesem Fallausgeführt werden sollen. Die Befehlsliste wird durch ein doppeltes Se-mikolon abgeschlossen. Die Fallunterscheidung endet mit dem Schlüssel-wort esac.
Das folgende Beispiel könnte man als Deutsch-Englisch-Wörterbuch fürArme bezeichnen. Wenn Sie mögen, können Sie es gern erweitern. DerHauptwert dieses Skripts liegt allerdings in der Demonstration einerFallunterscheidung.
case "$1" inHaus) echo "house" ;;Auto) echo "car" ;;Kind) echo "child" ;;*) echo "stuff" ;;
esac
Listing 4.6 Intelligenter Übersetzer
Der Stern als letzte Maske dient zum Abfangen all der Begriffe, die durch Default
die davor stehenden Masken nicht erfasst wurden.
Als nächstes Beispiel wird ein Skript erstellt, das meinname heißen und Masken
Namen analysieren soll. Der Name wird dem Skript als Parameter mit-gegeben. An diesem Beispiel soll die Verwendung von Masken gezeigtwerden.
case "$1" in[wW]illemer) echo "Verwandschaft!!!!" ;;Ar* | ar*) echo "Welch ein Name!" ;;
143
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 144 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
*) echo "soso! Nett, Sie kennenzulernen" ;;esac
Listing 4.7 Grüß-August
Die erste Zeile besagt, dass der erste Parameter untersucht wird. In derStern undrechteckige
Klammern alsMaske
zweiten Zeile sehen Sie, dass das Skript in der Lage ist, den NamenWillemer zu erkennen. Dem Skript ist es dabei egal, ob das W klein- odergroßgeschrieben wird. In der nächsten Zeile werden Namen bearbeitet,die mit Ar anfangen. Der senkrechte Strich bedeutet ODER. Also ist eswieder egal, ob der Name mit einem kleinen oder großen A beginnt. DerStern allein ist der Default, wenn keines der bisherigen Muster gegriffenhat.
4.8.5 Die while-Schleife
Schleifen ermöglichen es, Abläufe zu beschreiben, die sich wiederholen.Wiederholungen
Damit ein definiertes Ende stattfindet, läuft die Schleife nur so lange,wie eine Bedingung eingehalten wird. Diese Bedingung sollte sorgfältiggewählt werden, sonst kommt es zur gefürchteten Endlosschleife. Daswürde bedeuten, dass das Programm bis zum nächsten Stromausfall läuft.
Die while-Schleife
while <Bedingung>do
<Befehle>done
Als Beispiel für eine solche Schleife sollen alle Parameter darauf überprüftwerden, ob sie mit einem Minuszeichen beginnen. Dann sollen sie alsOption gelten. Ansonsten handelt es sich um ein Argument. Für dieseAufgabe werden nun zwei Ablaufsteuerungen ineinander verschachtelt:eine Schleife und eine Unterscheidung. Außen läuft eine Schleife überalle Parameter. Innen findet eine Prüfung statt, ob der Parameter miteinem Minuszeichen beginnt. Spontan würde man hier if einsetzen, daeigentlich nur ein Abfragefall existiert. case hat aber den Vorteil, dassman Muster auswerten kann. Das macht die Abfrage sehr viel einfacher.Man unterscheidet einfach nach -* und dem Default-Fall.
144
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 145 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Ablaufsteuerung 4.8
while test -n "$1"do
case $1 in-*) echo "Option: $1" ;;*) echo "Argument: $1" ;;
esacshift # schiebt die Parameter eine Position weiter
done
Listing 4.8 Optionserkennung
Es wird immer der erste Parameter abgefragt. In der Schleife befindet sich shift schiebt dieParameter durchder Befehl shift. Dieser schiebt die Übergabeparameter durch. Der erste
Parameter verschwindet, und alle anderen rücken eine Position nach. Inder zweiten Runde ist also schon der zweite Parameter der erste gewor-den. Auch er wird überprüft. Und so läuft die Schleife weiter, bis es keineParameter mehr gibt. Zur Veranschaulichung zeigt Tabelle 4.11 die Varia-blen $1 bis $5. Jede neue Zeile zeigt die Parameter nach einem weiterenshift.
In der Bedingung der Schleife ist die Variable in Anführungszeichen ge- Anführungszeichen
setzt. Dadurch wird das in Abschnitt 4.8.2 auf Seite 141 beschriebeneProblem verhindert, wie ein Aufruf ohne Parameter zu einem Fehler füh-ren kann. Bei case können die Anführungszeichen weggelassen werden,da diese Position nie erreicht wird, wenn im ersten Parameter nichtssteht.
$1 $2 $3 $4 $5
anton berta caesar dora emil
berta caesar dora emil –
caesar dora emil – –
dora emil – – –
emil – – – –
Tabelle 4.11 Parameter und shift
Schleifen können durch das Kommando break unterbrochen werden. break undcontinueunterbrechen eineSchleife
Dieser Befehl steht typischerweise hinter einer if-Konstruktion. Aller-dings kann dieser Befehl leicht zu etwas unübersichtlichem Code führen.Besser ist es, die vollständige Bedingung für das Durchlaufen einer Schlei-fe direkt hinter dem while zu formulieren. In die gleiche Kategorie gehörtder Befehl continue, der dazu führt, dass der Rest des Schleifenkörpers
145
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 146 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
nicht ausgeführt wird, sondern dass sofort zur Abfrage am Kopf gesprun-gen wird.
4.8.6 Die for-Schleife
Die for-Schleife ist auf die Abarbeitung von Listen spezialisiert.
Die for-Schleife
for <Variable> in <Liste>do
<Kommandos>done
In der Schleife wird die Variable die Werte, die durch die Liste hinterdem Schlüsselwort in definiert sind, der Reihe nach annehmen. Auf dieVariable kann wie üblich innerhalb der Schleife durch ein vorangestelltesDollarzeichen ($) zugegriffen werden. Die Schleife wird so oft durchlau-fen, wie Argumente hinter dem in stehen. Dabei nimmt die Variablenacheinander jedes der Argumente als Inhalt an. Beispiel:
for i in blau gelb grün rotdoecho "Meine Lieblingsfarbe ist $i. Also fahre ich " \
$i"e Autos."done
Listing 4.9 Lieblingsfarben
Die Ausgabe der Schleife ist:33
Meine Lieblingsfarbe ist blau. Also fahre ich blaue Autos.Meine Lieblingsfarbe ist gelb. Also fahre ich gelbe Autos.Meine Lieblingsfarbe ist grün. Also fahre ich grüne Autos.Meine Lieblingsfarbe ist rot. Also fahre ich rote Autos.
Hier wird noch einmal demonstriert, dass $i auch innerhalb der Anfüh-Variablenauflösung
rungszeichen interpretiert wird. Wollen Sie erreichen, dass der Inhalt derZeichenkette nicht interpretiert wird, müssen Sie Hochkommata verwen-den.
33 Nach geltender Rechtschreibung muss die Lieblingsfarbe natürlich großgeschrie-ben werden. Aus Bequemlichkeitsgründen lasse ich es mal so. Nach der nächs-ten Rechtschreibreform ist es bestimmt wieder richtig.
146
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 147 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Ablaufsteuerung 4.8
Besonders interessant wird die for-Schleife, wenn statt einer festen Liste Wildcards
von Zeichenketten Dateien verwendet werden, die über Wildcards aus-gewählt werden. Das folgende Beispiel wandelt Audiodateien in MP3-Dateien um und löscht anschließend die Originaldateien.
for i in *.wavdolame $i `basename $i .wav`.mp3rm $i
done
Listing 4.10 WAV nach MP3 konvertieren
Eine kleine Schönheitsoperation wurde hier noch mit dem Kommando basename stutztDateinamenbasename durchgeführt. basename entfernt den Verzeichnisnamen einer
Datei. Wird noch ein weiterer Parameter außer dem Dateinamen angege-ben, wird dieser als Anhängsel betrachtet, das von hinten abgeschnittenwerden soll. Im Beispiel wird von $i der Anhang .wav abgeschnitten. Andas Ergebnis dieser Operation wird mp3 angehängt, und das Ganze wirdals Zieldatei des Programms lame verwendet. Angenommen, im aktuellenVerzeichnis gäbe es die Dateien a.wav, b.wav und c.wav, dann wird dieSchleife folgende Befehle erzeugen:
lame a.wav a.mp3rm a.wavlame b.wav b.mp3rm b.wavlame c.wav c.mp3rm c.wav
4.8.7 Funktionen
Sie können in einem Shell-Skript mehrere Befehle zu einer Funktion Zusammenfassungvon Befehlenzusammenfassen. Jede Funktion erhält einen Namen, über den sie von
anderer Stelle im Skript beliebig oft aufgerufen werden kann. Die Verwen-dung von Funktionen macht das Skript übersichtlicher und auch kürzer,da Sie Codesequenzen, die sich wiederholen, zusammenfassen können.Eine Funktion hat folgenden Aufbau:
Funktionsdefinition
<Funktionsname>(){
<Befehle>
147
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 148 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
4 Die Shell
[ return <Rückgabewert> ]}
Die Funktionsdefinition selbst wird beim Ausführen eines Skripts zu-Definition
nächst übersprungen. Erst wenn die Funktion aufgerufen wird, werdendie darin enthaltenen Befehle ausgeführt. Ist die Funktion vollständigausgeführt, springt der Interpreter zu der Zeile, die hinter dem Aufrufder Funktion steht. Die Funktion wird einfach durch ihren Namen aufge-rufen. Hier ein sehr einfaches Beispiel:
meinefunktion(){
echo "ich tue hier etwas"}
meinefunktion
Listing 4.11 Simple Funktion
Hier wird die Funktion namens meinefunktion() definiert und späterAufruf
einfach direkt über ihren Namen aufgerufen. Es ist also genau so, als wä-ren alle Befehle innerhalb der Funktion an der Stelle ausgeführt worden,an der der Aufruf steht.
Es ist auch möglich, Parameter an Funktionen zu übergeben. Der Me-Parameter-übergabe chanismus entspricht dem der Parameterübergabe an Skripte. Selbst der
Aufruf ist identisch mit dem Aufruf eines Programms mit Parametern.Die Parameter werden einfach, durch Leerzeichen getrennt, hinter demFunktionsaufruf aufgeführt. Innerhalb der Funktion wird auf die Parame-ter mit den Variablen $1, $2 und so weiter zugegriffen. Listing 4.12 zeigtein Beispiel.
meinefunktion(){
echo $1echo $2
}
meinefunktion "huhu"meinefunktion "haha" 12
Listing 4.12 Funktion mit Parameterübergabe
Der Aufruf des Shell-Skripts bringt folgende Ausgaben auf den Bild-schirm:
148
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 149 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: shell , Aktueller Job: debian
Ein- und Ausgaben aus dem Skript 4.9
debian $ funchuhu
haha12debian $
Die Leerzeile entsteht, weil der zweite Parameter beim ersten Funktions-aufruf leer bleibt.
Auch in der Skriptshell können Werte an den Aufrufer zurückgegeben Rückgabe
werden. Dazu wird innerhalb der Funktion der Befehl return, gefolgt vondem Rückgabewert, eingesetzt. Der Rückgabewert kann vom Aufruferwie der Rückgabewert eines Programms eingesetzt werden. Es gilt auchhier die Konvention, dass der Rückgabewert 0 bedeutet, dass die Funktioneinwandfrei lief. Die Funktion kann also auch als boolescher Ausdruck ineiner if-Abfrage stehen.
4.9 Ein- und Ausgaben aus dem Skript
Die einfachste Art der Ausgabe erfolgt durch den Aufruf des Befehls echo.Er gibt seine Parameter über die Standardausgabe aus.
Wenn Sie allerdings Texte größeren Umfangs ausgeben wollen, wie bei- Massendrucksache
spielsweise Hilfetexte, dann wird die Verwendung von echo etwas müh-sam. Sie können dann dem Befehl cat die Eingabedatei aus dem Shell-Skript heraus geben. Und cat wird das tun, was es immer tut, nämlichdie Datei auf der Standardausgabe ausgeben. Im Beispiel sieht das so aus:
cat <<!Hier steht nun eine sehr weitschweifige Erklärung, wie dasProgramm zu benutzen ist, wer der geniale Programmiererdieser Zeilen ist und dass man nach der Benutzung diesesSkripts nie wieder ein anderes ansehen wird.!
Listing 4.13 Schwatzhaft
Der Text muss durch ein Zeichen eingeklammert werden, das im Textselbst natürlich nicht vorkommen darf. Hier ist es ein Ausrufezeichen.Der so eingegrenzte Text wird dann mit zwei Kleinerzeichen in die Stan-dardeingabe des Befehls cat geschoben. Sie können auf diese Weise je-dem Programm einen längeren Text in die Standardeingabe zuschieben,nicht nur cat.
149
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 150 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: befehle , Aktueller Job: debian
4 Die Shell
Hin und wieder kann es erforderlich sein, vom Anwender Eingaben zuEingaben
erfragen. Dazu gibt es das Kommando read, das als Parameter die Variablehat, in die die Eingabe gelangen soll:
read ANSWER
Nach der Eingabe mit einem abschließenden Return wird die Eingabezeilein der Variablen ANSWER stehen. Im Gegensatz zu Perl gelangt das Returnnicht in die Variable.
Der Befehl read kann auch verwendet werden, um den Eingabestromzeilenweise zu lesen.
150
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 675 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Sie haben Post!
22 Der Mailserver
E-Mail ist eine der ältesten Anwendungen des Internets. Die Anwendung Einfache E-Mail
ist dem Laien leicht verständlich. Er schreibt eine Nachricht mit einerBetreffzeile, gibt die Adresse des Empfängers an und schickt sie ab. DerTransport ist Sache des Computers und des Netzwerks.
Die Anwendung ist seither nicht komplizierter geworden, wohl aber die Serverbetrieb
Verwaltung des Serverbetriebs. Genau damit wird sich dieses Kapitel be-schäftigen. Parallel wird in Kapitel 35 ab Seite 847 ein Workshop diepraktische Seite noch einmal beleuchten und begleiten.
22.1 Übersicht und Rückblick
Bereits die alten UNIX-Maschinen in den Universitäten hatten einen Mail Blick zurück
Transfer Agent (MTA) standardmäßig an Bord. Seinerzeit arbeiteten aneinem Computer viele Teilnehmer. Eigene persönliche Computer (PCs)gab es noch nicht. Über den MTA konnten Benutzer E-Mails an andereBenutzer versenden. Jeder Benutzer besaß eine Datei, in der für ihn diePost gesammelt wurde. Auch Systemdienste nutzten diese Kommunikati-onsform, um den Administrator über ihre Fehlleistungen zu informieren.
22.1.1 Von der lokalen Nachricht zur Internetmail
Der MTA ist auch in der Lage, E-Mails an einen anderen Computer weiter- MTA-Kette perSMTPzuleiten. Das Simple Mail Transfer Protocol (SMTP) regelte den Verkehr.
Die Nachrichten wurden vom Absender zum Empfänger direkt durch-geschoben. Dadurch gab es keine Verzögerung. Auf den alten Terminalserschien nach der Befehlseingabe sofort die Nachricht »Sie haben Post!«,wenn eine neue Nachricht eintraf. Benutzer einer grafischen Oberflächeerhielten von dem Programm biff sofort eine Meldung, wenn eine Nach-richt eintraf.
Durch die Verbreitung von persönlichen Computern, die über Modems Externe Postfächer
nur zeitweise mit dem Internet verbunden waren, lag das Postfach nicht
675
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 676 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
mehr auf dem lokalen Computer, sondern auf dem Server des Providers.Die Post musste aktiv abgeholt werden. Die Kette der per SMTP von MTAzu MTA versandten E-Mails endete beim Provider, und es musste einneues Protokoll her, um die Post aus den Postfächern auf den lokalen PCzu holen.
POP3 (Post Office Protocol) ist optimal darauf ausgelegt, über zeitweisePOP3 und IMAP
aktive Leitungen die Post vom Server abzuholen, sie lokal zu speichernund anschließend auf dem Server zu löschen. Danach kann die Verbin-dung wieder geschlossen werden. Im Zuge der Flatrates fand das Proto-koll IMAP (Internet Message Access Protocol) Verbreitung. Hier verblei-ben die Mails auf dem Server. Der Vorteil ist, dass die Mails von überallvollständig zugreifbar sind, ob vom Arbeitsplatzcomputer aus oder un-terwegs per Laptop. Allerdings benötigen Sie möglichst eine Flatrate undeinen Provider, der Ihnen ein paar Megabyte für Ihre E-Mails einräumt.
POP3-Serverim Internet
LokalerSMTP
Mbox bzw. Maildirlokal
POP3/IMAP
Mail TransferAgent MTA
SMTP-Serverim Internet
SMTP-Netzwerk
Abbildung 22.1 Übersicht über das Mailingsystem
Da das Thema recht umfangreich ist, werden die ersten Abschnitte ei-nige Abläufe und Begriffe erläutern, bevor mit der Installation und derKonfiguration begonnen wird.
22.1.2 Vertraulichkeiten
Die SMTP-Zugänge waren zu Anfang offen, da man sich gegenseitig half,Authentifizierungdes SMTP die E-Mails zu verteilen. Ein offen zugänglicher Sendeport schien auch
676
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 677 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Protokollfragen 22.2
unkritisch zu sein, schließlich konnte man so keine fremde E-Mail lesen.Als diese offenen Ports für das Versenden von Spam und Schadsoftwareim großen Stil missbraucht wurden, musste allerdings das SMTP-Protokollum eine Authentifizierung erweitert werden.
E-Mails haben eigentlich eher die Merkmale einer Postkarte als die eines Klartext
Briefes. Der Inhalt, der Adressat und der Absender liegen in jedem Post-fach im Klartext vor, und jeder Administrator eines Mailservers zwischenSender und Empfänger hat prinzipiell die Möglichkeit, die Nachricht zulesen. Genauso öffentlich ist nach dem Standardprotokoll der Austauschvon Benutzername und Passwort.
Für die Verschlüsselung des Nachrichteninhalts kann GnuPG verwen- TLS/SSL
det werden.1 Für die Verschlüsselung des Anmeldevorgangs müssen sichMailserver und Mailclient einigen. Hier ist inzwischen TLS (TransportLayer Security) als Nachfolger des SSL (Secure Sockets Layer) Standard.Die Verschlüsselung erfolgt auf der Basis eines Zertifikats.
22.1.3 Massenposthaltung
Normalerweise verwendet das Mailsystem die lokale Benutzerverwaltung MTA, POP3 undIMAPfür die Mailkonten. Soll der Server große Mengen von Mailkonten ver-
walten, ist es nicht sinnvoll, dass jeder Mailkontoinhaber auch einen Ein-trag in der lokalen Passwortdatei hat. Stattdessen können Datenbankenfür die Benutzerverwaltung verwendet werden. Die Benutzerdatenbankmuss sowohl vom SMTP-Server zugegriffen werden als auch von denAbholdiensten POP3 und IMAP.
In der Anleitung in Abschnitt 35.3 ab Seite 860 wird ein Mailsystem auf Workshop
der Basis einer PostgreSQL-Datenbank mit Exim MTA und Courier IMAP-Server vorgestellt.
22.2 Protokollfragen
In diesem Abschnitt werden die Protokolle näher betrachtet, die im Zu-sammenhang mit Mailsystemen verwendet werden. Dazu gehören dieProtokolle POP3 und IMAP, die für das Lesen der E-Mails auf einemMailserver verwendet werden. Das Protokoll SMTP ist für den MTA re-levant. Im Namensdienst DNS wird festgelegt, welcher Server für dieDomain zuständig ist.
1 GnuPG siehe Abschnitt 10.6.2 Seite 353
677
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 678 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
22.2.1 POP3
POP3 ist wohl das gängigste Protokoll, mit dem ein E-Mail-Client dieRFC 1939
Nachrichten abholt, die auf dem Server für ihn eingegangen sind. Es ist inRFC 1939 definiert. Das POP3-Protokoll beschreibt die Authentifizierungdes Benutzers und die Möglichkeiten, E-Mails aufzulisten, abzurufen undzu löschen.
Dieses Verfahren ist für Telefonanbindungen ausgelegt, bei denen dieIdeal für gemieteteLeitungen Dauer der Verbindung berechnet wird. Der Client lädt seine E-Mails vom
Server herunter, löscht sie dort und schließt die Verbindung. Die Bear-beitung der E-Mails erfolgt offline auf dem Arbeitsplatzrechner des An-wenders. Aber auch für den Server ist dies eine kostengünstige Lösung.Es werden nur die E-Mails gespeichert, die der Client noch nicht gelesenhat. Beim nächsten Besuch des Clients wird der Festplattenplatz in denmeisten Fällen wieder freigegeben. Das Archiv der alten E-Mails führt derAnwender auf seinem Arbeitsplatz.
Kommunikation laut RFC 1939
Wie die meisten Internetprotokolle basiert auch POP3 auf dem Sendenund Empfangen einfacher Textzeilen. Nach dem Kontaktieren des Serversgibt der Server sich durch eine positive Meldung als POP3-Server zuerkennen.
Positive Meldungen des Servers beginnen immer mit der ZeichenfolgeServerantworten
+OK. Es folgen oft noch weitere Angaben als Antwort auf den Befehl. Istder Server unzufrieden, beginnt die Antwortzeile mit -ERR.
Die Kommunikation mit dem Server kann vom Client jederzeit mit demBeenden: QUIT
Befehl QUIT beendet werden. Die Verbindung wird dann automatischgeschlossen.
Zu Anfang befindet sich der Server in der Authentifizierungsphase. Er er-Authentifizierung
wartet, dass der Benutzer seine Legitimation beweist. Dies erfolgt meistdurch Eingabe des Benutzernamens und des Passworts. Dazu wird zu-nächst der Befehl USER, gefolgt vom Benutzernamen, eingegeben. Nach-dem der Server positiv bestätigt hat, dass er den Benutzer kennt, wird derBefehl PASS, gefolgt vom Passwort, übergeben. War auch diese Eingabeerfolgreich, wechselt der Server in die Transaktionsphase. Hier erfolgt dieBearbeitung des E-Mail-Kontos.
Alternativ gibt es noch die Möglichkeit, mit dem Befehl APOP eine Au-APOP
torisierung durchzuführen. Dabei wird ein geheimer Schlüssel zwischenServer und Client geteilt. Der Server meldet beim Start seine Prozess-ID
678
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 679 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Protokollfragen 22.2
und die aktuelle Uhrzeit. Der Client kombiniert sie mit dem Geheimnisund verschlüsselt sie per MD5. Diesen Wert sendet der Client dem Serverals zweiten Parameter des APOP-Befehls.
Befindet sich die Sitzung in der Transaktionsphase, kann das Konto be- STAT
arbeitet werden. Der Befehl STAT fordert den Server auf, seinen Zustandanzuzeigen. Der Server antwortet mit der Zeile:
+OK 4 44471
Das bedeutet, dass vier Mails vorliegen, die insgesamt 44.471 Bytes be-legen.
Der Befehl LIST zeigt nach einer Bestätigungszeile eine Liste aller vorlie- LIST
genden E-Mails an. Dabei wird für jede Mail eine Zeile ausgegeben, dienur die Mailnummer und die Größe der jeweiligen E-Mail in Byte an-zeigt. Sie können dem Befehl LIST auch eine Mailnummer als Parameterangeben. Dann wird nur diese E-Mail angezeigt.
Mit dem Befehl RETR kann eine Mail vom Server ausgelesen werden. RETR
Als Argument wird eine Mailnummer erwartet. Die komplette Mail wirdausgegeben, inklusive Header und Text. Die Mail wird durch eine Zeilebeendet, die nur einen Punkt enthält.
Der Befehl TOP ist nach RFC 1939 nicht zwingend vom Server zu im- TOP
plementieren. In der Praxis dürfte er aber immer vorhanden sein. Mitdiesem Befehl können die ersten Zeilen einer Mail geholt werden. Eswerden in jedem Fall der Header und ein paar Zeilen der eigentlichenNachricht geladen. Der TOP-Befehl muss die Mailnummer als Parameterübergeben und kann zusätzlich die Anzahl der Zeilen bestimmen, die ervon der Nachricht lesen will.
Wenn eine Mail auf dem Server gelöscht werden soll, verwenden Sie DELE
den Befehl DELE, gefolgt von der Mailnummer. Damit wird die Mail alsgelöscht markiert und von allen Befehlen der Sitzung so behandelt, als seisie nicht vorhanden. Erst wenn die Sitzung in die UPDATE-Phase kommt,wird die Nachricht endgültig gelöscht.
Der Befehl RSET hebt alle durch DELE gesetzten Markierungen auf. RSET
Mit NOOP deutet der Client an, dass er momentan nichts tut, aber den NOOP
Server immer noch lieb hat. Auf diese Anweisung reagiert der Servermit einer positiven Bestätigung. Dieser Befehl kann nützlich sein, umbeispielsweise einen Timeout zu verhindern.
679
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 680 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
Wird nach der Transaktionsphase der Befehl QUIT gesendet, geht der Ser-Update-Phase
ver in die Update-Phase und löscht alle mit einer Löschmarke versehenenMails.
Eine kleine Beispielsitzung
Sie können eine POP3-Sitzung mithilfe des Programms telnet leichtProtokoll pertelnet sichtbar machen oder prüfen. Im Folgenden wurde eine kleine Sitzung
protokolliert. Sie besteht aus der Anmeldung, der Anzeige, wie viele Mailsvorliegen, aus dem Herunterladen einer E-Mail und aus dem Ende derSitzung. Die eigenen Eingaben sind eingerückt.
squeeze $ telnet debian 110Trying 192.168.109.199...Connected to debian.Escape character is '^]'.+OK ready <[email protected]>
User andrea+OK Password required for andrea.
pass daswerdeichhierauchgeradeimklartextschreiben+OK andrea has 4 visible messages (0 hidden) in 44471 octets.
LIST+OK 4 visible messages (44471 octets)1 129802 40643 36734 23754.
RETR 1+OK 12980 octetsReturn-Path: <[email protected]>Received: from localhost (localhost [127.0.0.1])...Mit vorzüglicher SelbstbeherrschungRoswita Presswurst
.QUIT
+OK Pop server at debian.willemer.edu signing off.Connection closed by foreign host.squeeze $
Die eingerückten Zeilen wurden als Kommandos in telnet direkt einge-Eine Konversation
geben. Im normalen Betrieb übermittelt diese der POP3-Client. Das ersteKommando, User andrea, meldet den Benutzer an. Der Benutzernamewird vom Server aus /etc/passwd entnommen. Als Nächstes wird das Pass-
680
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 681 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Protokollfragen 22.2
wort gesendet. Der Befehl pass leitet es ein. Der Server bestätigt mit OKdie korrekte Anmeldung und gibt an, dass vier Nachrichten vorliegen,die zusammen 44.471 Bytes2 belegen. Mit dem Befehl LIST erhält derClient eine Liste von vier Nachrichten mit deren Größen. Der einzelnePunkt schließt die Liste ab. Der Befehl RETR 1 holt die erste Nachricht.Sie erscheint im Klartext, beginnt mit dem Header und endet mit einemeinzelnen Punkt. Zuletzt wird die Sitzung durch das Kommando QUIT
beendet.
22.2.2 IMAP
IMAP4 ist in RFC 1730 definiert, IMAP4r1 in RFC 2060. Die aktuelle E-Mails bleibenauf dem ServerVersion ist in der RFC3501 beschrieben. IMAP (Internet Message Ac-
cess Protocol) bezeichnet ein Protokoll zur Verwaltung von E-Mails. ImGegensatz zu POP3 verbleiben die Mails auf dem Server und werdendort verwaltet. So ist es möglich, die Mail von mehreren Clients aus zuverwalten, da die Nachrichten nicht vom Server gelöscht werden. DieMails können auf dem Server in Ordnern einsortiert werden, sodass derUnterschied zu einem lokalen POP3-Client nur gering ist. Der Hauptun-terschied liegt darin, dass Sie zur Bearbeitung Ihrer Mails online seinmüssen und dass der Server Ihnen genügend Speicher anbieten muss.Auch das Thema Datensicherung vereinfacht sich, weil die Mails zentralliegen.
Ähnlich wie POP3 ist auch IMAP ein textorientiertes Protokoll, das mit Textorientiert
dem Server Befehle austauscht. Mit dem Befehl LOGIN meldet sich derClient an. Mit SELECT wählt er den Arbeitsordner. Der Eingangsordnerfür neue Mails heißt INBOX. Der Server liefert mehrere Zeilen. Er gibtan, wieviele Mails existieren und welche der Mails bisher noch nichtgelesen wurde. Mit dem Kommando FETCH kann eine einzelne Mail gela-den werden. Mit dem Befehl STORE werden schreibende Kommandos anden Server gesendet, beispielsweise zum Löschen der Nachricht auf demServer.
Da auch Befehle zum Verwalten der Ordner existieren, ist der Umfang Definition
etwas größer als bei POP3. Sie finden eine ausführliche Beschreibung desProtokolls unter folgender URL:
http://tools.ietf.org/html/rfc3501
2 Oktett ist der von humanistisch gebildeten Informatikern präferierte Ausdruckfür Byte, das bekanntermaßen aus acht Bit besteht. Das Wort leitet sich vom dä-nischen Wort »otte« für »acht« her. König Ottokar von Dänemark, genannt derUnachtsame, hatte nämlich acht Kinder.
681
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 682 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
22.2.3 SMTP
Das Simple Mail Transport Protocol (SMTP) ist für den Empfang und dieRFC 821 RFC 1869
Verteilung von Mails zuständig. Es wurde 1982 unter der RFC 821 be-schrieben. Das Protokoll wurde 1995 als Extended SMTP (ESMTP) in RFC1869 erweitert. Wichtige Themen sind vor allem die Authentifizierungder Clients und die modulare Erweiterung des Servers.
SMTP ist ein reines ASCII-Protokoll mit allen Befehlen in Klartext. DieBinärdaten
Übertragung von Binärdaten war ursprünglich nicht vorgesehen. DerMIME-Standard ermöglicht die Umcodierung der binären Daten im An-hang als reine Textzeichen, sodass der Mailserver gar nicht merkt, dasser Binärdaten überträgt. Der Nachteil des Verfahrens ist, dass angehängteDateien für den Transport deutlich größer werden.
Eine SMTP-Sitzung beginnt damit, dass sich der Server mit einem GrußProtokollablauf
meldet und darauf wartet, dass sich der Client authentifiziert. Jede Mel-dung des Servers beginnt mit einer Nummer, die einen Hinweis daraufgibt, wie der letzte Befehl verarbeitet wurde.
� 1xxDer Befehl wurde akzeptiert, aber der Server wird noch nicht tätig,sondern erwartet eine Bestätigung.
� 2xxDer Befehl wurde akzeptiert und ausgeführt.
� 3xxDer Befehl wurde verstanden, es werden aber noch weitere Informa-tionen vor der Verarbeitung benötigt.
� 4xxEs ist ein temporärer Fehler aufgetreten. Eine Wiederholung des Be-fehls könnte erfolgreich sein.
� 5xxEs ist ein ernster Fehler aufgetreten. Der Befehl wird nicht ausgeführt.
Der Client gibt Befehle, die aus vier Buchstaben bestehen. Es werden inder Regel direkt hinter dem Befehl weitere Parameter übergeben.
Mit dem Befehl HELO eröffnet der Client die Sitzung. Als Parameter gibtHallihallo
er seinen Hostnamen inklusive Domäne an. Wird der Befehl EHLO stattHELO gesendet, gibt der Client an, dass er das erweiterte SMTP beherrscht,und der Server meldet seine Erweiterungen. Hier ein kurzer Protokoll-mitschnitt:
682
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 683 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Protokollfragen 22.2
220 debian.willemer.edu ESMTP Postfix (Debian/GNU)EHLO squeeze.willemer.edu250-debian.willemer.edu250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250 DSN
Mit dem Befehl MAIL FROM: gibt der Client den Absender der Nachricht Übertrageneiner Mailan. Es folgt die Mail-Adresse des Absenders. Der Befehl RCPT TO: gibt
den Empfänger an, dessen Mailadresse wieder als Parameter angehängtwird. Mit dem Befehl DATA wird dann der Mailinhalt Zeile für Zeile über-tragen. Der Befehl ist abgeschlossen, wenn eine Zeile gesendet wird, dienur einen Punkt enthält. Der Inhalt einer Nachricht besteht aus dem Hea-der, der Absender, Empfänger, Datum, Uhrzeit und Zwischenstationenenthält, und dem eigentlichen Textkörper. Der Übergang wird durch eineleere Zeile angezeigt.
Mit dem Befehl QUIT wird die Verbindung zwischen Client und Server Und Tschüß
regulär geschlossen.
22.2.4 Mailserver und Domain
In einer E-Mail-Adresse befindet sich links neben dem @-Zeichen der Be- Domäne
nutzername und rechts der Hostname des Computers mit seiner Domain.Welcher Rechner innerhalb einer Domain die Mails entgegennimmt, in-teressiert den Versender der Mail eigentlich nicht. So richten sich Mails,die von außen kommen, normalerweise nur an die Domain. Damit derweiterleitende SMTP-Server aber weiß, welcher Computer für den Emp-fang der Mails der Domäne zuständig ist, gibt es beim DNS (DomainName Service3) einen besonderen Eintrag für den Mailserver, der mit MXgekennzeichnet ist.
@ IN SOA mail.willemer.edu. root.mail.willemer.edu.(......)
; Wer sind die zustaendigen MailserverIN MX 10 mail.willemer.edu.
3 DNS siehe Kapitel 21 Seite 651
683
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 684 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
In diesem Beispiel ist der Computer namens mail für die Domäne wille-MX-Eintrag
mer.edu zuständig. Die Zahl hinter MX ist die Priorität. Werden mehrereServer aufgelistet, wird zuerst derjenige mit der kleinsten Nummer ausge-wählt. Erst wenn dieser nicht ansprechbar ist, wird die Post an denjenigenmit der nächstkleineren Nummer gesendet. Dieser Server wird in regel-mäßigen Abständen versuchen, die Mail an den primär zuständigen Mail-server weiterzugeben, auf dem die Anwender ihre Mails abholen. NähereDetails zum DNS-Eintrag finden Sie in Abschnitt 21.2 ab Seite 659.
22.3 Die Erbschaft der UNIX-Mail
UNIX als Urvater von Linux hatte bereits auf jedem System ein voll funk-tionsfähiges Mailsystem an Bord. Auch wenn nicht mehr alle Bestandteiledieses Mailsystems heute noch gebräuchlich sind, so hat dieses Systemdoch Standards gesetzt, die heute noch in Gebrauch sind.
22.3.1 Uralt-Client mail
Von jedem Terminal aus können Sie eine Mail absenden. Sie geben mailClient mail
gefolgt von dem Adressaten, an. Das muss keine vollwertige Mail-Adres-se sein, sondern es reicht der Benutzername eines lokal eingerichtetenKontos. Anschließend erscheint die Eingabemöglichkeit für einen Betreff(Subject). Anschließend können Sie Zeile für Zeile Text eingeben. AlsAbschluss geben Sie eine leere Zeile ein, die nur einen Punkt enthält.Anschließend wird die Mail dem lokalen MTA (Mail Transport Agent) zurWeitervermittlung übergeben.
Wenn Sie mail ohne Adressaten eingeben, können Sie Ihre eingegange-Mail abrufen
nen Mails einsehen und gegebenenfalls löschen. Das Programm ist sehrsimpel, aber für kleine Experimente durchaus brauchbar.
Der MTA ist für die Verteilung der Mails zuständig. Der Standard-MTAMTA sendmail
auf UNIX-Maschinen und damit auch auf Linux-Computern hieß lan-ge Zeit sendmail. Das Programm ist sehr leistungsfähig, aber gefürchtetfür seine umfangreiche und leicht kryptische Konfiguration. Tatsächlichfinden Sie auf fast jedem System immer noch den Befehl sendmail imVerzeichnis /usr/sbin. Allerdings handelt es sich nicht um ein Stück prä-historische Software, der man einen Altersruhesitz gegönnt hat, sondernum einen Verweis auf den jeweiligen MTA. So ist sendmail bei Exim4 einsymbolischer Link auf die Programmdatei exim4.
684
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 685 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Die Erbschaft der UNIX-Mail 22.3
debian # ls -l /usr/sbin/sendmaillrwxrwxrwx 1 root root 5 5. ... /usr/sbin/sendmail -> exim4
22.3.2 Mailablage Mbox oder Maildir
Standardmäßig werden Mails im Verzeichnis /var/mail gespeichert. Dort Eingelagerte Mbox
wird für jeden Benutzer eine Datei angelegt. Neue Mails werden einfachan diese Datei angehängt. Diese Datei ist nicht verschlüsselt, aber gegenfremdes Lesen durch seine Dateirechte geschützt.
Das Verfahren, die Mails im Mbox-Verfahren abzulegen, hat ein paar Schönheitsfehler
Schönheitsfehler. Das erste Problem stellt die Tatsache dar, dass alle Mailsin einer großen Textdatei enthalten sind. Schon die Größe stellt ein Pro-blem dar, da heute Grafiken, Bilder und Filme im Umfang mehrererMByte als Anhang versandt werden. Entsprechend groß kann die Mbox-Datei werden, und das Suchen nach einzelnen Mails gestaltet sich lang-wierig. Mails werden immer wieder gelöscht. Es müssen also Bereiche»herausgeschnitten« werden. Dazu müssen große Bereiche der Datei ver-schoben werden. Das wird umso aufwendiger, je größer die Datei ist.Das zweite Problem liegt darin, dass die Dateien im Verzeichnis /var/mailliegen. Damit liegen diese Daten immer im Verantwortungsbereich desAdministrators. Würden sie im Benutzerverzeichnis liegen, hätte der Be-nutzer die volle Kontrolle und die volle Verantwortung. Und bei der Da-tensicherung muss das Mbox-Verzeichnis nicht explizit mitbedacht wer-den.
Die Alternative heißt Maildir. Die Mails werden in einem speziellen Ver- Alternative Maildir
zeichnis abgelegt, das im Benutzerverzeichnis liegt. Unterhalb dieses Ver-zeichnisses, dass meist Maildir heißt, liegen weitere Verzeichnisse, diezur Strukturierung der Mails dienen. Für jede Mail wird eine eigene Da-tei angelegt.
mail auf Maildir umstellen
Einige ältere Programme verwenden standardmäßig noch das Mbox-For- mail und Maildir
mat. Aber sie können meist auch anders. Beispielsweise kann man sogardas Programm mail so konfigurieren, dass es mit dem Maildir-Formatklarkommt. Es müssen nur in zwei Dateien Änderungen vorgenommenwerden: /etc/mail.rc und /etc/profile.
set folder="Maildir/"set MBOX="Maildir"set record="~/Maildir/sent-mail/"
Listing 22.1 /etc/mail.rc
685
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 686 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
In der Datei /etc/profile werden einige Umgebungsvariablen vorbesetzt.Umgebung
export MAIL="/home/$USER/Maildir"export MAILDIR="~/Maildir"
Listing 22.2 /etc/profile
Umstellung auf Maildir
Eine Umwandlung der vorliegenden Mails kann durch das Programmmb2md
mb2md erreicht werden. Dieses muss allerdings unter Debian explizit in-stalliert werden.
debian # apt-get install mb2md
Mit dem folgenden Aufruf sortieren Sie für den Benutzer georg die Mbox-Datei in das Maildir-Verzeichnis um:
debian # mb2md -s /var/mail/georg -d /home/georg/Maildir
Als ganz verlässlich hat sich das Skript allerdings nicht erwiesen. PrüfenVorsicht!
Sie also zunächst die Ergebnisse, bevor Sie sich von den Original-Mbox-Dateien trennen.
22.3.3 Benutzerzuordnung mit aliases
Die Datei /etc/aliases ist der Verschiebebahnhof für die Mails zwischen/etc/aliases
den Benutzern. Beispielsweise nutzen Mails an root nichts, wenn rootdiese niemals liest. Es wäre besser, die Nachrichten an den Zivilbenutzerzu senden, den root für die Normalarbeiten verwendet.
root : johannes
Nun werden alle Nachrichten an den Benutzer johannes weitergeleitet.newaliases
Allerdings wird das erst passieren, wenn Sie einmal nach der Änderungder aliases-Datei den Befehl newaliases aufrufen, der dann die Inhalteder Datei aliases in die Datei aliases.db übernimmt.
Wenn Sie es genau nehmen, gehört die Aliasdatei zu dem Paket sendmail.Allerdings übernehmen auch andere Mail Transport Agents aus Kompati-bilitätsgründen diesen Mechanismus.
22.4 Standard MTA Exim
Ein Linux-System bringt immer einen Mailserver mit, weil einige interneDebian-Standard
Prozesse ihr Unbehagen über unangenehme Ereignisse in Mails an den
686
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 687 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Standard MTA Exim 22.4
Administrator zusammenfassen. Debian verwendet Exim4 in der Light-Version als Standardmailsystem. Exim4 ist in der Standardkonfigurationbereits in der Lage, eintreffende Nachrichten an die Benutzer des Systemsweiterzuleiten.
Sollten Sie Exim4-Light aus irgendeinem Grund neu installieren müssen, Installation
verwenden Sie dafür den folgenden Befehl:
debian # apt-get install exim4
Wenn Sie keine Gewichtsprobleme mit Ihrem Rechner haben, können Vollversion
Sie die »Heavy-Version« einsetzen. Das Paket heißt exim4-daemon-heavyund wird vor allem dann benötigt, wenn eine der folgende Eigenschafteneingesetzt werden soll:
� LDAP-Unterstützung
� Datenzugriffe auf PostgreSQL- oder MySQL-Datenbanken
� SASL- und SPA-SMTP-Authentifizierung
� Eingebetteter Perl-Interpreter
� exiscan-acl für die Integration des SpamAssassin oder Virenscanner
Installiert wird das Paket mit dem Aufruf:
debian # apt-get install exim4-daemon-heavy
22.4.1 Mitgelieferte Informationen
Im Verzeichnis /usr/share/doc/exim4-base finden Sie eine Datei namens /usr/share/doc
README.Debian.gz, die eine ausführliche Konfigurationsbeschreibungenthält. Sie können sie mit dem Programm zless lesen.
debian $ cd /usr/share/doc/exim4-basedebian $ zless README.Debian.gz
Dieser Text liegt unter dem Namen README.Debian.html auch im HTML- HTML-Version
Format vor. Sie finden ihn im gleichen Verzeichnis. Sie können also alter-nativ auch einen Browser zum Lesen verwenden.
In diesem Verzeichnis finden Sie auch eine Datei namens spec.txt.gz, die spec.txt
Sie ebenfalls mit zless auslesen können. Sie enthält die Spezifikationvon Exim4 und ist zwar entsprechend umfangreicher, aber formaler unddamit nicht so flüssig zu lesen.
Für die Konfigurationsdateien finden Sie ausführliche Manpages in Ab- Konfigurations-dateienschnitt 5. Sie rufen sie mit folgendem Befehl auf:
687
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 688 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
debian $ man 5 exim4-config_files
Hier finden Sie eine Übersicht über alle Konfigurationsdateien, die Eximbetreffen, mit einer kurzen Beschreibung, welche Aufgaben sie haben.
22.4.2 Grundkonfiguration
Sie können unter Debian das Tool dpkg-reconfigure für die Konfigu-dpkg-reconfigure
ration verwenden. Dieses erstellt im Dialog mit dem Administrator diewichtigsten Einstellungen.
debian # dpkg-reconfigure exim4-config
Die Eingaben in den nun folgenden Dialogen führen in den meistenKonfigurations-datei Fällen zu einer Veränderung der Datei /etc/exim4/update-exim4.conf.conf.
Für die Beispielumgebung wird die eines freiberuflichen BuchautorsBeispielumgebung
unbekannter Herkunft verwendet. Der lokale Mailserver heißt debianund hat die IP-Adresse 192.168.109.199. Die Subnetzmaske lautet255.255.255.0. Die lokale Domäne heißt willemer.edu, weil gewährleistetist, dass dieser Name im Internet nicht vergeben wird. Die Domänewillemer.de, die auch als Absender bei den Mails verwendet wird, wirdvon einem Domänenprovider verwaltet, der als Smarthost dienen soll.Sie werden natürlich die Angaben an Ihre Bedürfnisse anpassen müssen.
Gleich zu Anfang fragt das Programm nach dem grundsätzlichen Einsatz-Aufgabenstellung
bereich des Mailservers. Es werden folgende Möglichkeiten angeboten:
� internetInternetserver: E-Mails werden direkt an den SMTP-Server der Ziel-domäne verschickt. Mails an die eigene Domäne werden empfangenund direkt in die Mailboxen der User verteilt.
Diese Option ist für große Firmen oder Provider interessant, die ihrenMailserver mit direkter Verbindung zum Internet positionieren.
� smarthostVersand über Sendezentrale (Smarthost); Empfang mit SMTP oderFetchmail. Exim4 verteilt die lokalen Nachrichten selbst und leitet dieMails ins Internet an einen Smarthost weiter. Ein solcher Smarthostkann beispielsweise der Mailserver Ihrer Domäne sein.
� satelliteVersand über Sendezentrale (Smarthost); keine lokale E-Mail-Zustel-lung. Diese Einstellung eignet sich für Rechner, die als Arbeitsplatz-rechner in einem Netzwerk stehen.
688
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 689 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Standard MTA Exim 22.4
� localNur lokale E-Mail-Zustellung; keine Netzwerkverbindung
� noneKeine Festlegung zum jetzigen Zeitpunkt. Etwaige vorige Konfigura-tionen bleiben erhalten.
Im Folgenden wird davon ausgegangen, dass die Wahl auf den zweiten Smarthost
Punkt fiel. Auf diese Weise werden lokale Mails verteilt und Mails für dasInternet an einen freundlichen Dienstleister übergeben.
Je nach Antwort des Benutzers füllt das Programm die Variabledc_eximconfig_configtype in der Datei update-exim4.conf.conf. Bei-spielsweise würde für die Antwort des Versands über die Sendezentraledas Wort »smarthost« eingetragen.
dc_eximconfig_configtype='smarthost'
E-Mail-Name des Systems
Das Programm bittet Sie um die Eingabe eines E-Mail-Domänennamen Mail-Domäne
des lokalen Computers. Dieser Name ergänzt die lokalen Benutzernamenzu einer vollständigen Mail-Adresse. So wird eine lokale Mail an denBenutzer georg zur gültigen E-Mail-Adresse [email protected] wird der Server eine Mail an [email protected] dem lokalen Benutzer georg zuordnen.
dc_other_hostnames='debian.willemer.edu'
Betreute Netzwerkschnittstellen
Der Server kann prinzipiell von allen Netzwerkschnittstellen aus ange- IP-AdresseneingehenderVerbindungen
sprochen werden. In der nachfolgenden Eingabe können Sie die IP-Adres-sen der Schnittstellen angeben, die der Server bedient. Wenn Sie diesenEintrag leer lassen, werden von allen Netzwerkadressen SMTP-Anfragenakzeptiert. Soll das Einstellen von Mails nur auf dem lokalen Rechner fürdie lokale Post erlaubt sein, tragen Sie die localhost-Adresse 127.0.0.1 fürIPv4 oder ::1 für IPv6 ein. Sie können auch beides eintragen. Dazu setzenSie einfach ein Semikolon zwischen die Einträge.
Soll auch die Ethernetschnittstelle des lokalen Rechners bedient werden, WeitereSchnittstellengeben Sie die IP-Adresse der lokalen Ethernetkarte ein. In der Regel er-
fahren Sie diese mit dem Befehl ifconfig eth0.
689
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 690 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
debian # ifconfig eth0eth0 Link encap:Ethernet Hardware Adresse 00:25:22:1e:db:d8
inet Adresse:192.168.109.199 Bcast:192.168.109.255...inet6-Adresse: fe80::225:22ff:fe1e:dbd8/64 Gültigke...
Auf dem Beispielsystem ist es die Adresse 192.168.109.199. Erst wennIP-Adresse
diese IP-Adresse zusätzlich zur Vorgabe von localhost eingetragen ist,wird eine Anfrage aus dem Netzwerk Beachtung finden. Der Eintrag, denSie im Dialog eingeben, wird in der Variablen dc\_local\_interfaces
hinterlegt.
dc_local_interfaces='127.0.0.1 ; ::1 ; 192.168.109.199 '
Es ist besser, Sie führen alle Schnittstellen auf, obwohl es einfacher wäre,das Feld einfach leer zu lassen. So werden Sie sich später nicht wundern,wenn der Server eine kurzfristige Modemverbindung nutzt, um auch imInternet zur Verfügung zu stehen.
Empfängerdomänen
Im nächsten Schritt wird bestimmt, welche E-Mail-Adressen lokal ver-E-Mail-Adresse
teilt werden und nicht an das Internet weitergeleitet werden sollen. Mankann diese Domänen auch als diejenigen bezeichnen, für die der Rech-ner das endgültige Ziel sein soll. Der Hostname und localhost werdenautomatisch vorgegeben. Hier können Sie noch weitere Domänennamenhinzufügen.
willemer.edu
In der Konfigurationsdatei wird der Inhalt in die Variable dc_readhost
geschrieben.
dc_readhost='willemer.edu'
Relay
Nun werden die Domänen erfragt, für die dieser Server einen RelayDomäne
bilden soll. Das heißt, dass die Mails für diese Domänen an den Smarthostweitergeleitet werden sollen. Dazu sollte dieser Server in dem MX-Eintragdes DNS-Servers dieser Domäne eingetragen sein.
dc_relay_domains='willemer.edu'
Nun wird bestimmt, welche IP-Adressen in diesem Server ihre an denWeiterleitendeIP-Bereiche Smarthost ausgehenden E-Mails ablegen dürfen. Soll der Server zur Wei-
terleitung der Mails des lokalen Netzwerks dienen, geben Sie hier die IP-Adresse des Netzwerks ein, beispielsweise 192.168.109.0/24.
690
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 691 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Standard MTA Exim 22.4
dc_relay_nets='192.168.109.0/24'
Bitte denken Sie daran, dass alle Netze, die Sie hier eintragen, freie Über- Vorsicht!
tragungsrechte besitzen. Wenn Sie später eine Anmeldung per Passwortfür diesen Mailserver vorschreiben, wird dieses nicht für die hier einge-tragenen Netzwerke gelten.
Smarthost
Sie können einen fremden Rechner angeben, der als ausgehende Sende- Versendungshilfe
zentrale verwendet werden soll. Man spricht in diesem Fall von einemSmarthost. Hier steht beispielsweise der SMTP-Server Ihres Providers.Den brauchen Sie, wenn Ihr Mailserver nicht selbst mit einer festen IP-Adresse im Internet steht. Typische Eingaben sind smtp.1und1.de odermail.gmx.de. Sie können den Smarthost direkt in der Konfigurationsdateieintragen.
dc_smarthost='smtp.1und1.de'
Sofern der Smarthost nicht ein Rechner ist, der zum lokalen Netzwerk Authentifizierung
gehört und seinen Kollegen vertraut, werden Sie bei jedem Anbieterdarauf stoßen, dass er eine Authentifizierung des Benutzers fordert. Dazumuss die URL des Smarthost, die Benutzerkennung und das Passwort inder Datei passwd.client im Verzeichnis /etc/exim4 hinterlegt werden. Dortgeben Sie jeweils, durch einen Doppelpunkt voneinander getrennt, denSmarthost, den Benutzernamen und das Passwort an.
# /etc/exim4/passwd.clientsmtp.1und1.de:georg:supergeheim
Verbergen der lokalen Domäne
Wenn Sie lokal eine nicht im Internet angemeldete Domäne verwenden, Wegblenden
ist es notwendig, dass diese in den versendeten E-Mails verborgen wirdund durch die Maildomäne ersetzt wird, über die Sie auch die Antwortenerwarten. Dann geben Sie hier »Ja« an. Geben Sie »Nein« ein, wenn dielokal verwendete Mail-Adresse auch Ihrer Internetadresse entspricht.
dc_hide_mailname='true'
Wenn Sie die Adresse verbergen, werden Sie gefragt, wie die Domäneheißen soll, unter der die E-Mail versandt werden soll.
DNS-Anfragen minimieren
Wenn Sie noch eine ISDN- oder Modemverbindung verwenden, müssen Zugangsfragen
Sie jede Anfrage an einen DNS bezahlen. Insofern können Sie hier die
691
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 692 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
Anfragen minimieren. Verwenden Sie eine Flatrate brauchen Sie keineMinimierung.
dc_minimaldns='false'
Der klassische Standard für das Ablegen der Mails in UNIX-Systemen wirdMbox oder Maildir
Mbox genannt. Dabei wird für jeden Benutzer eine Datei mit dessenNutzernamen im Verzeichnis /var/mail abgelegt. Insbesondere für dasZusammenspiel mit dem Courier POP3- und IMAP-Server ist die Maildir-Struktur sinnvoller.
dc_localdelivery='maildir_home'dc_localdelivery='mail_spool'
Einstellungen auf kleine Dateien
Exim kann auf zwei Arten seine Konfigurationen verwalten. Sie könnenGroße Datei
eine große Datei /etc/exim4/exim4.conf verwenden. Oder Sie können dieKonfiguration auf viele kleine Dateien verteilen lassen. Diese befindensich in Unterverzeichnissen des Verzeichnisses /etc/exim4/conf.d/. Für diefolgende Konfiguration ist hier »Nein« angewählt worden.
Wenn Sie die Konfiguration durchgeführt haben, wird der Exim-ServerNeustart
automatisch neu gestartet. Sie können den Exim-Server jederzeit mit demfolgenden Befehl über das Init-Skript neu starten:
debian # /etc/init.d/exim4 start
Mit der Einstellung dieser Grundkonfigurationen können Sie Exim be-Workshop
reits für den Mailbetrieb innerhalb des Rechners, des lokalen Netzwerksoder des Internets einrichten. Im Workshop in Abschnitt 35 ab Seite 847finden Sie ein paar Beispielszenarien, die den Umgang mit Exim und dasZusammenspiel mit anderen Komponenten beschreiben.
22.4.3 Fehlerprotokolle
Für die Fehlerprotokolle hat sich Exim ein eigenes Verzeichnis exim4 un-terhalb des normalen Protokollverzeichnisses /var/log gegönnt. Die meis-ten Fehler und Informationen werden in die Datei mainlog protokolliert.Zurückgewiesene Mails werden in der Datei rejectlog vermerkt. Täglichwird die Dateien wegrotiert und komprimiert, sofern neue Meldungeneingetroffen sind.
Wenn Sie eine Konfiguration von Exim erstellen, die heftige FehlerPanische Reaktion
aufweist, dann kann es passieren, dass in die Fehlerdatei paniclog ei-ne Meldung geschrieben wird. Diese Datei findet sich im Verzeichnis
692
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 693 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Standard MTA Exim 22.4
/var/log/exim4. Solange diese Meldung nicht von Hand entfernt wird,erhalten Sie beim Neustart immer wieder folgende Meldung:
Restarting MTA: exim4.ALERT: exim paniclog /var/log/exim4/paniclog hasnon-zero size, mail system possibly broken ... failed!
Es kann etwas irritierend sein, weil Sie eventuell den zugehörigen Fehler Löschen!
längst entfernt haben. Da die Fehlermeldung aber immer noch in dieserDatei steht, wird die Meldung bleiben und Exim nicht starten. Die Abhilfeist ganz einfach: Editieren Sie die Datei, und löschen Sie die Meldung,oder verwenden Sie den folgenden Befehl:
debian # > /var/log/exim4/paniclog
22.4.4 Konfigurationsdateien und Makros
Für die Konfiguration von Exim werden oft Makros eingesetzt. Diese be- Makros als Flags
zeichnen eine besondere Aufgabenstellung. In den bereits vorbereitetenSzenarien der Konfigurationsdateien werden diese Makros abgefragt. Eintypisches Beispiel ist das folgende Makro, das eine TLS-Authentifizierungauslöst:
MAIN_TLS_ENABLE = true
An verschiedenen Stellen der Konfigurationsdatei wird dieses Makro ge- TLS-Aktivierung
prüft, und es werden besondere Schritte hinzugefügt, die nur bei einerTLS-Übertragung erforderlich sind. So wird die TLS-Übertragung nur ein-mal konfiguriert und führt nicht dazu, dass an verschiedenen StellenÄnderungen gemacht werden müssen.
Makros müssen vor ihrer ersten Auswertung definiert werden. Sie kön- Definition
nen sie entweder in der Datei exim4.conf.template gleich zu Anfang setzen,oder Sie legen eine Datei exim4.conf.localmacros an, in der diese Defini-tionen erfolgen.
Sollte eine Konfiguration mit aufgeteilten Konfigurationsdateien verwen- VerteilteKonfigurationdet werden, gehören die Makros in die Datei /etc/exim4/conf.d/main
oder in eine Datei, die verlässlich zuerst gelesen wird, beispielsweise000_localmacros.
693
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 694 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
22.4.5 Verschlüsselt zur Post
Der Transport von Passwörtern wird heutzutage verschlüsselt durchge-TLS
führt. Und auch der Inhalt der Mails, die zur Post gebracht werden, müs-sen ja nicht jedem im Internetcafé auf die Nase gebunden werden. DasZauberwort heißt TLS (Transport Layer Security) und sichert die Partnervor Mithörern. Eine TSL-Verschlüsselung für Mailserver basiert auf einemZertifikat, das von einer autorisierten Stelle signiert ist. Ein unsigniertesZertifikat ist in lokalen Umgebungen immerhin besser als gar keins.
Um die Verschlüsselung in Exim einzuschalten, wird in der DateiMakrodefinition
/etc/exim4/exim4.conf.template die Variable MAIN_TLS_ENABLE gesetzt.Dadurch wird es ermöglicht, über Port 25 eine TSL-Anmeldung durchzu-führen. Allerdings erwarten viele Clients für den TSL-gesicherten Serverden Port 465, wie er auch in der Datei /etc/services als ssmtp aufgeführtist. Dazu wird die Variable tls_on_connect_ports entsprechend gesetzt.Beides passiert in der Datei exim4.conf.templates.
# /etc/exim4/exim4.conf.templateMAIN_TLS_ENABLE = truetls_on_connect_ports=465
In der Datei /etc/default/exim4 muss noch die Variable SMTPLISTENER-Optionen
OPTIONS umgestellt werden. Sie werden Sie leer vorfinden. Ändern Siesie bitte auf folgenden Wert:
# /etc/default/exim4SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'
Das Einschalten des TLS bewirkt nicht zwangsläufig, dass ein andererPortbehandlung
Port als der Standardport 25 für SMTP verwendet wird. Viele Mailclientserwarten aber den SMTP-Server mit TLS auf Port 465. Die Option weistExim an, beide Ports zu bearbeiten.
Damit sind die Konfigurationen für die Aktivierung des TLS abgeschlos-sen. Es muss nun das Zertifikat erstellt werden, das als Basis der Ver-schlüsselung verwendet wird.
Zertifikat
Sofern Sie nicht bereits ein Zertifikat besitzen, können Sie sich einesSelbstgebackenes
mit dem Skript exim-gencert erzeugen, das Sie in der Dokumentationvon Exim finden. Dies erspart Ihnen einige etwas kryptische Aufrufe desProgramms openssl. Sie rufen das Skript folgendermaßen auf:
694
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 695 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Standard MTA Exim 22.4
debian # cd /etc/exim4debian # /usr/share/doc/exim4-base/examples/exim-gencert[*] Creating a self signed SSL certificate for Exim!...Generating a 1024 bit RSA private key...writing new private key to '/etc/exim4/exim.key'...Country Code (2 letters) [US]:DEState or Province Name (full name) []:Locality Name (eg, city) []:Organization Name (eg, company; recommended) []:Organizational Unit Name (eg, section) []:Server name (eg. ssl.dom.tld; required!):debian.willemer.eduEmail Address []:[*] Done generating self signed certificates for exim!...debian #
Es wurden die Dateien exim.key und exim.crt angelegt. Diese stellen Ihr Dateien
persönliches Zertifikat dar. Damit das Zertifikat zur Kenntnis genommenwird, muss der Server neu gestartet werden.
debian # /etc/init.d/exim4 restart
Da das Zertifikat nicht von autorisierter Stelle signiert ist, wird ein E- Nicht autorisiert
Mailclient bei der ersten Verbindung husten und melden, dass hier eingroßes Sicherheitsrisiko vorliegt. Setzen Sie Ihr James-Bond-Lächeln auf,und klicken Sie an, dass Sie sich des Risikos bewusst sind und dass Siehiermit eine Ausnahme definieren. Danach wird er so lange Ruhe geben,solange sich das Zertifikat nicht ändert. Ein Man-In-The-Middle-Angriffist damit abgewehrt, solange man beim ersten Kontakt sicher sein kann,dass der Mailserver der ist, den man erwartet.
22.4.6 Wer ist denn da?
In den Anfängen des Internets war die Anzahl der Benutzer noch über- Historische Altlast
schaubar, und E-Mails wurden von Universitäten verwendet, um For-schungsergebnisse auszutauschen. Damit der Datenfluss funktionierte,schob jeder Mailserver gern für jeden anderen die Nachrichten weiter.Eine Hand wäscht die andere. Inzwischen besteht ein Großteil der For-schungen im Internet darin, den besten Preis für Komsumartikel zu findenoder nach einfältigen Menschen zu suchen, die ernsthaft glauben, dassin Nigeria mehrere Millionen Dollar verzweifelt auf einen neuen Besitzerwarten.
695
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 696 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
Um die Viagraverkäufer und Nigeria-Connections davon abzuhalten, denBlacklist vereiteln
Mailserver mit Mails zu überfluten, mussten die Relays gegen den freienZugang mit einem Passwort gesichert werden. Falls Ihr Server im Internetsteht, gehört die Authentifizierung der Benutzer sogar zum Pflichtpro-gramm. Ein Server mit einem offenen Relay wird über kurz oder lang inden schwarzen Listen der Spambekämpfer landen. Und dann werden dieMails, die dieser Server verteilt, automatisch bei den meisten Empfängernin den Spamfilter wandern und ihr Ziel nie erreichen.
Im Folgenden werden drei Methoden vorgestellt, die BenutzerkontrolleAusblick
durchzuführen. Zunächst gibt es die Möglichkeit, dass Exim eine eige-ne kleine Passwortdatei pflegt. So braucht nicht jeder Mail-User auchautomatisch ein Konto auf dem Server selbst. Wenn sowieso nur dieangemeldeten Nutzer des Servers den Mailserver nutzen sollen, liegt esnahe, die systemeigene Benutzerverwaltung zu verwenden. So bleibendie Passwörter immer gleich. Der dritte Weg, der hier aufgezeigt wird, istdie Verwendung einer Datenbank. Damit sollten auch größere Benutzer-anstürme zu bewältigen sein.
Exims eigene Passwortdatei
Die einfachste Art, die Benutzer zu verwalten, ist die Einrichtung einereigenen Passwortdatei. In der Datei /etc/exim4/exim4.conf.template findenSie folgende Zeilen hinter dem Label plain_server, die allerdings bei Ihnennoch mit einem Kommentarzeichen ausgeblendet sein dürften:
plain_server:driver = plaintextpublic_name = PLAINserver_condition = "${ifcrypteq{$3}{${extract{1}{:} \
{${lookup{$2}lsearch{CONFDIR/passwd}{$value}{*:*}}}}} \{1}{0}}"
server_set_id = $2server_prompts = :.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDSserver_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}.endif
Die Zeile server_condition wurde aus satztechnischen Gründen zweimalumgebrochen. Obwohl sie sehr kryptisch aussieht, können Sie durchauserkennen, dass damit in der Datei passwd gesucht wird, die im Exim-Kon-figurationsverzeichnis liegt. Diese Datei wird die eigene Passwortdatei fürExim sein. Nach einem Neustart von Exim werden die Benutzer bereitsaus der Datei verwendet.
696
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 697 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Standard MTA Exim 22.4
Dazu müssen natürlich erst einmal Benutzer in der neuen Passwortdatei htpasswd
vorhanden sein. Zur Pflege bietet sich der Befehl htpasswd an, den Sievielleicht bereits vom Webserver Apache her kennen. Sie müssen fürjeden Benutzer einen Eintrag anlegen. Als Parameter geben Sie vor demBenutzernamen die verwendete Passwortdatei an.
debian # htpasswd /etc/exim4/passwd johannes
Mit der Option -D können Sie einen Benutzer aus der Passwortdateiwieder entfernen.
Lokale Benutzerverwaltung
Sie können die Benutzerverwaltung auch an die lokale Benutzerverwal- SynchronePasswörtertung anschließen. Das ist eigentlich nur dann sinnvoll, wenn es wirklich
darum geht, dem lokalen Benutzer einen eigenen SMTP-Server zur Ver-fügung zu stellen. Der Vorteil dieser Lösung ist, dass die Benutzer nichtunterschiedliche Passwörter für Mail- und Serverbetrieb benötigen. DieÜbersättigung der Benutzer mit Passwörtern führt letztlich dazu, dass diePasswörter immer simpler ausfallen oder sogar aufgeschrieben werden.Beides kann nicht das Ziel eines sicherheitsbewussten Administratorssein.
Für den Zugriff auf die lokale Authentifizierung verwenden wir den Dä- SASL-Dämon
mon saslauthd, der mit dem Paket sasl2-bin installiert wird.
debian # apt-get install sasl2-bin
In der Datei /etc/default/saslauthd muss die Variable START auf »yes« Dämonstart
gestellt werden, bevor der Dämon gestartet werden kann.
START=yes
Damit Exim mit dem Authentifizierungsdämon kommunizieren kann, Gruppenanschluss
muss er zur Benutzergruppe sasl gehören. Der folgende Befehl sorgt dafür:
debian # adduser Debian-exim sasl
Nun wenden wir uns der Konfiguration von Exim zu. In der Datei Exim-Konfigurationexim4.conf.template finden Sie, hinter Kommentarzeichen verborgen,
bereits alles, was Sie brauchen. Suchen Sie nach der Einstellungplain_saslauthd_server. Befreien Sie die zugehörigen Zeilen von denKommentarzeichen!
plain_saslauthd_server:driver = plaintextpublic_name = PLAINserver_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
697
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 698 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
server_set_id = $auth2server_prompts = :.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDSserver_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}.endif
Nun können Sie den Authentifizierungsserver starten und anschließendStart!
Exim neu starten, und die Anmeldung sollte funktionieren.
debian # /etc/init.d/saslauthd startdebian # /etc/init.d/exim4 restart
Benutzer in der Datenbank
Ein Mailserver, der seine Benutzer in einer Datenbank ablegt, wird diesGemeinsameDatenbank nicht nur für fünf Benutzer tun. Es kann davon ausgegangen werden,
dass es sich dabei schon um eine etwas umfangreichere Mailumgebunghandeln wird. Und in diesem Fall wird es sicher auch einen POP3- oderIMAP-Server geben, der ebenfalls seine Benutzer verwaltet sehen möchte.
Wenn Sie die Courier-Pakete verwenden, finden Sie bereits eineCourier-Paket
Konfiguration in der Datei exim4.conf.template hinter dem Labelplain_courier_authdaemon vor. Tatsächlich verfügt das Courier-Paketüber einen eigenen Authentifizierungsdämon, der ähnlich ansprechbarist wie der SASL-Dämon.
Da die Authentifizierung über diesen Dämon läuft, müssen Sie nur dasCourier-Paket konfigurieren und können Exim einfach daran anhängen.Sie finden dies im Workshop in Abschnitt 35.3 ab Seite 860 beschrieben.
Ganz so billig, wie es sich hier anhört, ist die Einrichtung natürlich nicht.Aufwand
Sie müssen eine Datenbank anlegen, eine Tabellenstruktur definieren. DieBenutzerdaten müssen in diese Datenbank geschafft werden. Da nichtjeder Administrator davon begeistert sein wird, dies per SQL-Befehle ein-zutippen, werden Sie Skripte benötigen. Eine der kleinen Gemeinheitenist das Verwalten der verschlüsselten Passwörter in der Datenbank. Diesfinden Sie im Workshop in Abschnitt 35.3 ab Seite 860 anhand einerPostgreSQL-Datenbank beschrieben, funktioniert aber mit einer MySQL-Datenbank genauso gut.
22.4.7 Direktaufruf von Exim
Sie können mit dem Befehl exim4 den MTA von außen befragen undexim4
ansteuern. Damit die Liste der Optionen im alltäglichen Gebrauch nicht
698
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 699 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Der Kampf gegen das Böse 22.5
allzu lang wird, gibt es einige Aliasnamen des Befehls, die automatischbestimmte Optionen setzen.
So bewirkt der Befehl mailq dasselbe wie der Aufruf exim4 -bp: Er zeigt Warteschlange
an, welche Nachrichten noch in der Warteschlange stehen.
Mit der Option -bt können Sie die Auslieferbarkeit einer E-Mail-Adresse Adresstest
prüfen. Die Ausgaben können Sie mit der Option -d für Debug nocherweitern. Als Parameter geben Sie die gesuchte Adresse an.
debian # exim -bt -d 9 [email protected]
Option Bedeutung
-bp Zeigt die Mails in der Warteschlange
-bpc Liefert die Anzahl der Mails in der Warteschlange
-bt Testet eine Mail-Adresse
-q Mails abarbeiten und versenden
-Mrm Mail-ID Löscht die Mail Mail-ID
Tabelle 22.1 Optionen von exim4
22.5 Der Kampf gegen das Böse
E-Mail wäre so ein schönes Medium, wenn da nicht diese bösen Men-schen wären, die fragen, ob Sie Viagra brauchen, auf zweifelhaftesGlücksspiel stehen, mit unechten Rolex-Uhren angeben wollen oder sichfür rechtsradikales Gedankengut erwärmen möchten.
22.5.1 Spamassassin gegen Werbung
Debian verfügt über einen Spamfilter namens Spamassassin, der über das Installation
Paket gleichen Namens installiert wird.
debian # apt-get install spamassassin
Spamassassin läuft als eigenständiger Dämon im Hintergrund. Der Dämonbetrieb
Austausch mit dem MTA läuft über eine Socketverbindung. Um Spam-assassin im Hintergrundbetrieb zu betreiben, müssen Sie in der Datei/etc/default/spamassassin die Variable ENABLED auf 1 stellen. Das führtdazu, dass beim Systemstart Spamassassin automatisch gestartet wird.
699
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 700 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
# /etc/default/spamassassinENABLED=1
Die Konfiguration findet in der Datei /etc/spamassassin/local.cf statt. DortKonfiguration
stehen folgende Werte:
required_score 5 # Spam-Pegelwertreport_safe 1 # Bericht direkt in der Mailbayes_auto_learn 1 # Spamassasin lernt selbst
Danach muss der Spamassassin noch einmal neu gestartet werden. DasInit-Skript tut dies.
debian # /etc/init.d/spamassassin restart
Exim vorbereiten
Damit Exim eine freundliche Verbindung zu Spamassassin aufbaut, soll-te es das Schwergewicht aus dem Paket exim4-daemon-heavy sein. Hiergibt es bereits eine Schnittstelle zu Spamassassin, die Sie in der Da-tei /etc/exim4/exim4.conf.template aktivieren. Dort kann die Adresse desSpamservers angegeben werden. In unserem Beispiel ist diese lokal.Spamassassin verwendet den Port 783.
spamd_address = 127.0.0.1 783
Im ACL-Bereich muss dann noch der Zugriff auf die lokalen Bereichefreigegeben werden. Dankenswerterweise sind die passenden Einträgebereits vorhanden und müssen nur noch von ihren Kommentarzeichenbefreit werden.
acl_check_data:...warn
spam = Debian-exim:truemessage = X-Spam_score: $spam_score\n\
X-Spam_score_int: $spam_score_int\n\X-Spam_bar: $spam_bar\n\X-Spam_report: $spam_report
Wenn Sie diese Zeilen entkommentiert haben, ist es an der Zeit, auchExim neu zu starten.
debian # /etc/init.d/exim4 restart
Nun sollte alles bereit sein. Zum Testen benötigen Sie Spam. In der Da-tei /usr/share/doc/spamassassin/examples/sample-spam.txt finden Sie eineentsprechende Beispielmail. Sie enthält die folgende Zeichenkette:
700
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 701 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Der Kampf gegen das Böse 22.5
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Aus satztechnischen Gründen ist diese umgebrochen. Bitte tun Sie dasin Ihrer Testmail nicht. Diese Zeile muss ohne Zeilenumbruch und oh-ne Leerzeichen gesendet werden. Spamassassin sollte sie erkennen undsofort als Spam identifizieren.
22.5.2 Virenschutz
Insbesondere, wenn Sie Windows-Rechner im Netzwerk haben, kann es Mail-Virenschutz
sinnvoll sein, die Mails nach Viren zu durchsuchen, bevor sie auf den Ar-beitsplatzrechner gelangen. Da aber inzwischen die meisten Viren andereWege als E-Mail-Anhänge verwenden, können Sie sich trotz Virenschutzauf dem Mailserver die Installation von Anti-Viren-Software auf den Ar-beitsplätzen nicht ersparen. Sie benötigen dazu das Paket clamav-daemon.
debian # apt-get install clamav-daemon
In der Konfigurationsdatei clamd.conf muss die Variable AllowSupplemen- Konfigurationclamd.conftaryGroups gesetzt sein.
# /etc/clamav/clamd.confAllowSupplementaryGroups true
Das ist sie in der Regel auch, sodass hier nichts zu tun ist. Nach dieserMeisterleistung muss der Dämon neu gestartet werden.
debian # /etc/init.d/clamav-daemon restart
Exim-Konfiguration
Wir wenden uns Exim zu. In der Datei /etc/exim4/exim4.conf.template su-chen Sie nach der Variablen av_scanner. Diese ist das Interface zu ClamAV.Dort befindet sich der Socket, über den Exim mit ClamAV kommuniziert.
# /etc/exim4/exim4.conf.template# av_scanner = clamd:/tmp/clamdav_scanner = clamd:/var/run/clamav/clamd.ctl
Sie suchen weiter nach dem Stichwort malware. Sie werden eine aus-kommentierte Zeilenfolge finden, die mit dem Wort deny beginnt. Diesändern Sie.
# /etc/exim4/exim4.conf.template# deny# malware = *
701
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 702 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
# message = This message was detected as possible malwa-re ($malware_name).
denymessage = This message was detected as possible malwa-
re ($malware_name).demime = *malware = *
Sie ahnen schon, dass es nun an der Zeit ist, Exim neu zu starten. UndNeustart
wieder wird dazu das Init-Skript bemüht.
debian # /etc/init.d/exim4 restart
Die Virenkennungen werden durch den Dämon freshclam aktua-Aktualisierung
lisiert. Sie können dir relevanten Einstellungen durch den Befehldpkg-reconfigure wiederholen.
debian # dpkg-reconfigure freshclam
Sie werden gefragt, ob Sie eine ständige Verbindung zum Internet habenNachkonfiguration
und in welchem Takt Sie die Kennungen aktualisieren möchten.
22.6 POP3 und IMAP-Server Courier
Courier ist ein Paket aus mehreren Mailmodulen, die einzeln eingesetztwerden können. Vor allem der POP3- und der IMAP-Dämon haben sichweitgehend als Standard durchgesetzt. Der MTA, den Courier auch bietetsteht in Konkurrenz zu Postfix und zu Exim, dem Standardmailserverunter Debian.
22.6.1 POP3-Server
Ein POP3-Server liefert den Zugriff auf die lokalen Mails durch einen Be-Holt Mails ausMaildir nutzer, der sich mit Benutzername und Kennwort ausweisen muss. Der
Courier-Server setzt wie die meisten POP3-Server nach der Installationauf der normalen UNIX-Mailumgebung auf. Er verwendet zur Authentifi-zierung die Passwortdatei des Systems und greift auf die Maildir-Strukturdes MTA zu, um dem Client seine Mails zu liefern. Sie installieren dieCourier POP3-Server mit dem folgenden Befehl:
debian # apt-get install courier-pop
Nach der Installation werden Anfragen von außen sofort beantwortet.Out of the box
Die Authentifizierung gelingt durch das lokale System. Allerdings arbeitetCourier grundsätzlich auf der Maildir-Struktur.
702
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 703 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
POP3 und IMAP-Server Courier 22.6
Maildir
Um eine korrekte Maildir-Umgebung zu schaffen, enthält das Courier-Pa- maildirmake
ket das Programm maildirmake, mit dessen Hilfe ein Maildir-Verzeichnisund dessen Unterverzeichnisse angelegt werden. Ein Benutzer kann seineigenes Maildir-Verzeichnis mit dem folgenden Befehl anlegen:
debian $ maildirmake $HOME/Maildir
TLS und Zertifikate
Der Zugriff auf POP3 sollte in allen öffentlichen Umgebungen verschlüs- TLS-Variante
selt erfolgen. Dazu wird TLS (Transport Layer Security) verwendet. Umden TLS-fähigen POP3-Server zu installieren, verwenden Sie das Paketcourier-pop-ssl.
debian # apt-get install courier-pop-ssl
Während der Installation wird automatisch ein selbst signiertes Zertifikaterzeugt, das in der Datei /etc/courier/pop3d.pem abgelegt wird. Sie wer-den darauf hingewiesen, dass Sie, wenn Sie ein autorisiertes Zertifikatbesitzen, dieses dort ablegen können.
Die Konfiguration der Zertifikate und der TSL-Umgebung erfolgt inden Dateien pop3d.cnf und pop3d-ssl. Beide finden Sie im Verzeichnis/etc/courier.
22.6.2 IMAP-Server
Im Gegensatz zu POP3, mit dessen Hilfe Sie Ihre Mails vom Mailserver Arbeitet auf demServerauf Ihren Arbeitsplatzrechner kopieren, arbeiten Sie mit IMAP direkt auf
dem Datenbestand Ihres Mailservers. Das IMAP-Paket des Courier-Paketsheißt courier-imap und wird mit dem folgenden Aufruf installiert:
debian # apt-get install courier-imap
IMAP-Server erwarten die Mails im Maildir-Format. Der Courier-IMAP- Maildir
Server ergänzt allerdings die Maildir-Struktur um einige Dateien, die aberrückwärtskompatibel sind. Fremde Programme können zwar in der Regelmit den Erweiterungen nichts anfangen, stören sich aber auch nicht da-ran. Die Benutzerauthentifizierung erfolgt durch das Debian-System. Sokann der IMAP-Server direkt nach der Installation eingesetzt werden.
703
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 704 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
SSL und die Zertifikate
Um die Kommunikation mit dem IMAP-Server zu verschlüsseln, benö-Verschlüsselt
tigen Sie die SSL-Variante des IMAP-Servers. Diese finden Sie im Paketcourier-imap-ssl.
debian # apt-get install courier-imap-ssl
Bei der Installation wird automatisch ein Zertifikat erstellt, das natürlichZertifikat
nicht von einer autorisierten Zertfizierungsstelle abgezeichnet ist. Dieswird ein E-Mail-Programm beim ersten Zugriff sogleich bemängeln. Soll-ten Sie die Warnung aber übergehen und das unsichere Zertifikat damitbestätigen, wird der E-Mailclient erst dann wieder rebellieren, wenn sichdas Zertifikat ändern sollte. Ist also der erste Kontakt gesichert, kann einspäterer Mann-In-The-Middle-Angriff ausgeschlossen werden. Vor allemist natürlich eine mit nicht-autorisiertem Zertifikat erstellte Verschlüsse-lung immer noch besser als gar keine. Der Server kann sofort über denPort 993 erreicht werden, wenn bereits die Maildir-Struktur eingerichtetist.
22.6.3 Benutzerverwaltung
Standardmäßig setzen die Courier-Pakete auf der BenutzerverwaltungMail- undSystem-User des Betriebssystems auf. Damit hat jeder Mail-Anwender automatisch
ein Konto beim Betriebssystem. Sie können verhindern, dass sich Mail-Benutzer am System einloggen, indem Sie die Login-Shell in der Datei/etc/passwd entfernen.
Welche Benutzerverwaltung die Courier-Pakete verwenden, wird in derauthdaemonrc
Datei authdaemonrc im Verzeichnis /etc/courier definiert. In der Variablenauthmodulelist wird hinterlegt, auf welchem Weg die Pakete die Authen-tizität der Benutzer prüfen. Nach der Installation finden Sie hier den Wertauthpam.
# /etc/courier/authdaemonrcauthmodulelist="authpam"
Die Courier-Module können aber auch selbst die BenutzerverwaltungVirtuelle Benutzer
übernehmen. Die so angelegten Anwenderkonten werden als virtuelleBenutzer bezeichnet, da Sie nicht als User im lokalen Betriebssystemexistieren.
Courier kann die Benutzer in Datenbanken oder im LDAP ablegen. Bei-spielsweise können durch folgenden Eintrag festgelegt werden, dass dieBenutzerdaten in einer Berkley DB abgelegt werden.
704
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 705 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
POP3 und IMAP-Server Courier 22.6
# /etc/courier/authdaemonrcauthmodulelist="authuserdb"
Mit dem Eintrag dort ist es allerdings nicht immer getan. Sie benötigen Speichermodule
ein Modul, das die Verbindung zwischen dem Mailserver und der Ablageschafft. Das Paket courier-authlib-userdb wird bereits bei jedem Courier-Paket mitgeliefert und ist in der Lage, Daten in einer Berkley DB abzule-gen. Wollen Sie auf LDAP oder Datenbanken zugreifen, werden Sie nochweitere Pakete installieren müssen.
Je nach Verfahren der Datenablage müssen Sie festlegen, welche Daten- Konfigurations-dateienfelder des Speichermoduls welchem Feld des Mailservers entsprechen.
Bei Verwendung der Passwortdatei ist der Zusammenhang eindeutig, beieiner MySQL-Datenbank müssen die Feldnamen beschrieben werden.Diese Aufgabe über nimmt jeweils eine rc-Datei, die je nach verwende-tem Authentifizierungsmechanismus unterschiedlich heißt.
In Tabelle 22.2 werden der Wert der Variablen authmodulelist, das benö-tigte Paket und die Konfigurationsdatei gegenübergestellt.
authmodulelist Debian-Paket Konfigurationsdatei
authpam – –
authuserdb courier-authlib-userdb –
authpgsql courier-authlib-postgresql authpgsqlrc
authldap courier-authlib-ldap authldaprc
authmysql courier-authlib-mysql authmysqlrc
authpipe courier-authlib-pipe –
Tabelle 22.2 Verwaltung der Benutzer
Soll die Benutzerverwaltung von der Passwortdatei des Systems abge- Benutzer vmail
koppelt werden, müssen die Arbeiten durch einen eigenen Benutzer desMailsystems durchgeführt werden. Der Name ist frei wählbar. Wir ver-wenden hier vmail. Er muss im System als Benutzer angemeldet werden.Für diesen Benutzer vmail muss noch ein Benutzerverzeichnis angelegtwerden und darin das Verzeichnis für die Mail.
debian # useradd vmaildebian # mkdir /home/vmaildebian # chown vmail /home/vmaildebian # su vmaildebian $ mkdir /home/vmail/domaindebian $ mkdir /home/vmail/domain/userdebian $ maildirmake /home/vmail/domain/user/Maildir
705
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 706 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
Der Befehl maildirmake aus dem Courier-Werkzeugkasten erzeugt einemaildirmake
Maildir-Struktur. Er legt nicht nur den Ordner an, sondern baut allebenötigten Unterstrukturen auf.
Sie finden ein Beispiel für eine IMAP-Installation auf der Basis einerWorkshop
PostgreSQL-Datenbank im Workshop in Abschnitt 35.3 ab Seite 860.
22.7 Post sammeln: Fetchmail
Wenn Ihr Mailserver nicht mit einem MX-Eintrag in dem für Ihre Do-main zuständigen DNS-Server4 hinterlegt ist, ist es nicht ganz einfach, anIhre Post zu kommen. Und selbst wenn Ihr Server als offizieller Domain-Mailserver eingetragen ist, werden Sie Probleme mit Mail-Adressen frem-der Provider haben, die keine Möglichkeit der Weiterleitung von Mailsanbieten.
Fetchmail schließt diese Lücke. Das Programm meldet sich wie ein nor-Lückenbüßer
maler Mailclient beim Provider an, holt die Post ab, sortiert sie nachBenutzern und fügt sie per SMTP in den Briefschlitz des lokalen Mailser-vers.
Installation und Start
Fetchmail kommt in einem eigenen Paket namens fetchmail und wird mitInstallation
dem folgenden Befehl installiert:
debian # apt-get install fetchmail
Das Programm kann direkt gestartet oder als Dämon betrieben werden.Programmstart
In der Regel wird der Hintergrundbetrieb interessanter sein. Soll aller-dings Fetchmail beim Aufbau einer Internetverbindung aktiviert werden,müsste es aus einem PPP-Skript gestartet werden. Und dazu ist der direkteAufruf nützlich. Auch in der Konfigurationsphase ist der gezielte Aufrufvorteilhaft. Sie könnten den Direktaufruf auch für die crontab (siehe Ab-schnitt 11.3 Seite 366) verwenden. Wollen Sie Fetchmail allerdings alsDämon laufen lassen, editieren Sie die Datei /etc/default/fetchmail. Dortfinden Sie die folgende Zeile:
# /etc/default/fetchmailSTART_DAEMON=no
Wenn Sie den Wert auf »yes« ändern, wird Fetchmail im HintergrundDämonisierung
laufen. Alternativ können Sie beim Direktaufruf auch die Option -d ver-
4 DNS siehe Kapitel 21 Seite 651
706
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 707 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Postfix, die weitverbreitete Alternative 22.8
wenden. Dahinter geben Sie die Anzahl der Sekunden an, die zwischenzwei Aufrufen vergehen sollen.
Postfächerliste fetchmailrc
Konfiguriert wird das Programm über die Datei .fetchmailrc des jeweili- Konfigurationdurch .fetchmailrcgen Benutzers. Sie muss im jeweiligen Benutzerverzeichnis des Aufrufers
stehen. Eine Zeile in dieser Datei hat folgenden Aufbau:
Struktur einer Zeile in der Datei .fetchmailrc
poll <Server> protocol POP3 user <User> password <passwd>is <localUser> [ keep ]
Leider muss hier das Passwort im Klartext stehen. Damit nicht jeder die Passwortschutz
Passwörter auslesen kann, muss die Datei mit chmod 600 .fetchmailrc
für Fremde unlesbar gemacht werden. Ist das nicht der Fall, verweigertFetchmail seinen Dienst und weist auf das Problem hin.
Die Option keep am Ende der Zeile sorgt dafür, dass die Mail auf dem Mail nicht löschen
Server nicht gelöscht wird. Wird beim Direktaufruf die Option -k ver-wendet, löscht Fetchmail in keinem Briefkasten die gelesenen Mails.
Fetchmail liest nur bisher ungelesene Mails. Sollen alle gelesen werden, Alle Mails holen
verwenden Sie beim Aufruf die Option -a.
Die Option -L schreibt die Protokolle in die Datei, deren Name als Para- Protokoll
meter folgt.
Option Bedeutung
-k Mails auf dem POP3-Server nicht löschen
-a Liest alle Mails, nicht nur die bisher ungelesenen
-L Datei Protokolliere in Datei
Tabelle 22.3 Optionen von fetchmail
22.8 Postfix, die weitverbreitete Alternative
Wietse Venema begann das Projekt Postfix im Rahmen eines Forschungs- Alternative zusendmailsemesters im T. J. Watson Research Center der Firma IBM. Zu jener Zeit
herrschte das Programm sendmail als Standardmailsystem vor. Das Pro-gramm sendmail ist ungeheuer leistungsfähig, durch seine gewachsenen
707
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 708 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
Strukturen und die kryptischen Konfigurationsdateien aber nicht überallgleichermaßen beliebt.
Das Projekt Postfix hatte darum vor allem das Ziel, den bisher monolithi-Populär
schen Mail Transport Agent durch mehrere schlanke Programme zu erset-zen. Die Konfiguration sollte vereinfacht und die Sicherheit erhöht wer-den. Inzwischen ist Postfix einer der gängigsten Mailserver überhaupt.Aus diesem Grund setzen einige Programmpakete auf Postfix auf, wiebeispielsweise die Groupware Kolab oder die ISP-Software ispCP.
22.8.1 Installation
Debian liefert standardmäßig Exim4. Wenn Sie einen anderen Mailserverinstallieren, wird Exim4 zwangsläufig deinstalliert. Sie ersetzen Exim4durch Postfix mit dem folgenden Befehl:
debian # apt-get install postfix
Nach dem Herunterladen der Pakete werden Sie aufgefordert, die Konfi-Dialog-konfiguration guration von Postfix im Dialog zu betreiben. Wenn Sie genau wissen, was
Ihr Postfix tun soll, kann Ihnen dieser Assistent etwas Arbeit abnehmen.Nach der Installation können Sie diese Art der Konfiguration mit demBefehl dpkg-reconfigure jederzeit noch einmal ausführlich nachholen.
debian # dpkg-reconfigure postfix
An dieser Stelle wird allerdings beschrieben, wie die Konfiguration überDateikonfiguration
die Konfigurationsdateien erfolgt. Also beenden Sie den Assistenten ein-fach, indem Sie Keine Konfiguration auswählen. Dies empfiehlt sichauch, falls Sie bereits eine Konfiguration vorliegen haben sollten. DerAssistent zwingt in jedem Fall den Postfix MTA zum Schluss dazu, dieKonfigurationsdateien noch einmal zu lesen.
Die Eingaben des Assistenten zielen in erster Linie auf Änderungen inmain.cf
der Datei /etc/postfix/main.cf ab. Wenn Sie diese Datei ändern, rufen Sieanschließend den Befehl postfix reload auf, um die Konfigurationsän-derungen zu aktivieren.
22.8.2 Konfiguration
Im Verzeichnis /usr/share/postfix finden Sie ein paar Beispiele für die Kon-figurationsdateien. Insbesondere die Datei main.cf.dist ist hier sehr hilf-reich, da sie die Konfigurationsparameter mit recht ausführlichen Kom-mentaren enthält.
708
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 709 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Postfix, die weitverbreitete Alternative 22.8
In der Konfigurationsdatei werden Parameter als Zuweisungen gesetzt. main.cf
Zunächst erscheint der Name des Parameters, dann ein Gleichheitszei-chen und schließlich der Inhalt. Der Inhalt kann in der nächsten Zeilefortgesetzt werden, wenn diese mindestens mit einem Leerzeichen be-ginnt. Daraus folgt natürlich auch, dass ein neuer Parametername immerganz links beginnen muss.
Wer bin ich eigentlich?
Mit den Variablen myhostname und mydomain werden der Rechner unddie Domäne festgelegt, die von anderen Parametern verwendet werden.Dazu gehört insbesondere die Variable mydestination. In normalen Kon-figurationen steht hier der Name des lokalen Rechners und der lokalenDomäne. Werden die beiden Variablen nicht explizit in der Datei main.cfgesetzt, enthält die Variable myhostname den Wert, den der Systemaufrufhostname() liefert. Der Domänenanteil des Aufrufs wird standardmäßigals Wert für die Variable mydomain verwendet.
Die Variable mydestination nimmt die Domäne auf, für die die Mail Lokale Mail
lokal verteilt wird. Hier sollte in meinem Fall also nicht willemer.de ste-hen, da mein Bruder beispielsweise auch eine Adresse dieser Domänehat und in diesem Fall eine Mail an ihn mein privates Hausnetz nie ver-lassen würde. Aus diesem Grund habe ich für das lokale Netzwerk dieDomäne willemer.edu erfunden, in der Annahme, dass wohl niemand eineamerikanische Bildungsstätte nach mir benennen wird.
Es wird in der Dokumentation von Postfix vorgeschlagen, für mydesti-
nation folgenden Eintrag zu wählen:
mydestination = $mydomain $myhostname localhost.$mydomain
Auf einem Mailserver für eine Domäne gibt es auch keinen Grund, die-sen Eintrag zu ändern. Wenn ein anderer Rechner in meinem Netzwerkauch E-Mails versenden will, muss er seine Mails an squeeze weiterlei-ten, weil dieser den Austausch mit dem Internet durchführt. Ein solcherRechner würde also gar keine Mails lokal abwickeln, sondern alle Mailsan den zentralen Rechner schicken. Dieser Rechner hätte also folgendeEinstellung:
mydestination =relayhost = squeeze
Alle Mails würden dadurch an den Rechner squeeze weitergeleitet, derseinerseits prüft, ob es sich um lokale Mails handelt oder ob sie insInternet weitergeleitet werden müssen.
709
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 710 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
Wählverbindung mit dem Internet
Ist der Rechner über eine Wählleitung mit dem Provider verbunden, sollrelayhost
Postfix die Post bei geschlossener Verbindung speichern und bei offenerVerbindung an den Rechner weitergeben, den der Provider zur Verfü-gung gestellt hat. Den Namen dieses Rechners erfahren Sie bei IhremProvider. Bei T-Online heißt er beispielsweise mailto.t-online.de und bei1&1 smtp.1und1.de. Ein solcher Rechner wird als Relay bezeichnet und inder Konfigurationsdatei main.cf unter dem Namen relayhost festgelegt.
relayhost = smtp.1und1.de
Damit die Mail nicht sofort verteilt wird, sondern erst bei einer Verbin-defer_transports
dung mit dem Internet, wird der Parameter defer_transports auf smtpgesetzt:
defer_transports = smtp
Da der Server direkt angegeben wird, braucht nicht per DNS der Mailser-ver der Domäne über den MX-Eintrag gesucht werden. Also schalten Siedas Suchen über DNS ab:
disable_dns_lookups = yes
Damit die Mail den Rechner in Richtung Internetprovider verlässt, mussdas Kommando sendmail -q gesetzt werden. Dieser Aufruf heißt absicht-lich genauso wie der Befehl, der bei einer sendmail-Installation verwen-det wird, damit die Skripte nicht angepasst werden müssen.
22.8.3 Mbox und Maildir
Nach der Grundkonfiguration verteilt der Postfix-Dämon die lokaleLokale Mbox
Post. Dabei werden die Nachrichten im Mbox-Standard im Verzeichnis/var/mail abgelegt. Für jeden Benutzer gibt es dort eine Datei, die allseine Post aufnimmt. Sie können dies ausprobieren, indem Sie mit demBefehl mail Post versenden.
Auch der Zugriff von einem anderen Rechner des gleichen NetzwerksSMTP vomNetzwerk funktioniert ohne vorherige Konfiguration. Sie können dies ausprobie-
ren, indem Sie den Befehl telnet aufrufen, als ersten Parameter denMailserver und als zweiten Parameter die Portnummer 25 für SMTP an-geben.
squeeze $ telnet debian 25Trying 192.168.109.199...Connected to debian.willemer.edu.Escape character is '^]'.
710
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 711 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
Postfix, die weitverbreitete Alternative 22.8
220 debian.willemer.edu ESMTP Postfix (Debian/GNU)QUIT221 2.0.0 ByeConnection closed by foreign host.
Die Verbindung wird aufgebaut, und Postfix meldet sich artig. Die Ein-gabe des Wortes »QUIT« löst die Verbindung, Postfix verabschiedet sichmit dem Wort »Bye«.
Sie wollen nicht, dass Postfix alle Schnittstellen bedient? Dann sollten Sie BedienteInterfacesin der Datei main.cf den Wert der Variablen inet_interfaces vom Wert
»all« auf die IP-Adressen der Schnittstellen beschränken, die in Zukunftbedient werden sollen. Bei mehreren Adressen trennen Sie diese durchein Leerzeichen. Die folgende Definition erlaubt den localhost und daslokale Netzwerk:
inet_interfaces = 127.0.0.1 192.168.109.199
Umstieg auf Maildir
In der Konfigurationsdatei main.cf im Verzeichnis /etc/postfix wird die Va-riable home_mailbox auf den Wert Maildir/ gesetzt. Anschließend mussPostfix die Datei neu einlesen. Der Befehl postfix reload erreicht dies.Die Konfiguration kann auch durch den Befehl postconf geändert wer-den.
debian # postconf -e "home_mailbox=Maildir/"debian # postfix reload
Anschließend können Sie einen POP3- oder einen IMAP-Server installie-ren, der dann direkt auf die Maildir-Struktur aufsetzt.
22.8.4 Lookup-Tabellen
In der Datei main.cf ist unter dem Stichwort »maps« eine Reihe vonLookup-Tabellen angegeben. Diese liegen als ASCII-Textdateien vor,müssen aber, bevor Postfix sie lesen kann, mit dem Programm postmap
in je eine Datenbankdatei gewandelt werden. Ein typisches Beispieldafür ist die Datei canonical. Sie enthält eine Tabelle, die Benutzer-namen des Systems in die Namen umsetzt, die vor dem @-Zeichenstehen. Beispielsweise könnte der Benuter till ein [email protected] verwenden wollen.
711
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 712 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: mail , Aktueller Job: debian
22 Der Mailserver
# /etc/postfix/canonicaltill [email protected]
Wenn Sie darin Änderungen vornehmen, müssen Sie die Datei mit demBefehl postmap in eine db-Datei wandeln.
debian # cd /etc/postfixdebian # postmap canonical
Es entsteht eine Datei namens canonical.db. Der passende Eintrag in derDatei main.cf lautet:
# /etc/postfix/main.cfcanonical_maps = hash:/etc/postfix/canonical
Die Datei canonical bewirkt das »input address rewriting«. Das Gegen-stück des »output address rewriting« wird in der Datei generic festgelegt.Für beide Dateien gibt es eine eigene Manpage.
22.8.5 Warteschlangen
Postfix arbeitet mit mehreren Warteschlangen, die sich unterhalb desVerzeichnisses /var/spool/postfix befinden. Die wichtigsten dieser Warte-schlangen sind:
� incomingHier befindet sich die eintreffende Mail.
� maildropDies ist der Ort, an dem der Anwender seine E-Mail einwirft.
� activeHier liegt die Mail, die zur Weiterleitung freigegeben ist.
� deferredIn diesem Verzeichnis wird Mail zurückgehalten, die noch auf ihreWeiterleitung warten muss.
Welche Nachrichten sich in welcher Warteschlange befinden, erfahrenSie über den Befehl postqueue -p. Sollen alle Mails, die beispielsweisedurch eine temporäre Störung verzögert werden, wieder weitergeleitetwerden, verwenden Sie den Befehl postsuper -r ALL.
22.8.6 Virtuelle Domänen
Natürlich bietet Postfix ebenfalls die Möglichkeiten, virtuelle Domainszu verwalten. Dieses Thema wurde am Beispiel von Exim4 bereits de-
712
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 713 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: virtuell , Aktueller Job: debian
Postfix, die weitverbreitete Alternative 22.8
taillierter vorgeführt. Aus diesem Grund soll dies nicht alles für Postfixnoch einmal wiederholt werden. Sie finden darüber hinaus im Internetfür Postfix zahllose Beispiele, da Postfix eben weit verbreitet ist. Hierwird also nur in groben Zügen umrissen, wie die Einrichtung bei Postfixdurchgeführt wird.
In der Datei main.cf verweisen einige Parameter auf die weiterführenden main.cf
Konfigurationsdateien. Die folgenden Zeilen zeigen Beispiele für eineKonfiguration, die auf eine PostgreSQL-Datenbank zugreift. Statt »pgsql«können Sie »mysql« einsetzen, wenn Sie lieber eine MySQL-Datenbankverwenden wollen.
# /etc/postfix/main.cfvirtual_alias_maps = pgsql:/etc/postfix/virtual_aliasvirtual_mailbox_domains = pgsql:/etc/postfix/virtual_domainsvirtual_mailbox_maps = pgsql:/etc/postfix/virtual_mailboxesvirtual_mailbox_base = /var/mail/vmail
Die Konfigurationsdatei enthält den Benutzer, Passwort, Datenbankna- DB-Konfiguration
men und vor allem den SELECT-Befehl, mit dem die gewünschten Datenaus der Datenbank geholt werden. Hier als Beispiel ein Zugriff auf dieDomaintabelle:
# /etc/postfix/virtual_domainsuser = maildbuserpassword = ganzgeheimdbname = mailquery = SELECT domain FROM domains WHERE domain='%s'hosts = 127.0.0.1
Natürlich muss in der Datenbank eine entsprechende Struktur angelegt Datenbankanlegenworden sein. Wie im Workshop in Abschnitt 35.3 ab Seite 860 gezeigt,
kann die Datenbank auch vom POP3- und den IMAP-Server genutzt wer-den, um dessen Zugriffe zu authentifizieren.
713
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 911 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
.htaccess 627
.htpasswd 629
.netrc 577
.rhosts 323/bin 89/dev 87, 229/dev/null 87, 112, 231/dev/pts 231/dev/zero 87, 231/etc 89/etc/aliases 686/etc/auto.master 567/etc/bind/named.conf 662/etc/exports 560/etc/fstab 95, 383, 387, 390, 564,
891/etc/group 425/etc/hosts 268/etc/hosts.equiv 324/etc/inetd.conf 304/etc/magic 175/etc/netgroup 426/etc/network/interfaces 253, 275/etc/nsswitch.conf 272/etc/passwd 417, 418/etc/profile 124, 854/etc/resolv.conf 273, 671/etc/services 269/etc/shadow 420, 872/etc/skel 421/etc/sysctl.conf 260/etc/udev/rules 232/home 91, 878/lib 89/media 95, 386/mnt 95, 386/opt 91/proc 91, 497/tmp 90/usr 90/var 90/var/log/messages 430, 476/var/run/utmp 428& 11524/7 727
A
Absoluter Pfad 88Access Control Lists 405ACL 405
default 407getfacl 406, 407setfacl 406sichern 407
adduser 423, 881Administrationsaufgaben 429Administrator 415Advanced Package Tool 50AIDE 346Aktualisierungsverwaltung 46alias 125aliases 686Alternative source 128Ampersand 115Anonymer FTP-Server 579ANSI 901Antivirenprogramm 701Anwendungen
installieren 42Apache 617
access.log 627DocumentRoot 621error.log 626htaccess 627HTML-Dateien 617htpasswd 629Laufzeit 624Prefork 624Protokolldateien 617, 626Statistik 627Subversion 584VirtualHost 620VirtuellHost 630Websitekonfiguration 622Worker 624Zertifikat 635Zugriff 628
apache2.conf 618apache2ctl 619apcupsd 771API 901
911
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 912 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
apt-cdrom add 55apt-get 50
autoremove 51clean 51dist-upgrade 53install 50purge 51remove 51update 52upgrade 52
Aptitude 48Arbeitsverzeichnis 88Architektur 29Argument 106, 157, 901ARP 244, 901arp 245ASCII 901at 367atime 92atq 368atrm 368Aufs 876Auslastung 490Ausloggen 325auto.master 567autofs 567automount 567autorized_keys 316awk 216
B
Backquotes 114, 135Bandlaufwerk 459, 464basename 147bash 103bc 134Befehlsverschachtelung 114Benutzer
anlegen 38, 422, 423entfernen 422, 423Festplattenplatz 390Verwaltung 415Wechsel 428
Benutzerverzeichnis 91, 133, 162,740, 870dynamisch 878
Benutzerverzeichnisprototypskel 421
Berkeley 73
bg 117bin 89BIND 651BIOS 32, 33, 235Bittorrent 31blkid 371, 765block device 230Boot 235, 901Boot-CD 412Bootmanager (GRUB) 408Bootmenü 408
Fremdsystem 409Bootmenüeintrag 236Bootprobleme 412Bootreihenfolge 32Bootzeitpunkt 490break 145BSD 901bzip2 225
C
C 901C++ 901Cache 901cancel 453case
Shell-Skript 142cat 201CD
brennen 762Brenner 460, 760–762CD-RW 762kopieren 762Multisession 762
cd 161cdrecord 761, 762cfdisk 375CGI 636, 832cgi-bin 622, 637Chainloader 410CHAR 594character device 230chgrp 165, 819chkrootkit 346chmod 127, 165, 169chown 164chroot 749CIDR 250Citadel 894
912
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 913 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
Icedove 895Thunderbird 895WebCit 894
ClamAV 701Classless Inter-Domain Routing 250Client 901Common UNIX Printing System 449compress 226configure 58continue 145Controller 229Cookies 633Core-Dump 126, 499Courier 702
POP3-Server 702cp 157cpio 466CPU 901CPU-Last 486cron 366crontab 366crypt() 733cryptsetup 754ctime 92CUPS 449
Konfiguration 449Verwaltung per Browser 803
CUPS-Server 803Cursor 901cut 205Cyrus 896
D
Dämon 901Start und Stopp 240
Dämon 96dash 129date 363, 482Datei 80
Rechte 153Dateien
Übertragung 571Anfang anzeigen 205anlegen 171auflisten (ls) 151ausführen 83Eigenschaften 81, 164Eigentümer ändern 164Ende anzeigen 204
im Verzeichnisbaum suchen 193Inhalt anzeigen 201Inhalte durchsuchen 202komprimieren 226kopieren 157löschen 159offen 495Rechte ändern 165sortieren 211suchen 200teilen 206Typ ermitteln 174umbenennen 159verborgen 81Zeichen umcodieren 207Zeilen umbrechen 207Zeilenausschnitt 205
Dateinamen 80Dateirechte 405Dateisystem 384, 739, 740
abkoppeln 388Belegung 389einbinden 386erstellen 385ext3 384Journal 392Konsistenz 385, 392remount 387sichern 461verschlüsselt 751
Dateisysteme 91Dateityp 153Datenabgleich 587Datenabgriff aus Pipe 114Datenbank 591
Abfragen 600Konsistenz 592PHP 644Tabellen 592
Datenrücksicherung 463Datensicherung 455, 743, 757
CD brennen 761dump 461inkrementell 457Subversion 586tar 464
Datum 363dbox 902dd 468, 888ddclient 781
913
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 914 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
deb 75debconf-show 849Debian 27, 67, 76, 79
Gesellschaftsvertrag 77Paket 42Pakete 74Release 75Website 28
Debian-Paket-Manager 55debootstrap 721Debugger 499, 902Default-Route 262defer_transports 710deluser 423dev 87, 229dev/null 87, 112, 231dev/pts 231dev/zero 87, 231Device 902Devices 229df 389, 473, 736dhclient 276DHCP 35, 253, 273, 793, 796, 902
Client 275dhcpd.conf 282DNS 671DNS-Eintrag 282Gateway-Eintrag 282Mac OS X-Client 276Server 278, 789Windows-Client 277
dhcpd.conf 279, 797Diagnose 471diff 209dig 658DIN 902DISPLAY 514Display Manager 504Distribution 902dm_crypt 754dmesg 473DNS 651, 716
Anweisungen 667Apache 630Client 271Client-Konfiguration 273DHCP 671GNOME 671Konfiguration 652Mac OS X 672
Mailserver 655, 659, 683Master 659MX 659Primary Server 659Secondary Server 659Server 652Slave 659SOA 668Syntax 662testen 657TTL 655Windows 673Zonen 654Zonendatei 667
Domäne 651Domain Name System 651dpkg 50, 55Druckdienst
IPP 448LPD 447Raw IP 448
DruckenSAMBA 534
DruckerAdministration 447
du 389dump 461DVD
Brenner 460, 763Dynamische Websites 647Dynamisches Routen 266DynDNS 359, 777
E
e2label 371Easy-RSA 360echo 127, 130EDITOR 133Editor 175
emacs 187nano 192vi 176
Effektiver Benutzer 96EGP 266eGroupware 893Einbrucherkennung 344emacs 187Environment-Variable 902Erweiterte Partition 373
914
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 915 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
eSATA 460etc 89etc/aliases 686etc/auto.master 567etc/bind/named.conf 662etc/exports 560etc/fstab 95, 383, 387, 390, 564, 891etc/group 425etc/hosts 268etc/hosts.equiv 324etc/inetd.conf 304etc/magic 175etc/netgroup 426etc/network/interfaces 253, 275etc/nsswitch.conf 272etc/passwd 417, 418etc/profile 124, 854etc/resolv.conf 273, 671etc/services 269etc/shadow 420, 872etc/skel 421etc/sysctl.conf 260etc/udev/rules 232Ethereal 295Ethernet 243, 902Exim 686, 849
Datenbank 698Konfiguration 688paniclog 692Passwortdatei 696Protokolle 692Spamfilter 699SSL 694TLS 694Virenschutz 701Zertifikat 694
export 130exports 560expr 135ext3 91, 384, 871ext4 91Extended Partition 373Externes Medium 400extract 463
F
Fake-RAID 396FAQ 903FAT 93, 400
Fat Client 903fdisk 373, 737, 746, 870, 889Fehlertolerante Festplatten 394Ferninstallation 44Festplatte 94, 369
Belegung 389erweitern 735Gerätedatei 370Gerätedateien 736kopieren 886Last 494Sicherungsmedium 460
Fetchmail 706fetchmail 857fg 117file 174File Transfer Protocol 571find 193, 466, 467finger 427Fingerabdruck 310Firewall 259, 327
FTP 335Firewire 460fold 207for 146fork 99Forwarding 260, 785, 789free 472Freie Software 67Fremdschlüssel 597Frontend 903fsck 385fsck.vfat 401fstab 95, 383, 387, 390, 401, 564,
765, 891ACL 405
FTP 903Active Mode 571anonymous 579Automatisch einloggen 577Benutzerausschluss 579Client 571Firewall 335Kommandos 574Login 572Optionen 573Passive Mode 571Server 578
ftp 571.netrc 577
915
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 916 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
fuser 388, 495
G
gated 266Gateway 259, 784, 903GDebi 56GDM 504, 873, 882
Login-Skript 873gdm.conf 506gdm3 502genisoimage 761, 762Gerätedateien 229Gerätedatei 87getfacl 406, 407GhostScript 801gksu 44, 514GNOME 34
Administratorpasswort 514Network Manager 254
GNU 68, 69, 72, 151, 903GnuPG 353, 677GPA 356gpasswd 425gpg 353GPL 69, 903Grafische Oberflächen 501grep 202group 425Groupware 893
Citadel 894eGroupware 893Kolab 896
growisofs 763GRUB 40, 408, 745, 891grub-install 409grub-mkconfig 409GRUB1 410GRUB2 409Gruppe wechseln 426Gruppenpasswort 425Gruppenverwaltung 425GUI 903gunzip 227gzip 227
H
Halt 238Handle 904Hardware-RAID 395Hauptspeicher 472hd-Gerätedateien 370head 205Hintergrundprozess 115History 120HOME 133home 91, 878Honeypot 347Host 904hostname 267hosts 268hosts.allow 565hosts.deny 565hosts.equiv 324Hostsuche 301Hot-Plug 232, 395, 904Howland, Chris 106htaccess 627HTML 825, 826, 904
Formular 641, 827, 832htpasswd 585, 629, 696HTTP 632httpd 617httpd.conf 619HTTPS 634
Tunnelung 359Hub 904hwclock 364
I
i-node 84, 92, 904Icedove 895, 899ICMP 258, 271, 904idmapd 566IDS 344IEEE 904if
Shell-Skript 138ifconfig 251, 281iftop 297Image-Datei 30, 32, 904Imagedatei 760IMAP 676, 681, 703index.html 617
916
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 917 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
inetd 303, 322inetd.conf 304init 237Init-Prozess 96Init-Skript 238, 239, 885init.d 238initrd 236inittab 237Inkrementelle Datensicherung 457,
757Installation 27
apt-get 50Aptitude 48Synaptic 44Tasksel 47
INTEGER 594interfaces 253, 275Internet 904Internet Printing Protocol (IPP) 448,
449Interrupt 499, 904Intranet 904ionice 494IP 905IP-Adressen 245
private 249IPP 448iptables 329, 339IPv6 283
localhost 285ISO 905ISO 9660 761ispCP 716
J
Java 905Java Server Pages 647, 648JavaScript 649, 830jigdo 30Jigsaw Download 30Jobnummer 116jobs 117Joliet 461Journal-Dateisystem 392, 905Journaling File System 93
K
KDE 34Administratorpasswort 514
kdesu 514Kernel 73, 720Kernel-Panic 500Kernelparameter 236Kernelstatus 91kill 117, 488
top 487killall 489known_hosts 311Kolab 896
Icedove 899Kontact 899PHP 897Thunderbird 899Zertifikat 897
Kommandointerpreter 103, 105Kommentare 129Komprimieren 226Konsistenz 385, 592, 905
Dateisysteme 392Konsole 905Kontact
Kolab 899KVM 723kvm-img 724
L
Löschen 159LAMP 838
Datenbank 839PHP 842
LAN (Local Area Network) 905LANG 131Lastverteilung 661Laufwerksbuchstaben 89LDAP 437, 896ldapadd 445LDIF 445less 202let 135lib 89LILO 408Link 83
hart 84symbolisch 85, 173, 238, 240
917
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 918 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
Linux 73, 79Live-CD 888ln 83ln -s 173localhost
IPv6 285locate 200Logical Volume Manager 378Login 428Logische Partition 373LOGNAME 134logout 325logrotate 482Lokale IP-Adressbereiche 249loopback 253lost+found 386lpadmin 452LPD 447lpinfo 451lpstat 453ls 151lsof 495lspci 474lsusb 474, 767lvcreate 379, 380lvdisplay 379lvextend 381LVM 378lvm-common 378lvremove 382lvscan 379LXDE 35
M
Mülleimer 231MAC 235, 243, 244, 726MAC-Adresse 280, 797MacOS X
DNS 672Mager-Shell 129Magic number 83mail 684, 847Mail Transfer Agent 675Maildir 685, 703, 711maildirmake 703, 859Mailserver 675, 716
aliases 686DNS 655, 659, 683Exim 686
Postfix 707major number 229make 58, 59, 589
Regel 61Suffixregeln 63Variablen 62Ziele 63
Makefilefür rsync 589
Mantra 354Masquerading 337Master Boot Record 408Mbox 685, 710, 849MBR 235, 408, 745, 905
sichern 469MBR sichern 748mdadm 397media 95, 386Medien kopieren 468Mehr-Augen-Prinzip 71menu.lst 411messages 430, 479metric 261Migration
Virtuelle Maschine 727MIME 682, 905minor number 230Mirroring 394MIT 73, 905Mittlere Maustaste 905mkdir 162mkfs 385, 739mkfs.vfat 400mkisofs 761, 762mknod 231mkswap 383mnt 95, 386Monitoring 496more 113, 202mount 94, 386, 401, 460, 563, 873
ACL 405SMB 553
mt 459MTA 675mtime 92MTU 292MULTICS 68Multisession 762Multitasking 97, 905Murdock, Ian 76
918
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 919 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
mv 159MySQL 602, 717, 839
Administration 605Benutzerverwaltung 604Datensicherung 609Installation 602Konfigurationsdateien 609PHP-Zugriff 644
MySQL-Administrator 606
N
Nagios 496named 651, 652named.conf 662Namensauflösung 266nano 192NAT 337, 789nc 300net 545netcat 299Netfilter 329netgroup 426Netinstall 29netrc 577netstat 289, 291, 292Network Address Translation 337Network File System 559Network Information System 431Network UPS Tools 773Netzadapter
anzeigen 291konfigurieren 251
Netzgruppe 426Netzwerk
absuchen 300beobachten 297Neustart 253
Netzwerk beobachten 293Netzwerkadapter
abschalten 290konfigurieren 253
Netzwerkecho 299Netzwerkklasse 246Netzwerkmanager 671Netzwerkmaske 246, 250, 263Netzwerkschnittstelle 235Netzwerksicherheit 327newaliases 686newgrp 426
NFS 559, 877, 906Client 563fstab 564Server 560showmount 562Sicherheit 565
NFSv4 566, 878Nice 492NIS 431, 879, 906nmap 300, 301nmbd 527nohup 98, 325nslookup 657nsswitch.conf 272, 432NTFS 93, 403, 469
Größe ändern 403kopieren 404umsiedeln 404
ntfsclone 404ntfsresize 403NTP 365NULL 594NUT 773
O
od 210Offene Dateien 495Oinkmaster 345oktal 906OLDPWD 133oldstable 76OpenLDAP 438OpenSSH 310openssl 635OpenVZ 720opt 91Option 105OSF 906OSI-Referenzmodell 906
P
Paging 383Paketquellen 54Panic 500Partition 36, 94, 372
Belegung 389cfdisk 375erweitert 373
919
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 920 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
extended 373fdisk 373logisch 373primär 373sichern 469UUID 765verschlüsselt 752Windows 400
Partitionieren 741Partitionstabelle wiederherstel-
len 376Passphrase 354, 755Passwörter 733passwd 417, 418, 872Passwort 417, 418Passwort vergessen 748Passwortänderung verhindern 872Passwortsicherheit 734Patente 906PATH 132PCI 474PDF 906Peer to Peer 522Performance 907Perl 733, 834Personal Firewall 327PGP 353, 906PHP 638, 836, 842
Apache 624Dateifunktionen 643Datenbankzugriff 644Formularauswertung 641Kolab 897MySQL 644PostgreSQL 646Sprachelemente 638Variablen 639
phpMyAdmin 608PID 95, 483ping 256Pipe 86, 110, 113, 466, 762, 907POP3 676
Protokoll 678POP3-Server 702, 859Port 269Portreflektor 299Ports 303Portscanner 300Portweiterleitung 320POSIX 100, 104, 907
POST 637Postfix 707, 717, 896
Virtuelle Domänen 712Warteschlangen 712
PostgreSQL 610, 860Benutzerverwaltung 612Datensicherung 613Installation 610PHP-Zugriff 646
PostScript 801, 907PPD 802PPID 483Präfix 907Primäre Partition 373Primärschlüssel 597PRIMARY KEY 594Priorität 492–494proc 91, 497profile 124, 854ProFTPD 578proftpd.conf 578Programmabbruch 117Prompt 907Proxy 339, 341, 907
Transparent 343Prozess 95, 97, 99, 483, 907
anzeigen 483Im Hintergrund starten 115Priorität 492, 493Status 498terminieren 488top 486
ps 483PS1 133PS2 133putty 314pvcreate 378pvscan 378, 379PWD 133pwd 161
Q
QEMU 726Quelltext 70Quota 390
Gnadenfrist 392Limits 390
quotaquotaoff 392
920
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 921 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
quotaon 392
R
RAID 393, 907Hardware 395Software 396
RAID 0 394RAID 1 394RAID 10 395RAID 5 394RAM 472RAM-Disk 907Raw IP 448rcp 321, 322read
Shell-Skript 149Realer Benutzer 96Reboot 238Rechteweitergabe 416Register 229Regulärer Ausdruck 220, 907rekursiv 155, 907Relativer Pfad 88Relay 690relayhost 710Remote Login 321remount 387renice 493
top 487Repository 582resize2fs 381resolv.conf 273, 671restore 461, 463RFC 907RFC 1519: CIDR 250rhosts 323Ritchie, Dennis 68rlogin 321, 323rm 159rmdir 163Rockridge 461root 415, 908Root-Berechtigung 168root-Rechte 44Rootkit 346ROT13 208Rotieren 480route 261, 783routed 266
Router 259, 784, 793Routing 259, 782
dynamisch 266metric 262Priorität 262statisch 261Tabelle 292verfolgen 293
RPM 75RS-232 908RSA 315RSA-Authentifizierung 314rsh 323rshd 322rsync 587rsyslog.conf 477rsyslogd 476Ruby on Rails 648Runlevel 237Runlevel 1 237
S
S-ATA 369SAMBA 521
Benutzer 818Benutzerverwaltung 530Besitzer 532browsable 526Druck 448Drucken 534Freigaben 531homes 822net 545path 525read only 526Schreibrecht 532security 525smb.conf 524smbclient 528smbpasswd 530Startskript 527SWAT 546testparm 527Verbindungsstatus 550Windows-Client 557workgroup 525writeable 526Zugriffsrechte 532
saslauthd 697
921
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 922 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
Scheduler 97Schlüssel erzeugen 315Schulcomputer 869scp 310, 312screen 326SCSI 908sed 212SELinux 348semanage 350sendmail 684Server 908services 269Servlets 647sestatus 350setenv 130setfacl 406SetUID-Bit 416shadow 872Shadow Password 420Shell 103, 105, 908Shell-Skript 127
Aufrufparameter 136case 142Ein- und Ausgabe 149for 146Funktionen 147if 138Programmierung 126Rückgabewert 142rc-Datei 239read 149Schleife 144shift 144test 139Variablen 129while 144
Shell-Variablen 130shift 137, 144showmount 562shutdown 238Sicherheit 327Sicherheitsproblem 412SIGCONT 98, 488SIGHUP 98, 325SIGINT 98, 117SIGKILL 97, 489Signal 97, 487, 488Signieren 351SIGSTOP 98, 488SIGTERM 97, 489
SIGTSTP 117Simple Mail Transfer Protocol 675Single-User-Modus 237skel 421slapadd 440slapd.conf 444Smarthost 689, 691, 855SMB 521smb.conf 819smbclient 528, 552smbd 527smbmount 553smbpasswd 530, 818smbstatus 550SMTP 675, 682, 908
Exim 686Postfix 707Protokoll 682
Sniffer 293, 295Snort 344SOA 655, 668Socket 269, 908
Verbindungsanzeige 289Socketdateien 86Software installieren 41Software-Center 42Software-RAID 396
Installieren 397Nachinstallieren 397
Softwareupdate 46sort 211source 128Sourcepaket 57sources.list 54Spamassassin 699Spamfilter 699special files 87Speedport-Router 794Speichermedien 93Spiegelung 394split 206Spool 908SQL 908
Data Definition Language(DDL) 593
Data Manipulation Language(DML) 599
Daten 599Datentypen 595GRANT 598
922
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 923 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
Index 597SELECT 600Spracheinführung 593Tabelle 594View 597
squid 341SSH 588
passwortfrei 316ssh 310, 513
Verzögerung 319Windows 314X 44, 607
ssh-add 318SSH-Agent 317ssh-keygen 315SSH-Server 314SSH-Tunnel 320sshd_config 318SSL
Mailserver 694stable 76Standardverzeichnisse 89start-stop-daemon 885startx 504Statusloser Server 633stderr 110stdin 110stdout 110Striping 394Stromausfall 771su 428Subdomäne 651Subnetmask
gpsiehe Netzwerkmaske246Subnetting 263Subversion
administrieren 586Server 584sichern 586
subversion 581sudo 429sudoers 429SUID 168Superuser 908svn 581svnadmin 586Swap-Partition
erzeugen 38, 383Größe 383
swapon 383
Swapping 382, 472, 908Datei 384Partition vs. Datei 383starten 383
SWAT 546Switch 908Symbolischer Link 240, 741Synaptic 44sync 401Syntax 909sysctl.conf 260syslog 430, 476, 479Systemlast 490Systemmeldungen 473Systemsicherung 458Systemstart 235
T
tail 204, 479tar 224, 226, 464, 742, 757, 875,
889, 890bzip2 225gzip 225
Tasksel 47TCP 270, 909TCP/IP 73, 244, 909tcpdump 293tee 114Telnet 306
Client 307Server 309Sitzung 308
Temporäre Dateien 90TERM 133, 307Terminal 909
virtuell 306, 323Terminal Server Client 512test 139TestDisk 376testing 76testparm 527tgz 225, 465Thin Client 881Thompson, Ken 68Thrashing 382thread safe 101Threads 99, 100, 909Thunderbird 356, 895, 899time to live 257
923
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 924 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
TLS 677, 694, 703tmp 90Tomcat 647top 486Top-Level-Domain 267Torvalds, Linus 74touch 171tr 207traceroute 293Transaktion 909Transparenter Proxy 343Treiber 909tsclient 512ttl 257TTY 909tune2fs 380, 393Tunneln 356type 125
U
Ubuntu 75udev 231, 767, 872UDP 270, 271, 909Uhrzeit 363ulimit 126, 499umask 170Umbenennen 159Umgebungsvariablen 130, 131Umleitung der Ein- und Ausgabe 111umount 388, 401UMTS 474, 786, 787unalias 125uname 471UNIQUE 594UNIX 68, 79unstable 76unzip 228update-rc.d 241updatedb 200Updates 46UPS 771uptime 490URL 909USB 460, 910
Speichermedium 766USB-Geräte 474USB-Stick 870USER 134User-ID
effektiv 96real 96
User-ID-Bit 168useradd 422usr 90usrquota 390USV 771utmp 428UUID 370, 764
V
var 90var/log/messages 430, 476var/run/utmp 428VARCHAR 594Variable 910Verbindung prüfen 256Verschachtelung von Komman-
dos 114Verschlüsselung 351, 352Versionsfeststellung 471Versionsverwaltung 581Verzeichnis 88, 160
anlegen 162erzeugen 162löschen 163wechseln 161
Verzeichnisbaum 88Verzeichniskopie 226, 742, 890Verzeichnisstandard 89Verzeichnistrenner 88vgchange 381, 382vgcreate 379vgremove 382vi 176Virenschutz 701virtual device 231Virtual Private Network 356VirtualBox 717Virtuelle Geräte 231Virtuelle Maschinen 715Virtueller Speicher 383Virtuelles Hosting 630Virtuelles Terminal 412visudo 429vmstat 490VPN 356, 910
924
Arnold Willemer, Debian-Server Version 0.1 vom 18.12.2009 Galileo Press, ISBN: 3-89842-240-2Layout: gp.cls, Version 3.4.001 (9th April 2011), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 7. Mai 2011, 7:15 Uhr Umlaut-Check: äöüÄÖÜ.
S. 925 Einstellungen: mit Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – normal breit – Zoom auf 100.0%Aktuelle Quelldatei: debian.ind , Aktueller Job: debian
Index
W
Warteschlange 97wc 211WebAlizer 627Webfilter 342Webserver 617Websperre 272Wechseldatenträger 95well known port 269, 270whereis 107which 107who 427whodo 427Wiederbeschreibbare CDs 762Wildcard 910
Fragezeichen 108rechteckige Klammern 109Stern 108
Wildcards 157Windows
DNS 673Windows-Netz 521Windows-Partition 400Wireshark 295wodim 761, 762wvdial 788
X
X Konsortium 910
X-Client 507X-Netzwerk 513X-Protokoll 507X-Server 507, 910X-SSH-Tunnel 513X-Terminal 884X/Open 910xdm 504, 507XDMCP 508, 884Xfce 35xinetd 305xorg.conf 516
Y
Yellow Pages 431, 910
Z
Zeitabgleich 365Zeitversetzte Kommandos 367Zertifikat 634, 635, 677, 703, 897
Mailserver 694VPN 359
zgrep 227zip 228zless 227Zuteilung Festplattenplatz 390
925