158
Arnold Willemer Linux-Server einrichten und administrieren mit Debian 6 GNU/Linux

Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

Arnold Willemer

Linux-Server einrichten und administrierenmit Debian 6 GNU/Linux

Page 2: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 3: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 4: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 5: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 6: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 7: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 8: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 9: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 10: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 11: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 12: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 13: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 14: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 15: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 16: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 17: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 18: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 19: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 20: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 21: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 22: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 23: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 24: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 25: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 26: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 27: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 28: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 29: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 30: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 31: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 32: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 33: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 34: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 35: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 36: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 37: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 38: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 39: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 40: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 41: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 42: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 43: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 44: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 45: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 46: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 47: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 48: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 49: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 50: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 51: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 52: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 53: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 54: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 55: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 56: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 57: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 58: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 59: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 60: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 61: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 62: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 63: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 64: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 65: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 66: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 67: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 68: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 69: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 70: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 71: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 72: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 73: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 74: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 75: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 76: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 77: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 78: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 79: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 80: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 81: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 82: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 83: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 84: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 85: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 86: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 87: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 88: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 89: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 90: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 91: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 92: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 93: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 94: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 95: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 96: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 97: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 98: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 99: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 100: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 101: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 102: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 103: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 104: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 105: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 106: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 107: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 108: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 109: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 110: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 111: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 112: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 113: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 114: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 115: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 116: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 117: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 118: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 119: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 120: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 121: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 122: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 123: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 124: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 125: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 126: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 127: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 128: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 129: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 130: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 131: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 132: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 133: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 134: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 135: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 136: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 137: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 138: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 139: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 140: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 141: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 142: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 143: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 144: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 145: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 146: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 147: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 148: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 149: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 150: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 151: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 152: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 153: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 154: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 155: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 156: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 157: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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

Page 158: Linux-Server einrichten und administrieren mit Debian 6 ... · Auf einen Blick TEIL I Installationsanleitung 1 Installation eines Debian-Servers ..... 27 TEIL II Das Handbuch 2 Debian

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