Download - Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Transcript
Page 1: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Linux- Handbuch und Projektdokumentation -

Tobias Mucke Michael Petter

Ausgabe 0.5 vom 2. Marz 2003

Projekthosting durch Sourceforge

Page 2: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Die Informationen in diesem Buch werden ohne Rucksicht auf einen eventuellen Patentschutz veroffentlicht.Warennamen werden ohne Gewahrleistung der freien Verwendbarkeit benutzt. Fast alle Hardware- und Soft-warebezeichnungen, die in diesem Buch erwahnt werden, sind gleichzeitig eingetragene Warenzeichen odersollten als solche betrachtet werden.Bei der Zusammenstellung der Texte und Abbildungen wurde mit großter Sorgfalt vorgegangen. Trotzdemkonnen Fehler nicht vollstandig ausgeschlossen werden. Verlag, Herausgeber und Autoren konnen fur feh-lerhafte Angaben und deren Folgen weder juristische Verantwortung noch irgendeine Haftungubernehmen.Fur Verbesserungsvorschlage und Hinweise auf Fehler sind Ihnen der Verlag, der Herausgeber und dieAutoren sehr dankbar.

Autoren:Mucke, [email protected], [email protected], Andreasemailadresse

Korrekturleser:Fehse, Mandy

Dieses Buch unterliegt den Grundgedanken der GPL und wird ausschließlich mit Hilfe des SatzsystemsLatex unter Linux geschrieben. Die Veroffentlichung erfolgt als plattformunabhangiges PDF.

Page 3: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Dieses Buch ist allen gewidmet, die Linux unterstutzen, einsetzen und weiterentwickeln.

Page 4: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 5: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

1. Einleitung 191.1. Anmerkungen der Autoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191.2. Uberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201.3. Lizenzmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211.4. Kontakt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211.5. Arbeitsgliederung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

I. Linux fur Anwender- Einsatz auf dem Desktop - 25

2. Grundwissen 272.1. Personal Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

2.1.1. Schichtenmodell eines Computersystems. . . . . . . . . . . . . . . . . . . . . . . 272.2. Betriebssysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

2.2.1. Betriebssysteme imUberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282.2.2. Betriebssystem - Geschichte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282.2.3. Aufgaben des Betriebssystems. . . . . . . . . . . . . . . . . . . . . . . . . . . . .292.2.4. Einsatzgebiete und Zukunft von Linux. . . . . . . . . . . . . . . . . . . . . . . . . 29

2.3. Linux - Merkmale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292.3.1. OpenSource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302.3.2. Dokumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302.3.3. Sicherheit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312.3.4. Plattformvielfalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312.3.5. Entwicklungsumgebung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

3. Installation 333.1. Systemanforderungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333.2. Boot- und Installationsmedien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343.3. Vorbereitungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353.4. Installationsschritte und Einstellmoglichkeiten. . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4.1. Systemboot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363.4.2. Kernel und Module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363.4.3. YaST2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363.4.4. Installationsvorgang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38

4. Erste Schritte 414.1. Linux starten und beenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41

4.1.1. Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41

5

Page 6: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

4.1.2. Shutdown. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424.2. Tastatur und Maus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424.3. X Window System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434.4. Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444.5. Systemeinstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

5. Dokumentation 455.1. Manual-Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455.2. Info-Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465.3. FAQs - Frequently Asked Questions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465.4. HOWTOs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475.5. LDP - Linux Documentation Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475.6. Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475.7. KDE-Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .485.8. Quellen im Internet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .485.9. Software-Pakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48

6. X-Window-System 496.1. Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

6.1.1. X-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496.1.2. X-Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496.1.3. X-Architektur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .506.1.4. Start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51

6.2. Grafischer Login - Anmeldung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .516.2.1. Xdm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .516.2.2. Kdm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.2.3. Gdm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52

6.3. Windowmanager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.3.1. KDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.3.2. Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526.3.3. Enlightenment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52

6.4. X im Netzwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536.4.1. X-Forwarding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536.4.2. VNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

6.5. Wichtige Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536.6. Truetype Schriftarten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53

6.6.1. Truetype und X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .536.6.2. Antialiasinguberprufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .546.6.3. Open Office und Truetype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .556.6.4. Truetypeschriften in Mozilla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55

7. Kommandozeile 577.1. Editoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57

7.1.1. vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .587.1.2. emacs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

7.2. Dateimanager - Midnight Commander. . . . . . . . . . . . . . . . . . . . . . . . . . . . .607.2.1. Bedienung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .607.2.2. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61

6

Page 7: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

7.2.3. Ausfuhrung typischer Arbeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . .637.3. Bash - Bourne Again Shell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63

7.3.1. Shell - Benutzerschnittstelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .637.3.2. Umgebungsvariablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .637.3.3. Basiskonfiguration - Tastenbelegung und Prompt. . . . . . . . . . . . . . . . . . . 647.3.4. Kommandoeingabe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .647.3.5. Wichtige Tasten und Tastenkombinationen. . . . . . . . . . . . . . . . . . . . . . 647.3.6. Alias-Abkurzungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .647.3.7. Ein- und Ausgabeumleitung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .657.3.8. Kommandoausfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667.3.9. Substitutionsmechanismen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67

7.4. Regulare Ausdrucke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .687.4.1. Syntax von Regularen Ausdrucken. . . . . . . . . . . . . . . . . . . . . . . . . . .687.4.2. grep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .687.4.3. Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

8. Standards 718.1. LSB - Linux Standard Base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .718.2. TDS - TEX Directory Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .718.3. FHS - Filesystem Hierarchy Standard. . . . . . . . . . . . . . . . . . . . . . . . . . . . .71

9. Dateisystem 759.1. Grundlagen der Dateiverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75

9.1.1. Dateitypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .759.1.2. Pfadangaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .759.1.3. Dateien und Verzeichnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .779.1.4. Geratedateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .779.1.5. Jokerzeichen und Platzhalter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .789.1.6. Versteckte Dateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .789.1.7. Verzeichnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78

9.2. Sicherheit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .799.2.1. Besitzverhaltnisse und Zugriffsrechte. . . . . . . . . . . . . . . . . . . . . . . . . 799.2.2. Zugriffsrechte setzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809.2.3. Zuweisung eines Besitzers oder einer Gruppe. . . . . . . . . . . . . . . . . . . . . 819.2.4. Verwaltung von Gruppen und Benutzern. . . . . . . . . . . . . . . . . . . . . . . . 819.2.5. Feste und symbolische Links. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .829.2.6. Links auf Programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82

9.3. Partitionen und Dateisysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .839.3.1. Zugriff auf mehrere Festplatten und Partitionen. . . . . . . . . . . . . . . . . . . . 839.3.2. Zugriff auf CD-ROM Laufwerke. . . . . . . . . . . . . . . . . . . . . . . . . . . .849.3.3. Zugriff auf Diskettenlaufwerke. . . . . . . . . . . . . . . . . . . . . . . . . . . . .84

9.4. Dateisystemtypen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .849.4.1. Ein- und Aushangen von Dateisystemen. . . . . . . . . . . . . . . . . . . . . . . . 859.4.2. Datei /etc/fstab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .869.4.3. Datei /etc/mtab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88

9.5. Interna des Dateisystems ext2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .889.5.1. Aufbau des ext2-Dateisystems. . . . . . . . . . . . . . . . . . . . . . . . . . . . .889.5.2. Dateien und Verzeichnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88

7

Page 8: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

9.5.3. I-Nodes (Informationsknoten). . . . . . . . . . . . . . . . . . . . . . . . . . . . .899.6. Interna anderer Dateisysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89

10. Softwareinstallation 9110.1. RPMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9110.2. TAR.GZs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91

10.2.1. Kompilierte Pakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9110.2.2. Quellcode Pakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92

II. Linux fur Administratoren- Einsatz auf dem Server - 95

11. Bootkonzept und -manager 9711.1. Bootvorgang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97

11.1.1. BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9711.1.2. CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9811.1.3. MBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9811.1.4. LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9911.1.5. Grub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9911.1.6. Kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10011.1.7. Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

11.2. Systemstart-V-Init-Prozess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10011.2.1. Programm init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10111.2.2. Runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10111.2.3. init-Skripten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102

11.3. Bootkonzepte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10211.4. LILO - Linux-Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103

11.4.1. Andere Betriebssysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10411.4.2. LILO deinstallieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

11.5. Grafischer Boot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

12. RPM - RedHat Paket Manager 10712.1. Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107

12.1.1. Namenskonvention. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10812.2. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10812.3. Abfragen der Paketdatenbank. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10812.4. Abhangigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11012.5. Erstellung eigener Pakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110

13. Kernel und Kernelmodule 11113.1. Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111

13.1.1. Aufgabenteilung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11113.1.2. Geratedateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11213.1.3. Konzeption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11213.1.4. Versionsnummern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112

13.2. Kompilierung und Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11313.2.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113

8

Page 9: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

13.2.2. Installation der Kernel-Quellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . .11313.2.3. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11313.2.4. Kompilierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11413.2.5. Installation des Kernels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11513.2.6. Initial Ramdisk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11513.2.7. Systemtest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116

13.3. Verwaltung der Kernelmodule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11613.3.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11613.3.2. Modulklassen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11613.3.3. Automatismen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11713.3.4. Selbstverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11713.3.5. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11813.3.6. Kernelmodule von Drittanbietern. . . . . . . . . . . . . . . . . . . . . . . . . . .118

14. Hardware 12114.1. Arbeitsspeicher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12114.2. Festplatten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12114.3. Hotplug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122

14.3.1. Kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12214.3.2. Shellskripte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12214.3.3. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12314.3.4. Logdateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12314.3.5. USB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12314.3.6. PCI und PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12414.3.7. Netzwerk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12414.3.8. Firewire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124

14.4. PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12414.4.1. Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12414.4.2. Dokumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12514.4.3. Kommandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12514.4.4. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12514.4.5. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125

14.5. Hardware Erkennung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12514.5.1. hwinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12514.5.2. lspci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

14.6. Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12614.6.1. SCPM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12614.6.2. Schemen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

14.7. PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12614.7.1. Uberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12614.7.2. “Kernel” PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12714.7.3. “External” PCMCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12714.7.4. Kartenkontrolle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12714.7.5. Beispieleinrichtung: PCMCIA-Netzwerkkarten. . . . . . . . . . . . . . . . . . . .12814.7.6. Compact Flash Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

14.8. APM - Advanced Power Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . .12914.8.1. Suspend Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12914.8.2. Standby Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

9

Page 10: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

14.8.3. Batterie-Fullstand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12914.9. IDE- und ATAPI Gerate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

14.9.1. Informationen bezuglich IDE Gerate. . . . . . . . . . . . . . . . . . . . . . . . . .13014.9.2. Geschwindigkeitstests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13014.9.3. PIO-Mode und (U)DMA-Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . .130

14.10.Netzwerkkarten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13014.10.1.manuelle Einrichtung von Netzwerkkarten. . . . . . . . . . . . . . . . . . . . . .13014.10.2.Einrichtung der Netzwerkkarteuber die Konfigurationsdateien. . . . . . . . . . . .13114.10.3.WLAN Karten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

14.11.ALSA - Advanced Linux Sound Architecture. . . . . . . . . . . . . . . . . . . . . . . . .13214.12.Grafikkarten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132

15. LVM - Logical Volume Manager 13515.1. Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135

15.1.1. Funktion und Begriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13515.1.2. Einsatzgebiete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13615.1.3. Verwaltung und Beschrankungen . . . . . . . . . . . . . . . . . . . . . . . . . . .13615.1.4. Abgrenzung von RAID Systemen. . . . . . . . . . . . . . . . . . . . . . . . . . .137

15.2. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13715.2.1. Vorgehensweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13715.2.2. Physical Volumes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13715.2.3. Volume Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13815.2.4. Logical Volume. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13815.2.5. Dateisysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138

15.3. Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138

16. Administration 14116.1. Systemverwalter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14116.2. Login- und Systemsicherheit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

16.2.1. Name Service Cache Daemon. . . . . . . . . . . . . . . . . . . . . . . . . . . . .14116.3. Wichtige Systemdateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14216.4. Konfigurationstools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142

16.4.1. YaST2 Kontrollzentrum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14216.4.2. Sax2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14216.4.3. KDE Kontrollzentrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14316.4.4. Webmin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

16.5. Benutzerverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14416.5.1. Befehle zur Benutzerverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . .14516.5.2. Gruppenverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14716.5.3. Befehle zur Gruppenverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . .14716.5.4. Passwortverwaltung und -alterung. . . . . . . . . . . . . . . . . . . . . . . . . . .148

16.6. Drucker - Installation und Verwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . .14916.6.1. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14916.6.2. Warteschlangen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15016.6.3. Uberwachung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15116.6.4. Ausgabesteuerung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153

16.7. Umgang mit Dateisystemen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15416.7.1. Partitionierung einer Festplatte mit fdisk. . . . . . . . . . . . . . . . . . . . . . . .154

10

Page 11: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

16.7.2. Uberprufen des Dateisystems mit fsck. . . . . . . . . . . . . . . . . . . . . . . . .15416.7.3. Wechsel von ext2 von ext3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156

16.8. Syslog-Daemon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15616.9. Cron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15616.10.Logdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157

17. Prozesskonzept 15917.1. Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159

17.1.1. Definition des Begriffs “Prozess“. . . . . . . . . . . . . . . . . . . . . . . . . . .15917.1.2. Prozesszustande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16017.1.3. Prozesskontrollblock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16017.1.4. Entstehung einer Prozesshierarchie. . . . . . . . . . . . . . . . . . . . . . . . . .16117.1.5. Prozessoperationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161

17.2. Prozesse unter Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16217.2.1. Prozesshierarchie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16217.2.2. Prozesskenndaten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16217.2.3. Prozesskommunikation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

17.3. Kommandos zur Prozessverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16517.3.1. Befehle zur Prozessansicht. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16517.3.2. Prozessterminierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16717.3.3. Vorder- und Hintergrundprozesse. . . . . . . . . . . . . . . . . . . . . . . . . . .167

17.4. Zeitgesteuerte Prozessausfuhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16817.4.1. atd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16817.4.2. batch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169

18. Netzwerk 17118.1. Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17218.2. Grundkonfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172

18.2.1. YaST2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17218.2.2. Konfigurationsdateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17418.2.3. Startup - Skripten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175

18.3. Haufige Netzwerkbefehle und Fehlersuche. . . . . . . . . . . . . . . . . . . . . . . . . . .17518.3.1. route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17518.3.2. nslookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17618.3.3. ping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17718.3.4. traceroute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17718.3.5. rusers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17718.3.6. rup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17718.3.7. rlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17918.3.8. rlogin/rsh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17918.3.9. rcp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17918.3.10.slogin/ssh/scp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

18.4. TCP / IP Protokolle und darauf aufsetzende Dienste. . . . . . . . . . . . . . . . . . . . . .18118.4.1. Dienst telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18118.4.2. Dienst ftp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18118.4.3. Ausfuhren von X-Anwendungen. . . . . . . . . . . . . . . . . . . . . . . . . . . .182

19. Shellprogrammierung 185

11

Page 12: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

19.1. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18519.2. Shell - Allgemeinwissen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18519.3. Shellskripte - Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18519.4. Skriptsprache - Bestandteile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186

19.4.1. Festlegung des Shell-Interpreters. . . . . . . . . . . . . . . . . . . . . . . . . . . .18719.4.2. Kommentare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18719.4.3. einfache Kommandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18719.4.4. Ubergabeparameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18719.4.5. Variablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18719.4.6. Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188

19.5. Zeichenkettenzerlegung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18919.6. Parser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18919.7. Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190

20. VFS - Virtual File System und andere Dateisysteme 19320.1. Procfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193

20.1.1. Prozessinformationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19420.2. Oberpunkt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

20.2.1. Unterpunkt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19520.2.2. Unterpunkt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

20.3. Oberpunkt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19520.4. Kerneldaten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19620.5. IDE Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19720.6. SCSI Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19820.7. Netzwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19920.8. Parallelport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19920.9. Serielle Schnittstelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19920.10.Devfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200

20.10.1.Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20020.11.Reiserfs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20120.12.Codafs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201

20.12.1.Eigenschaften. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20120.12.2.Einbindung in den Kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202

21. Cluster 20321.1. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20321.2. Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203

21.2.1. Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20321.2.2. Weitere Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204

21.3. Hochverfugbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20421.3.1. Verfugbarkeit und Ausfallszenarien. . . . . . . . . . . . . . . . . . . . . . . . . .20521.3.2. Kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20521.3.3. Single Point of Failure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20521.3.4. Fehlertolerante Systeme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20621.3.5. Aufwandsabschatzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20621.3.6. Datenbestande und Filesysteme. . . . . . . . . . . . . . . . . . . . . . . . . . . .20621.3.7. Failover Strategien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20621.3.8. Hardware Fehler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207

12

Page 13: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

21.4. Heartbeat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20721.4.1. Konzept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20721.4.2. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20921.4.3. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20921.4.4. Failover-Szenarien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20921.4.5. Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20921.4.6. Warnungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209

21.5. Dokumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210

III. Linux fur Netzwerker- Einsatz in heterogenen Netzwerken - 211

22. Netzwerk - Grundlagen 213

23. SNMP - Simple Network Management Protocol 215

24. NTP - Network Time Protocol 21724.1. Allgemeines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217

24.1.1. Offentliche Zeitserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21724.2. Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21824.3. Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218

24.3.1. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21824.4. Zeitanpassung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219

25. DNS - Domain Name System 221

26. DHCP - Dynamic Host Configuration Protocol 22326.1. Funktionsweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22326.2. DHCP-Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224

26.2.1. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22426.3. DHCP-Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225

26.3.1. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22526.3.2. Dokumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22526.3.3. Konfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22626.3.4. Protokolldatei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22826.3.5. Integration System V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229

27. NFS - Network File System 23127.1. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23127.2. Installation der Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23127.3. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23127.4. Starten der Damonen und Statusabfrage. . . . . . . . . . . . . . . . . . . . . . . . . . . .23227.5. Konfiguration der Datei /etc/exports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23227.6. Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23327.7. Kommandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23327.8. Stolpersteine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23327.9. Fehlerbehebung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233

13

Page 14: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

28. NIS - Network Information Services 23728.1. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23728.2. Konzept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23728.3. Funktion der Einzelkomponenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238

28.3.1. Master-Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23828.3.2. Slave-Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23828.3.3. Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238

28.4. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23828.5. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239

28.5.1. Master-Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23928.5.2. Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24028.5.3. Erstellen der Datenbanken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24028.5.4. Slave-Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24128.5.5. Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241

29. SMB - Samba File Server und Primary Domain Controller 24329.1. Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24329.2. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24329.3. Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244

29.3.1. Samba Web Administration Tool (SWAT). . . . . . . . . . . . . . . . . . . . . . .24429.3.2. Globale Einstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24529.3.3. Verzeichnis-Freigaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24529.3.4. Drucker-Freigaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24829.3.5. Aufsetzen eines Primary Domain Controllers. . . . . . . . . . . . . . . . . . . . .24829.3.6. Benutzerverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24829.3.7. Passwort-Problematik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249

29.4. Samba-Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25029.5. Dokumentation und Quellcode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250

30. CVS - Concurrent Version System 25130.1. Installation der Softwarepakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25130.2. Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251

30.2.1. Gruppenverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25130.2.2. Einrichtung des Repositories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25230.2.3. Passwortverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252

30.3. Portkonfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25230.4. Konfiguration des Inetd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25230.5. Funktionstest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253

31. VNC - Virtual Network Computing 25531.1. Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25531.2. Softwareinstallation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25631.3. Funktionsweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25631.4. VNC-Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25631.5. VNC-Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256

31.5.1. Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25631.5.2. Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257

31.6. Beispielanwendungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257

14

Page 15: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

31.7.Uberbleibsel aus der alten Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25731.8. VNC - Virtual Network Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257

31.8.1. VNC-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25731.8.2. VNC Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258

32. LDAP - Lightweight Directory Access Protocol 259

33. Apache 26133.1. Softwareinstallation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26133.2. Beispielumgebung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261

34. FTP - File Transfer Protocol 26334.1. Softwareinstallation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26334.2. Beispielumgebung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263

35. Printserver 265

36. Internetdienste 267

IV. Linux fur Sicherheitsfanatiker- Einsatz in unsicherer Umgebung - 269

V. Linux fur Entwickler- Einsatz als Entwicklungsumgebung - 271

37. Programmierung 27337.1. CVS - Concurrent Versions System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273

37.1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27337.1.2. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27437.1.3. CVSuber das Netzwerk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27437.1.4. Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275

37.2. Makefiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27737.2.1. Erste Schritte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27737.2.2. Aufbau des Makefiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27737.2.3. Kommentare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27737.2.4. Variablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27737.2.5. Zielbereich. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27837.2.6. Direktiven. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27837.2.7. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278

37.3. Shellskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27837.4. Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278

37.4.1. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27937.4.2. Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279

38. Entwicklungsumgebungen 28138.1. Entwicklungsumgebungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281

38.1.1. Emacs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281

15

Page 16: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

38.1.2. Java Netbeans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283

39. Sprache C 28539.1. Grundelemente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285

39.1.1. Datentypen, Operatoren und Ausdrucke . . . . . . . . . . . . . . . . . . . . . . . .28639.1.2. Kontrollstrukuren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288

40. Sprache Smalltalk 291

41. Skriptsprache PHP 29341.1. Entwicklungsumgebungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293

41.1.1. Maguma Enterprise Environment und Maguma Studio Desktop. . . . . . . . . . .29341.1.2. Datenubergabe in Formularen. . . . . . . . . . . . . . . . . . . . . . . . . . . . .293

42. LaTeX 29542.1. Kommentare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29542.2. Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29542.3. Formatierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29642.4. Spezielle Abschnitte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296

42.4.1. Stichpunktlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29642.4.2. Quellcode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296

42.5. Pakete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29642.5.1. Hyperref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296

42.6. Querverweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29742.7. Stichwortverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297

VI. Anhang 299

A. Glossar 301

B. Kommandoreferenz 305B.1. Kommandos zur Dateiverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305

B.1.1. Befehle zur Dateisuche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307B.2. Bearbeitung von Texten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308B.3. Komprimierung und Archivierung von Dateien. . . . . . . . . . . . . . . . . . . . . . . .308B.4. Prozessverwaltung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309B.5. Verwaltung von Benutzern und Gruppen. . . . . . . . . . . . . . . . . . . . . . . . . . . .311B.6. Administration des Dateisystems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311B.7. Bildschirm und Terminal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313B.8. Online-Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313B.9. Sonstiges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313

B.9.1. pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314

C. Netzwerkplan 315C.1. Namenskonvention. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315

D. Serverhardware 317D.1. Voruberlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317

16

Page 17: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

D.2. Bauteilgruppen und Komponenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317D.2.1. Gehause und Netzteil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317D.2.2. Mainboard Prozessor Kuhlung . . . . . . . . . . . . . . . . . . . . . . . . . . . .318D.2.3. Arbeitsspeicher. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318D.2.4. Weitere Komponenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318D.2.5. Plattenbus Controller Laufwerke. . . . . . . . . . . . . . . . . . . . . . . . . . . .318D.2.6. Peripherie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318D.2.7. USV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318

E. Template fur LATEXDateien 319E.1. Dateikopf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319E.2. Kapiteluberschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319E.3. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320E.4. Lernziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320E.5. Gliederungspunkte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320E.6. Stichworteintrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321E.7. Tabellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322E.8. Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322E.9. Referenzen und Textmarken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322E.10. Verlinkungen ins Internet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323E.11. Aufzahlungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323E.12. Beschreibungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .323E.13. Textformatierungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324

E.13.1. Consolfont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324E.13.2. Kursivschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324E.13.3. Gliederungsformate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324

E.14. Fussnoten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325E.15.Ubungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325E.16. Zusammenfassung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325

F. Sourceforge 329F.1. Umgebungsvariablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329F.2. Checkout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329F.3. Ubernahme vonAnderungen auf dem CVS-Server. . . . . . . . . . . . . . . . . . . . . .329F.4. Anderungen einstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329F.5. Hinzufugen von weiteren Dateien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329F.6. Upload einer neuer Version. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329

G. Literaturverzeichnis 331

17

Page 18: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Inhaltsverzeichnis

18

Page 19: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

1. Einleitung

Bevor Sie sich in die zahlreichen Themen dieses Buches einlesen, mochten wir, die Autoren, Ihnen nochein paar Worte mit auf den Weg geben, die Sie in Ihrem Vorhaben, Linux kennen- und verstehen zu lernen,ermutigen sollen. Lesen Sie dazu die Anmerkungen der Autoren gleich zu Beginn dieser kurzen Einleitung.

Außerdem erscheint es aufgrund des Umfangs des Werkes, das in mehrere Bucher unterteilt ist, sinnvoll,Ihnen einen kurzenUberblick uber die Inhalte und deren thematische Aufteilung zu geben. Dazu gehortauch eine Aufstellung der verwendeten Textformatierungen in diesem Buch.

Letztendlich bleibt noch anzumerken, dass zwar bereits viele Themenbereiche abgehandelt, einige abernur stiefmutterlich bearbeitet und wieder andere noch gar nicht aufgenommen wurden. Vor uns Autorenliegt also bis zur konsequenten Umsetzung der Arbeitsgliederung noch ein harter, steiniger Weg.

Genug der Vorrede, viel Spaß mit Linux und beim Lesen dieses Handbuchs oder wie Linus Torvalds sagenwurde “Have a lot of fun.“.

1.1. Anmerkungen der Autoren

Tobias Mucke

Als ich begann, den vorliegenden Text zu schreiben, stand ich noch mitten in der Ausbildung zum Fachin-formatiker in der Fachrichtung Systemintegration und beschaftigte mich nur am Rande mit Linux. Damalssollte es mir dieses Dokument ermoglichen, schnell auf Grundlagenwissen zuruckzugreifen, ohne standigein dickes Buch mitnehmen zu mussen. Spater, als ich taglich im Umfeld von Linux arbeitete, kamen zusatz-lich verschiedene Projektdokumentationen und Erfahrungsberichte dazu. Dabei arbeitete ich nicht standigan der Unterlage, sondern erganzte unduberarbeitete gelegentlich einzelne Kapitel. Schließlich wurde dieseso umfangreich, dass man sie als umfassende Einfuhrung in das Betriebssystem Linux betrachten konnte.Ganz nebenbei wird auch tiefes Grundlagenwissen vermittelt. In diesem Sinne kann sie sowohl als Schu-lungsunterlage, “Gute Nacht“ Lekture oder zum Nachschlagen verwendet werden.

Sicherlich sind einige Passagen noch verbesserungswurdig oder mussen an neue Entwicklungen ange-passt werden. Dies lasst sich bei der rasanten Entwicklung von Linux nicht vermeiden. Aus diesem Grundbegruße ich kritische Anmerkungen und konstruktive Verbesserungsvorschlage und bemuhe mich, diese ineine neue Auflage dieses Dokumentes einfließen zu lassen.

Heute freue ich mich Ihnen ein vollig uberarbeitetes Handbuch mit vielen neuen Themen prasentieren zudurfen. Auch wenn Sie lange darauf gewartet haben, so glaube ich doch, dass sich Ihre Geduld ausgezahlthat. Zwar sind noch immer nicht alle Punkte unserer Arbeitsgliederung abgehandelt, dennoch rechtfertigendie massiven Aktualisierungen undUberarbeitungen einzelner Themen und nicht zuletzt die Neugliederungdes Werkes den Sprung auf die Version 0.5.

Michael Petter

Nachdem die meisten Themen, die die Schulungsunterlagen betrafen, fertiggestellt waren, bat mich Tobi-as, das Buch vom Word-Format nach LATEXzu portieren, um die Absturze, die bei diesem großen Doku-ment auftraten, zu beseitigen. Nachdem die Portierung abgeschlossen war, habe auch ich mich nicht mehr

19

Page 20: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

1. Einleitung

zuruckhalten konnen und nach bestem Wissen und Gewissen Anmerkungen, Erganzungen und neue Kapitelhinzugefugt. Mittlerweile entwickelt sich die Schulungsunterlage zu einem ziemlich umfassenden Nach-schlagewerk fur den alltaglichen Umgang mit Linux, sowohl auf Servern als auch auf Desktop Systemen.

Inzwischen hat die Besucheranzahl der Sourceforge-Seite dieses Projekts nach einem zahen Start diemagische Marke von 1000 Zugriffen pro Monatuberschritten und wir konnen langsam stolz auf unsereFortschritte sein. Es hat sich herauskristallisiert, dass Tobias und ich doch sehr unterschiedliche Facetten anLinux beschreiben – Tobias geht die “professionellen” Themen an, meistens Serverdienste oderahnliches,wahrend der wesentliche Teil meiner Beitrage eher dem Anwender zugute kommt. Beides erganzt sich ganzgut, so dass wir zusammen doch einen großen Bereich der Linuxwelt abdecken konnen.

Andreas Schneider

Noch befasst sich Andy mit der praktischen Entwicklung von Losungen im Linuxumfeld und ist bisher nochnicht dazu gekommen seine Arbeit in eigenen Kapiteln zu dokumentieren.

1.2. Uberblick

Der Begriff Linux bezeichnet zwar im wesentlichen den Betriebssystemkern, wird aber auch als gleichbe-deutend mit einer vollstandigen Distribution verstanden. Man kann folglich nicht von dem “Linux“ spre-chen. Zwar sind im folgenden Text grundlegende Ausfuhrungen distributionsunabhangig, andererseits beru-hen einzelne Kapitel, insbesondere die Beschreibung der Konfigurationstools, ausschließlich auf der SuSEDistribution Version 7.3 und 8.1. Andere Distributionen werden derzeit noch nicht in diesem Maße beruck-sichtigt.

Nachdem der Umfang des Werkes bestandig wachst und eine breite Zielgruppe mit diesem Handbuchangesprochen werden soll, erschien eine Neugliederung sinnvoll. Dabei haben wir uns fur eine Einteilungin funf einzelne Bucher entschieden, die die Lesergruppen unseres Werkes widerspiegeln.

Auch wenn eine Umschreibung des Inhaltsverzeichnisses wenig sinnvoll erscheint, soll mit der folgendenkurzen Zusammenfassung die Intention der einzelnen Bucher deutlich werden.

Das erste Buch ist vor allem fur Anwender gedacht, die bisher keinen oder nur wenig Kontakt mit Linuxhatten. In erster Linie soll Ihnen bei derUberwindung der anfanglich auftretenden Schwierigkeiten geholfenund Ihnen die Augen fur andere umfangreiche Dokumentationsquellen geoffnet werden.

Auf dieser Grundlage werden im weiteren Verlauf des zweiten Buches anfanglich erworbene Kenntnissedurch tiefergehendes Wissen erweitert. Ziel der Abhandlungen ist es dabei auch immer Grundlagenwissen zuvermitteln, bevor auf linuxspezifische Eigenheiten des Kernels, der Prozessverwaltung, des Bootvorgangs,der Netzwerkkonfiguration uvm. eingegangen wird.

Im dritten Buch werden einige Server, wie NIS, NFS, SMB, VNC usw. aufgesetzt und konfiguriert. The-matisiert wird dabei nicht nur eine beispielhafte Konfiguration, sondern auch das zu Grunde liegende Kon-zept dieser Dienste.

Das vierte Buch richtet sich an sicherheitsbewusste Benutzer und Administratoren. Die Themen reichenvon grundsatzlichenUberlegungen zur Systemsicherheit bis hin zur Hartung der Installation.

Das funfte und vorerst letzte Buch richtet sich an Entwickler. Zum einen geht es um Entwicklungsum-gebungen und deren Installation, zum anderen sollen auch zunehmend kurze Einfuhrungen in die eine oderandere Sprache dazu kommen.

Zu guter Letzt mochten wir Sie noch um die Beachtung des Anhangs bitten. Wahrend Sie eine Auflis-tung besonders zu empfehlender Bucheruber Linux und andere verwandte Themen im Literaturverzeichnisam Ende der Unterlage finden werden, geben andere Abschnitte weiterfuhrende Informationen zu den ver-schiedensten abgehandelten Themen. So beispielsweiseUberlegungen zur Serverhardware. Zudem gibt es

20

Page 21: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

1.3. Lizenzmodell

verschiedene Hilfestellungen fur Autoren zu LATEX und Sourceforge.

1.3. Lizenzmodell

Sollten Sie Interesse an dieser Dokumentation haben, sei es, dass Sie sie als Schulungsunterlage verwendenoder als neuer Autor mitarbeiten wollen, beachten Sie gegen Ende dieser Einleitung das Lizenzmodell undnehmen Sie Kontakt mit uns auf.

Dieses Dokument darf ganz im Sinne der Autoren frei vervielfaltigt und an eigene Bedurfnisse angepasstwerden. Allerdings mussen dabei immer die tatsachlichen Autoren und der Verweis auf den Ursprung desDokuments erkennbar bleiben. Fur den Urheber ist daruber hinaus die Verbreitung und die Verwendung desTextes von Interesse. Nehmen Sie demnach bitte insbesondere bei nicht privater Nutzung Kontakt mit unsauf. Es sei nochmals betont, dass Ihnen dadurch keine Nachteile entstehen.

1.4. Kontakt

Sie werden sich vielleicht fragen, warum Sie mit den Autoren dieses Werkes in Kontakt treten sollten. Nundie Grunde liegen auf der Hand.

• Sie haben einzelne Tippfehler, missverstandliche Passagen oder Fehler entdeckt.

• Sie mochten eigene Verbesserungsvorschlage einbringen.

• Sie haben zu einem der behandelten Themenbereiche noch weitere Fragen.

• Sie wollen als Autor an diesem Werk mitarbeiten.

• ...

Samtliche Fragen, die Linux im weitesten Sinne zum Thema von uns nicht nur gerne beantwortet werden,sondern uns auch dabei helfen dieses Werk immer besser zu machen. Somit profitieren nicht nur einzelne,sondern alle Leser dieser Bucher.

Daruberhinaus bleibt anzumerken, dass die Entwicklung des Betriebssystems Linux und fast aller Teil-komponenten zu schnell verlauft und in der Tiefe zu komplex ist, als das wenige Autoren ein Werk diesesUmfangs standig auf dem aktuellen Stand halten konnten. Deshalb mochten wir noch einmal alle Leserausdrucklich dazu ermuntern an einem der Bucher als Autor mitzuwirken. Wir werden Sie dabei so gut alsirgend moglich unterstutzen.

Die Homepage des Projekts finden Sie im Internet unterlinuxhandbuch.sourceforge.net. Sollten Sie einealtere Version des Textes vorliegen haben, finden Sie dort die aktuellste Ausgabe dieses Dokumentes.

1.5. Arbeitsgliederung

Wie bereits erwahnt, kann dieses Dokument noch lange keinen Anspruch auf Vollstandigkeit erheben undwird es vielleicht auch nie konnen. Dennoch bleiben einige interessante Themen hartnackig auf unsererArbeitsgliederung.

Administration

Noch immer fehlt die Beschreibung weiterer administrativer Tools auch anderer Distributionen. Außerdemsind bisher das Standard-Home-Verzeichnis /etc/skel und dessen Moglichkeiten unerwahnt geblieben.

21

Page 22: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

1. Einleitung

Bootkonzept

Hier muss eine korrekte Partitionstabelle eingetragen werden.

Dateisysteme

Dieses Kapitel soll komplettuberarbeitet und dabei vollig aufgearbeitet werden. Teile sollen in das KapitelVFS - Virtual File Systemubergehen, wahrend die Grundlagen im ersten Buch fur Linux-Einsteiger ver-bleiben. Regulare Ausdrucke sollen in das neue Kapiteluber Shell-Programmierung aufgenommen werden.Grundlagen muss jedoch auch der normale Anwender beherrschen. Deshalb verbleiben diese im KapitelKommandozeile.

Kommandoreferenz

Es stimmt zwar, dass viele Kommandos bereitsuber das gesamte Buch verstreut angewendet werden und miteinem ordentlichen Stichwortverzeichnis auch gefunden werden konnen, dennoch mochte ich nicht von demGedanken einer ordentlichen Kommandoreferenz abrucken, da dieses immer wieder von Kursteilnehmernnachgefragt wird.

Grundlagen Betriebssysteme

Dieses Kapitel gibt es zwar schon, konnte jedoch ausgebaut werden.

Kernel

Bisher gefallt mir die Beschreibung, was ein Kernel wirklich zu leisten hat, noch nicht. Wenn man schonnahe am System ist, dann sollte der Einblick in die wahren Vorgange mindestens genauso tiefgehend sein.

X - Das Fenstersystem

Hier fehlen Einblicke in die wichtigsten Fenstermanager, wie KDE 3 und Gnome 1.4. X-Forwarding.Wichtige X-Tools waren auch wunschenswert. Kdm und Konsorten mussen auch beschrieben werden. DieXF86Config muss noch beschrieben werden.

Emacs

Der machtige Editor Emacs ist bisher noch gar nicht beschrieben, obwohl er beispielsweise aufgrund seinerFahigkeiten von Entwicklernaußerst gerne verwendet wird.

Netzwerk

Das Kapitel Netzwerk istuberarbeitungsbedurftig, da allgemeine Erlauterungen beispielsweise zum ISO/ OSI Schichtenmodell, der Adressierung (IP, MAC) und diversen Protokollen fehlen. Zudem sollen diefolgenden stichpunktartig zusammengefassten Gedankengange aufgenommen werden (Sniffer). Das meistedavon durfte in das dritte Buch Einzug finden. Hier bleibt noch viel zu tun.

Prozesse

Hier fehlen noch einige Begriffe, die eingehender erlautert werden sollten. Dazu gehoren die streams.

22

Page 23: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

1.5. Arbeitsgliederung

Programmierung

Auf die Programmierung geht diese Unterlage noch sehr wenig ein. Es geht hier ja auch um das Betriebssys-tem Linux, dennoch sollten die Besonderheiten von Linux in diesem Bereich aufgezeigt werden. Sprachenwie C, C++, Perl und PHP sollten nicht unerwahnt bleiben.

Internetdienste

Auch dieser Themakomplex ist nochuberhaupt nicht ausgepragt. Zumindest sollte man jedoch einmal diefolgenden Begriffe gehort haben und wissen, worum es sich dabei handelt. Damit sind im Besonderen derApache Web Server und die dazugehorigen Module (wie php jsp) gemeint. Daruber hinaus sind Dienste wieftp, dns und dhcp erklarungsbedurftig.

Hardware

Was offensichtlich immer noch fehlt sind Compact Flash Karten, PCMCIA Modems, RAID, UDMA undSCSI.

Autoyast

Die automatische Installation mit Hilfe von AutoYaST ist ein sehr interessantes Thema und sollte in diesemBuch auch dokumentiert werden.

Rettungssysteme

Im schlimmsten Scenario eines Systemausfalls braucht man Rettungssysteme auf Diskette oder CD. Die hiervorgestellten Tools mussen so robust und zuverlassig sein, wie man es von einem Rettungssystem erwartet.

Partitionierung

Nochimmer fehlen Grundlagen der Partitionierung. Das Tool fdisk kann in diesem Zusammenhang gleichmitbeschrieben werden.

Anwender

Letztendlich sollte aber auch der Anwender des Linux-Systems nicht vergessen werden. Hier steht ein Aus-flug zu Themen, wie CDs brennen (mkisofs, cdrecord, scsi-emu) und DVDs ansehen, an.

LATEX

Im Inhaltsverzeichnis sind einige Unterpunkte mit breiter Nummerierung zu nah an der Kapiteluberschrift.Außerdem werden von einigen Acrobatreader Versionen Seitenobjektfehler angemerkt. Die Ursache hierfurist noch ungeklart.

LVM

Dieses Kapitel muss nochmals, insbesondere um Abbildungen, erweitert werden. Die Kommandos werdenin die Befehlsreferenz aufgenommen.

23

Page 24: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

1. Einleitung

Shellprogrammierung

Weiter ausbauen und mitUbungen und guten Beispielen garnieren.

Cluster

In das Kapiteluber Hochverfugbarkeitscluster muss die Arbeit aus der Doku noch eingepflegt werden.

NFS - Network File System

Das Kapiteluber NFS mussuberarbeitet werden.

VNC und Exceed

VNC ist zwar schon beschrieben, muss aber noch ausfuhrlicher dokumentiert werden. Insbesondere dieMoglichkeit VNC in den inetd einzubinden, erscheint interessant.

Exceed ist ein zweites Thema in diesem Zusammenhang. Die Architektur, Funktion und Konfigurationsoll kurz erlautert werden.

CVS

CVS wird sowohl im Buchuber Netzwerke als auch fur Entwickler thematisiert. Hier muss genauer thema-tisch getrennt werden.

24

Page 25: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Teil I.

Linux fur Anwender- Einsatz auf dem Desktop -

25

Page 26: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 27: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

2. Grundwissen

Jeder Anwender nutzt wahrend seiner Arbeit wie selbstverstandlich das eine oder andere Betriebssystem.Dennoch konnen nur wenige daruber Auskunft geben, was eine Betriebssystem eigentlich ausmacht undwelche Aufgaben von ihm wahrgenommen werden.

Lernziele

In diesem Kapitel lernen Sie,

• die Aufgaben des Betriebssystems kennen,

• die Eigenschaften von Linux einzuschatzen,

• wichtige Grundbegriffe im Open Source Umfeld zu verstehen.

2.1. Personal Computer

2.1.1. Schichtenmodell eines Computersystems

Anwenderprogramme Diese oberste Schicht stellt den Benutzern des Systems Anwendungssoftware zurVerfugung. Als Beispiel konnte man Web-Browser, Datenbank- oder Officeanwendungen nennen.

Systemprogramme Hierbei handelt es sich um Programme, die weder zum Betriebssystem noch zu den ge-rade beschriebenen Anwenderprogrammen gehoren. Vom erstgenannten unterscheiden sie sich durchihre Austauschbarkeit, vom zuletzt genannten durch ihre Systemnahe.

Betriebssystem Die Aufgaben eines Betriebssystems, wie Implementierung von Schnittstellen und dieVerwaltung der Ressourcen, werden im Abschnitt2.2.3auf Seite29beschrieben.

Maschinensprache Die Maschinensprache besteht aus zahlreichen elementaren Maschinenbefehlen (z.B.zur Berechnung von arithmetischen Ausdrucken, zur Ausfuhrung von Vergleichsoperationen), dievom Assembler in entsprechende Anweisungen im Mikrocode umgesetzt werden.

Mikrocode Aufgabe des Mikrocodes ist die direkte Steuerung der physikalischen Gerate. In Mikrocodeentworfene Programme werden von einem Interpreter in entsprechende Steueranweisungenubersetztund an die Gerate weitergeleitet.

Physikalische Ger ate Komponenten dieser Ebene sind beispielsweise der Prozessor, die Speicherchips,Bussysteme usw.

2.2. Betriebssysteme

Zunachst soll geklart werden, was unter einem Betriebssystem zu verstehen ist und welche Aufgaben es zuerfullen hat.

27

Page 28: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

2. Grundwissen

2.2.1. Betriebssysteme im Uberblick

Unix DOS und Windows Windows NT / 2000 / XP OS / 2 Apple Macintosh Commodore Amiga Atari ST

2.2.2. Betriebssystem - Geschichte

Die Entwicklung von Linux ist nicht einfach nur eine spannende Geschichte. Um Linux zu verstehen, mussman die Philosophie verstehen, die hinter der Bewegung steckt.

Unix - Geschichte

Unix wurde Ende der 60er Jahre von Ken Thompson und Dennis Ritchie bei den Bell Laboratories entwi-ckelt. In erster Linie zeichnete es sich durch etliche Neuerungen aus, die bahnbrechend und damit grundle-gend fur die spatere Entwicklung von Linux waren. Es wurde in der Hochsprache C geschrieben und enthieltsomit nur noch sehr wenig Assemblercode. Dies ermoglichte es das Betriebssystem ohne große Schwierig-keiten auf andere Plattformen zu portieren. Außerdem war es von Anfang an sehr umfassend ausgelegt,so dass es auch spater hinzukommenden Anspruchen genugte. Zudem stellte es ein klassisches MultiuserBetriebssystem dar, dem ein strenges Rechtekonzept zugrunde lag.

Schon damals war es ein 32 Bit Betriebssystem. Es verwendete eine hierarchische Verzeichnisstrukturund war eines der ersten Betriebssysteme mit virtueller Speicherverwaltung. Erganzend kam hinzu, dass dasProtokoll TCP / IP, das heute die Grundlage des Internet bildet, auf dem System entwickelt wurde. Damitgingen die ersten Client - Server basierenden Anwendungen einher. Mitte der achtziger Jahre wurde danndas X Window System entwickelt.

Unix wurde aufgrund seiner gunstigen Lizenzierung fur Universitaten verstarkt an diesen verwendet undweiterentwickelt. Obwohl es bei den Studenten sehr beliebt war, verhinderten die verhaltnismaßig hohenHardwareanforderungen eine weite Verbreitung im privaten Bereich. Dazu kommt, dass zu diesem Zeit-punkt, wie auch heute noch, viele Unix-Versionen am Markt erhaltlich sind, der Erwerb jedoch mit hohenLizenzkosten verbunden ist.

Linux - Geschichte

Die erste Version des Linux-Kernels mit der Versionsnummer 0.01, entwickelt auf einem 80386-Prozessor,wurde im September 1991 von Linus Torvalds, einem finnischen Informatikstudenten, der heute noch immerdie Entwicklung des Kernels leitet, im Internet zur Diskussion und Weiterentwicklung bereitgestellt.

Das Internet wurde zu diesem Zeitpunkt noch von Mail- und Newsgroups dominiert, Hypertext als Grund-stock fur World Wide Web war gerade erst entwickelt worden.

Dabei war es zunachst nicht Linus erklartes Ziel ein eigenes Betriebssystem zu schreiben, vielmehr ginges ihm darum die Fahigkeiten seines 386er PCs auszuloten. Erst spater kristallisierte sich heraus in welcheRichtung es gehen wurde.

Das Besondere an diesem Schritt war, dass neben den ablauffahigen Programmen in Maschinenspracheauch der zugehorige Sourcecode veroffentlicht wurde. Ein unglaublicher Schritt, der eine riesige Lawinelosgetreten hat.

Seitdem wurde Linux von unzahligen Programmierern weltweit rasant weiterentwickelt, deren Interessekein kommerzielles war, sondern vor allem in der Losung von Problemen, im Hinzufugen von neuen Funk-tionen und in der Perfektionierung des Betriebssystems lag. Bedingung fur die Arbeit am Quellcode wareinzig die Auflage den angepassten Code wieder der programmierenden Allgemeinheit zur Verfugung zustellen.

28

Page 29: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

2.3. Linux - Merkmale

Zunachst setzte sich Linux vor allem als Server-Plattform durch. In neuerer Zeit ist Linux, aufgrundder immer einfacheren Installation und der zunehmend komfortablen Bedienung, auch fur Privatanwenderinteressant geworden.

2.2.3. Aufgaben des Betriebssystems

Schnittstelle Das Betriebssystem stellt die Schnittstelle zwischen Benutzer und Hardware dar. Dadurchwird die Komplexitat der darunterliegenden Systemarchitektur verborgen und dem Anwender eineverstandliche und handhabbare Oberflache angeboten. So braucht sich beispielsweise ein Anwen-dungsentwickler nicht um die Steueranweisungen diverser Hardwarekomponenten zu kummern, son-dern kann sich auf die Implementierung seines Programms konzentrieren.

Verwaltung von Ressourcen Das Betriebssystem verwaltet alle physikalischen Gerate, wie Prozessoren,Speicher, Platten, Terminals usw. Damit ist insbesondere eine sinnvolle Zuteilung der Ressourcen andie darum konkurrierenden Programme gemeint. Ohne eine solche Steuerung durch das Betriebssys-tem ware eine vernunftige Benutzung heutiger Computer nicht moglich.

2.2.4. Einsatzgebiete und Zukunft von Linux

Einarbeitung des c’t Artikels

2.3. Linux - Merkmale

Linux ist ein Unix-ahnliches Betriebssystem. Der gravierende Unterschied gegenuber herkommlichen Unix-Systemen besteht im vollstandig verfugbaren Quellcode. Zudem ist Linux in vielen Bereichen vollstandigerals manch teures Unix-System, da es eine großere Hardwareauswahl unterstutzt und in großen Bereichenauf effizienterem Code basiert.

Wie bereits weiter oben dargestellt, ist ein Betriebssystem die Schnittstelle zwischen Anwender und Com-puter. Dazu gehort vor allem die Verwaltung der Ressourcen (Rechenkapazitat, Speicher) und der Ein- (Tas-tatur; Maus) bzw. Ausgabegerate (Monitor, Drucker). Daruber hinaus ist das Betriebssystem notig, damitProgramme gestartet und Daten verarbeitet werden konnen.

• Linux bietet:

– Multitasking (gleichzeitige Abarbeitung mehrerer Prozesse)

– Multiuser (gleichzeitige Nutzung durch mehrere Anwender)

– Paging (Auslagerung von Arbeitsspeicherinhalten auf die Swappartition)

– Shared Libraries (Bibliotheken mit Systemfunktionen werden bei Verwendung durch mehrereProzesse nur einmal geladen)

– Interprocess Communication (IPC)

– Symmetric Multi Processing (SMP, Nutzung mehrerer Prozessoren)

• Linux unterstutzt:

– gangige Hardware (IA32 kompatible Plattform, nahezu alle Bussysteme (ISA, VLB, EISA,PCI), die meisten Controller (IDE, EIDE, SCSI), samtliche Laufwerke (CDROM, HDD, Strea-mer), die meisten Netzwerkkarten usw. (vgl. Hardware HOWTO)

29

Page 30: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

2. Grundwissen

– besondere Hardware (DEC Alpha Prozessoren, Sun Sparc, Mips, Motorola und mittlerweileauch Großrechnerarchitektur)

– nahezu alle Dateisysteme (Ext2, Ext3, Reiserfs, XFS, JFS, DOS, Windows, NTFS, OS/2, Minix,NFS usw.)

– viele gangige Netzwerkprotokolle (TCP/IP, PPP, SLIP usw.)

• Linux bringt:

– ein eigenes Dateisystem ext2 bzw. reiserfs (ausgereifte Sicherheitsmerkmale, lange Dateinamen,Dateisysteme bis 4TByte, Dateien bis 2GByte, Dateinamen mit bis zu 255 Zeichen, Journaling)

• Linux benotigt:

– je nach Verwendung reicht ein 486 Rechner mit 16MByte oder es braucht einen aktuellen Pro-zessor mit mehr als 128MByte und ausreichend Speicherkapazitat (zu den Hardwareanforderun-gen vgl. Abschnitt??auf Seite??).

2.3.1. OpenSource

Das Herausragende an Linux ist, dass es weder einer Organisation noch einer Firma gehort. Alle Entwickler,die an diesem Projekt mitwirken, arbeiten unentgeldlich aus freien Stucken. Ihr Antrieb moge der personli-che Ehrgeiz, das System weiter zu verbessern, als auch das Ausprobieren neuer Programmiertechniken sein.Auch die meisten Anwendungen unterliegen diesem Prinzip. Diese Methode ist außerordentlich erfolgreich,wenn man die rasante Entwicklung von Linux in den letzten Jahren ruckblickend betrachtet.

Das Schlagwort ”freie Software” wurde vor allem im Umfeld von Linux gepragt. ”Frei” bezieht sichhierbei nicht nur auf die kostenlose Verfugbarkeit des Produktes, sondern in erster Linie auf die Zuganglich-keit des Quellcodes. Linux kann aus dem Internet heruntergeladen werden, was aber aufgrund der standigwachsenden Archive zunehmend unpraktikabel wird.

An dieser Stelle setzen die sogenannten Distributoren ein. Zusatzliche Informationen hierzu finden Sie indiesem Kapitel im Abschnitt??auf Seite??.

Wie bereits mehrmals angesprochen, entwickelt sich Linux besonders in speziellen Teilbereichen rasant.Aufgrund dessen sind Updates und Fehlerbehebungen schnell verfugbar. Dies betrifft sowohl den Kernel desBetriebssystems, als auch die darauf laufenden Anwendungen. Sollte das System zufriedenstellend laufen,so ist es nicht notwendig, eventuell verfugbare Updates einzuspielen. Man ist also nicht gezwungen, jedeAktualisierung des Systems mitzumachen.

Linux ist keine Blackbox, sondern das am umfangreichsten dokumentierte Betriebssystem, dass bis inskleinste Detail konfiguriert werden kann und somit einen Blick hinter die Kulissen zulasst. Ein weite-rer Aspekt ist, dass Linux durch die Gestaltung der Schnittstellen und die Unterstutzung standardisierterProtokolle eine problemlose Integration in ein bestehendes Netz gewahrleistet. Beispielsweise kann einLinux-System in eine Windows-Netzwerkumgebung eingebunden werden, ohne dass fur den Anwendereine Veranderung sichtbar wird.

2.3.2. Dokumentation

Auch wenn aufgrund des kostenfreien Vertriebsweges eine gedruckte Dokumentation oftmals fehlt, ist Linuxdie am besten und umfangreichsten dokumentierte Plattformuberhaupt. Welche unermesslichen Quellensich hier auftun, wird im Kapitel5 auf Seite45besprochen. (vgl. Kapitel Dokumenation)

30

Page 31: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

2.3. Linux - Merkmale

2.3.3. Sicherheit

Bisher sind kaum Viren fur Linux bekannt. Aber nicht nur deshalb ist die Virengefahr eher gering ein-zuschatzen. Ein weiterer Grund ist das Rechtekonzept unter Linux. Solange ein von einem Virus befallenesProgramm nicht mit root Rechten gestartet wird, ist der Schaden am System stark begrenzt und weitet sich,wennuberhaupt, nur schleppend aus.

2.3.4. Plattformvielfalt

Vielen Anwendungen, die auf einem Linux System laufen, liegt eine Client-Server Struktur zugrunde. Diezusatzliche Konzeption als Multiuser-Betriebssystem pradestiniert Linux fur die Netzwerkumgebung. An-dersherum gesagt, macht es wenig Sinn, eine Linuxmaschine als Standalone Rechner aufzustellen. Multiuserheißt in diesem Zusammenhang, dass mehrere Benutzer zugleich ein Programm auf einem Rechner startenkonnen, wobei jede einzelne Instanz unter den Rechten des jeweiligen Benutzers ausgefuhrt wird.

In Kombination mit einem leistungsfahigen Netzwerk stellt Linux einaußerst machtiges Betriebssystemdar, das beispielsweise die Fernwartung anderer Rechner ermoglicht. Eine andere denkbare Anwendung istdie zeitaufwandige Ausfuhrung eines Programms, wahrend ein anderer Benutzer das System nahezu wiegewohnt verwenden kann. Die Grenzen werden in diesem Bereich nicht von Linux gezogen, sondern sindallein hardwarebedingt.

Ein weiterer Vorteil, der Linux von der Windows Welt abhebt, ist die Moglichkeit, auch ohne grafischeBenutzeroberflache zu starten. Samtliche Funktionen des Betriebssystems sind dann immer noch verfugbar.Auf diese Weise werden die Anforderungen an die Hardware stark reduziert bzw. die Leistungsfahigkeit desLinux Servers betrachtlich gesteigert. Die bereits angesprochene Client - Server Struktur, die auch vor demX-Window-System nicht halt macht, ermoglicht es, grafische Anwendungen auf einem entfernten Host zustarten, die Ausgaben auf dem lokalen Rechner anzuzeigen und die Bedienung von hier aus vorzunehmen.Zudem hat ein Anwender im X-Window-System mehrere Arbeitsflachen gleichzeitig zur Verfugung, die aufeinen oder mehrere Monitore verteilt werden konnen.

Ein weiterer Vorteil, der vor allem bei Servern ein schlagendes Argument darstellt, ist die Eigenschaftvon Linux, dass der Rechner so gut wie nie heruntergefahren werden muss. Einfache Kommandos reichenaus, um den jeweiligen Prozess durchzustarten bzw. die Konfiguration neu einzulesen.

Linux spielt vor allem in folgenden Bereichen seine Starken aus: Stabilitat, Datensicherheit und Serverfur nahezu jeden denkbaren Einsatzbereich, da eine Vernetzung aufgrund der zahlreichen Schnittstellen mitfast allen bekannten Netzwerken moglich ist.

2.3.5. Entwicklungsumgebung

Linux bietet dem Anwender die Moglichkeit, Erfahrungen mit den verschiedensten Programmiersprachenzu sammeln. Verfugbar sind beispielsweise Compiler bzw. Entwicklungsumgebungen fur Java, C++, Pascal,Fortran, C und Tcl / Tk.

Ubungen

1.

2.

3.

31

Page 32: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

2. Grundwissen

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

32

Page 33: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3. Installation

Wer glaubt, dass eine Linux Installation auf dem heimischen Rechner ein schwieriges Unterfangen darstellt,wird uberrascht sein. Gerade die letzten Versionssprunge haben nicht nur bei SuSE einer zunehmendenVereinfachung den Weg bereitet, die soweit geht, dass selbst unbedarfte Anwender in wenigen Schritten ansZiel gelangen.

Lernziele

In diesem Kapitel lernen Sie,

• welche Anforderungen Linux an die Hardware stellt,

• welche Vorbereitungen vor der Installation getroffen werden sollten,

• in welchen Teilschritten die Installation von Linux ablauft,

• wie eine beispielhafte Partitionierung aussehen konnte.

3.1. Systemanforderungen

Eine allgemeine Aussage zu der von Linux benotigten Hardware fallt in Anbetracht der genugsamen Anfor-derungen einerseits und dem breiten Einsatzspektrum andererseits schwer. Zur groben Orientierung werdenim folgenden einige Installationsbeispiele und die benotigte Hardware genannt.

Nicht bedacht sind an dieser StelleUberlegungen, die die Ausfallsicherheit betreffen. Gerade bei kri-tischen Servern oder Steuereinheiten muss oft ein vielfach hoherer Aufwand, z.B. aufgrund redundanterHardwarekomponenten, betrieben werden.

Außerdem außen vor sind Installationen auf Embedded Systems, die zu stark hardware- und funktionss-pezifisch sind.

Diskless Client Dieses System verfugt uber keine oder nuruber eine sehr kleine Festplatte fur den Ausla-gerungsspeicher. Samtliche Software wird entwederuber das Netzwerk lokal oder auf einem Serverremote gestartet. Dementsprechend sollte die Anbindung des Client PCs an die Netzwerkinfrastruk-tur ausfallen. Andere Komponenten des Systems mussen nicht sonderlich leistungsfahig sein, sondernlediglich den Anforderungen der zu startenden Anwendungen genugen.

Workstation Auch hier gilt, dass die Ausstattung im Wesentlichen von den Anforderungen der installiertenAnwendungen abhangig ist. In der Regel reicht jedoch ein aktueller Personal Computer mit genugendArbeitsspeicher, um ein sinnvolles Arbeiten zu ermoglichen.

Router Als Router kann unter Linux jeder alte PC dienen, der Platz fur mindestens zwei Netzwerkkartenbietet.

33

Page 34: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3. Installation

Mailserver Auch als Mailserver sindaltere Systeme denkbar. Hier kommt es jedoch stark auf die Anzahl derzu versorgenden Anwender an. Wenn die Mails zentral gelagert werden sollen, ist vor allem Plattenka-pazitat und -performance wichtig. Außerdem werden Mailsysteme mittlerweile als geschaftskritischeingestuft. Ein Ausfall kann demnach teuer zu stehen kommen.

Fileserver Als reiner Fileserver kommt es ebenfalls auf die Kapazitat der Plattensubsysteme und derenPerformance an. Dabei spielt nicht nur die Mechanik und das Bussystem der Festplatten eine Rolle,sondern auch der Datendurchsatz im restlichen System. Denken Sie daruber hinaus aber auch an dieDatensicherheit, die mit Hilfe von RAID Systemen und regelmaßigen Backups erreicht werden muss.

Webserver Um auf viele Anfragen mit geringen Antwortzeiten reagieren zu konnen, braucht ein solchesSystem eine ordentliche Gesamtperformance, die von der Prozessorleistung dominiert und von derGroße des Arbeitsspeichers bzw. dessen Datendurchsatz erganzt wird. Naturlich kommt es im Wesent-lichen wieder auf die Anzahl der gleichzeitigen Benutzer, aber auch auf die gefahrenen Anwendungenan. In Verbindung mit Datenbanken und aufwendigen, dynamischen Seiten wachst die Belastung desSystemsuberproportional.

Application- / Datenbankserver Viel Arbeitsspeicher und hohe Rechenkapazitat zeichnen diese KategorieServer aus. Dazu kommt, dass solche Systeme hochverfugbar sein sollen und aus diesem Grund einhoher personeller und vor allem kostspieliger Aufwand betrieben werden muss.

3.2. Boot- und Installationsmedien

Sowohl zum Booten als auch fur die Installation kommen mehrere Medien in Betracht. Fur ersteres bietensich die erste CD / DVD oder notfalls auch gesondert erstellte Bootdisketten an. Die zum Erstellen benotig-ten Images mitsamt einer ausfuhrlichen Anleitung finden Sie auf der ersten CD im Verzeichnisdisks.Wahrend bis SuSE 7.3 noch zwei Disketten fur zusatzliche Treiber ausreichten, sind inzwischen drei Mo-duldisketten notig, um auch moderne Hardware wie USB, PCMCIA and FireWire (IEEE1394) abzudecken.

Erstellung der Bootdisketten

Sollte der zu installierende Rechner nichtuber ein bootfahiges CDROM Laufwerk verfugen, mussen Siedie Bootdisketten selbst erstellen. Dafur benotigen Sie ein laufendes Linuxsystem oder einen DOS- bzw.Windows-Rechner. Nachdem Sie die benotigten Images ausgewahlt haben, gehen Sie entsprechend dernachfolgenden Anleitung vor.

DOS / Windows

1. Legen Sie sich eine formatierte Diskette bereit.

2. Offnen Sie die MS-DOS-Eingabeaufforderung.

3. Wechseln Sie hier auf Ihr CDROM Laufwerk und dann in das Verzeichnisdosutils\rawrite.

4. Starten Sie das Programm rawrite.

5. Geben Sie bei source file name (Name der Quelldatei)X:\disks\bootdisk an. X steht fur den Buch-staben Ihres CD / DVD Laufwerkes.

6. Auf die Frage nach dem destination drive (Ziellaufwerk) antworten Sie mita:\.

34

Page 35: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3.3. Vorbereitungen

7. Legen Sie dann die formatierte Diskette ins Laufwerk und bestatigen Sie mit Enter.

Rawrite ubertragt jetzt das Image auf die Diskette, was durchaus eine Weile dauern kann. Wenn Sie dieDisketten mit den Modulen benotigen, gehen Sie genauso vor wie eben beschrieben, geben aber beim Namender QuelldateiX:\disks\modules, X:\disks\modules2 bzw.X:\disks\modules3 an.

Linux

1. Hangen Sie zunachst mit dem Kommandomount /media/cdrom die CD in Ihr Dateisystem ein.

2. Formatieren Sie die Diskette mit dem Befehlfdformat /dev/fd0.

3. Anschließendubertragen Sie mitdd if=/media/cdrom/disks/bootdisk of=/dev/fd0 das Imageauf die Diskette.

Diskdump kopiert das Image von der CD auf die Diskette. Hierbei stehtif fur inputfile undof furoutputfile. Fur die Moduldisketten gehen Sie wiederahnlich vor. Zwei Stolpersteine sind noch zu beachten.Die Diskette sollte nicht gemountet sein und das Kommandodd muss als root ausgefuhrt werden, weil Sieals normaler Benutzer keine direkte Schreibberechtigung auf das Gerat/dev/fd0 haben.

Eine ahnlich zahlreiche Auswahl wie bei den Bootmedien gibt es auch bei den verwendbaren Installati-onsmedien. So kann mittlerweile nicht bloß von CD bzw. DVD, sondern daruberhinausuber das Netzwerkper NFS oder SMB installiert werden. Allerdings mussen Sie fur samtliche netzwerkgestutzten Installati-onsroutinen zunachst “Manuel Installation“ auswahlen, was auch bedeutet, dass Sie z.B. Treiber fur ver-schiedenste Hardwarekomponenten, insbesondere fur die Netzwerkkarte, selber einbinden mussen. Nachdem Einhangen der Verzeichnisfreigaben stoßen Sie dann wieder auf den regularen Installationsvorgang.

3.3. Vorbereitungen

Bevor Sie sich in die Installation sturzen, sollten Sie noch eine paarUberlegungen anstellen und einigeVorbereitungen treffen.

Bootlaufwerk Ihr Rechner sollteuber ein bootfahiges Laufwerk verfugen und auch von diesem Booten(vgl. Einstellung der Bootsequenz im BIOS). Idealerweise handelt es sich hierbei um ein CD / DVDLaufwerk. Wenn die Installationuber das Netzwerk erfolgen soll, reicht auch ein Diskettenlaufwerkaus.

Festplattenkapazit at und -zustand Im Wesentlichen muss genugend freier Festplattenplatz vorhanden sein.Ob dieser Platz bereits als Partition organisiert ist oder es sich um freien Speicherbereich am Endedes Datentragers handelt, ist unerheblich. Wie viel Kapazitat tatsachlich benotigt wird, hangt starkvon der vorgesehenen Verwendung des Systems, also dem Installationsumfang, ab.

Andere Hardwarekomponenten Die Unterstutzung von unterschiedlichster Hardware hat sich gerade inden letzten Versionen sehr stark verbessert. Dennoch ist es nicht auszuschließen, dass einige Hard-warekomponenten im Zusammenspiel mit Linux nicht funktionieren bzw. nicht ihre volle Leistungentfalten. Dies trifft im Besonderen auf sehr neue Komponenten zu. Achten Sie also bereits bei derAnschaffung darauf, ob die jeweilige Komponente unterstutzt wird.

Netzwerkkonfiguration Sollten Sie eine Installationuber das Netzwerk durchfuhren, besorgen Sie sich imVorfeld samtliche notwendigen Angaben, wie eigene IP-Adresse, Subnetmask, Gateway, Nameserver,IP-Adresse des Fileservers und den Namen der Freigabe. Dann sollte das Mounten der Dateisystemedes unter Unix, Linux oder Windows laufenden Servers problemlos funktionieren.

35

Page 36: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3. Installation

Dokumentation Egal ob Sie einen Server oder eine Workstation aufsetzen. In jedem Fall sollten Sie dieausgefuhrten Schritte genauestens dokumentieren. So konnen Sie spater beispielsweise die Partitio-nierung des Plattensubsystems und die Konfiguration der einzelnen Hardwarekomponenten ohne wei-teres nachvollziehen.

3.4. Installationsschritte und Einstellm oglichkeiten

Bevor Sie sich jetzt endlich an die Betriebssysteminstallation heranwagen, noch zwei letzte Hinweise:

• Nachfolgend beschriebene Vorgange konnen seit SuSE 8.0 nicht mehr mit YaST1 durchgefuhrt wer-den. Die Installation und auch spater anfallende administrative Aufgaben werden jetzt nur noch mitHilfe von YaST2 vollzogen. Allerdings steht neben der grafischen Benutzeroberflache weiterhin einetextbasierte Version zur Verfugung.

• Wahrend Sie die Einstellungen im Vorfeld der Installation tatigen, werden keine dieserAnderungenins bisherige Systemubertragen. Erst wenn Sie nach Abschluss aller Konfigurationsdialoge den Startder Installation ausdrucklich bejahen, wird die neue Partitionstabelle geschrieben, Dateisysteme an-gelegt, Pakete kopiert usw.

3.4.1. Systemboot

Der Boot vom jeweiligen Medium kann nur dann erfolgreich verlaufen, wenn die Bootreihenfolge im BIOSauch entsprechend eingestellt ist. Dann aber erscheint ein Bootmenu, in dem der erste Eintrag vorbelegtist. Sollten Sie einalteres System haben, kann es sinnvoll sein andere Eintrage auszuwahlen. Beachten Siehierzu die Kernelparameter, die in der darunterliegenden Zeile aufgefuhrt werden. Sollte die Installationuberdas Netzwerk gestartet werden, ist hier “Manual Installation“ die richtige Auswahl. Außerdem konnen Siemit den Funktionstasten F1 bis F5 die Auflosung am Terminal bestimmen. Mit Enter wird der Systembootdann fortgesetzt.

3.4.2. Kernel und Module

Nach dem Anlegen einer Ramdisk im Arbeitsspeicher wird der Kernel geladen und es erscheinen etlicheMeldungen, die insbesondere Informationen zu Ihrer Hardware enthalten. Sollten hier Fehler auftreten,ermoglicht diese Ausgabe eine Diagnose der Konflikte. In einem weiteren Schritt werden dann weitereHardwarekomponenten erkannt und durch Module eingebunden. Allerdings kommen Sie nur bei der manu-ellen Installation in die alte textbasierte Anwendung, in der Sie in Eigenregie Treiber laden konnen. Danachstartet in jedem Fall YaST2 und Sie konnen endlich mit der eigentlichen Installation beginnen.

3.4.3. YaST2

Wie bereits erwahnt, wurde YaST1 durch YaST2 abgelost. Letzteres werden Sie also sowohl wahrend derInstallation, als auch bei spateren administrativen Aufgaben einsetzen. Auch wenn der Installationsvorgangnochmals stark vereinfacht wurde, stehen weiterhin ausfuhrliche Hilfetexte bereit.

Sprachauswahl

Die erste Frage, die Sie sich von YaST2 gefallen lassen mussen, ist die Frage nach Ihrer Muttersprache. Die-se wird dann zugleich die Standardsprache des Betriebssystems. Darauf aufsetzende Anwendungen konnen,mussen sich aber nicht daran orientieren. Die Anzahl der moglichen Sprachen erstaunt. Von DeutschuberGriechisch bis hinzu Japanisch ist viel moglich. Die geanderte Auswahl wird sofortubernommen.

36

Page 37: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3.4. Installationsschritte und Einstellmoglichkeiten

Systemanalyse

Danach erfolgt nochmals eine Systemanalyse, deren Ergebnisse ansprechend prasentiert werden. PrufenSie diese genau! Sollten Sie damit zufrieden sein, sind Sie ggf. nur noch zwei Klicks vom fertigen Linuxentfernt.

Tastatur und Maus

Trotz sehr guter Hardwareerkennung kann es passieren, dass Maus und Tastatur anders konfiguriert werdenmussen. Das ist aber keine große Hurde. Innerhalb von YaST2 konnen Sie bequem mit Tabulator und Enternavigieren.

Partitionierung

Auch wenn YaST2 eine halbwegs sinnvolle Standardpartitionierung vorschlagt, so durften in vielen Fallenandere Partitionierungen zum Einsatz kommen. Dann kann man auch gleich den Vorschlag verwerfen und,unter Berucksichtigung bereits bestehender Partitionen, von vorne anfangen.Es wurde bereits angesprochen, dass zunachst noch keine Einstellungen in das System zuruckgeschriebenwerden. Das gilt auch fur die vorgenommene Partitionierung, die vorerst nur protokolliert und erst spatergeschrieben wird. Trotzdem ist dies naturlich ein kritischer Vorgang, insbesondere wenn sensible Daten aufTeilen des Plattensubsystems liegen.Das Einrichten der Partitionen und Dateisysteme gestaltet sich dannuberraschend einfach, wenn man einpaar Grundbegriffe kennt. Auch fur Profis ist mit LVM (Logical Volume Manager) und Software-RAID(redundant Array of inexpensive / independent Disks) etwas dabei.

Erstellung einer Partitionierung Partitionieren bedeutet in diesem Kontext, den freien Platz des Platten-subsystems (IDE, SCSI, RAID) bzw. bereits bestehende Partitionen in einzelne Linux-Partitionenaufzuteilen oder umzuwandeln. Dabei ist Umsicht geboten! Bei einem versehentlichen Loschen oderUberschreiben der Partitionstabelle konnen Daten anderer Partitionen verloren gehen oder gar ganzePartitionen unbrauchbar werden.

Partitionsnamen Die von Windows bekannten Laufwerksbuchstaben gibt es unter Linux nicht. SamtlicheHardwarekomponenten sind als sogenannte Geratedateien ansprechbar, deren Benennung vom Hard-warepfad abhangt. Dieser gibt im Beispiel Partition an,uber welches Bussystem / welchen Controllerund welche Platte die einzelne Partition erreichbar ist.Konkret heißt das, dass die Namen der IDE-Gerate mit hd die der SCSI-Gerate mit sd beginnen. Da-nach folgt ein Buchstabe, der laufend vergeben wird und in IDE-Systemenuber Primary / SecondaryController und Master / Slave Auskunft gibt. Fur Partitionen werden laufende Nummern (primarePartitionen 1 bis 4, erweitere Partition: 5, logische Laufwerke: ab 6) vergeben.So kann aus der Bezeichnung /dev/hdb3 gefolgert werden, dass es sich hier um die dritte primarePartition auf der als Slave gejumperten Festplatte am primaren IDE Controller handelt.Aber auch Geratenamen wie /dev/rd/c0d1p2 sind denkbar. Der Hardwarepfad hilft uns weiter: Eshandelt sich um eine Partition in einem RAID-Verbund, der am ersten Controller als zweites RAID-System angebunden wurde.

Mountpoints Wie Sie spater noch sehen werden, gibt es unter Linux ein virtuelles Dateisystem, in dasalle anderen Dateisysteme, die auf lokalen Plattensubsystemen oder im Netzwerk verfugbar sind, ein-gehangt werden konnen. Das dazugehorige Verzeichnis wird auch Mountpoint genannt. Sollte Ihnendieser Begriff an dieser Stelle noch nicht verstandlich sein, ist das nicht weiter schlimm. Sicherlichwird er spater noch klarer werden.

37

Page 38: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3. Installation

Dateisystemtypen Die verwendbaren Dateisysteme sind inzwischen auch zahlreicher geworden. Derzeitbietet YaST2 neben den Standarddateisystemen ext2, reiserfs und swap, auch neuentwickelte wie ext3oder Filesysteme aus dem professionellen Unix-Umfeld wie jfs und xfs an.Fur welches Dateisystem Sie sich entscheiden, hangt stark von Verwendungszweck des Rechners ab.Weitere Informationen hierzu finden Sie in einem weiter fortgeschrittenen Kapitel, in dem auf dieBesonderheiten der jeweiligen Filesysteme eingegangen wird.

Partitionierungsempfehlung Auch wenn Sie jetzt vielleicht enttauscht sind, kann an dieser Stelle keinedetaillierte Empfehlung fur diese oder jene Partitionierung gegeben werden, da diese zu stark vomspateren Einsatz des Rechners abhangt. Allerdings steht außer Frage, dass Sie eine eigene Boot- undSwappartition einrichten sollten. Bei Neuinstallationen hat sich bisher auch immer eine eigene Parti-tion fur die Home-Verzeichnisse der Benutzer gerechnet, da man diese dann vor einer Formatierungbewahren kann.

Software

Auch der Installationsumfang kann bis hinzu einzelnen Paketen an die personlichen Bedurfnisse angepasstwerden. Allerdings verliert man schnell die Lust sich durch abertausende einzelner Softwarestuckchen zugraben. Deshalb bietet SuSE bereits vorkonfigurierte Gruppen von Standarduber Multimedia bis zu Netz-werk / Server an. Außerdem konnen auch samtliche Quelltexte mitinstalliert werden. Bedenken Sie bitte:Weniger ist hier oft mehr! Fehlende Pakete lassen sich spater ohne weiteres nachinstallieren.Bevor Sie zum nachsten Schritt gehen konnen, pruft YaST2 eventuell auftretende Paketabhangigkeiten undden zur Verfugung stehenden Speicherplatz in den Dateisystemen.

Konfiguration des Systemstarts

Hier kann der Bootloader LILO (Linux Loader) eingerichtet werden. YaST2 erkennt andere parallel instal-lierte Betriebssysteme und richtet hierfur auch Eintrage im Bootmenu ein. Auch wenn dies in den meistenFallen klappt, sollten Sie zunachst LILO nicht in den MBR (Master Boot Record) sondern auf Disketteschreiben. Das entspricht auch der Standardeinstellung von YaST2. Spater wenn Sie sicher sein konnen,dass alle Betriebssysteme von LILO gestartet werden konnen, steht dem Schreiben von LILO in den MBRnichts mehr entgegen.

Zeitzone

Sollte die automatische Erkennung fehlgeschlagen sein, wahlen Sie einfach eine andere Zeitzone aus. Damitdie Systemzeit richtig berechnet werden kann, muss Linux allerdings wissen, ob Ihre BIOS-Uhr der GMToder lokalen Zeit folgt. Eine falsche Auswahl ist keine Beinbruch und kann spater leicht korrigiert werden.Nach diesen zahlreichen Schritten kann nun der Installationsvorgang angestoßen werden.

3.4.4. Installationsvorgang

Nachdem alle Einstellungen Ihren Vorstellungen entsprechen, klicken Sie einfach weiter. Bevor Sie jedochdie nachste Abfrage mit “Ja“ beantworten, sollten Sie in jedem Fall nochmals die Partitionierung kontrol-lieren. Die grune Warnung ist der letztmogliche Zeitpunkt, die Installation ohne Veranderungen am Systemvorzeitig zu verlassen. Erst wenn Sie sieubergehen, beginnt schließlich die Installation.Sie konnen sich jetzt eine Weile zurucklehnen und dem Treiben am Bildschirm zusehen. Zunachst wirddie Partitionierung vorgenommen, dann erfolgt die Formatierung und das Anlegen der Dateisysteme. An-schließend werden die ausgewahlten Softwarepakete installiert, was am meisten Zeit in Anspruch nimmt.

38

Page 39: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3.4. Installationsschritte und Einstellmoglichkeiten

Mittendrin verlangt YaST2 ggf. nach der Bootdiskette fur LILO und kurz darauf werden zahllose Konfigu-rationsdateien geschrieben.Anschließend wird der Rechner durchgestartet und YaST2 erneut aufgerufen, um Benutzer und deren Passworteranzulegen und weitere Hardwarekomponenten zu konfigurieren.

Benutzer und Passw orter

Zunachst soll ein Passwort fur den Benutzer root vergeben werden. Dies ist der Adminstrator des Betriebs-systems und verfugt damituber alle Rechte. Wahlen Sie deshalb ein sicheres Passwort, das neben Buchsta-ben auch Ziffern und Sonderzeichen enthalt und das so einpragsam ist, dass Sie es nicht vergessen!In einem zweiten Schritt sollte mindestens ein weiterer Benutzer angelegt werden. Unterlassen Sie es unterallen Umstanden standig als root zu arbeiten! Verwenden Sie stattdessen diesen zuletzt angelegten Benutzer,mit dessen eingeschrankten Rechten zwar keine administrativen Aufgaben wahrgenommen, aber eben auchdas System nicht zerstort werden kann.

weitere Hardwarekomponenten

Zum Abschluss der Installation konnen noch etliche Hardwarekomponenten (derzeit Grafikkarte, Monitor,Netzwerkkarten, Drucker, Modem / ISDN, Soundkarte und TV-Karte) konfiguriert werden. Hier ist es sichervon Vorteil die verbaute Hardware zu kennen um die richtigen Treiber auswahlen zu konnen. Alle Geratekonnen nachtraglich noch mit YaST2 eingerichtet werden, so dass Sie diesen Schritt auch auf spater ver-schieben konnen.Zwei Stolpersteine sind noch zu beachten: Schalten Sie zum einen die zu erkennenden Gerate ein undzerstoren Sie zum anderen mit einer zu hohen Auflosung / Bildwiederholfrequenz nicht Ihren Monitor.

Ubungen

1.

2.

3.

Zusammenfassung

Und fertig ist das SuSE Linux. Sollten dennoch Fragen offen geblieben sein oder verwenden Sie eine andereLinux-Distribution so ziehen Sie die vom jeweiligen Distributor mitgelieferte Dokumentation heran.

39

Page 40: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

3. Installation

40

Page 41: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

4. Erste Schritte

Ist die Installation bereits erfolgreich verlaufen, konnen Sie die ersten Schritte in Ihrer Linux Umgebungwagen, auch dann wenn Sie zunachst eher stolpern als gehen.

Lernziele

In diesem Kapitel lernen Sie,

• die ersten Schritte in der neuen Umgebung zu gehen,

• die verschiedenen Login-Moglichkeiten zu verwenden,

• einige praktische Tastenkombinationen kennen,

• die Uhrzeit zu stellen.

4.1. Linux starten und beenden

Je nach Installation erfolgt der Start von der Festplatte oder von Diskette. Seit SuSE 8.1 wird der BootloaderGrub verwendet. Gegebenenfalls trifft man aber auch noch auf den LiLo1. In der Bedienung sind sich beidejedoch soahnlich, dass man als Anwender keinen Unterschied bemerken wird. Beide warten namlich miteinem grafischen Menu auf, in dem mit den Pfeiltasten der gewunschte Eintrag ausgewahlt und mit derEingabetaste bestatigt werden kann. Wird keine Auswahl getroffen, wird das Betriebssystem hinter demStandardeintrag nach einer bestimmten Zeitspanne hochgefahren.

Daruber hinaus konnen im unteren Bereich am Bootprompt noch weitere Kernelanweisungen mitgegebenwerden. Um genaueres hieruber zu erfahren, lesen Sie bitte das Kernel HowTo und das Kapitel11auf Seite97.

4.1.1. Login

Der Einloggvorgang ist Ihnen im wesentlichen bereits aus der Windowsumgebung bekannt. Sie mussen sichgegenuber dem System mit einem Benutzernamen und dem dazugehorigen Passwort ausweisen. Der Hin-tergrund hierfur ist die Konzeption von Linux als Multiuser System und die damit verbundene Verwaltungder Zugriffsrechte.

Zu beachten ist, dass Sie sich als Systemverwalter root nur anmelden sollten, wenn dies notwendig ist,beispielsweise also bei der Systemadministration oder bei der Veranderung von Konfigurationsdateien, aufdie Sie sonst keine Schreibberechtigung hatten. Solange Sie als root angemeldet sind, durfen Sie faktischalles im System. Gerade wenn man noch wenig Erfahrung im Umgang mit Linux hat, kann man auf dieseArt und Weise viel kaputtmachen.

1Abk. fur LinuxLoader

41

Page 42: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

4. Erste Schritte

Wie der Loginvorgang aussieht, hangt von der Konfiguration des Systems ab. Er kann grafisch, aber auchtextbasiert erfolgen. Letztendlich geschieht bei beiden jedoch dasselbe. Mussten Sie sich textbasiert einlog-gen, so konnen Sie das X Window System nachtraglich noch mit dem Aufrufstartx aufrufen, insofern derX Server bereits korrekt konfiguriert wurde.

4.1.2. Shutdown

Auch das Herunterfahren kann grafisch oder textbasiert erfolgen. Niemals sollten Sie den Rechner einfachso abschalten oder gar den Netzstecker ziehen. Im gunstigsten Fall wird beim nachsten Start die Festplatteauf Dateninkonsistenz gepruft, schlimmstenfalls konnen dabei aber auch Dateisysteme und damit samtlicheDaten zerstort werden.

Wenn Sie unter X arbeiten, wahlen Sie im Startmenu ”Abmelden” aus. Anschließend konnen Sie zwi-schen ”Als anderer Benutzer anmelden”, ”Rechner ausschalten” und ”Rechner neustarten” auswahlen.

Sollten Sie an der Konsole arbeiten, so stehen verschiedene Befehle zur Auswahl. Fur einen umfassendenUberblick sehen Sie sich bitte die Kommandoreferenz im KapitelB ab Seite305an. Normalerweise kannnamlich nur der Systemadministrator mittels den Befehlenshutdown now bzw.halt das System herunter-fahren. In der Standardkonfiguration ist es jedoch jedem Anwender gestattet, mit Hilfe der Tastenkombina-tion Strg + Alt + Entf den Rechner durchzustarten. Warten Sie immer bis die Meldung ”System halted” oder”Runlevel 0 has been reached” erscheint, bevor Sie den Computer ausschalten. Neue Computersysteme wer-den nach der ATX Spezifikation ohnehin automatisch ausgeschaltet,altere Rechneruber den Powerschalteran der Gehausefront. Sollte der Rechner durchstarten, konnen Sie auch wahrend die BIOS Meldungen zusehen sind, den Rechner einfach ausschalten.

4.2. Tastatur und Maus

Unter Linux gibt es spezielle Tastenkombinationen und Mausaktionen, die Ihnen das Leben sehr vereinfa-chen oder gar unerlasslich fur die Bedienung des Betriebssystems sind.

Tastenkombinationen

Einige besondere Tastenkombinationen entnehmen Sie der Tabelle4.1auf Seite42.

Tastenkombination FunktionStrg + Alt + Entf Linux beenden / X abmeldenStrg + Alt + Backspace X Server beendenStrg + Alt + F1 bis F6 Zwischen den Textkonsolen wechselnStrg + Alt + F7 Zu X wechselnShift + Bild auf / Bild ab Vorwarts / ruckwarts blatternTab einfach / doppelt Datei- und Kommandonamen vervollstandi-

genPos1, Ende, Entf, Backspace Normalerweise den Windowstasten entspre-

chend

Tabelle 4.1.:Tastenkombinationen

42

Page 43: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

4.3. X Window System

Mausfunktionen

Um Texte wie unter Windowsuber die Zwischenablage zu kopieren, gehen Sie unter Linux wie folgt vor.Markieren Sie zunachst mit gedruckter linker Maustaste, den gewunschten Text. Der so ausgewahlte Textkann jetzt mit der mittleren Maustaste in einen anderen Text oder in ein anderes Programm eingefugt werden.Das Kopieren und Einfugen erfolgt also allein mit der Maus.

4.3. X Window System

Auch wenn KDE2 nur einer von vielen Windowmanagern ist, so wird er doch von vielen Distributionenals Standardsystem eingerichtet und ist deswegen entsprechend weit verbreitet. Die Umsetzung der Benut-zerfuhrung orientiert sich zwar grundsatzlich stark an der Windowsoberflache, im Detail gibt es jedoch vieleUnterschiede, die die Bedienung weniger intuitiv erscheinen lassen.

Kontrollleiste Am unteren Bildschirmrand finden Sie die sogenannte Kontrollleiste. Von hier aus startenSie Programme, haben Zugriff auf verschiedene Konfigurationswerkzeuge und nehmen die KDE Hil-fe in Anspruch. Sie konnen per Klick auch die Arbeitsflache oder das im Vordergrund befindlicheProgramm wechseln.Ahnlich wie unter Windows gibt es eine Art Systemtray mit im Hintergrundlaufenden Programmen und der aktuellen Uhrzeit.

Programmleiste Diese findet sich normalerweise am oberen Bildschirmrand und zeigt fur jede laufendeAnwendung eine Schaltflache. Unter KDE2 ist sie in die Kontrollleiste integriert worden.

Virtuelle Desktops Die zur Verfugung stehende Arbeitsflache wird durch virtuelle Desktops stark erwei-tert. Programme konnen auf anderen Arbeitsflachen gestartet oder im nachhinein dorthin verschobenwerden. Sie konnen mit der Tastenkombination Strg + F1 bis F4 zwischen diesen bequem wechseln.

Verknupfungen Linux ist in dieser Hinsicht Windows sehrahnlich. Verknupfungen auf dem Desktop oderin der Menustruktur verweisen auf Objekte wie Dateien, Laufwerke usw.

Mausaktionen Generell benotigen Sie im X Window System nie einen Doppelklick. Ein einfacher Klickreicht aus, Programme zu starten oder Dateien und Verzeichnisse zuoffnen. Gegebenenfalls wird amMauszeiger und in der Kontrollleiste signalisiert, dass gerade ein Programm gestartet wird.

Mit der mittleren Maustaste erscheint beim Klicken auf den Desktop eine Liste mit allen derzeit laufendenAnwendungen sortiert nach Arbeitsflache. Auf diese Weise konnen Sie schnell das Programm und denvirtuellen Desktop wechseln.

Die rechte Maustasteoffnet in der Regel ein Kontextmenu, wie Sie es von Windows gewohnt sind. Es istkontextspezifisch und bietet verschiedene Befehle an, die zum jeweiligen Objekt passen. Sie haben auf dieseWeise beispielsweise Zugriff auf die Eigenschaften einer Datei oder eines Verzeichnisses. Ein besonderesKontextmenu haben die Titelleiste der Fenster anzubieten. Hiermit konnen Sie das Fenster selbst anpas-sen, dieses aber auch auf eine andere Arbeitsflache verschieben. Der Desktop weist ein eigenes Menu auf,mit dem einige elementare KDE Kommandos, wie ”Neu erstellen”, ”Fenster anordnen” oder ”Bildschirmsperren”, durchgefuhrt werden konnen.

Konqueror Eines der wichtigsten Programme ist der Konqueror. Er ist nicht nur ein einfacher Dateimana-ger, sondern hat sich mittlerweile auch zu einem Browser gemausert. Zudem kann er Dateien unter-schiedlichster Formate anzeigen. Die Bedienung ist recht intuitiv, da viele Aktionen einfach per Dragand Drop ausgefuhrt werden konnen.

2Abk. fur K Desktop Environment

43

Page 44: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

4. Erste Schritte

Programme starten Wie bereits angesprochen, konnen Sie Programme aus dem K Menu in der Kontroll-leiste starten. Es gibt jedoch noch eine zweite Moglichkeit, die weitaus schneller sein kann. Mit Alt+ F2 offnet sich ein Fenster, in dem der Name eines Programms eingegeben werden kann. Das Feldmerkt sich samtliche Befehle und bietet diese spater wieder an, so dass die Ausfuhrung noch weiterbeschleunigt wird.

4.4. Konsole

Konsolen haben trotz grafischer Benutzeroberflachen immer noch ihre Berechtigung. Sechs davon stehensofort nach dem Hochfahren zur Verfugung, wobei Sie mit Strg + Alt + F1 bis F6 zwischen diesen wechselnkonnen. Nach der obligatorischen Anmeldung steht Ihnen die machtige Shell bei Ihrer Arbeit zur Seite.

Sind Sie mit der Arbeit fertig oder mochten Sie den Benutzer wechseln, konnen Sie sich mit Strg + Dausloggen.

Sollen neben der normalen Tatigkeit auch zugleich administrative Aufgaben erledigt werden, bietet essich an, sich auf verschiedenen Konsolen unter verschiedenen Benutzernamen anzumelden.

Naturlich konnen Sie mit der Shell auch unter X arbeiten. Oft findet sich ein entsprechendes Symbol aufder Startleiste des jeweiligen Windowmanagers. Alternativ kann man auch Anwendungen wiekonsole undxterm starten.

4.5. Systemeinstellungen

Uhrzeit

Die Uhrzeit kann sehr komfortabel mit dem Eintrag ”Datum und Uhrzeit einstellen” im Kontextmenu derSystemuhr unter X gestellt werden. Allerdings muss man dazu das Administratorkennwort kennen. Mitt-lerweile findet hier auch ein Abgleich mit der Hardwareuhr statt, so dass dieAnderungen auch nach einemReboot erhalten bleiben.

An der Konsole wird die Systemzeit mit dem Kommandodate gesetzt und mithwclock auf die Hardwa-reuhr geschrieben. Genauere Informationen zur Verwendung der beiden Kommandos in der Kommandore-ferenz ab Seite305.

Ubungen

1. Starten Sie zweimal die Anwendung Kwrite und kopieren Sie Text mit Hilfe der Maus von der einen indie andere.

2. Stellen Sie die Systemuhr richtig ein und kontrollieren Sie mit einem Reboot, ob diese auch anschließendrichtig geht.

3. Fuhren Sie einen Reboot aus der grafischen und der textbasierten Oberflache aus.

Zusammenfassung

Sie sind im vorangegangenen Kapitel die ersten Schritte in der fur Sie vielleicht noch ungewohnten LinuxUmgebung gegangen. Aufbauend auf diesen ersten Erfahrungen, konnen Sie sich in die nachfolgendenThemen sturzen.

44

Page 45: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

5. Dokumentation

Von Linux wird behauptet, es sei das am besten dokumentierte Betriebssystemuberhaupt. Aber nur wennman weiß, wo man suchen muss, hat man auch gute Chancen das Gesuchte zu finden.

Lernziele

In diesem Kapitel lernen Sie,

• welche verschiedenen Dokumentationsformen angeboten werden,

• wo diese zu finden sind,

• und bei welchen Fragestellungen diese weiterhelfen.

5.1. Manual-Pages

Manual-Pages gibt es zu den folgenden Themen.

• Dokumentation fur Kommandos

• Systemaufrufe

• Funktionen der Programmiersprache C

• Dateiformate

• Device-Dateien

• Konfigurationsdateien

• Spiele

• Kommandos zur Systemadministration

• Kernel-Funktionen

• Verschiedenes

Diese sind sowohl mit dem Kommandoman an der Konsole als auch unter X mitxman verfugbar. WahrendSie unter X mit der Maus durch die Manual-Pages navigieren, konnen Sie an der Konsole ausschließlich mitder Tastatur arbeiten.Ubrigens sind samtliche Pfade zu den Manual-Pages in der Datei/etc/manpath.configeingetragen.

In folgenden Beispiel wird die Manual-Page des Kommandos cp aufgerufen.

45

Page 46: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

5. Dokumentation

Tastenkurzel FunktionCursortasten Text nach oben, unten, links oder rechts verschiebenPos1, Ende Sprung an den Anfang oder an das Ende des TextesBild auf, Bild ab Seitenweises Blattern/muster Vorwartssuche?muster Ruckwartssuchen Suche ruckwarts wiederholenShift + n Suche ruckwarts wiederholenq Beendenh Anzeige eines ausfuhrlichen Hilfetextes

Tabelle 5.1.:Manual Pages - Bedienung mit der Tastatur

muctob@linux:˜> man cpFormatiere boot(7) neu, bitte warten...

Die gebrauchlichsten Befehle sind in der Tabelle5.1auf Seite46angegeben.Allerdings bringen die Manual-Pages auch einige Nachteile mit sich. Zum einen fehlt eine konsequente

einheitliche Strukturierung und eine Verlinkung untereinander. Zum anderen wird auch demnachst die Pflegedieser Dokumentation eingestellt. An ihre Stelle treten die nachfolgend erlauterten Info-Pages.

5.2. Info-Pages

Wie bereits erwahnt wurde, sollen zukunftig die Info-Pages die bisher verwendeten Manual-Pages ablosen.Diese Dokumentationoffnet man mit dem Kommando info. Die Bedienung mit der Tastatur wird in derTabelle auf Seite aufgezeigt.

Tastenkurzel FunktionCursortasten Text nach oben, unten, links oder rechts verschiebenPos1, Ende Sprung an den Anfang oder an das Ende des TextesLeertaste Samtliche Info-Pages seitenweise vorwarts durchsehenBackspace Samtliche Info-Pages seitenweise ruckwarts durchsehenTab Cursor zum nachsten Link bewegenEnter Aufruf eines Links eines Linkl Zuruck zum zuletzt angezeigten Texth, ? Ausfuhrliche Bedienungsanleitung, Kommandoubersichtq Beenden des Info-Systems

Tabelle 5.2.:Info Pages - Bedienung mit der Tastatur

5.3. FAQs - Frequently Asked Questions

FAQs begleiten die Dokumentation vieler umfangreicher Softwarepakete. Außerdem sind diese im Internetzu den verschiedensten Linux-Themen zu finden.

46

Page 47: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

5.4. HOWTOs

5.4. HOWTOs

Im Vergleich zu FAQs sind HOWTOs systematischer aufgebaut und vermitteln distributionsunabhangigesGrundlagenwissen.

Der entscheidende Vorteil dieser Dokumentationsform ist zugleich ihrer großter Nachteil. Der Umfangder als HOWTOs vorliegenden Doku ist so immens, dass man im ersten Moment erschlagen wird. Aufgrundder sprechenden Benennung der Dokumente und der konsequenten Verwendung von HTML stoßt man aberdennoch recht schnell auf die gesuchte Information.

Dafur eignen sich HOWTOs auch fur erfahrene Benutzer, die sich in ein bestimmtes Thema einlesenwollen.

SuSE kopiert im Verlauf einer Standardinstallation eine Vielzahl an HOWTOs in deutscher und englischerSprache gleich mit auf die Festplatte. Diese finden Sie im Verzeichnis/usr/share/doc/howto. Angefan-gen bei Beitragen zur Shell und zum X-Window-System,uber verschiedene Hardwarekomponenten bis hinzu den unterschiedlichsten Netzwerkdiensten ist diese Quelle mehr als umfangreich.

5.5. LDP - Linux Documentation Project

Im Rahmen des Linux Documentation Projects sind ganze Bucher zum Thema Linux entstanden. Ursprung-lich waren auch diese Texte nur digital verfugbar, mittlerweile sind jedoch auch einige insbesondere vomVerlag O’Reilly aufgelegt worden. Deruberwiegende Teil der Bucher ist in englischer Sprache geschrieben,einige wenige sind aber auch auf deutsch erhaltlich.

• Advanced Bash-Scripting Guide

• Linux From Scratch

• Linux Kernel 2.4 Internals

• Securing & Optimizing Linux: The Ultimate Solution

• The Linux Cookbook: Tips and Techniques for Everyday Use

• The Linux System Administrators’ Guide

• The Linux Network Administrator’s Guide, Second Edition

Das Projekt ist im Internet unterwww.linuxdoc.orgzu finden. Neben den angesprochenen Buchern, sindhier auch die aktuellen HOWTOs, FAQs und Manual-Pages abrufbar. Dazu kommen die beiden Online-Zeitungen Linux Gazette und Linux Focus.

5.6. Kernel

Wenn Sie die Kernelquellen installiert haben, wird eine sehr umfangreiche Dokumentation im Verzeichnis/usr/src/linux angeboten. Allerdings setzt diese zum Teil fundierte Kenntnisse im Bereich der Hard-ware und Kernelprogrammierung voraus. Als Lohn fur die Muhen bekommen Sie jedoch einen sehr tiefenEinblick in die Funktionsweise des Betriebssystems. Wie die Hilfetexte zur Kernelkonfiguration gelesenwerden konnen, erfahren Sie im Kapitel13ab Seite111.

47

Page 48: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

5. Dokumentation

5.7. KDE-Hilfe

Ausfuhrliche Hilfe zu KDE-Programmen erhalten Sie durch Drucken Taste F1 im jeweiligen Programm.Zudem bietet KDE eine allgemeine Online-Hilfe auf der Startleiste an. Samtliche Hilfen basieren auf HTMLund bieten die Annehmlichkeiten von Hypertexten

5.8. Quellen im Internet

Grundsatzlich sind die Weiten des Internet bestens geeignet, um Dokumentation zu den unterschiedlichstenThemen, den ausgefallensten Problemen und der unmoglichsten Hardware aufzuspuren. Hier zeigt sicheine der wahren Starken der OpenSource Community, die zudem durch die Bemuhungen vieler Firmenprofessionellen Support zu leisten, erganzt werden.

Suchmaschinen Die Seitewww.google.de/linuxsticht unter den Suchmaschinen heraus, da Sie die Suchenach linuxspezifischem Wissen erleichtert und meist mit guten Ergebnissenuberzeugen kann. Insbe-sondere wird man so bei speziellen Fehlermeldungen auf einen etwaigen Losungsansatz aufmerksam.

Knowledge Portal Auf dem unterwww.www.linux-knowledge-portal.orgerreichbaren Knowledge Portalsind leicht verstandliche nach Rubriken sortierte Beitrage zu finden.

Distributionen Ein guter Anlaufpunkt sind auch die Homepages des jeweiligen Distributors. Eine Liste mitURLs findet sich im AnhangA auf Seite301ff.

Insbesondere SuSE bietet mit der Hardware- und Supportdatenbank einen guten Service, sowohl furden Anwender als auch fur den Administrator. So kann man bereits vor dem Kauf neuer Komponentenprufen, in welchem Umfang diese unterstutzt werden. Im Falle eines Fehlers findet sich hier oft bereitseine genaue Problemanalyse samt Anleitung zu deren Behebung.

Wikis Ein Wiki ist ein vollig offenes System zur Verwaltung von Wissen. Im Linux-Umfeld sticht vor allemwww.linuxwiki.deaus der Masse hervor.

5.9. Software-Pakete

In der Regel wird zu jedem Paket eine ordentliche Dokumentation mitgeliefert, die nach der Installation mitYaST2 meist unter/usr/share/doc/packages zu finden ist. Wollen Sie die Software selber kompilierenund installieren, so lesen Sie unbedingt die oft beigepackten DateienREADME undINSTALL.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

48

Page 49: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6. X-Window-System

Das X-Window-System ist fur den Linux-Anwender die Schnittstelle zum Betriebssystem schlechthin. Aberes steckt mehr dahinter als nur bunte Fenster und Effekthascherei.

Lernziele

In diesem Kapitel lernen Sie,

• den Aufbau des X-Window-Systems kennen,

• verschiedene Windowmanager zu verwenden,

• die eine oder andere Umgebungsvariable zu setzen bzw. Konfigurationsdatei anzupassen.

6.1. Grundlagen

Die grafische Oberflache von Linux, XFree86, weist eine langere Entwicklungsgeschichte auf. Um Sie nichtzu ermuden, mochte ich Ihnen die Details ersparen. Interessant ist jedoch die Tatsache, dass der Dienst eineClient-Server Architektur einsetzt.

6.1.1. X-Server

Der im Hintergrund laufende X-Server kummert sich in erster Linie um die Bereitstellung einer einheitli-chen hardwareunabhangigen Schnittstelle fur verschiedenste Anwendungen. Zu seinen Aufgaben gehort dieAnsteuerung der Grafikkarte, die Herstellung einer bestimmten Auflosung und Farbtiefe und die Verwaltungvon Eingabegeraten, wie Maus und Tastatur.

6.1.2. X-Client

Der Benutzer arbeitet im X-Window-System mit sogenannten X-Clients, die aus den Anforderungen derverschiedensten Programme abstrakte Aufrufe generieren, die an den X-Server weitergegeben werden. Bei-spielsweise sind alle grafischen Elemente, die Sie auf dem Bildschirm sehen, von Ihrem X-Client erstellt.

Grundsatzlich kann man zwei große Gruppen von X-Clients unterscheiden. Zum einen die sogenanntenWindowmanager, zum anderen alle sonstigen X-Anwendungen.

Windowmanager Windowmanager sind spezielle X-Client-Programme, die speziell dafur ausgelegt sind,Ihnen eine komfortable Arbeitsumgebung bereitzustellen.

X-Anwendungen Mit diesen grafischen Programmen, arbeiten Sie produktiv. Oftmals verzichten X-Anwendungenauf die besondere Darstellung von Rahmen und Titelzeile, damit die Windowmanager Gelegenheit ha-ben, das Desktopdesign einheitlich zu gestalten.

49

Page 50: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6. X-Window-System

6.1.3. X-Architektur

Bevor Sie weiterlesen, sollte die X-Architektur auf jeden Fall deutlich geworden sein. Dabei kann ein kleinerVersuch helfen, der es ermoglicht samtliche Schichten des X-Window-Systems zu sehen.

1. Damit man einen eigenen X-Server starten kann, mussen zunachst die bereits laufenden beendet werden.Melden Sie sich dazu als root an und wechseln Sie in den Runlevel 3.

linux login: rootPassword:linux:˜ # init 3

Jetzt gibt es nur noch die Moglichkeit des textbasierten Logins.

2. An einer derubrigen Konsolen meldet man sich jetzt als unpriviligierter User an und startet den nacktenX Server, den man jetzt auf der Konsole F7 zu sehen bekommt. Wie Sie sicher feststellen werden, isthier nur eine grau gemusterte Oberflache und ein Mauszeiger zu sehen.

linux login: muctobPassword:muctob@linux:˜> X &

Durch das angehangte& wird der Prozess im Hintergrund gestartet. Sobald man sich am grau in graugehaltenen X-Server satt gesehen hat, wechselt man wieder zur ursprunglichen Konsole zuruck. Hiererscheint nach der Betatigung von Enter wieder der Prompt.

3. Grundsatzlich kann man jetzt bereits X-Anwendungen starten, die allerdings noch nicht wissen konnen,wo sie ihre Ausgabe hinschreiben sollen und deshalb mit einer Fehlermeldung absturzen. Deshalbsetzt man die DISPLAY Variable wie folgt.

muctob@linux:˜> export DISPLAY=localhost:0

4. Im Anschluss daran konnen jetzt X-Anwendungen gestartet werden. Rufen Sie diese einfach wie gewohntvon der Konsole aus auf.

muctob@linux:˜> xterm &muctob@linux:˜> xclock &

Das& dient auch hier wieder zum Starten im Hintergrund, so dass die Shell die Eingabe weitererBefehle zulasst. Ein Blick auf den X-Server zeigt, dass die Anwendungen zwar gestartet sind, aberohne Titelleiste, Fensterrahmen usw.

5. Es fehlt noch immer der Windowmanager. Diesen kann man wie eine X-Anwendung einfach auf derKonsole nachstarten.

muctob@linux:˜> kde &

Jetzt ist die X-Window-Umgebung brauchbar und sieht in der Regel genauso aus wie nach einemgrafischen Login. Mit dem Unterschied, dass Sie jetzt in bisschen mehruber die Architektur des X-Window-Systems wissen.

50

Page 51: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6.2. Grafischer Login - Anmeldung

6.1.4. Start

Nach der Installation fahrt das System normalerweise bis zu einem grafischen Login hoch. Ist das nicht derFall kann nach geeigneter Konfiguration des X-Servers auch von der Konsole aus gestartet werden.

Konsole

Das Starten des X-Window-System kann mitstartx bewerkstelligt werden.

/.xinitrc Das Skript /.xinitrc legt fest, welcher Windowmanager verwendet wird und welche X-Anwendungenmitgestartet werden. Samtliche Eintrage sind mit einem& zu versehen, damit diese Programme imHintergrund ausgefuhrt werden und nicht den Ablauf des Skripts behindern.

Im nachfolgenden Beispiel wird der Konqueror und eine Konsole mitgestartet. Als Windowmanager wirdEnlightenment verwendet.

## Add your own lines here...#konqueror &konsole &

## finally start the window manager#export WINDOWMANAGER=enlightenmentexec $WINDOWMANAGER

Grafischer Login

In der Regel erfolgt die Anmeldung nach der Installation grafisch durch einen der folgenden Login-Manager.

6.2. Grafischer Login - Anmeldung

Standardmassig ist Ihr System von SuSE so konfiguriert, dass Sie keine Anmeldung im Textmodus vorfin-den, sondern sich grafisch auf Ihrem Rechner einloggen konnen. Dafur dient bei Ihnen einer der folgendenManager:

6.2.1. Xdm

Viele Einstellungen des xdm sind global auch fur die anderen Loginmanager gultig. Daher machen Tuning-maßnahmen an xdm ofmals Sinn. SuSE stattet die grafische Anmeldung mit einem zusatzlichen Fenster,eine “xconsole” aus, vielfach stort dieses Fenster jedoch die Benutzer. Sie beseitigen dieses, indem Siedie entsprechenden Zeilen aus der Datei/usr/lib/X11/xdm/Xsetup entfernen. Die vorletzten drei Zeilendurften diejenigen sein, die Sie suchen. Ein eigenes Hintergrundbild konnen Sie auch in dieser Datei einstel-len. Suchen Sie einfach nach der Zeile, die mitbackground= beginnt, und setzen Sie hier ihr Lieblingsbildein. Dabei sollten Sie dieses zuvor ins Format.xpm umwandeln, und mitgzip packen.

51

Page 52: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6. X-Window-System

6.2.2. Kdm

6.2.3. Gdm

Der GDM kann bequemuber eine grafische Oberflache eingestellt werden. Dazu wahlen Sie beim Login-Fenster aus dem Menu den Punkt aus. Nach der Eingabe des Root-Passworts finden Sie sich im Konfigura-tionsfenster wieder, mit dem Sie nach Lust und Laune einen eigenen Login-Bildschirm einstellen konnen.

/.xsession Die oben angesprochene Datei˜/.xinitrc wird eigentlich nur beim manuellen Start der X-Window-Umgebung benutzt. Erfolgt der Einstieguber einen der Login-Manager heißt das entspre-chende Skript /.xsession. Syntaktisch gilt fur dieses dasselbe wie fur ˜/.xinitrc (vgl. hierzuAbschnitt6.1.4auf Seite51).

6.3. Windowmanager

Die Funktion des Windowmanagers ist vielleicht schon beim Versuch zur X-Architektur im Abschnitt6.1.3auf Seite50 deutlich geworden. Zum einen legt dieser das Look and Feel unter X fest, zum anderen gibt esauch grundsatzliche Unterschiede in der Bedienung.

Deshalb sollen die wichtigsten und am weitesten verbreiteten Windowmanager im Folgenden vorgestelltwerden.

Hinweis

Auch wenn viele Anwendungen fur die Verwendung unter einem bestimmten Windowmanager vorgesehensind, erkennbar am fuhrenden k bzw. g im Programmnamen, lassen sich diese auch in anderen Umgebungenproblemlos ausfuhren.

6.3.1. KDE

KDE, mittlerweile in der Version 3.x verfugbar, ist der Standarddestop unter SuSE und wird zusammen mitvielen nutzlichen und intuitiv bedienbaren KDE-Anwendungen installiert.

6.3.2. Gnome

Auch Gnome kann sich als Desktop sehen lassen. So verwendet beispielsweise RedHat diesen Windowma-nager schon seit langem als Standardumgebung fur X.

6.3.3. Enlightenment

Enlightenment, zu Deutsch “Erleuchtung” ist ein stark grafisch orientierter Fenstermanager. Er lebt vorallemvon seiner Unterstutzung fur umfassend anpassen kann.

Die Bedienung von Enlightenment erfolgt mit Tastatur und Maus. Dabei fungiert der Desktop im Gegen-satz zu “echten” Arbeitsumgebungen wie KDE oder Gnome nur als reiner Hintergrund. Das soll sich erst abder nachsten Version 0.17andern.

Zum Starten von Programmen verwenden Sie einfache Menus, die nach Klick mit der linken Maustasteauf den Desktop erscheinen. Die zahlreichen virtuellen Desktops, konnen bequem mit [SHIFT]-[ALT]-[Pfeiltaste] aufgerufen werden. Mit Hilfe eines Rechtsklicks auf den Desktop konnen Sie genauere Einstel-lungen vornehmen. Vor allem im Zusammenspiel mit Gkrellm und Eterm (wenn dieses installiert ist, konnenSie esuber [STRG]-[ALT]-[EINFG] starten) kann Enlightenmentuberzeugen.

52

Page 53: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6.4. X im Netzwerk

Eigene Menus richten Sie ein, indem Sie die.menu Dateien im Verzeichnis/.enlightenment anpassenund erweitern.

Zum Verlassen von Enlightenment geht manuber die besagten Menus oder benutzt [STRG]-[ALT]-[ENTF].

6.4. X im Netzwerk

Durch die, auf den ersten Blick umstandliche, X-Architektur, die das X-Window-System in Client undServer teilt, eignen sich X-Anwendungen von Haus aus fur die Verwendung im Netzwerk.

6.4.1. X-Forwarding

Verbindet man sich mit SSH auf einen anderen Rechner, so kann das X-Forwarding mit der Option -Xeingeschaltet werden.

muctob@linux:˜> ssh -X laptop

Nach dem Verbindungsaufbau ist die DISPLAY Variable auf dem entfernten System so gesetzt, dass dortgestartete grafische Anwendungen ihre Ausgaben an den lokalen X-Serverubermitteln.

6.4.2. VNC

Finden Sie im Kapiteluber Netzwerke beschrieben.

6.5. Wichtige Tools

xkill

Wenn ein X-Programm abgesturtzt ist, kann man umstandlicherweise auf eine freie Kommandozeile wech-seln, um die PID des abgesturzten Programmes herauszufinden und es daraufhin durchkill zu beenden.Das ganze geht auch komfortabler, durch das Programmxkill.

Wenn Sie diesses aufrufen, verwandelt sich Ihr Mauszeiger in einen Totenkopf, und das nachste Pro-grammfenster was sie damit anklicken wird augenblicklich “gekillt”.

6.6. Truetype Schriftarten

Bei der Arbeit mit X kann es vorkommen, dass Sie einige Schriften, die Sie von Windowssystemen gewohntsind, schmerzhaft vermissen. Linux schafft dem Problem Abhilfe, indem Sie Gelegenheit bekommen, IhreSchriften in das X - Systemuber den Truetype Managerxftt einzubinden.

6.6.1. Truetype und X

Truetypeschriften automatisch installieren

Besonders einfach konnen Sie Truetypeschriften unter Linux installieren, wenn Sie KDE 2/3 mit dem kfon-tinst Werkzeug installiert haben und ein MS Betriebssystem auf einer anderen Partition Ihres Rechnersbetreiben. Dann konnen Sie zuerst die entsprechende Windows-Partition in Ihren Verzeichnisbaum moun-ten:Fur Ihre erste Partition zum Beispiel mit:

53

Page 54: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6. X-Window-System

mount /windows/c

auch die entsprechenden grafischen Methoden aus KDE2/3 fuhren Sie zum gewunschten Ergebnis.Im nachsten Schritt mussen die Schriften aus dem Windowssystem nach Linuxuberfuhrt werden. Daskonnen Sie entweder manuell wie unter6.6.1beschrieben erreichen, oder Sie verwenden das KDE Werk-zeugkfontinst.Sie konnen die Truetypefonts entweder als User oder als Administrator einrichten, am geschicktesten warein diesem Fall aber die Losung als Administrator, damit alle User von diesen Einstellungen profitierenkonnen. Sie Tippen dazu in einem X Terminal ein:

fur KDE2:kcmshell System/kfontinstfur KDE3:kcmshell kcmfontinst

Im folgenden Wizard werden Sie Schritt fur Schritt durch die Einstellungen gefuhrt, bis Sie den Haupt-bildschirm erreicht haben. Hier konnen Sie nun den Ordner mit den hinzuzufugenden Truetype Schriftenauswahlen, indem Sie auf Change Folder drucken. Danach sehen Sie eine Auflistung aller gefundenen True-typeschriften, von denen Sie die markieren, die Sieubernehmen wollen, und dann Install drucken.Nunerledigt das Werkzeug die restlichen Schritte fur Sie.

Truetypeschriften halbautomatisch installieren

SuSE darf aus lizenzrechtlichen Grunden die gangigen Truetype Schriften wie Arial, Times new Romanoder Verdana nicht mit ausliefern. Jedoch ist es gestattet, als gewohnlicher Benutzer diese Schriften vomMicrosoft Server im Internet herunterzuladen und herzunehmen.

Fuhren Sie dazu als “root” folgenden Befehl aus, wahrend Sie eine Internetverbindung aktiv haben:

fetchmsttfonts

Im Laufe dieses Skripts werden Sie gebeten, die Microsoft End User Licence zu bestatigen, was Sie wohlnicht umgehen werden konnen!

Nach diesem Schritt stehen die Truetypefonts auch unter X zur Verfugung.

Truetypeschriften manuell installieren

Kopieren Sie die gewunschten Schriften ins Verzeichnis/usr/X11R6/lib/X11/fonts/truetype/ undfuhren Sie die folgenden Befehle als “root” aus:

cd /usr/X11R6/lib/X11/fonts/truetype//usr/X11R6/bin/ttmkfdir|sed s/ˆ[0-9]*// > fonts.scale.neu

Nun mussen Sie nochSuSEconfig ausfuhren und X neu starten!

6.6.2. Antialiasing uberprufen

Der Befehl xmag vergroßert beliebige Stellen Ihres Desktops. Rufen Sie aus einer Konsole heraus xmag aufund klicken die kleine Eckeuber einen beliebigen Text, z.B. ein KDE2 Menu. Wenn Sie nun in dem xmagFenster Zwischen den Pixeln der normalen Schrift noch Pixel in verschiedenen Graustufen bzw. Farbabstu-fungen der entsprechenden Schriftfarbe sehen, ist Font Anti Aliasing aktiviert.

54

Page 55: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6.6. Truetype Schriftarten

6.6.3. Open Office und Truetype

Die Truetype Schriften konnen Sie unter Open (bzw. Star) Office erfordern gesonderte Behandlung. WennSie Ihre Schriften mit kfontinst wie unter6.6.1eingerichtet haben, dann haben Sie vermutlich auch die Ein-richtung von Open/Star Office angewahlt. In diesem Fall sind Sie fertig mit der Arbeit. Wenn Sie allerdingsdie Schriften manuell wie unter6.6.1oder6.6.1beschrieben installiert haben, so mussen Sie noch einenExtrainstallationsschritt machen. Das mit Open/Star Office mitgelieferte Werkzeugspadmin erfullt diesenZweck. Sie konnen als Administrator mit dem Aufrufspadmin im Open Office Verzeichnis die Installationstarten. Mit einem Klick auf Fonts und dann Add. . . werden Sie in einer Dialogbox nach dem Quellverzeich-nis der Truetypefonts gefragt, fur das Sie fur gewohnlich/usr/X11R6/lib/X11/fonts/truetype wahlen.Mit einem Klick auf Select All und OK sind sie fertig!

6.6.4. Truetypeschriften in Mozilla

Ab Mozilla-Version 0.9.9 funktionieren die Truetypeschriftarten auch. . . wie’s geht konnen Sie hier lesen:

• Wechseln Sie ins Verzeichnis[pfad, wo Mozilla sich befindet]/defaults/pref

• Editieren Sie die Dateiunix.js

• Setzen Sie die Optionfont.FreeType2.enable auftrue

• Editieren Sie die Liste der Verzeichnisse von TrueType-Schriftarten nach Ihrem Geschmack. Siemussen dazu die Variablenfont.directory.truetype.? auf die entsprechenden Verzeichnisse set-zen.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

55

Page 56: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

6. X-Window-System

56

Page 57: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

Auch wenn die grafische Oberflache bereits den meisten Anforderungen des Anwenders gewachsen ist, derwissbegierige Tuftler kommt um die Kommandozeile nicht drumherum.

Lernziele

In diesem Kapitel lernen Sie,

• die Editoren vi und emacs kennen,

• grundlegende Dateisystemoperationen mit dem mc auszufuhren,

• die Funktion und Umgebung der Shell zu verwenden und an Ihre Bedurfnisse anzupassen.

7.1. Editoren

Unter Linux steht eine Unzahl an Editoren zur Verfugung. An dieser Stelle sollen zwei der wichtigsten, daam weitesten verbreiteten, vorgestellt werden. Dabei wird auf die textbasierte Bedienung eingegangen, daerstens die grafische ohnehin intuitiv bedient werden kann und zweitens auf vielen Systemen im operativenBetrieb kein X installiert sein wird.

Zunachst einige Befehle in Tabelle7.1auf Seite57, mit denen man sich Dateien anzeigen lassen kann.

Befehl Funktioncat datei Gibt die Datei ohne Unterbrechung am Bildschirm

aus.more datei Gibt die Datei zeilenweise aus.less datei Zeigt die Datei an, wobei vorwarts und ruckwarts

gescrollt werden kann.

Tabelle 7.1.:Verschiedene Dateibetrachter

Manchmal kommt es nach der Anzeige einer binaren Datei zur Fehlinterpretation des Zeichensatzes. Eswerden dann nur noch seltsame Zeichen am Bildschirm angezeigt. Fuhren Sie in einem solchen Fall denBefehlreset aus.

Achtung Außerdem sollte darauf geachtet werden, dass nach der letzten Zeile einer Konfigurationsdateinochmals umgebrochen wird. Andernfalls kann es sein, dass die gesamte Datei falsch interpretiert wird.

57

Page 58: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

7.1.1. vi

Auch wenn man diesen Editor mit dem Befehl vi startet, muss sich nicht zwangslaufig der vi dahinter ver-bergen. Tatsachlich ist dieser namlich urheberrechtlich geschutzt und wird mit Linux nicht mitgeliefert.Deshalb wird ein Editor namens vim gestartet, der jedoch in der Bedienung dem vi bis aufs Haar gleicht.Auch wenn eingefleischte vi Benutzer es niemals zugeben wurden, so ist dennoch festzustellen, dass dessenBedienung sehr gewohnungsbedurftig ist. An dieser Stelle wird aus zwei Grunden genauer auf den vi einge-gangen. Zum einen ist dieser Editor sehr kompakt und steht deshalb bei Wartungsarbeiten oder beim Bootenvon einer Notfalldiskette zur Verfugung. Zum anderen ist der vi auf vielen Unix-Systemen der Standardedi-tor, der aufgrund der Konfiguration ungefragt aufgerufen wird. Demnach sollte man zumindest wissen, wieman diesen wieder verlasst. Der vi unterscheidet zwischen zwei Modi: den insert-Modus und den complex-command-Modus. Wie aus den Bezeichnungen unschwer zu erkennen ist, wird beim erstgenannten der Texteditiert und bei letzterem werden bestimmte Befehle an den Editorubertragen. Dabei gelten die Tastaturbe-legungen aus Tabelle7.2auf Seite58.

Tastenkurzel FunktionI Wechselt in den Insert-ModusEsc Beendet den Insert-ModusH / L Cursor Bewegung nach links / rechtsJ / K Cursor Bewegung ab / aufX Loscht ein ZeichenD D Loscht die aktuelle ZeileP Geloschte Zeile an der Cursor-Position einfugen.U Generelles Undo: Wechselt in den Complex-Command-Modus:w name Speichert den Text unter einem neuen Namen:wq Speichert und beendet den vi:q! Beendet den vi:help Startet die Hilfe

Tabelle 7.2.:vi - Bedienung mit der Tastatur

7.1.2. emacs

Der emacs ist der Editor unter Linux schlechthin. Er ist aufgrund der beliebigen Erweiter- und Program-mierbarkeit sehr machtig. Im Rahmen dieses Kurses kann von daher nur auf die grundlegende Bedienungeingegangen werden, wobei anzumerken ist, dass vor allem, wenn große Textmengen oder Programmcodebearbeitet werden mussen, sich der emacs geradezu anbietet.

Auch der emacs ist unter samtlichen Unix-Versionen, zusatzlich aber auch unter Windows verfugbar.Grundsatzlich macht dieser jedoch Probleme bei der Interpretation von Tasten wie Pos1, Entf usw. Diesliegt an der Defaultkonfiguration, die es Emacs aufgrund eines eingeschrankten Tastatur- und Zeichensatzesermoglicht, plattformunabhangig lauffahig zu sein. Allerdings treten diese Probleme bei den Distributionenfur PCs eher selten auf, da hier bereits die richtige Konfiguration bereitgestellt wird. Auch hier sieht dieBedienung zunachst eher abschreckend aus. Es wimmelt nur so von Strg- und Alt-Tastenkombinationen,mit denen die unzahligen Kommandos aufgerufen werden. Wenn mehrere Tastenkombinationen angegeben

58

Page 59: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7.1. Editoren

sind, werden diese nacheinander ausgefuhrt. Tabelle7.3auf Seite59wird versucht, einen kleinenUberblickzu vermitteln.

Tastenkurzel FunktionStrg + X, Strg + F Ladt eine neue Datei.Strg + X, Strg + S Speichert die aktuelle Datei.Strg + X, Strg + S, ! Speichert alle offenen DateienStrg + X, Strg + W Speichert die Datei unter einem neuen Namen.Strg + G Bricht die Eingabe eines Kommandos ab.Strg + X, I Fugt die Datei in den vorhanden Text einStrg + D Loscht das Zeichen an der aktuellen CursorpositionAlt + D Loscht das nachste WortStrg + K Loscht eine ZeileAlt + M Loscht den nachsten AbsatzStrg + X, U Macht das Loschen ruckgangigStrg + Y Fugt den zuletzt geloschten Text an der aktuellen Cursor-

position wieder ein.Strg + Leertaste Setzt einen unsichtbaren Markierungspunkt.Strg + X, Strg + X Vertauscht Cursorposition und Markierungspunkt.Strg + W Loscht den Text zwischen Markierung und aktueller Cur-

sorpositionStrg + Z Verlasst den emacs kurzzeitigStrg + X, Strg + C Beendet den emacs

Tabelle 7.3.:Emacs - gebrauchliche Tastaturkommandos

Wahrend der Bearbeitung einer Datei legt Emacs in regelmaßigen Abstanden eine Kopie mit dem aktuel-len Zustand der Datei in einer Datei namens #dateiname# an. Beim Speichern wird ebenfalls eine Kopie desursprunglichen Zustandes der Datei unter dateinameabgelegt. Diese Dateien konnen bei einem unvorherge-sehenen Systemausfall beim erneuten Start von emacs wiederhergestellt werden.

Innerhalb einer Datei kann man sich, wenn die Tastatur korrekt konfiguriert ist, mit den Cursortastenbewegen und mitDel bzw. Entf Zeichen loschen. Sollte dies nicht moglich sein, so funktionieren dieTastenkombinationen aus Tabelle7.4 auf Seite59 auf jeden Fall. Der emacs unterstutzt verschiedene Be-

Tastenkurzel FunktionStrg + F Cursor ein Zeichen nach rechtsStrg + B Cursor ein Zeichen nach linksStrg + P Cursor eine Zeile nach obenStrg + N Cursor eine Zeile nach untenStrg + V Text eine Seite nach untenAlt + V Text eine Seite nach oben

Tabelle 7.4.:Emacs - Ersatz fur die Pfeiltasten

arbeitungsmodi (z.B. fur LATEX -Dateien, c-Dateien, Fließtexte usw.), in denen zusatzliche Kommandos zur

59

Page 60: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

Bearbeitung spezieller Dateien zur Verfugung stehen. Weiterhin kann man die Kommandos auf zweierleiArten eingeben. Einerseitsuber die bereits betrachteten Tastenkombinationen, andererseits durch die kom-plette Angabe des Kommandonamens. Eine solche Eingabe wird durch Alt + X eingeleitet, dann folgt dasKommando, das sogar durch Tab automatisch erganzt wird.

Insgesamt ist die Funktionalitat des emacs sehr umfangreich. Es gibt beispielsweise noch die Moglich-keit, Texte in Registern zwischenzuspeichern, die Groß- und Kleinschreibung zu verandern, Zeichenkettenzu vertauschen, Tabulatoren zu setzen, Texte ein- bzw. auszurucken, Zeichenketten zu suchen und zu erset-zen und nicht zuletzt Syntaxhervorhebung zu aktivieren. In der Dokumentation trifft man haufig auf Tas-tenkombinationen, die mit C bzw. M beginnen. C steht hier fur Control also Strg und M fur Meta folglichAlt.

Zu guter Letzt bringt der emacs noch eine umfangreiche Hilfe mit, die man mit der TastenkombinationF1 + Taste aufruft, wie in Tabelle7.5auf Seite60angedeutet.

Tastenkurzel FunktionF1, F1 Ubersichtuber vorhandene HilfekommandosF1, A text Enter Ubersichtuber alle Kommandos, die text enthalten.F1, B Ubersichtuber alle TastenkurzelF1, C tastenkurzel Kurzbeschreibung des zugeordneten KommandosF1, F kommando Enter Kurzbeschreibung des KommandosF1, Shift + F Emacs FAQF1, I Zeigt das info-System fur die HilfetexteF1, T Einfuhrung in die Bedienung des EmacsF1, Strg + P Informationenuber die Idee freier Software

Tabelle 7.5.:Hilfe unter Emacs

7.2. Dateimanager - Midnight Commander

Oft ist es eher umstandlich mit Hilfe eines Kommandos Dateien zu kopieren bzw. zu verschieben, Ver-zeichnisse anzulegen oder Dateien zu editieren. Außerdem lasst sich nur schwer allein mit textbasiertenKommandos einUberblick uber das Dateisystem gewinnen. Der textbasiert Midnight Commander (Kom-mando zum Aufruf: mc) bringt Abhilfe.Ubrigens lasst sich der Midnight Commander auch als Editor verwenden, indem man in mit dem Parameter-e aufruft:

mc -e [Dateiname]

7.2.1. Bedienung

Die Oberflache des Midnight Commanders gliedert sich in vier Bereiche.

Menuzeile (zu erreichen mit F9) Hier finden sich teils ausgedehnte Menus, die weitere Befehle anbieten.

Verzeichnis- / Dateifenster (Tabulator zum wechseln) Hier sehen Sie die nicht nur die Verzeichnisstrukturdes Dateisystems und die zahlreichen Dateien, sondern konnen auch anhand verschiedener Symbole

60

Page 61: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7.2. Dateimanager - Midnight Commander

zwischen symbolischen Links, normalen und ausfuhrbaren Dateien unterscheiden. Wahrend Sie mitEnter in ein Unterverzeichnis wechseln, gelangen Sie mit dem Eintrag .. und Enter wieder in dasubergeordnete Verzeichnis. Mit der Taste Einfg konnen mehrere Dateien / Verzeichnisse auf einmalausgewahlt werden. Mehrere Dateien konnen auch mit der Taste + ausgewahlt bzw. mit der Taste -abgewahlt werden. Die Taste * verkehrt Ihre Auswahl in das Gegenteil.

Kommandozeile Hier konnen Sie wie gewohnt einzelne Befehle absetzen, deren Ausgabe jedoch von dendaruberliegenden Fenstern verdeckt wird. Die Tastenkombination Strg + O bewirkt ein Aus- bzw.Einblenden selbiger.

Funktionszeile Die gangigsten Kommandos werden am unteren Rand des Bildschirms angezeigt. Mit derentsprechenden F-Taste konnen diese aufgerufen werden.

7.2.2. Konfiguration

Der Midnight Commander kann sehr flexibel an die Bedurfnisse des Benutzers angepasst werden. AktivierenSie mit der Taste F9 das Menu und wahlen Sie den Punkt Optionen. Im Menu Konfiguration bieten sichIhnen eine ganze Reihe von Optionen, die teils selbst erklarend sind, teils hier vorgestellt werden.

Fensteroptionen (panel options) Wie in Tabelle7.6auf Seite61erlautert.

Option Wirkungverborgene Dateien an-zeigen (show hidden files)

Normalerweise werden Dateien, die mit einemPunkt beginnen, nicht angezeigt, da dies unter Linuxeine versteckte Datei markiert.

alle Dateien gemischt(mix all files)

Ist diese Option aktiv, wird bei der Anzeige kein Un-terschied zwischen Dateien und Verzeichnisse ge-macht. Ist sie nicht aktiv, werden Verzeichnisse (undVerknupfungen zu Verzeichnissen) immer zuerst an-gezeigt.

Tabelle 7.6.:mc - Fensteroptionen

Andere Optionen (other options) Wie in Tabelle7.7auf Seite62angegeben.

Darstellungsoptionen (Layout) Diese erklaren sich eigentlich von selbst. Hervorheben will ich nur dieOptionen zur Fensteraufteilung. Unter Linux konnen die Namen von Dateien und Verzeichnissen sehrlang werden. Bei vertikaler Teilung der Anzeigefenster werden u.U. die Namen abgekurzt. Teilen Siehingegen die Fenster horizontal, bieten Ihnen die dannubereinander liegenden Fenster weitaus mehrPlatz zur Anzeige. Der Umgang mit diesen horizontalen Fenstern mag etwas ungewohnt sein, aberdie meist vollstandige Anzeige der Namen macht dies mehr als wett.

Darstellungsbits (Display bits) Hier legen Sie fest, ob nationale Sonderzeichen angezeigt bzw. deren Ein-gabe zugelassen wird. Wahlen Sie sinnvollerweise ISO 8859-1 und die Option Komplette 8-Bit Ein-gabe.

61

Page 62: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

Option Wirkungberechne Gesamtsummen(compute totals)

Vor allen Datei-Operationen werden zunachst dieGesamtgroße und die Anzahl aller betroffenen Da-teien berechnet. Damit erhalten Sie eine prazisereFortschrittsanzeige, allerdings auf Kosten der Ge-schwindigkeit.

internen Editor benutzen(use internal edit)

Legt fest, ob Sie fur das Bearbeiten von Dateien deneingebauten oder einen externen Editor verwendenwollen. Wird diese Option deaktiviert, so wird der inder Umgebungsvariable EDITOR angegebene gest-artet.

internen Betrachter benut-zen (use internal view)

Wenn Sie zum Ansehen von Dateien nicht den ein-gebauten Betrachter verwenden wollen, deaktivierenSie diese Option. Es wird dann der in der Umge-bungsvariablen PAGER angegebenen Betrachter be-nutzt.

rotierender Strich (rota-ting dash)

In der rechten oberen Ecke wird, wenn ein Vorganglanger dauert, ein rotierender Strich angezeigt.

sicheres Loschen Die Vorgabe im Bestatigungsdialog wechselt vonder Ja zur Nein Schaltflache. Beim Loschen von Ver-zeichnissen mussen Sie das Wort ja eingeben.

Tabelle 7.7.:mc - Andere Optionen

62

Page 63: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7.3. Bash - Bourne Again Shell

7.2.3. Ausfuhrung typischer Arbeiten

Kopieren / Verschieben von Dateien / Verzeichnissen Es empfiehlt sich, bevor Dateien bzw. Verzeich-nisse kopiert werden, in einem der beiden Fenster das Ziel bereits auszuwahlen, da dieses dann in denDialog ubernommen wird und man sich unter Umstanden enorme Tipparbeit erspart. Anschließendmarkieren Sie die Dateien mit Einfg, +, - bzw. * und Kopieren (F5) / Verschieben (F6) die Dateien.

Schnelles Mounten von Datentr agern Wechseln Sie mit dem Cursor zum Mountpoint und drucken Siedann F2. Im erscheinenden Fenster wahlen Sie das @ und geben im darauffolgenden Dialogmountbzw.umount ein.

Navigieren in gepackten Dateien (.tar, .rpm, .zip) Daten in gepackten Dateien konnen problemlos ange-zeigt werden. Auch wenn dasOffnen einen Moment dauert, danach konnen Sie sich wie in einernormalen Verzeichnisstruktur bewegen.

Das war jetzt nur ein kurzer Einblick in die interssantesten Moglichkeiten des Midnight Commanders.Es gibt noch eine ganze Reihe weiterer Moglichkeiten, die diesen textbasierten Dateimanager fur mich zueinem unverzichtbaren Werkzeug werden ließen, das ich bei der taglichen Arbeit nicht missen mochte.

7.3. Bash - Bourne Again Shell

Die bourne again shell ist der Standardkommandointerpreter unter Linux. Sie ermoglicht Ihnen die Eingabeund Ausfuhrung von Kommandos. Zudem stellt Sie eine eigene Programmiersprache zur Verfugung, diezur Erstellung von Shell-Scripts verwendet werden kann. Im folgenden Abschnitt wird zunachst auf dieVerwendung der bash eingegangen. Themen sind hier beispielsweise die Ein- und Ausgabeumleitung, dieKommunikation zwischen mehreren Prozessen und die Verwaltung von Shell-Variablen.

7.3.1. Shell - Benutzerschnittstelle

Die Shell ist die Schnittstelle zwischen dem Anwender und dem Betriebssystem Linux. Mit ihrer Hilfe wer-den Kommandos ausgefuhrt und Programme gestartet. Der Begriff Kommandointerpreter ruhrt daher, dassdie Shell zunachst die Eingaben des Benutzers deutet und dann an die jeweilige Anwendung weitergibt. Wiebereits angesprochen stellt sie außerdem eine leistungsfahige Programmiersprache zur Verfugung, mit derArbeitsablaufe automatisiert werden konnen. Dabei ermoglichen es einige besondere Shell-Kommandosinnerhalb dieser Programme Variablen zu verwenden, Abfragen und Schleifen zu bilden usw. Letztend-lich handelt es sich hierbei um einfache Textdateien, die aufgrund Ihrer besonderen Verwendung als Shell-Skripte bezeichnet werden.

Fur jeden Anwender, der im System einen Benutzeraccount hat, ist eine default shell vorgesehen. Diesewird bei der Einrichtung des Benutzers in der Datei/etc/passwd hinterlegt. Mit dem Befehlchsh kannder Anwender diese Einstellung nachtraglich anpassen. Eine Liste der verwendbaren Shells findet sich in/etc/shells.

Abfrage der installierten bash-Version:echo $BASH_VERSIONAbfrage der gerade aktiven Shell:echo $0

7.3.2. Umgebungsvariablen

Die Bash verwendet verschiedene Dateien zur Initialisierung der Umgebung. Wenn sie als Loginshell auf-gerufen wird, werden diese Dateien in der folgenden Reihenfolge ausgewertet.

1. /etc/profile

63

Page 64: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

2. /.profile

3. /etc/bash.bashrc

4. /.bashrc

Anderungen an der Umgebung konnen die Benutzer in/.profile bzw.˜/.bashrc vornehmen.

7.3.3. Basiskonfiguration - Tastenbelegung und Prompt

Die Konfiguration der Tastatur kann global in der Datei/etc/inputrc oder benutzerspezifisch in/.inputrceingestellt werden. Dies ist unter Umstanden notwendig , da deutsche Sonderzeichen und die Funktionstas-ten Pos1, Ende und Entf nicht immer wie gewohnt sind arbeiten. Die erwahnten Dateien steuern die Funktionreadline, die bash-intern zur Verarbeitung von Tastatureingaben verwendet wird. In einem Konsolenfenstermussen deshalb aber noch lange nicht alle Funktionstasten richtig interpretiert werden. Der Prompt zeigtublicherweise den angemeldeten Benutzer, den Computernamen, das aktuelle Verzeichnis und mit welchenRechten der eingeloggte Anwender ausgestattet ist. Weitere Einstellmoglichkeiten bieten sich durch dieUmgebungsvariable PS1.

7.3.4. Kommandoeingabe

Die bash unterstutzt Sie bei der Kommandoeingabe mit vielen praktischen Tastenkurzeln und Sondertasten.Insbesondere konnen Sie mit den Pfeiltasten die zuletzt eingegebenen Kommandos aufrufen, ausfuhren odernachtraglich bearbeiten. Diese Kommandos werden beim Ausloggen in einer Datei gespeichert und stehensomit nach dem nachsten Einloggen wieder zur Verfugung. Außerdem konnen Sie, sollten die Ausgabeneines Befehls aufgrund ihres Umfangs nicht mehr vollstandig sichtbar sein, mit shift + Bild auf bzw. shift+ Bild ab die vorangegangenen Seiten betrachten. Dies ist solange moglich, bis Sie die Konsole wechseln.Auf diese Art und Weise konnen Sie beispielsweise nachvollziehen, was beim Systemstart abgelaufen ist.Eine weitere nutzliche Funktion ist die automatische Expansion von Kommando- und Dateinamen. HabenSie die ersten Buchstaben beispielsweise eines Befehls eingegeben, wird Ihnen nach Betatigung von Tab derBefehlsname erganzt, wenn dieser bereits eindeutig ist, andernfalls wird nach einem kurzen Signalton undeinem nochmaligen Bestatigen mit Tab eine Liste mit allen zur Verfugung stehen Kommandos oder Dateienangezeigt. Diese Funktion verschleiert jedoch, wo sich ein Programm eigentlich befindet.

Abfrage des Verzeichnisses fur ein gesuchtes Kommando:

whereis <kommandoname>which <kommandoname>

Ahnliche Expansionsmechanismen treffen Sie auch bei Verzeichnis- und Pfadnamen an.

7.3.5. Wichtige Tasten und Tastenkombinationen

... entnehmen Sie der Tabelle7.8auf Seite65.

7.3.6. Alias-Abkurzungen

Mit dem Kommando alias werden Abkurzungen fur Kommandos festgelegt. Bei der Verarbeitung der Kom-mandozeile wird zunachst gepruft, ob das erste Wort ein Alias ist und dann gegebenenfalls durch denvollstandigen Text ersetzt. Die bash durchsucht daruber hinaus bei Pipes, Kommandosubstitutionen oderbei der sequentiellen Ausfuhrung von Kommandos alle vorkommenden Kommandonamen auf Abkurzun-gen.

64

Page 65: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7.3. Bash - Bourne Again Shell

Bash-Tastenkombination FunktionPfeiltasten nach oben bzw. untenScrollt durch die zuletzt eingegebenen KommandosPfeiltasten nach rechts bzw. linksBewegt den Cursor vor bzw. zuruckPos1, Ende Bewegt den Cursor an den Beginn, an das Ende der

ZeileStrg + A, Strg + E Wie Pos1 und EndeAlt + B, Alt + F Bewegt den Cursor wortweise ruckwarts, vorwartsBackspace, Entf Zeichen ruckwarts, vorwarts loschenAlt + D Wort rechts vom Cursor loschenStrg + K Bis zum Ende der Zeile loschenAlt + T Die beiden vorangegangenen Worter tauschenTab Expansion des Kommando- oder DateinamensStrg + L Loscht den BildschirmStrg + R Sucht nach fruher eingegebenen Kommandos, er-

neutes Betatigen geht zum nachsten Suchergebnis

Tabelle 7.8.:Bash Tastaturfunktionen

Festlegung eines Aliases:alias more=lessDie Alias Abkurzungen werden vorrangig gegenuber gleichnamigen Kommandos behandelt. Das kann

dazu genutzt werden, um den unerwunschten Aufruf eines Kommandos zu vermeiden. Einmal festgelegteAbkurzungen sind bis zum Verlassen der shell gultig, konnen jedoch mit dem Befehl unalias wieder geloschtwerden. Alias Anweisungen, die in die Dateien.profile oder.bashrc aufgenommen sind, werden beimEinloggen geladen.

7.3.7. Ein- und Ausgabeumleitung

Bei der Ausfuhrung von Kommandos in der bash stehen drei Dateideskriptoren zur Verfugung, die aufBetriebssystemebene wie Dateien behandelt werden.

Standardeingabe: Gerade ausgefuhrte Programme lesen aus dieser die Eingaben des Anwenders. Norma-lerweise ist dies die Tastatur.

Standardausgabe: An diese werden alle Ausgaben des Programmes geschickt. Im Regelfall ist dies derBildschirm bzw. das Terminal.

Standardfehler: Fehlermeldungen werdenublicherweise ebenfalls im aktuellen Terminal ausgegeben.

Diese drei Dateideskriptoren konnen jedoch angepasst werden. So ist es beispielsweise moglich, die Stan-dardausgabe des einen Kommandos zur Standardeingabe eines anderen Kommandos zu machen. Zudemkann man Ausgaben eines Programmes in eine Datei umleiten. Beispiele sind in Tabelle7.9 auf Seite66angegeben.

Pipes:

Die Bildung einer Pipe erfolgt durch das Zeichen —, das zwischen zwei aufeinanderfolgende Befehle ein-gefugt wird. Dadurch wird die Standardausgabe des einen zur Standardeingabe des anderen Kommandos.Beispiel:

65

Page 66: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

Syntax Funktionls *.tex ¿ inhalt Gibt das Ergebnis von ls in der Datei inhalt ausls *.gz ¿¿ inhalt Hangt die Ausgabe von ls an die Datei inhalt an2¿ datei Leitet alle Fehlermeldungen in die angegebene Datei¿& datei Leitet sowohl die Ausgabe als auch die Fehler in die datei

um¡ datei Leitet die Eingaben an das Kommando weiter

Tabelle 7.9.:Ausgabeumleitung mit der Bash

ls -al | lessps -ax | grep mucke

FIFOs:

Die Idee, die hinter firs in first out steckt, ist im Grunde dieselbe einer Pipe. Sie wird verwendet, damit zweivoneinander unabhangige Programme miteinander kommunizieren konnen.

Beispiel:

mkfifo fifols -l > fifo &less < fifo

Ausgabevervielf altigung:

Das Kommando tee bewirkt, dass zwei Kopien der Programmausgabe erzeugt werden. Auf diese Weise kanneine Kopie am Bildschirm angezeigt werden, wahrend die zweite Kopie in eine Datei geschrieben wird.

Beispiele:

ls | tee inhaltls | tee inhalt1 inhalt2ls -l | tee inhalt1 | sort +4 > inhalt2

7.3.8. Kommandoausfuhrung

Bevor ein Kommando von der bash ausgefuhrt wird, interpretiert diese zunachst eventuell eingegebeneSteuerzeichen. Auf diese Weise ist es moglich, Programme im Hintergrund zu starten, Jokerzeichen zu ver-wenden und Ergebnisse eines Kommandos in die Parameterliste eines anderen Kommandos zuubernehmen.

Hintergrundprozesse

Kommandos konnen im Hintergrund ausgefuhrt werden, wenn beim Aufruf ein & angehangt wird. Dasunter Umstanden zeitaufwendige Kommando wird dann von der bash verarbeitet, wahrend im Vordergrundbereits die Eingabeaufforderung zur Verfugung steht.

Beispiel:

find / -name ’*sh’ > ergebnis &

66

Page 67: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7.3. Bash - Bourne Again Shell

Hinweis

Mit Strg + Z kann ein Programm zunachst unterbrochen und dann in den Hintergrund versetzt werden. MitStrg + C wird die Ausfuhrung ganzlich abgebrochen.

Ausfuhrung mehrerer Kommandos

... wie in Tabelle7.10auf Seite67angegeben.

Kommando FunktionKommando1; kommando2 Fuhrt die Kommandos nacheinander ausKommando1 && Kommando2 Fuhrt kommando2 aus wenn kommando1 erfolg-

reich warKommando1 —— kommando2 Fuhrt kommando2 aus wenn kommand1 einen Feh-

ler liefertKommando1 & kommando2 Startet kommando1 im Hintergrund, Kommando2

im Vordergrund(kommando1; kommando2) Fuhrt beide Kommandos in der gleichen shell aus

Tabelle 7.10.:Mehrere Kommandos gleichzeitig

7.3.9. Substitutionsmechanismen

Der Begriff Substitutionsmechanismus klingt zunachst sehr abstrakt. Gemeint ist, dass vor der Ausfuhrungeines Kommandos die durch Sonderzeichen gebildeteten Ausdrucke von der bash ausgewertet werden. Diesgeschieht bei der Verwendung von Jokerzeichen zur Bildung von Dateinamen, bei der Zusammensetzungvon Zeichenketten, bei der Berechnung arithmetischer Klammern, bei der Verwendung von umgekehrtenApostrophen zur Kommandosubstitution usw.

Dateinamenbildung mit Jokerzeichen

Wie bereits mehrfach angesprochen, ist nicht das jeweilige Kommando fur die Auswertung der Jokerzei-chen wie in Tabelle7.11auf Seite68 erlautert, zustandig, sondern die bash selbst. Dieseubergibt nach derExpansion des Ausdrucks eine Liste mit den Dateien bzw. Verzeichnissen an das Kommando.

Da oft das Ergebnis eines mit Jokerzeichen versehenen Ausdrucks nicht den Erwartungen entspricht, soll-te man zunachst einmal die Expansion genauer betrachten. Außerdem ist zu beachten , was das Kommandodann mit derubergebenen Liste an Datei- und Verzeichnisnamen anstellt.

Beispiel:

echo /*ls /*

Zeichenkettenbildung mit geschweiften Klammern

Die Klammererweiterung (brace expansion) der bash setzt aus in geschweiften Klammern angegebenenZeichenketten alle Zeichenkettenkombinationen zusammen.

Beispiel:

67

Page 68: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

Jokerzeichen Bedeutung? Genau ein beliebiges Zeichen* Beliebig viele Zeichen[abc Genau eines der angegebenen Zeichen[a-f] Ein Zeichen aus dem angegebenen Bereich[!abc] Keines der angegebenen Zeichen[abc] Keines der angegebenen Zeichen˜ Abkurzung fur das Heimatverzeichnis. Abkurzung fur das aktuelle Verzeichnis.. Abkurzung fur dasubergeordnete Verzeichnis

Tabelle 7.11.:Jokerzeichen

echo {a,b}{1,2,3}echo u{01,02,03}tm

Berechnung arithmetischer Ausdrucke

Die bash ist in der Lage, bei der Eingabe eines korrekten Ausdrucks diesen zu berechnen. Hierbei sind diemeisten aus der Programmiersprache C bekannten Operatoren erlaubt. Die vier Grundrechenarten (+,-, *,/), die Modulofunktion %, fur Vergleich (==, !=, ¡, ¡=, ¿, ¿=), fur Bitverschiebungen (¡¡, ¿¿) und schließlichdie logischen Operatoren Nicht (!), Und (& &) und Oder (——). Hierbei gultig sind auch dieublichenRechenregeln (z.B. Punkt vor Strich).

Beispiel:

echo [2+3]

7.4. Regul are Ausdrucke

Regulare Ausdrucke (engl.:regular expressions)sind ein Begriff aus der Theoretischen Informatik - Re-gulare Ausdrucke beschreiben Mengen aus Zeichenketten. Wichtig werden Sie daher immer dann, wenn Siewie oben beschrieben Dateien an der Kommandozeile spezifizieren wollen. Doch auch bei der Suche vonMustern in Textdateien sind Regulare Ausdrucke nutzlich.

7.4.1. Syntax von Regul aren Ausdrucken

Regulare Ausdrucke setzt man aus einzelnen Zeichen zusammen. Die Bedeutung dieser entnehme man Ta-belle7.12auf Seite69oder der man-Page vongrep. Diese Bausteine konnen Sie beliebig zusammensetzen,um Regulare Ausdrucke zu bilden. Hilfreich dabei ist, dass jeder dieser Bausteine mit einer der Angabenaus Tabelle7.13auf Seite69ausgestattet werden kann.

Weitere Besonderheiten von Regularen Ausdrucken entnehmen Sie bitte der man-Page vongrep.

7.4.2. grep

grep wird gebraucht, um Dateien, oder die Ausgabe von Programmen, zu durchsuchen, und nach Stichwor-ten und Mustern zu filtern. Als Parameter dienen dabei ein Regularer Ausdruck wie oben beschrieben und

68

Page 69: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7.4. Regulare Ausdrucke

. Beliebiges Zeichen\w Beliebiges alphanumerisches Zeichen\W Beliebiges nicht alphanumerisches Zeichen[xyz] Eines der Zeichen x, y oder z[x-z] Ein Zeichen aus x - z[q-v] Alle Zeichen außerhalb des Bereichs q-v

Tabelle 7.12.:Bausteine von Regularen Ausdrucken

? Muster kommt einmal oder gar nicht vor* Muster kommt nicht oder beliebig oft vor+ Muster kommt mindestens einmal vor{n} Muster kommt exakt n mal vor{n,} Muster kommt mindestens n mal vor{n,m} Muster kommt zwischen n und m mal vor

Tabelle 7.13.:Multiplikatorbausteine

eine Datei. Alternativ kann grep auchuber sogenannte Pipes an “normale” Programme und Anweisungen“angehangt” werden. Dann wird die Ausgabe dieser Programme nach dem angegebenen Muster gefiltert.

Beispiele

• Durchsuche die Liste der aktuellen Prozesse nach denen des Users “michael”

ps -eadf | grep michael

• Durchsuche die/etc/fstab nach Master-Festplatten am Primary-Port:

grep "\/dev\/hda*" /etc/fstab

7.4.3. Limits

Mit dem Befehl ulimits ist es moglich, Limits fur die Nutzung von Systemressourcen zu setzen bzw. sichdiese anzeigen zu lassen. Allerdings wirken sich die Beschrankungen nur auf Prozesse aus, die durch dieShell gestartet werden. Die zahlreichen Optionen und die Bedeutung von Hard- und Softlimit konnen in dermanpage zur Bash nachgeschlagen werden. Die gesetzten Limits werdenubrigens durch ulimit -a sichtbar.Systemweite Einstellungen sollten in /etc/profile gesetzt werden. Die Angaben erfolgen in kB.

Ubungen

1.

2.

3.

69

Page 70: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

7. Kommandozeile

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

70

Page 71: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

8. Standards

Um ein Auseinanderfallen der verschiedensten Distributionen zu verhindern, gibt es einige Standardisie-rungsbemuhungen.

Lernziele

In diesem Kapitel lernen Sie,

• die Linux Standard Base,

• die TEX Directory Structure und

• die Vorgaben des Filesystem Hierarchy Standard kennen.

8.1. LSB - Linux Standard Base

Die Linux Standard Base liegt inzwischen in der Version 1.2 vor. Die SuSE Distribution bewegt sich inweiten Teilen sehr nahe an dieser Spezifikation. Aktuelle Informationen hierzu finden sich im Internet unterhttp://www.linuxbase.org.

8.2. TDS - TEX Directory Structure

TEX ist ein Satzsystem, das auf zahlreichen Plattformen lauft unduber zahlreiche Makropakete erweiterbarist. Die TEX Directory Structure beschreibt wie die zahlreichen Dateien von TEX im Verzeichnisbaum anzu-ordnen sind.SuSE bringt teTeX, eine Zusammenstellung aktueller TEX Pakete, in einer Konfiguration in ihre Distributionein, die sowohl den Vorgaben von TDS als auch des FHS entspricht.

8.3. FHS - Filesystem Hierarchy Standard

Dieser Standard, der mittlerweile Bestandteil des LSB ist, beschreibt die Dateisystemstruktur. SuSE strebteine weitgehende Konformitat zum FHS an. Aktuelle Informationen finden sich im Internet unterhttp://www.pathname.com/fhs/.

Der in derUberschrift genannte Standard wie aus Tabelle8.1auf Seite72 ersichtlich, beschreibt, welcheDateien wo in der Verzeichnisstruktur abgelegt werden. Diese Ausdrucksweise ist zwar nicht vollig richtig,aber furs erste ausreichend. Wie die Daten genau organisiert sind, wird spater noch genauer erlautert.

Auch wenn die eben beschriebene Hierarchie gar nicht so undurchsichtig erscheint, ist die wirklicheStruktur der Verzeichnisse und der dahinterstehenden Daten alles andere als eindeutig. Um dies nachzu-vollziehen, betrachten Sie doch einfach mal den Inhalt des Verzeichnisses/usr und dessen weitreichendeUnterverzeichnisse (/usr/bin/X11 ist dasselbe Verzeichnis wie/usr/X11R6/bin).

71

Page 72: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

8. Standards

Verzeichnis Inhalt des Verzeichnisses/ enthalt, ausgehend vom Wurzelverzeichnis alle in das Dateisystem ein-

gebundenen Verzeichnisse./bin enthalt elementare Kommandos zur Systemverwaltung, die von allen

Benutzern ausgefuhrt werden konnen (binaries)./boot enthalt Dateien, die zum Booten des Systems verwendet werden (LILO

Bootmanager) und zudem Kernel-Komponenten bzw. den Kernel selbst./dev enthalt block- und zeichenorientierte Geratedateien fur nahezu alle

Hardware-Komponenten./etc enthalt nahezu alle Administrations- und Konfigurationsdateien, gege-

benenfalls in weiteren bezeichnenden Unterverzeichnissen./home enthalt die Heimatverzeichnisse aller Anwender, abgesehen von root. Im

eigenen Verzeichnis hat der Benutzer alle Rechte, darf folglich Dateienloschen, Verzeichnisse anlegen usw.

/lib enthalt einige gemeinsame Bibliotheken fur dynamisch gelinkte Pro-gramme oder symbolische Links darauf (/lib/modules beinhaltet Kernel-Module, die im laufenden Betrieb eingebunden werden).

/lost+found hier werden Daten von fsck (file system check) abgelegt, die bei derWiederherstellung eines defekten Dateisystem nicht mehr zugeordnetwerden konnten.

/mnt enthalt Unterverzeichnisse wie cdrom oder floppy, die als Mountpointdienen und an deren Stelle andere Dateisysteme eingebunden werdenkonnen.

/opt enthalt Zusatzpakete und kommerzielle Programme, die nachtraglich in-stalliert wurden.

/proc enthalt Unterverzeichnisse fur alle laufenden Prozesse, wobei die Pro-zessID dem Verzeichnisnamen entspricht, und spiegelt so die interneProzessverwaltung wieder. Dieses Verzeichnis belegt keinen Speicherauf der Festplatte, da es sich nur um ein Abbild des Speicherinhalteshandelt.

/sbin enthalt Kommandos zur Systemverwaltung, auf die vor allem wahrendder Initialisierung des Systems zugegriffen wird und die nur von rootausgefuhrt werden durfen.

/tmp dient als Arbeitsverzeichnis fur das Anlegen von temporaren Dateienund Verzeichnissen durch den Benutzer oder das System, wobei die Da-ten beim nachsten Bootvorgang geloscht werden.

/usr stellt das fur den typischen Anwender wichtigste Verzeichnis dar, enthaltidealerweise nur statische Daten, wie Anwendungsprogramme, das XSystem, verschiedene Compiler, Dokumentation und letztendlich auchdie Quellcodes.

/var enthalt samtliche veranderliche Daten wie beispielsweise Konfigurati-onsdateien, Druckauftrage fur den Spooler, Systemanmeldungen, Proto-kolldateien, Lockfiles, Account-Dateien und zwischengespeicherte Da-ten.

Tabelle 8.1.:Standardverzeichnisse

72

Page 73: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

8.3. FHS - Filesystem Hierarchy Standard

Ubungen

1.

2.

3.

Zusammenfassung

Die einzelnen Abschnitte zu den angesprochenen Standards sollten bei Bedarf weiter ausgebaut werden.Allerdings kommt es hier auch zu Zielkonflikten mit anderen Kapiteln, insbesondere beim FHS.

73

Page 74: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

8. Standards

74

Page 75: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

Auch wenn der Anwender sich kaum außerhalb seines Home-Verzeichnisses bewegt, so ist das Dateisystemals Ganzes unter Linux doch der Dreh- und Angelpunkt jeglicher Ablaufe. Deshalb wird man sich ohnegrundlegende Kenntnisse desselben wohl kaum auf Dauer zurechtfinden.

Lernziele

In diesem Kapitel lernen Sie,

• sich einenUberblickuber das Dateisystem zu verschaffen,

• verschiedene Dateitypen zu unterscheiden und Dateien und Verzeichnisse anzusprechen,

• Zugriffsrechte zu setzen und zuandern.

• Dateisysteme zu erzeugen, zuuberprufen, ein- und auszugehanggen,

• grundlegendesuber Partitionen,

• die Interna des Dateisystems ext2 kennen.

9.1. Grundlagen der Dateiverwaltung

9.1.1. Dateitypen

... entnehmen Sie der Tabelle9.1auf Seite76.

9.1.2. Pfadangaben

Der Pfadname gibt eindeutig an, wo sich welche Dateien im System befinden. Auf diese Weise findet derAnwender die abgelegten Daten auch noch nach langerer Zeit wieder. Der Pfadname selbst setzt sich ausden einzelnen Verzeichnisnamen zusammen, die durch Schragstriche / voneinander getrennt sind.

Man unterscheidet grundsatzlich zwei Pfadangaben, wie in Tabelle9.2auf Seite76angegeben.Angenommen das aktuelle Verzeichnis ware/share. Es soll nur in das Unterverzeichnis/home/mucke

gewechselt werden. Mit der absoluten Pfadangabe wurde das Kommandocd /home/mucke lauten, bei Ver-wendung eines relativen Pfades hingegencd ../home/mucke.

Die wichtigsten Themen dieses Abschnittes sind die Dateien und Verzeichnisse (Dateinamen, Jokerzei-chen, Verzeichnisverwaltung), die Verzeichnisstruktur, Besitzverhaltnisse und Zugriffsrechte, feste und sym-bolische Links, Zugriff auf Datentrager, verschiedene Dateisysteme und letztendlich die schon angesproche-nen Interna.

75

Page 76: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

Dateitypen CharakterisierungDatei (file) Sym-bol: -

Ketten von Zeichen, denen ein Name zugeordnet wurde,unter dem der Anwender seine Daten wiederfindet. Dateienkonnen unterschiedliche Daten enthalten (ASCII Text oderbinaren Code). Die Dateigroße wird vom Dateisystem aufeine bestimmte Große beschrankt.

Verzeichnis (direc-tory) Symbol: d

Da das System mehrere tausend Dateien enthalten kann,werden diese Dateien geordnet und in sogenannten Ver-zeichnissen gespeichert. Ein Verzeichnis kann zudem wei-tere Unterverzeichnisse enthalten und nahezu beliebig tiefgeschachtelt werden, wenn man davon absieht, dass einPfadname hochstens 256 Zeichen lang sein darf. Außer-dem enthalt ein Verzeichnis mindestens zwei Eintrage. DenVerweis .. auf dasubergeordnete Verzeichnis und . fur dasaktuelle Verzeichnis.

Geratedatei (devicefile) Symbol: c oderb

Alle Gerate des Systems konnenuber spezielle Dateien, diesogenannten Geratedateien angesprochen werden. Sie bil-den die Schnittstelle zu den im Kernel geladenen Gerate-treibern, wobei jedes Gerat einen Eintrag im Verzeichnis/dev hat.

Tabelle 9.1.:Dateitypen wie in ls -l

Pfadangabe Beschreibungabsoluter Pfad beschreibt den Weg zu einer Datei oder einem Verzeichnis immer ausge-

hend vom Wurzelverzeichnis. Die Pfadangabe beginnt immer mit einemSchragstrich /. Hierbei spielt der eigene Standort keine Rolle.

relativer Pfad beschreibt den Weg zu einer Datei oder einem Verzeichnis ausgehendvom aktuellen Standort des Benutzers im Dateisystem. Wird dasuber-geordnete Verzeichnis angesprochen, geschieht dies mit .., das aktuelleVerzeichnis kann mit . angesprochen werden.

Tabelle 9.2.:Pfadangaben

76

Page 77: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.1. Grundlagen der Dateiverwaltung

9.1.3. Dateien und Verzeichnisse

Unter dem Linux-Dateisystem ext2 sind Dateinamen bis zu 255 Zeichen zulassig. Dabei wird zwischenGroß- und Kleinschreibung unterschieden. Auch Sonderzeichen sind erlaubt, sollten jedoch aus verschiede-nen Grunden (gelegentliche Schwierigkeiten mit diversen Programmen) vermieden werden. Dateien, derenNamen mit einem Punkt beginnen, gelten als versteckt. Der Punkt im Dateinamen selbst wird haufig alsTrennzeichen verwendet. Dateinamenserweiterungen kennt Linux jedoch nicht. Dateinamen, die Leerzei-chen enthalten, mussen beim Ansprechen in Hochkommata gestellt werden, um eine Verwechselung mitParametern bzw. Optionen auszuschließen.

9.1.4. Geratedateien

Alle Gerate werden im Linux-Systemuber sogenannte Geratedateien angesprochen. Sie bilden die Schnitt-stelle zu den im Kernel geladenen Geratetreibern. Jede Hardwarekomponente weist einen Eintrag in Formeines Geratenamens im Verzeichnis/dev auf. Diese Dateien haben keine Datenblocke, denn die Daten, diein eine solche Datei geschrieben werden, werden sofort an das entsprechende Gerat weitergeleitet. Es gibtzwei Arten von Geratedateien:

blockorientierte Ger ate (block devices), die als kleinste Einheit einen Datenblockubergeben

zeichenorientierte Ger ate (character oder raw Devices), die byteweise arbeiten

Manche Gerate, beispielsweise Festplatten, konnen sowohl eine block- als auch eine zeichenorientierteGeratedatei im Verzeichnis/dev besitzen. Bei der Installation werden die Geratedateien automatisch an-gelegt. Da alle eventuell vorkommenden Gerate abgedeckt werden sollen, ist es normal, dass auf IhremSystem weit mehr Geratedateien abgelegt sind, als benotigt werden.

Die wichtigsten Geratedateien sind in Tabelle9.3auf Seite77angedeutet.

Geratedatei Beschreibung/dev/fd* steht fur Diskettenlaufwerke/dev/hd* steht fur (E)IDE Festplatten/dev/sd* bezeichnet SCSI Festplatten/dev/ttyS* und/dev/cua*

stehen fur serielle Schnittstellen, wie z.B. Bildschirm und Modems

/dev/lp* steht fur parallele Schnittstellen/dev/st* und/dev/rmt*

bezeichnet Bandlaufwerke

/dev/sr* und/dev/scd*

steht fur SCSI CD-ROM Laufwerke

/dev/null bezeichnet ein Gerat, das einem Fass ohne Boden gleicht, alle an diesesGerat gesandten Daten verschwinden im Nirvana

Tabelle 9.3.:Arten von Geratedateien

Auch Geratedateien konnen mit dem bereits bekannten Befehlls -l gelistet werden. Der Buchstabe zuBeginn jeder Zeile bezeichnet die Art des Gerates. Eine Besonderheit unter Linux sind noch die sogenannteMajor und Minor Device Number. Die Major Device Number verweist auf einen entsprechenden Treiberim System-Kernel. Sie wird anstelle der Adressen auf Datenblocke im Inode der Geratedatei gespeichert.

77

Page 78: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

Mehrere gleichartige Gerate werdenuber denselben Geratetreiber angesprochen und haben daher dieselbeMajor Device Number. Die genauere Unterscheidung liefert die Minor Device Number, die den Geratetrei-ber genauer beschreibt und somit zusatzliche Informationenuber die Hardware liefert.

9.1.5. Jokerzeichen und Platzhalter

Die sogenannten Jokerzeichen werden Sie im taglichen Umgang mit Dateien zumindest an der Konsoleimmer wieder benotigen. Wahrend das ? fur ein beliebiges Zeichen steht, ersetzt der * gleich eine ganze, be-liebige Zeichenkette. Grob betrachtet, entspricht dies den Wildcards unter Windows. Weitere Einschrankun-gen ermoglichen Ihnen die eckigen Klammern. Der Ausdruck [abcd]* steht somit fur Dateien, die mit a,b, c oder d beginnen. Den gleichen Effekt erzielen Sie durch [a-d]*. Durch ein vorangestelltes ! oderkannder Ausdruck negiert werden. Somit umfasst [!abc]* alle Dateien, deren Name nicht mit a, b oder c anfan-gen. Die Jokerzeichen konnen auch fur Verzeichnisse verwendet werden. So meint der Ausdruck*/*.texalle Dateien im Unterverzeichnis erster Ordnung des aktuellen Verzeichnisses, deren Name mit .tex endet.Weitere Platzhalter sind der ., der fur das aktuelle Verzeichnis, der .., der fur dasubergeordnete Verzeichnisund die, die fur das Heimatverzeichnis steht. So werden durch das Kommandocp projekt/*.c alle *.cDateien aus dem Verzeichnis projekt in das aktuelle Verzeichnis kopiert. Zunachst mag die Verwendungder Jokerzeichen recht einfach erscheinen. Durch eine Eigenart von Linux gestaltet sich dies jedoch unterUmstanden sehr schwierig. Fur die Interpretation der Wildcards ist die Shell zustandig. Dieseubergibt dieListe der passenden Datei- und Verzeichnisnamen dem vorangestellten Befehl. Diese Vorgehensweise bringtnicht selten Komplikationen mit sich, da die Parameterliste des Kommandos erst greift, wenn die Liste dergefundenen Dateien bereits fertig ist. Es ist also mit dem Befehlls -R *.tex nicht moglich, rekursiv alleUnterverzeichnisse nach*.tex Dateien zu durchsuchen.

Probieren Sie verschiedene dieser Wildcards am besten im Zusammenhang mit dem Befehl echo aus, dadieser das Ergebnis Ihrer Jokerzeichen nicht interpretiert, sondern nur ausgibt.

9.1.6. Versteckte Dateien

Alle Dateien, deren Name mit einem Punkt beginnt, gelten als versteckte Dateien. Deswegen berucksichtigt* nicht wirklich alle Dateien eines Verzeichnisses. Der Ausdruck.* bringt Sie auch nicht weiter, da hiermitzwar alle Dateien, aber auch das aktuelle und dasubergeordnete Verzeichnis mit allen darin enthaltenenDateien gemeint sind. Je nach zugehorigem Befehl konnen die Auswirkungen verheerend sein. Die Losungdieses Problems ist.[!.]*. Mit diesem Ausdruck werden alle Dateien angesprochen, die mit einem Punktbeginnen und mindestens ein weiteres Zeichen enthalten, das kein Punkt sein darf. Wollen Sie alle versteck-ten Dateien des aktuellen und der untergeordneten Verzeichnisse anzeigen, dann hilft Ihnen das Kommandols nicht weiter, da dessen Optionen ja erst nach dem Zusammenstellen der Dateiliste durch die Shell greifen.Zu empfehlen ist hier der Befehlfind . -name ’.*’, welcher aufgrund der Option name den nachfolgen-den Ausdruck auf den Dateinamen anwendet und wegen . das aktuelle Verzeichnis durchsucht.

9.1.7. Verzeichnisse

Im Linux-Dateisystem sind alle Verzeichnisse und damit samtliche Datentrager dem Verzeichnis / unterge-ordnet. Es gibt keine Laufwerke im herkommlichen Sinn, vielmehr werden deren Verzeichnisstrukturen indas Dateisystem von Linux eingehangt und erscheinen somit als eigenes Unterverzeichnis. Jedes Verzeich-nis enthalt von vorneherein zwei Verweise, einmal auf das aktuelle Verzeichnis (.) und auf dasubergeordneteVerzeichnis (..).

78

Page 79: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.2. Sicherheit

9.2. Sicherheit

In dieses Kapitel gehoren mehr Beispiele und Verweise auf die Kommandoreferenz.

9.2.1. Besitzverh altnisse und Zugriffsrechte

Linux steht in der Tradition von Unix und ist deshalb ein echtes Multi-User-System. Aus diesem Grundist es notwendig, strenge Regeln dafur vorzusehen, wer welche Rechte im System hat, damit eine Sicher-heit gewahrleistet werden kann. Diese umfasst sowohl den Schutz vor unberechtigtem Zugriff als auch vorBeschadigung durch Dritte. Wie bereits angesprochen, muss sich zunachst jeder Benutzer bei der Anmel-dung gegenuber dem System mit einem Namen und dem dazugehorigen Passwort ausweisen. Innerhalb desSystem gibt es aber noch weitergehende Regelungen, die auf Datei und Gerateebene ansetzen. Dazu wer-den zusammen mit jeder Datei bzw. mit jedem Verzeichnis folgende Informationen gespeichert. Einmal derBesitzer (owner) der Datei, die Gruppe, die der Datei zuzuordnen ist und weitere neun Zugriffsbits (r furlesen (read), w fur schreiben (write), x fur ausfuhren (execute)), jeweils drei fur den Besitzer, fur andereGruppenmitglieder und den Rest der Benutzer.

Es gibt also drei Arten von Zugriffsrechten, die bei Dateien und Verzeichnissen aber eine unterschiedlicheBedeutung haben konnen, wie in Tabelle9.4auf Seite79angegeben.

Recht Datei Verzeichnisr (read) Leserecht Der Inhalt der Datei darf gelesen

und kopiert werden.Der Inhalt des Verzeichnissesdarf gelistet werden.

w (write) Schrei-brecht

Der Inhalt der Datei darfverandert, d.h. erganzt odergeloscht, werden.

Der Inhalt eines Verzeichnissesdarf geandert werden, d.h. esdurfen Dateien oder Verzeich-nisse neu angelegt, umbenanntoder geloscht werden.

x (execute)Ausfuhrungsrecht

Die Datei kann als Befehl aus-gefuhrt werden.

Wenn das Ausfuhrungsrecht beieinem Verzeichnis gesetzt ist,bedeutet es, dass es moglich ist,in dieses Verzeichnis zu wech-seln.

Tabelle 9.4.:Rechte wie in ls -l angezeigt

Die Rechte an Dateien und Verzeichnissen werden beim Anlegen mit einer Standardvoreinstellung verge-ben. Der Besitzer kann anschließend die Rechte neu festlegen. Nur der Systemadministrator kann die Rechtevon Dateien und Verzeichnissenandern, die ihm nicht gehoren.

Rechte, die fur ein Verzeichnis gesetzt sind, haben immer eine hohere Prioritat als Rechte, die fur eineDatei in diesem Verzeichnis gesetzt sind. Ein Schreibrecht kann demnach nicht in Anspruch genommenwerden, wenn eines derubergeordneten Verzeichnisse nur ein Leserecht aufweist.

Diese Zugriffsrechte konnen den drei, in Tabelle9.5auf Seite80aufgefuhrten, Benutzergruppen zugeteiltwerden.

? Lassen Sie sich die Dateien eines Verzeichnisses durch den Befehl ls -l anzeigen.Das erste Bit beschreibt die Art der Datei, die aus Tabelle9.6auf Seite80ersichtlich wird.Anschließend folgen die Zugriffsbits. Die ersten drei stehen fur die Rechte des Besitzers, dann folgt die

Gruppe und zuletzt alle anderen Benutzer. Der Systemadministrator root darf naturlich alles. Dann folgt eine

79

Page 80: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

Bezeichnung Bedeutungu (user) Besitzerg (group) Gruppe, zu der die Datei, das Verzeichnis gehorto (other) Alle ubrigen Benutzer des Systems

Tabelle 9.5.:Benutzerabkurzungen

Kurzbezeichnung Dateitypd Directory, Verzeichnis- normale Dateib blockorientierte Geratedateic zeichenorientierte Geratedateil symbolic link

Tabelle 9.6.:Dateitypen

Ziffer, die angibt, wieviele Links auf diese Datei zeigen. Danach folgt der Name des Besitzers und der derGruppe. Außerdem zeigt ls auch die Große der Datei, deren letztesAnderungsdatum und ihren Dateinamenan.

Die Zugriffsrechte bei Verzeichnissen mussen entsprechend anders interpretiert werden. Lesen heißt hier,sich den Inhalt anzuschauen, Schreiben beinhaltet auch das Hineinkopieren oder Loschen von Dateien undAusfuhren bedeutet das Verzeichnis zuoffnen.Ahnlich verhalt es sich bei den Zugriffsrechten von Geratenim Verzeichnis/dev, worauf hier jedoch nicht naher eingegangen werden soll.

9.2.2. Zugriffsrechte setzen

Der Eigentumer oder root konnen mit dem Befehl chmod die Zugriffsrechte fur bestehende Dateien undVerzeichnisseandern.

chmod Rechte Datei(en) / Verzeichnis(se)

Dabei kennt das Kommando zwei Schreibweisen. Zum einen die Symboldarstellung, zum anderen die Ok-talzahldarstellung.

Bei der Symboldarstellung gibt es Parameter, wie in Tabelle9.7auf Seite80dargestellt.

Benutzerklasse Aktion Zugriffsrechtu (user, Besitzer) - Recht wegnehmen r (read, lesen)g (group, Gruppe) + Recht setzen w (write, schreiben)o (other,ubrige) = Recht absolut setzen x (execute, ausfuhren)a (all, alle)

Tabelle 9.7.:Symboldarstellung

80

Page 81: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.2. Sicherheit

Bei der Oktalzahldarstellung wird fur jede Benutzerklasse eine Ziffer zwischen 0 und 7 verwendet, diedie gewunschte Rechtekombination angibt, wie in Tabelle9.8auf Seite81.

Wert Rechte Erlauterung0 — keine Zugriffsrechte1 –x Ausfuhrungsrecht gesetzt2 -w- Schreibrecht gesetzt (weniger sinnvoll)3 -wx Schreib- und Ausfuhrungsrecht gesetzt (nicht sinnvoll)4 r– Leserecht gesetzt5 r-x Lese- und Ausfuhrungsrecht gesetzt6 rw- Lese- und Schreibrecht gesetzt7 rwx Lese-, Schreib- und Ausfuhrungsrecht gesetzt

Tabelle 9.8.:Oktalzahldarstellung

9.2.3. Zuweisung eines Besitzers oder einer Gruppe

Mit Hilfe des Befehls chown bzw. chgrp kann einer Datei bzw. einem Verzeichnis ein anderer Besitzer bzw.eine andere Gruppe zugeordnet werden.

chown [-R] neuerBesitzer Datei(en)/Verzeichnis(se)chgrp neueGruppe Datei(en)/Verzeichnis(se)

Als Anwender muss einem jedoch bei diesem Vorgang bewusst sein, dass man sich eine solche Datei nichtmehr zuruckholen kann. Daher ist es eventuell besser, nur eine Kopie weiterzugeben.

Mit der Schreibweisechown user:gruppe Datei(en)/Verzeichnis(se) kann einer Datei gleichzei-tig ein anderer Benutzer und eine neue Gruppe zugewiesen werden.

9.2.4. Verwaltung von Gruppen und Benutzern

In der Datei/etc/passwdwird eine Liste aller Benutzer gespeichert. Sie enthalt den Benutzernamen, dessenPasswort, die BenutzerID (UID), die GruppenID (GID), den aufuhrlichen Namen als Kommentar, das Hei-matverzeichnis und die Shell. Dabei ist das Passwort naturlich verschlusselt oder in die Datei/etc/shadowausgelagert. Hier ist wiederum der Name des Benutzers und dessen Passwort (bei * ist der login gespeert)abgelegt. Dann folgen Zahlen, die angeben, wann das Passwort das letzte Mal geandert wurde, wie lange esnoch gultig ist usw. Letztendlich mussen der GID noch Gruppennamen zugeordnet werden. Dies passiert inder Datei/etc/group. Am Anfang jeder Zeile steht der Gruppenname, dann folgt die GID und schließlichdie Namen der Benutzer, die zur Gruppe gehoren.

Hinweis

Befehle wie ls, die Informationen zu Dateien und Verzeichnissen anzeigen, lesen Benutzer- und Gruppen-namen aus den Dateien passwd und group aus und losen so die UID und GID auf. Wenn Sie beispielsweiseuber NFS Laufwerke fremder Rechner einbinden, achten Sie darauf, dass fur gleiche Benutzer und Grup-pen sowohl die UID, als auch die GID auf den verbundenen Systemenubereinstimmen. Ansonsten kannes zu erheblichen Problemen kommen. Um die Administrierbarkeit zu gewahrleisten, bietet sich in diesemZusammenhang der Dienst NIS an, der im Kapitel ”Netzwerk” beschrieben wird.

81

Page 82: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

9.2.5. Feste und symbolische Links

Links sind Verweise, mit denen Dateien oder Verzeichnisse angesprochen werden. Vorteilhaft ist, dass durchsolche Links, von verschiedenen Orten der Verzeichnisstruktur aus, auf ein- und dieselbe Datei zugegriffenwerden kann, ohne dass die Datei physikalisch mehrfach gespeichert werden muss. Unter Linux gibt es zweiverschiedene Arten von Links, die auf unterschiedliche Weise arbeiten. Zum einen die sogenannten Hard-links, auch feste Links genannt, zum anderen die Symbolic bzw. symbolische Links. Mit dem Kommandoln [-s] kann ein Link angelegt werden. Die Option -s wird verwendet, um einen symbolischen Link an-zulegen. Das Kommandols -li gibt Ihnen die Moglichkeit solche Links nachzuvollziehen. Dadurch wirddie I-Node und die Zahl der Links, die auf eine Datei zeigen, sichtbar.

! Erstellen Sie mit ln Dateiname Linkname einen festen Verweis auf eine Datei in Ihrem Homeverzeichnisund schauen Sie sich im nachhinein mit dem Kommando ls -li das Resultat an.

Hardlinks

Ein Hardlink ist ein zweiter Name fur eine Datei. Außer dem Namen gibt es dateisystemintern keinenUnterschied zwischen dem Link und dem Original. Beide Dateien verwenden dieselben Datenblocke undbesitzen dieselbe Inode-Nummer, d.h. sie werden unter derselben Nummer vom System verwaltet, worausfolgt, dass es sich um ein und dieselbe Datei handelt. Wird eine Datei geandert, so sind auch samtliche Linksvon dieserAnderung betroffen. Hardlinks konnen anhand des Linkcounters, der bei der Ausgabe des Befehlls -l hinter dem Rechteblock steht, identifiziert werden. Wird die Datei geloscht, so wird zunachst nurder entsprechende Link geloscht. Erst wenn der letzte Link entfernt wird, wird der Inode freigegeben unddie Datei somit geloscht. Ein Nachteil von Hardlinks ist, dass diese nicht partitionsubergreifend verwendetwerden konnen, da Inode - Nummern nur innerhalb einer Partition eindeutig sind. Auch ist es nicht moglich,Hardlinks fur Verzeichnisse zu verwenden.

Symbolic Links

Symbolische Links kennen die Beschrankung auf die Partition und auf Dateien nicht, da sie intern andersfunktionieren. Ein symbolischer Link ist selbst wieder eine Datei mit der Typbezeichnung l. Diese weisteigene Datenblocke und somit auch eine eigene Inode - Nummer auf. In den Datenblocken ist jedoch nurein Verweis in Form eines Pfadnamens auf die Originaldatei abgelegt. Wird diese geloscht, fuhrt der Linkins Leere. Symbolische Links erstellen Sie ebenfalls mit dem Befehl ln erweitert durch die Option -s. ImGegensatz zu festen konnen symbolische Links auch auf Verzeichnisse und Dateien anderer Laufwerke ver-weisen. Das Loschen der Ursprungsdateiandert zwar den Link selbst nicht, jedoch verweist der Link dannauf eine nicht mehr existierende Datei. Benutzen Sie symbolische Links beispielsweise um die Hierarchieder Verzeichnisstruktur abzuflachen und so eine Menge Tipperei an der Konsole zu sparen.

! Erstellen Sie einen symbolischen Link zu einer beliebigen Datei und sehen Sie sich das Resultat an.Den Unterschied zwischen Hard- und Softlinks finden Sie in Tabelle9.9auf Seite83.Der Vorteil der symbolischen Links besteht in ihrer einfachen Handhabung, wahrend feste Links Spei-

cherplatz sparen und wesentlich schneller arbeiten.

9.2.6. Links auf Programme

Es kommt unter Linux relativ haufig vor, dass mehrere oft unterschiedliche Befehle auf ein- und dassel-be Programm verweisen, aber dennoch sehr unterschiedlich auf die Eingabe des Benutzers reagieren. DieAuflosung ist einfach und dennochuberraschend. Bei der Erstellung des Befehls wurden Mechanismen ein-gebaut, dieuberprufen durch welchen Aufruf das Programm gestartet wurde und wie es auf den Befehl zureagieren hat. Ein Beispiel findet sich in den mtools, die Kommandos wie mattrib und mcd enthalten.

82

Page 83: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.3. Partitionen und Dateisysteme

Vergleich Hardlink Symbolischer LinkAuf Partition beschrankt ja neinInode - Nummer wie Originaldatei eigene Inode - NummerLinkcounter wird heraufgesetzt ja neinOriginaldatei nicht mehr erkennbar bleibt erkennbarQuelldatei muss existieren ja nein (Verweis ins Leere)Linkfile darf nicht existieren ja jaBelegung eigener Datenblocke nein ja (Block enthalt Pfadan-

gabe)Zugriffsrechte wie Originaldatei ja ja (nominell alle Rechte)Anwendbarkeit nur auf Dateien auf Dateien und Verzeich-

nisseBedeutung anderer Name, gleiche

Dateieigene Datei mit Pfadan-gabe zum Ziel

Loschen der Originaldatei Originaldatei wird erstgeloscht, wenn der letzteHardlink auf diese Dateigeloscht wird.

Originaldatei kanngeloscht werden, wobeider Symbolische Linkdann ins Leere zeigt.

Vorteil sehr performant, spartSpeicherplatz

einfache Handhabung

Tabelle 9.9.:Vergleich von Soft- und Hardlinks

9.3. Partitionen und Dateisysteme

Der Dateibaum unter Linux stellt die logische Ordnung der Dateien dar. Mit der tatsachlichen Organisationder Daten auf der Festplatte hat dieser Verzeichnisbaum aber nicht viel zu tun. Die physikalische Organi-sation der Daten erfolgt in den sogenannten Dateisystemen, einer Art Verwaltungsstruktur jeder Partition.Das Dateisystem ermoglicht den Zugriff auf die Dateien anhand des Dateinamens. Die Kommandos desBetriebssystems werden dann in entsprechende Lese- oder Schreibbefehle auf der Festplatte umgesetzt. So-mit ist das Dateisystem fur den Anwender transparent, da er nuruber die Befehlsschnittstelle mit diesemkommuniziert. Ein Teil der Kennzeichen eines Dateisystems, wie die Lange von Dateinamen, maximaleDateianzahl in einem Verzeichnis usw., konnen fur einen Benutzer sichtbar sein. Andere Eigenschaften,beispielsweise die interne Verwaltungsstruktur des Dateisystems, die Art wie Daten gespeichert werdenetc., bleiben hingegen im Hintergrund verborgen. Der Zugriff auf die verschiedenen Dateisysteme wirduber Treiber realisiert, die sich im Kernel des Betriebssystems befinden mussen.

9.3.1. Zugriff auf mehrere Festplatten und Partitionen

Unter Linux sind alle Laufwerke, deren Partitionen und Daten in einem Dateisystem vereint. Der Verzeich-nisbaum anderer Datentrager wird in das Linux-Dateisystem eingehangt, man sagt gemountet. Der typischeAnwender merkt also gar nicht, dass seine Daten auf mehrere Festplatten verteilt sind. An welcher Stellewelches Laufwerk eingebunden wird und einige weitere Parameter, steuert die Datei/etc/fstab. Mit demBefehldf konnen Sie die derzeitig eingehangten Laufwerke betrachten. Wenn Sie weitere Datentrager indie Verzeichnisstruktur einhangen wollen, konnen Sie dies mit dem Befehlmount umsetzen. Vergessen Siejedoch nicht das Laufwerk mitumount wieder auszuhangen, bevor Sie den Datentrager wechseln. Der Be-

83

Page 84: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

fehl mount liest zunachst die am Prompt mitgegebenen Parameter und vervollstandigt diese gegebenenfallsmit Eintragen aus der Datei/etc/fstab. Ein Befehlsstring fur mount konnte folgendermaßen aussehen:

mount -r -t msdos /dev/hda1 /dosc

Achten Sie darauf, dass das Verzeichnis/dosc angelegt ist. Wenn nicht erstellen Sie mitmkdir ein Ver-zeichnis mit diesem Namen. Sollten bereits Daten in diesem Verzeichnis abgelegt worden sein, so werdendiese, solange das andere Medium gemountet ist, ausgeblendet.

9.3.2. Zugriff auf CD-ROM Laufwerke

Diese Laufwerke werden im Prinzip genauso verwaltet, wie Festplatten. Naturlich ergibt sich, aufgrundder Medienwechsel, ein haufigeres mounten und unmounten. Außerdem bringt die CD ein eigenes Formatnamens iso9660 mit. Um eine CD manuell in das Dateisystem einzubinden, ist folgender Befehlsstringvonnoten:

mount -t iso9660 -o ro /dev/hdc /cdrom

Achten Sie auch hier wieder darauf, dass das Verzeichnis/cdrom besteht. Die Option ro ist bei einerCDROM zwar klar, beim Mounten muss diese jedoch angegeben werden, damit keine Fehlermeldung er-scheint.

9.3.3. Zugriff auf Diskettenlaufwerke

Der Zugriff auf Diskettenlaufwerke erfolgt auf dieselbe Art und Weise. Der Befehlsstring lautet hier leichtabgewandelt:

mount -t auto -o ro /dev/fd0 /floppy

Mit den Befehlen der mtools konnen Sie hingegen auch ohne die umstandlich Prozedur des Mountens aufeine Diskette zugreifen.

9.4. Dateisystemtypen

Wie vielleicht schon deutlich geworden ist, beherrscht Linux eine Menge von Dateisystemen, genaugenom-men werden Sie kaum ein Betriebssystem finden, dass problemlos mit einer solchen Unzahl an Dateisyste-men zurecht kommt.

ext2 Das derzeitubliche Dateisystem unter Linux heißt ext2. Es unterstutzt Dateinamen mit bis zu 255Zeichen, Dateien bis zu 2 GByte Große und kann Datentrager mit bis zu 4 TByte verwalten. Der Codeder diesem Dateisystem zu Grunde liegt, ist sehr ausgereift, sehr zuverlassig und auch performant.

reiserfs Dieses Dateisystem ist noch relativ neu und bietet gegenuber ext2 eine Journaling-Option, diees ermoglicht, das Dateisystem nach einem Rechnerabsturz sehr schnell wiederherzustellen. Dafurarbeitet es nicht so performant, weil standig mitprotokolliert wird, auf welche Inodes zugegriffenwurde.

minix Das Dateisystem minix war Grundlage der ersten Versuche in der Linux-Welt. Da es jedoch erheblichleistungsschwacher und zudem nicht frei kopierbar ist, hat es heute nur noch eine geringe Bedeutungfur Linux.

msdos Dies ermoglicht den Zugriff auf alte DOS bzw. Windows Partitionen.

84

Page 85: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.4. Dateisystemtypen

sysd / bsd Diese Dateisysteme ruhren von anderen Unix Derivaten her.

ufs Das Unix File System ist das Standarddateisystem unter Sun Solaris 2.x. Es beruht auf dem BerkeleyFat Fast File System.

vfat Linux kann mit Hilfe von vfat auch auf Partitionen von Windows 9x zugreifen. Die langen Dateinamenbleiben dabei erhalten.

ntfs Das Dateisystem von Windows NT kann bis heute nur gelesen werden. Der Schreibzugriff ist nochim Experimentalstadium und sollte auf keinen Fall vor einem Backup der Windows NT Partitionangewendet werden.

hpfs Der Zugriff auf OS/2 Partitionen ist sowohl im Lese- als auch im Schreibmodus moglich.

hsfs / iso9660 Uber die Einbindung des High Sierra File Systems, dem die Norm iso9660 zugrunde liegt,haben Sie Zugriff auf nahezu alle CD-ROMs.

udf Das neue Dateisystem fur CD-ROMs und DVDs wird erst ab Kernelversion 2.4n unterstutzt. Fur denKernel 2.2n gibt es jedoch Patches.

nsf Das Network File System ist die unter Unix gebrauchliche Variante, Laufwerke anderer Unix-Rechneruber das Netzwerk einzubinden. Solche verteilte Dateisysteme werden durch die Strukturierung inNFS-Server und -Clients umgesetzt.

ncp Das Netware Core Protocol ist die Novell Variante des eben beschriebenen nfs.

smbfs Das Server Message Buffer File System ist das Netzwerk-Dateisystem von Microsoft. Der Zugriffauf shares einer Linux Umgebung ausgehend von Windows Clients erfolgtuber die Bereitstellungdieses Dateisystems.

tmpfs Das Temporary File System imitiert eine Festplatte im Hauptspeicher und ist das Standarddateisys-tem fur das Verzeichnis /tmp. Es nutzt auch die Swap-Bereiche als temporaren Speicher.

swapfs Der Kernel benutzt den Swap-Bereich der Festplatte aufgrund der Implementierung des Swap FileSystems.

9.4.1. Ein- und Aush angen von Dateisystemen

Jedes Dateisystem befindet sich auf einem physikalischen Gerat, beispielsweise auf einer Diskette, einerCD-ROM, einer Partition einer Festplatte usw. Wenn Linux startet, wird automatisch das Dateisystem, aufdem sich das Betriebssystem befindet, verwendet. Sollen weitere Dateisysteme in die Verzeichnisstruktureingebunden werden, so werden diese mit dem Befehl mount, der in der Regel nur von root ausgefuhrtwerden darf, eingehangt.

mount [-a -t <Typ> -v -f -w -r -o <Liste> -h] Geratedatei Mountpoint

Die Parameter dieses Befehls finden Sie in Tabelle9.10auf Seite86.Die Geratedatei gibt wiederum den Namen des gewunschten Gerates an. Der Mountpoint ist ein bereits

vorhandenes Verzeichnis im Dateibaum von Linux. Dabei ist zu berucksichtigen, dass der Inhalt eines bereitsverwendeten Verzeichnisses nicht mehr sichtbar ist, wenn hierauf ein weiteres Dateisystem gemountet wird.Deshalb ist es empfehlenswert ein leeres Verzeichnis fur den Mount-Vorgang zu verwenden, das zudemeinen sprechenden Namen hat.

Folgende Voraussetzungen mussen also erfullt sein, damit das Mounten erfolgen kann.

85

Page 86: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

Option Beschreibung-a mountet automatisch alle Dateisysteme, die in /etc/fstab eingetragen

sind-t Typ gibt den Dateisystemtyp an, in Kombination mit der Option -a kann er-

reicht werden, dass nur die Dateisysteme aus /etc/fstab mit dem angege-benen Dateisystemtyp gemountet werden

-v gibt wahrend der Durchfuhrung Meldungen aus-f imitiert den Mount-Vorgang und informiert in Kombination mit der Op-

tion -v den Benutzer, was beim Mounten passieren wurde-w erlaubt einen Schreibzugriff auf das gemountete System-r erlaubt nur einen Lesezugriff auf das gemountete System-o Liste enthalt Einstellungen fur die vierte Spalte der /etc/fstab-h gibt einen Hilfetext aus

Tabelle 9.10.:Dateisysteme - Parameter

• Das zu mountende Gerat muss ein bekanntes Dateisystem aufweisen.

• Der Mountpoint muss als Verzeichnis bereits angelegt sein.

• Das aktuelle Verzeichnis darf nicht der Mountpoint sein.

• Der Mount-Vorgang wird vom Superuser ausgefuhrt.

Das Aushangen von Dateisystemen wird mit dem Befehlumount durchgefuhrt. Die Syntax lautet, wie folgt.

umount [-t <Typ> -a] Geratedatei

oder

umount [-t <Typ> -a] mountpoint

Die Parameter finden Sie in Tabelle9.11auf Seite86.

Option Beschreibung-t Typ hangt alle Dateisysteme vom angegebenen Typ ab-a hangt alle Dateisysteme ab

Tabelle 9.11.:Umount - Parameter

Linux verwendet fur das Mounten zwei Systemdateien, auf die im folgenden naher eingegangen wird.

9.4.2. Datei /etc/fstab

Die Datei/etc/fstab enthalt eine Liste von Dateisystemen, die beim Systemstart in der Regel automatischgemountet werden sollen. Sie ist wie unten abgebildet aufgebaut.

Die Datei enthalt folgende Angaben.

86

Page 87: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.4. Dateisystemtypen

• den Namen der Geratedatei

• den mountpoint

• den Dateisystemtyp

• die Mount - Optionen

• einen Hinweis fur das Programm dump, welches Dateisystem gesichert werden soll

• einen Hinweis fur das Programm fsck, in welcher Reihenfolge die Dateisysteme gepruft werden sollen

Die vierte Spalte enthalt diverse Mount - Optionen, wobei die Argumente aus Tabelle9.12 auf Seite87zulassig sind.

Argument Beschreibungasync asynchroner, gepufferter Zugriff auf das Dateisystematime andern des Datums der letzten Benutzung einer Datei bei Zugriff auf die

Dateiauto automatisches Mounten mit der Option -a moglichdefaults benutzen der Standardeinstellungen (rw, suid, dev, exec, auto, nouser,

async)dev steht fur zeichen- und blockorientierte Geratedateienexec ermoglicht die Ausfuhrung von binaren Dateiennoatime keine Datumsaktualisierung der letzten Benutzung von Dateiennoauto kein automatisches Mounten mit der Option -a moglichnosuid s-Bit hat keine Wirkungnouser normale Benutzer durfen dieses Dateisystem nicht mountenremount erneutes Mounten eines bereits eingehangten Dateisystems moglichro erlaubt nur Lesezugriffrw erlaubt Schreib- und Lesezugriffsuid s-Bit kann verwendet werdensync nur synchrone, ungepufferte Zugiffe auf das Dateisystemuser erlaubt es einem beliebigen Benutzer, dieses Dateisystem zu mounten

Tabelle 9.12.:fstab - die Parameter

Ein manueller Mount-Vorgang erzeugt also nur ein zeitlich begrenztes Einhangen des Dateisystems, daes beim nachsten Systemstart nicht automatisch wieder gemountet wird. Durch entsprechendeAnderungenin der Datei/etc/fstab kann jedoch bewirkt werden, dass das Einbinden ab dem nachsten Mal von selbsterfolgt. Achten Sie beim Editieren auf die vom System vorgegebenen Spalten, da eine Veranderung zuunschonen Problemen fuhren kann. Denken Sie auch an den Zeilenumbruch nach der letzten Zeile, damit dieDatei fur das System lesbar bleibt. Ist ein zu mountendes Dateisystem in der Datei/etc/fstab eingetragen,kann das Kommando mount verkurzt eingegeben werden, da die benotigten Informationen aus dieser Dateiausgelesen werden.

87

Page 88: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

9.4.3. Datei /etc/mtab

Die Datei/etc/mtab enthalt hingegen alle im Moment gemounteten Dateisysteme. Mit dem Befehl mountwird ein Eintrag in diese Tabelle erzeugt. Beim Herunterfahren verwendet Linux diese Tabelle, um alleDateisysteme wieder sauber auszuhangen.

Die Datei/etc/mtab kann beispielsweise so aussehen.

9.5. Interna des Dateisystems ext2

In diesem Abschnitt soll Ihnen Hintergrundwissen zur internen Verwaltung des Linux-Dateisystems ext2vermittelt werden. Das Dateisystem ext2 bietet folgende Features:

• Verwendung von Inodes zur Verwaltung der Daten.

• Partitionen durfen bis zu 16GByte groß sein, demnachst sollen bis zu 4TByte realisiert sein.

• Dateien konnen bis zu 2GByte groß sein.

• wichtige systemrelevante Daten werden sofort synchronisiert, also direkt nach derAnderung auf dieFestplatte geschrieben und nicht wieublich in einen Zwischenpuffer gestellt.

• Ein Teil des Dateisystems ist fur den Superuser reserviert.

9.5.1. Aufbau des ext2-Dateisystems

Zunachst wird der Speicherplatz des Datentragers in Blocke unterteilt, wobei jeder Block eine Nummerzugewiesen bekommt. Die Blockgroße betragtublicherweise 1024 Byte. Anschließend werden diese Blockein sechs Gruppen geteilt, die zur Speicherung verschiedener Datentypen vorgesehen sind. Die beiden erstenGruppen bestehen jeweils nur aus einem Block. Alle anderen nehmen je nach Partition und Inodedichtesehr viel mehr Speicherplatz ein. Die erste Gruppe ist der sogenannte Bootblock, der ein kleines Programmzum Starten des Betriebssystems enthalt. Der Superblock, die zweite Gruppe, gibt an, wie groß die vierweiteren Gruppen sind. Er enthalt die Anzahl der vorhandenen logischen Datenblocke (allocation units),den Namen des Datentragers, die maximal mogliche Anzahl von Dateien usw., und beschreibt auf dieseWeise das Dateisystem genauer. Die dritte Gruppe, das sogenannte I-Node-Bitmap, besteht aus einzelnenBits, wobei jedes einzelne Bit angibt, ob der zugehorige I-Node Block frei oder belegt ist.Ahnliches giltfur die vierte Gruppe, das Daten-Bitmap, das angibt welche Blocke fur Daten frei bzw. belegt sind. Diefunfte Gruppe schließlich ist der Speicherplatz fur die I-Nodes, wobei pro Block acht I-Nodes abgelegtwerden konnen. Der Speicherplatz fur Daten findet sich letztendlich in der sechsten Gruppe, die auch diegroßte Gruppe darstellt, da in ihr, neben einigen wenigen Verzeichnisinformationen und Querverweisen,der tatsachliche Inhalt der Dateien gespeichert wird. Wahrend die Gruppen eins bis funf ausschließlichVerwaltungsinformationen enthalten.

9.5.2. Dateien und Verzeichnisse

Im Dateisystem ext2 besteht jede Datei und jedes Verzeichnis aus zwei Bestandteilen. Zum einen den Da-tenblocken, zum anderen dem Inode, der alle Informationen außer den Dateinamen enthalt.

88

Page 89: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9.6. Interna anderer Dateisysteme

9.5.3. I-Nodes (Informationsknoten)

In den I-Nodes werden in 128 Bytes alle Verwaltungsinformationen gespeichert. Dazu gehoren:

• der Dateityp

• die Datei- bzw. Verzeichnisgroße

• die Zugriffsrechte

• die Benutzer- (UID) und die Gruppen-ID (GID)

• die Anzahl der Links auf den Inode

• den Zeitpunkt der Erstellung, der letztenAnderung und des letzten Lesezugriffs

• einen Verweis auf die ersten zwolf Datenblocke der Datei

Letztendlich werden alle Informationen mit Ausnahme des Dateinamens gespeichert.Ein Inode enthalt also die Informationen, welche Datenblocke zu welcher Datei gehoren. Ein Datenblock

ist standardmaßig acht KByte groß, kann aber beim Einrichten des Dateisystems auch eine andere Großezugewiesen bekommen. Ein Inode besteht aus funfzehn Adressen, von denen zwolf direkt und drei indirektauf Datenblocke verweisen. Kleine Dateien haben dadurch direkt Zugriff auf die Datenblocke. Die dreizehn-te Adresse verweist auf einen sogenannten einfach indirekten Block, der weitere 126 Adressen beinhaltet.Einschließlich der zwolf direkten Datenblocke, ergeben sich also 138 Datenblocke, die die Datei belegenkann. Sollte dies immer noch nicht ausreichen, so verweist die vierzehnte Adresse auf einen doppelt indi-rekten Block, der wiederum auf 126 Adressen zeigt, die wiederum auf einfach indirekte Blocke verweisen.Schließlich zeigt die funfzehnte Adresse auf einen dreifach indirekten Block.

9.6. Interna anderer Dateisysteme

Ubungen

1. Welche Zugriffsrechte gibt es?

2. Welche Benutzergruppen gibt es?

3. Legen Sie eine leere Datei in Ihrem Homeverzeichniss an und geben Sie dem Besitzer alle, der GruppeSchreib- und Leserechte, und nehmen Sie denubrigen Benutzern alle Rechte.

4. Ubergeben Sie die neu angelegte Datei einem anderen Benutzer.

5. Andern Sie die Rechte auf Ihr Homeverzeichnis so ab, dass jeder zumindest das Leserecht darauf hat.

6. Legen Sie zwei Hardlinks auf die gerade erstellte Datei an und lassen Sie sich den Linkcounter anzeigen.

7. Legen Sie auch einen symbolischen Link auf diese Datei an.

8. Woran ist erkenntlich, ob ein Gerat block- oder zeichenorientiert arbeitet? Wie ermittelt man die Major-und Minor Device Number und was sagen diese aus?

9. In welchem Verzeichnis befinden sich Linux - Befehle, die von jedem Benutzer ausgefuhrt werdendurfen, in welchem die Befehle, die nur privilegierten Benutzern zur Verfugung stehen?

89

Page 90: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

9. Dateisystem

10. Welches Verzeichnis enthalt die Geratetreiber?

11. Nennen Sie funf verschiedene Dateisysteme, deren Ursprung bzw. Besonderheit.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

90

Page 91: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

10. Softwareinstallation

Die Kurze des folgenden Abschnitts darf nichtuber die unbestrittene Wichtigkeit, der Installation weite-rer Programmpakete hinwegtauschen. Dabei kann zwischen drei grundsatzlich unterschiedlichen Verfah-ren unterschieden werden. Unter Linux kann nachzuinstallierende Software im rpm-Format, als gepackteBinardateien und als, oftmals ebenfalls gepackter, Quellcode vorliegen.

Lernziele

In diesem Kapitel lernen Sie,

• distributionseigene Pakete nachzuinstallieren,

• zweites Lernziel,

• drittes Lernziel.

10.1. RPMs

RPMs konnen Sie sehr einfach mit YaST installieren. Dazu wahlen Sie im Hauptmenu von YaST Paket-verwaltung, und dann “Pakete einspielen”. Im folgenden Bildschirm betatigen Sie RETURN, um den Ortauswahlen zu konnen, an dem sich Ihre RPM - Pakete befinden. Wenn Sie hier “Verzeichnis” wahlen, konnenSie den Pfad zu diesen Paketen angeben...

Sobald das System in dem von Ihnen angegebenen Pfad RPM - Pakete findet, konnen Sie diese mit denPfeiltasten anwahlen und installieren.

10.2. TAR.GZs

10.2.1. Kompilierte Pakete

Im Internet finden Sie oft Softwarepakete in Form von tar.gz-Dateien. Dabei handelt es sich um gepackteArchive, vergleichbar mit zip-Dateien. Diese Archive mussen Sie entpacken, bevor Sie die enthaltenen Pro-gramme verwenden konnen. Achten Sie darauf, dass sich das Archiv in einem eigenen Verzeichnis befindet,da man nie weiß, ob ein neues fur die entpackten Dateien angelegt wird. Mit

tar -xzf archiv.tar.gz

oder

tar -xvzf archiv.tar.gz

entpacken Sie das Archiv, wobeitar durch-v etwas gesprachiger wird und ausgibt, welche Dateiengerade entpackt werden.

91

Page 92: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

10. Softwareinstallation

10.2.2. Quellcode Pakete

Oftmals finden Sie im Internet keine bereits fur Ihre Distribution kompilierten Softwarepakete. Statt dessenwerden Sieuberall auftar.gz-Archive mit Sourcecode stossen. Dies ist kein Grund zur Sorge, sofern Sieeine aktuelle Distribution verwenden, treten beim eigenen Kompilieren der Quellen kaum Probleme auf.Bei Softwarepaketen, die sich in einem auslieferungsfahigen Zustand befindet, finden Sie fur gewohnlichdie beiden DateienREADME undINSTALL, die Sie bei der Konfiguration, Kompilation und Installation derSoftware unterstutzen sollten.

Die nachfolgend beschriebene Methode gilt jedoch in den meisten Fallen und ist bei fehlender Dokumen-tation einen Versuch wert.

• Entpacken Sie bitte zuerst die Quellen aus dem tar.gz-Archiv in ein Arbeitsverzeichnis wie in?? aufSeite??beschrieben.

• Als nachstes erfolgt die Anpassung der Software an die jeweilige Platform und das Betriebssystem.Es wird unter anderem festgestellt, welchen Compiler Sie verwenden und wo die Bibliotheken in IhrerDistribution liegen. Dazu dient bei den meisten Paketen das mitgelieferte Skript./configure.

Sie konnen dem Skript auch meistens noch weitere Parameterubergeben, wie zum Beispiel mit--prefix [Verzeichnis] das Zielverzeichnis fur die Installation. Eine genaue Beschreibung derParameter entnehmen Sie bitte der Ausgabe von./configure --help.

Falls bei der Ausfuhrung von./configure eine zwingende Voraussetzung nicht erfullt wird, werdenSie darauf hingewiesen. Beim Aufruf von./configure werden sogenannte Makefiles erstellt, diegenau auf Ihr System zugeschnitten sind.

• Mit Hilfe der Makefiles ist es moglich, dass Sie Ihre Software mit dem Befehlmake compilie-ren konnen. Falls die Umwandlung erfolgreich durchlaufen wurde, kann die fertige Software mitmake install an Ihr Zielverzeichnis kopiert werden.

• Nachdem die Software installiert ist, konnen Sie diese sofort verwenden.

Achtung

Die oben beschriebene Vorgehensweise reicht zwar fur die meisten Falle aus, kann aber auch von Softwarezu Software unterschiedlich sein. Lesen Sie in jdem Fall die DateienREADME undINSTALL, in denen sichgenauere Anweisungen verbergen!

Sie sollten außerdem darauf achten, dass Sie die Softwarepakete aus aus vertrauenswurdigen Quellenbeziehen. Die Moglichkeiten korrumpierter Pakete reichen aufgrund des als root durchgefuhrten Installati-onsvorgangs vom Ausspionieren von Daten bis hin zur volligen Zerstorung des Systems!

Ubungen

1. Installieren Sie die RPM-Pakete enlightenment, mozilla und gkrellm nach.

2. Laden Sie die neueste Version der Blackbox im Sourcecode aus dem Internet herunter und installierenSie diesen Windowmanager auf Ihrem Computer.

3. Laden Sie die aktuelle Version des Administrationstools webmin aus dem Internetwww.webmin.comherunter und fuhren Sie die Installation durch.

92

Page 93: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

10.2. TAR.GZs

Zusammenfassung

Nach der Lekture dieses Abschnittes konnen Sie selbstandig Software nachinstallieren.

93

Page 94: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

10. Softwareinstallation

94

Page 95: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Teil II.

Linux fur Administratoren- Einsatz auf dem Server -

95

Page 96: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 97: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11. Bootkonzept und -manager

Auch dieses Kapitel unterteilt sich in zwei wesentliche Abschnitte. Zunachst soll Ihnen das Bootkonzept,auch System-V-Init-Prozess genannt, vorgestellt werden. Dazu gehort im wesentlichen ein Einblick in dieAblaufe beim Systemstart und die Erlauterung der distributionsspezifischen Details. Im zweiten Teil wirdder Bootloader LILO thematisiert und dessen Konfiguration erklart.Noch eine Warnung vorne weg: Auch in diesem Kapitel wird tief in das System eingegriffen. NehmenSie Anderungen an den Konfigurationsdateien nur vor, wenn Sie wissen was Sie tun. Fur den Fall, dasssich Linux nicht mehr booten lasst, sollten Sie eine Bootdiskette mit einem Editor bereithalten, um imErnstfall die root Partition von Hand zu mounten und die vorgenommenenAnderungen ruckgangig machenzu konnen.

Lernziele

In diesem Kapitel lernen Sie,

• grundlegendesuber den Bootvorgang des Rechners,

• den Bootmanager LILO kennen,

• die Bedeutung des Kernels beim Booten einzuschatzen,

• den Ablauf des System V Init Starts zu verstehen,

• das Runlevelkonzept kennen.

11.1. Bootvorgang

Bevor auf einzelne Begriffe naher eingegangen wird, soll Ihnen ein groberUberblick uber die Vorgangebeim Hochfahren des Systems, vom Einschalten bis zum Login, gegeben werden.

11.1.1. BIOS

Beim Einschalten des Systems springt der Rechner an den Adressbereich 0xFFFFFF0, der generell immerdann angesprungen wird, wenn ein RESET ausgefuhrt wird. An dieser Adresse befindet sich das sogenannteBIOS (Basic Input/Output System), eine Software, die sich auf einem Baustein der Hauptplatine Ihres Com-puters befindet. Ihre Aufgabe sind unter anderem die so genannten Power-On-Self-Tests, kurz POSTs. Eswird gepruft welche Hardwarekomponenten aktiv und angeschaltet sind. Anschließend werden Bildschirmund Tastatur initialisiert und der Arbeitsspeicher getestet. Nachdem die grundlegenden Komponenten desSystems dem BIOS bekannt sind, werden Informationenuber die wichtigsten Peripherie-Gerate aus demCMOS ausgelesen. Dazu gehort beispielsweise auch die Geometrie der Massenspeicher.

Bis zu diesem Zeitpunkt ist das Booten des Systems vollig unabhangig vom installierten Betriebssystemund die Hardware steht nuruber die vom BIOS zur Verfugung gestellten Routinen zur Verfugung.

97

Page 98: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11. Bootkonzept und -manager

11.1.2. CMOS

Im CMOS des Computers wird unter anderem eine Liste der Bootmedien verwaltet. Es werden nun der Reihenach die ersten Sektoren dieser Medien nach dem sogenannten Bootblock durchsucht. Dieser zeichnet sichdurch einen Wert aus: An Adresse 0x1fe muss der Wert 0xaa55 eingetragen sein. Sie konnen dasuberprufendurch Eingabe vonhexdump -n 512 /dev/hda.

11.1.3. MBR

Bei einem Desktop PC befindet sich der Bootblock meistens auf der ersten IDE Festplatte. Ihr erster Sektorwird auch als MBR oder Master Boot Record bezeichnet. Auch die einzelnen Partitionen der Festplattebesitzen in ihren ersten Sektoren jeweils Bootsektoren. In diesen legen die Betriebssysteme, die auf diesenPartitionen installiert wurden ihre Bootprogramme ab.

Der MBR wird sofort in den Speicher an Adresse 0000:7C00 kopiert und ausgefuhrt. Dieser Programm-code heißt Bootprogrammcode:

Bootprogrammcode

Das Bootprogramm kopiert sich sofort selbst an Stelle 0000:0600 und fahrt dort mit der Ausfuhrung fort.Hier beginnt nun spezifischer Code der verschiedenen Bootmanager. Dazu stehen dem Programm insge-sammt 446 Bytes zur Verfugung. Im Anschluss daran befindet sich die Partitionstabelle:

Partitionstabelle

Der Bereich der Partitionstabelle beginnt ab der Adresse 0000:07BE im Speicher, im MBR im ersten Sektorder Festplatte am Offset 01BE. Die Partitionstabelle selber besteht aus vier Eintragen von jeweils 16 ByteLange. Jeder dieser Eintrage ist aufgeteilt wie in Tabelle11.1auf Seite98 angegeben. Die Grafik11.1aufSeite99 zeigt ein Beispiel fur eine Partitionstabelle. Hier ist eine Primare FAT32 Partition, eine erweitertePartition, eine Linuxpartition und eine Linux-Swappartition eingetragen.

Bytes Bedeutung00 Aktivbit01-03 Start-CHS04 Partitionstyp05-07 End-CHS08-0B Start LBA0C-0F End LBA

Tabelle 11.1.:Struktur eines Eintrags in der Partitionstabelle

Wie Sie sicher bereits bemerkt haben, gibt es in der Partitionstabelle 4 Eintrage von jeweils 16 ByteLange. Viele Systeme haben jedoch mehr als 4 Partitionen - Wie kann das funktionieren?

Die Losung besteht darin, dass weitere Partitionen ermoglicht werden durch eine einseitig verknupfteListe von weiteren Partitionen. In der Praxis heisst das, dass es einen Partitionstyp gibt (im oberen Beispieldie sogenannte “Erweiterte Partition”, also Typ 0Fh), der als Platzhalter fur mehrere andere Partitionen dient.Dabei verweist die Startadresse der “Platzhalterpartition” auf den Anfang der ersten “Tochterpartition”, diewieder auf den Anfang der nachsten “Tochterpartition” verweist, und so weiter.

98

Page 99: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11.1. Bootvorgang

Adresse 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F00001BE 80 01 01 00 0B FE BF 7C 3F 00 00 00 FE 25 9c 0000001CE 00 00 81 7D 0F FE FF FF 3D 26 9C 00 9F 2A 2E 0800001DE 00 00 C1 FF 83 FE FF FF DC 50 CA 08 4E 01 B0 0000001EE 00 00 C1 FF 82 FE FF FF 2A 52 7A 09 C2 2D 10 00

AK CHSStart ID CHSEnde LBA Adresse LBA Lange

Abbildung 11.1.:Beispiel fur eine Partitionstabelle

Die genauen Details der Partitionstabelle seien hier ausgeklammert, da die Partitionstabelle gut von gra-fischen Tools verwaltet werden kann. Fur interessierte Anwender sei hier auf das Linuxprogrammfdiskhingewiesen, mit dessen Hilfe Sie die Details der Partitionstabelle editieren konnen.

Linux geht mit Erweiterten Partitionen erheblich freizugiger um als Windows. Sie sollten neue LogischeLinuxpartitionen immmer direkt an den Anfang des freien Speichers innerhalb der Erweiterten Partitionschreiben, damit Windowsprogramme wie “Partition Magic” nicht durcheinander kommen - vorausgesetzt,Sie verwenden solche! Wenn Sie die Partitionstabelle von Hand bearbeiten, konnen Sie Ihren komplettenFestplatteninhalt zerstoren. Abhilfe kann in diesem Fall nur noch eine BootCD/Diskette mit dem Recovery-Werkzeug gpart helfen. Gpart versucht die ursprungliche Partitionierung Ihrer Festplatte wieder zu erraten,kann aber dabei durchaus Fehler machen!

11.1.4. LILO

Der Linux Boot Loader ist ein komfortabler Bootloader, der alle gangigen Betriebssysteme starten kann. Erbietet ein Menu an, in dem das zu startende Betriebssystem auszuwahlen ist. Handelt es sich dabei um einLinux-System konnen zusatzlich noch Kernel-Parameterubergeben werden.

LILO besteht aus zwei Hauptteilen. Der erste ist sehr klein, er muss namlich in die 466 Bytes passen,die ihm der Masterbootrecord zur Verfugung stellt. Dadurch kann LILO gleich nach dem BIOS ausgefuhrtwerden. Anschliessend kann LILO den zweiten Teil des Bootloaders nachladen, der sich an einer beliebigenStelle auf der Festplatte befinden kann.

Im zweiten Hauptteil des LILO ist der Code gespeichert, der fur die Anzeige des Bootmenus verantwort-lich ist. Je nach Wahl des Users werden entweder die Bootsektoren anderer Partitionen angesprungen, oderdas gewunschte Kernelimage in den Hauptspeicher geladen.

11.1.5. Grub

In der aktuellen SuSE 8.1 wird nicht mehr LILO sondern Grub als Bootmanager verwendet. GRUB bietetetwas mehr Komfort alslilo: Sie mussen nun nicht mehr jedesmal, wenn Sie einen neuen Kernelparame-ter fur den Start anfugen wollen den kompletten MBR neu schreiben – dies ist bei GRUB unnotig, denner kann standardmassig die gelaufigsten Dateisysteme auslesen. Sie mussen daher nur einmal den MBRschreiben, und GRUB liest seine restlichen Parameter aus einer bestimmten Datei auf der Festplatte aus:/boot/grub/menu.lst.Hier finden Sie die Eintrage zu den einzelnen Menupunkten des Bootmanagers, die sich meistens relativ gutselbst erklaren.

Falls Sie dennoch in die Verlegenheit kommen, Ihren GRUB erneut in den MBR schreiben zu mussen(zum Beispiel durch die Installation gewisser anderer sogenannte Betriebssysteme), so konnen Sie das durch

99

Page 100: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11. Bootkonzept und -manager

grub-install /dev/FESTPLATTENDEVICE erledigen...

11.1.6. Kernel

Der Kernel wird durch den Bootloader angestartet und dadurch in den Arbeitsspeicher geladen. Samtlicheim System befindliche Hardware wird jetzt initialisiert und dieubergegebenen Parameter wenn moglich aus-gewertet. Des Weiteren werden die BIOS Register der Grafikkarte und das Ausgabeformat des Bildschirmsuberpruft. Anschließend liest der Kernel die Einstellungen des BIOS und initialisiert die Schnittstellen desMainboards. Dann testen die Treiber als Bestandteile des Kernels die Hardware und initialisieren diese,wenn notwendig. Die Partitionen werden gepruft und das root Dateisystem gemountet. Zuletzt wird dasProgramm/sbin/init gestartet, dem die noch verbleibenden Parameterubergeben werden. Der Kernelselbst steuert weiterhin das gesamte System, verwaltet die Rechenzeit von Programmen und deren Zugriffeauf die Hardware.

11.1.7. Init

Init ist der erste laufende Prozess im System und steht deshalb innerhalb der Prozesshierarchie immer ganzoben (vgl. Kapitel Prozessverwaltung). Nachdem die verbliebenen Parameter ausgewertet wurden, erfolgteine Basiskonfiguration des Systems und das Einbinden der Dateisysteme. Anschließend wird in den ent-sprechenden Runlevel gewechselt und die damit verbundenen Damonprozesse (daemon) gestartet. Zuletzterfolgt die Aufforderung zum Login. Dazu werden verschiedene Konfigurationsdateien gelesen und zahlrei-che Skripten abgearbeitet (vgl. nahere Erlauterungen im nachsten Abschnitt).

BIOS

CMOS Bootsektor1

Bootsektor2

Bootsektor3

Kernel

Init?liest

-zeigt MBR&%'$&%'$&%'$

-ladt6ruft auf

Abbildung 11.2.:Bootprozess grafisch veranschaulicht

11.2. Systemstart-V-Init-Prozess

Jetzt nachdem einige Grundlagen geklart wurden, kann detaillierter auf die Vorgange beim Systemstarteingegangen werden. Im wesentlichen ist zu klaren, welche Mechanismen nach dem dem Anstarten desProzesses init anlaufen. Dabei soll Ihnen aufgezeigt werden, an welcher Stelle einzugreifen ist, wenn andereDienste mitgestartet oder bestimmte Konfigurationen vorgenommen werden sollen.

100

Page 101: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11.2. Systemstart-V-Init-Prozess

11.2.1. Programm init

Das Programm/sbin/init ist dafur zustandig, dass das System korrekt initialisiert wird. Es ist allen an-deren Prozessenubergeordnet und wird deswegen auch Vater-Prozess (parent) genannt, d.h. dass alle wei-teren Prozesse von init oder dessen Kind-Prozessen (child) gestartet werden. Init hat die hochste Prioritat.Demnach wird er bevorzugt vor allen anderen Prozessen ausgefuhrt. Stirbt init, sterben auch alle anderenProzesse und das System sturzt ab. Zugleich ist init das einzige Programm, das direkt vom Kernel gestartetwird und es kann auch mit dem Kommando kill nicht beendet werden (weitere Informationen zur Prozess-verwaltung sind im gleichnamigen Kapitel zu finden).Uber die Datei/etc/inittab kann init konfiguriertwerden. In dieser Datei werden die einzelnen Runlevel, und was in diesen geschehen soll, definiert. Dieverschiedenen Skripten, die init startet, konnen durch die Eintrage in dieser Konfigurationsdatei festgelegtwerden. Diese Skripten sindubersichtlich im Verzeichnis/etc/init.d zusammengefasst.

11.2.2. Runlevel

Die Runlevel unter Linux definieren den Zustand des Betriebssystems. Was sich hinter dem einzelnen Run-level Code verbirgt und in welchem Runlevel das System hochgefahren werden soll (default runlevel), ist inder Datei/etc/inittab dokumentiert. Beachten Sie bitte, dass die Runlevel versions- und distributionss-pezifisch sind.

Runlevel 0

Das System wird angehalten. Es werden alle laufenden Prozesse beendet und zuletzt init selbst abgeschlos-sen. Das Abschalten des Rechners ist nach Erreichen dieses Zustandes gefahrlos moglich.

Runlevel 1

Der Single User Mode ist fur Wartungsarbeiten oder Datensicherungen gedacht. Es lauft ein Linux Kernel,jedoch ist nur die root Partition gemountet. Nur der Benutzer root darf sich anmelden, alle anderen Benutzerhaben keinen Zugang zum System. Alle Terminals sind getrennt und es ist nur noch die Arbeit an derKonsole moglich.

Runlevel 2

Im Multi User Mode ohne Netzwerk sind zwar samtliche Benutzer am System zugelassen, allerdings ist esnicht moglich auf Remote-Systeme zuzugreifen, weil das Netzwerk nicht gestartet wird.

Runlevel 3

Das Netzwerk wird mitgestartet und das Einloggen erfolgt textbasiert.

Runlevel 4

Derzeit ist dieser nicht belegt.

Runlevel 5

Nachdem der X-Server gestartet wurde, durfen sich alle Benutzer anmelden, auch wenn weiterhin alle Kon-solen zur Verfugung stehen. Zudem wird das Netzwerk mitgestartet.

101

Page 102: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11. Bootkonzept und -manager

Runlevel 6

Beim Wechsel in diesen Runlevel wird das System, nachdem alle Dienste beendet und alle Dateisystemeausgehangt sind, durchgestartet.

Als Systemadministrator (root) ist es jederzeit moglich in einen anderen Runlevel zu wechseln, indemmit dem Kommando init die gewunschte id des Runlevels an das Systemubergeben wird.

init x

11.2.3. init-Skripten

Im Verzeichnis/sbin/init.d gibt es zwei Arten von Skripten. Zum einen Skripten, die direkt von initaufgerufen werden, was beim System-Boot, beim sofortigen Herunterfahren oder beim Neustart geschieht.Zum anderen indirekt von init gestartete Skripten. Beim Wechsel von Runleveln wird immer dasuberge-ordnete Skript/etc/init.d/rc ausgefuhrt, woraufhin die relevanten Skripten in der richtigen Reihenfolgeausgefuhrt werden.Alle Skripten sind unter dem Verzeichnis/etc/init.d gespeichert. Auch die Skripten, die beim Wech-seln des Runlevels gestartet werden, sind dort abgelegt, aber sie werden in der Regel als symbolischer Linkaus den Unterverzeichnissen/etc/init.d/rcx.d aufgerufen. Diese Organisation ist sehrubersichtlichund vermeidet ein mehrfaches Vorkommen der Skripten, weil jedes Skript sowohl als Start- als auch alsKill-Skript gestartet werden kann. Der Unterschied liegt in der Parameterubergabe, die START oder STOPlautet.Die Kill- und Start-Skripten eines Runlevels sind in entsprechend benannten Verzeichnissen organisiert(/etc/init.d/rcx.d) und dort als Link realisiert. Durch ihre Benennung wird ersichtlich, um welchenTyp von Skript es sich handelt. Die Nummer im Namen der Links gibt an, in welcher Reihenfolge die zahl-reichen Skripten abgearbeitet werden.Es kann jedoch auch ein sogenannter default runlevel festgelegt werden, in dem das System immer gestar-tet werden soll. Dies ist durch Anpassung der Eintrage in der Datei/etc/inittab moglich. Hier konntebeispielsweise der default runlevel geandert werden oder das Verhalten des Systems beim Drucken der Tas-tenkombination Strg + Alt + Entf festgelegt werden.Wenn ein Runlevel gewechselt wird, werden die Kill-Skripten des aktuellen Runlevels ausgefuhrt. Diesebeenden verschiedene Programme des Runlevels. Anschließend werden die Start-Skripten des neuen Run-levels ausgefuhrt. Init liest also die Konfigurationsdatei/etc/inittab und ruft das Skript/etc/init.d/rcauf, dem es den neuen Runlevel als Parameterubergibt. Als erstes noch bevor nur ein Dienst gestartet wird,kommt das Skript/etc/init.d/boot.local zur Ausfuhrung. Anschließend ruft rc alle Kill-Skripten desaktuellen Runlevels auf, die im neuen Runlevel kein entsprechendes Start-Skript aufweisen.

11.3. Bootkonzepte

Das einfachste Bootkonzept ergibt sich zweifellos auf einem Rechner mit nur einem einzigen Betriebs-system, wie es oft bei nur ”Windows-Maschinen” der Fall ist. Aber auch ein reiner ”Linux-Rechner” istdenkbar. In diesem Fall ist es dennoch sinnvoll LILO zu installieren, da damit die Moglichkeit besteht, demKernel in einer Kommandozeile Parameter oder zusatzliche Informationenuber Hardware mitzugeben, dieden Startvorgang beeinflussen konnen. In einem solchen Szenario wurde, wie bereits erwahnt, der MBRzusatzliche Informationenuber den weiteren Bootvorgang enthalten.Sobald mehrere Betriebssysteme auf einem Rechner installiert sind, bieten sich anfanglich jedoch noch an-dere Bootkonzepte an. Der Ablauf nach Auslesen des MBR bleibt beim Start von Linux jedoch grundsatzlichgleich dem eben beschriebenen Vorgang.

102

Page 103: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11.4. LILO - Linux-Bootloader

System von Diskette / CD-ROM booten

Bei diesem Konzept wird ein Betriebssystem von der Festplatte geladen, wahrend die alternativen Betriebs-systeme mit Hilfe von Boot-Disketten bzw. Boot-CDs beim Hochfahren gebootet werden konnen. Bedin-gung fur diesen Vorgang ist ein bootfahiges Disketten bzw. CD-ROM Laufwerk. Der Vorteil dieser Kon-figuration besteht darin, dass man sich die heikle Installation des Bootloaders erspart. Allerdings werdenauch die Nachteile dieses Vorgehens sehr schnell ersichtlich. Der Start des Rechners mit dem alternati-ven Betriebssystem dauert langer. Außerdem sind wechselbare bootfahige Medien eine zusatzliche Sicher-heitslucke im System. Je nach Einsatz des Rechners ist es ein Vor- oder Nachteil, dass Linux nicht ohneBootdiskette / BootCD gestartet werden kann.

Installation eines Bootmanagers

Ein Bootmanager erlaubt es, mehrere Systeme gleichzeitig auf einem Rechner zu halten und diese abwech-selnd zu nutzen. Das zu ladende Betriebssystem wird bereits wahrend des Bootens ausgewahlt. Ein Wechselerfordert den Neustart des Rechners. Allerdings ist es bei einer solchen Konfiguration unerlasslich, dassder gewahlte Bootmanager alle anderen Betriebssysteme starten kann. UmArger zu vermeiden, sollte manvon allen installierten Systemen zunachst eine Bootdiskette erstellen, damit man im Notfall oder bei Fehl-einschatzung der Fahigkeiten des Bootmanagers dennoch Zugriff auf alle Betriebsysteme hat.

11.4. LILO - Linux-Bootloader

Im Folgenden wird zunachst die Installation und Konfiguration von LILO, dem Bootmanager fur Linux-Systeme, naher erlautert.

LILO ist ein vielseitiger Bootmanager, der fur die Installation im MBR geeignet ist. Er funktioniert un-abhangig von der Partitionstabelle und greift direkt auf die Festplatten zu, ohne auf ein angelegtes Dateisys-tem angewiesen zu sein. Aus diesem Grund ist es auch moglich von anderen Festplatten bzw. Partitionenals der aktivierten primaren Partition zu booten, d.h. dass Betriebssysteme beim Systemstart grundsatzlichvon den Bootsektoren aller Partitionen gestartet werden konnen. Außerdem macht LILO es moglich mitverschiedenen Linux-Kerneln zu starten, wobei diesen noch weitere Parameter mit Hilfe des Bootpromptesmitgegeben werden konnen.LILO ist der Linux - Bootmanager. Um die Konfiguration vorzunehmen, geht man wie folgt vor. Der PunktKernel- und Bootkonfiguration unter Administration des Systems beinhaltet die Konfiguration von LILO.Mit F4 konnen neue Konfigurationen erstellt werden. Diese entsprechen den Eintragen im LILO Bootmenu.Zuerst muss der Name des Menupunktes eingegeben werden. Dann ist das zu bootende System auszuwahlen.Unter root Partition ist die zu startende Festplatte in der Form/dev/xxxx anzugeben.Sollen weitere Eintrage erstellt werden, so sind die oben angesprochenen Punkte nochmal durchzufuhren.Wenn Konfigurationen fur alle zu startenden Betriebssysteme erstellt worden sind, mussen noch zwei Para-meter fur Linux festgelegt werden.

Zum einen der Ort, an den LILO installiert werden soll und zum anderen die Wartezeit beim Booten. DenOrt kann man in Tabelle11.2auf Seite11.2vergleichen.

Die Frage, ob die root Partition aktiviert werden soll, darf naturlich nicht mit Ja beantwortet werden, wennauf dem System ein Betriebsystem wie DOS oder Windows lauft, das nur von der aktiven Partition gebootetwerden kann.

103

Page 104: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11. Bootkonzept und -manager

Ort BegrundungMasterBootRecord Diese Option sollte nur gewahlt werden, wenn man

sicher sein kann, dass alle installierten Systeme vonLILO gebootet werden konnen.

Bootsektor der Rootpartition Wenn der MasterBootRecord unbeeintrachtigt blei-ben soll, empfiehlt es sich diese Einstellung zuwahlen.

Diskette Soll von Diskette gebootet werden, ist dieseMoglichkeit sinnvoll.

Tabelle 11.2.:lilo - Wo hin damit?

11.4.1. Andere Betriebssysteme

Linux bietet die Moglichkeit, andere Betriebssysteme als Menupunkte in LILO mit aufzunehmen. Problem-los funktioniert das mit DOS, Windows 95 - ME, Windows NT und Windows 2000. Dazu muss in der/etc/lilo.conf einfach nur die Partition, auf der das System sich befindet eingetragen werden.Die Integration von Windows XP gestaltet sich analog, solange XP sich auf einer mit NTFS formatiertenPartition befindet. Wenn jedoch Windows XP auf eine logische FAT32 Partition installiert wurde, fehlt mirbisher die Moglichkeit, XP mit in den Bootmanager einzubinden, da das direkte Eintragen der Partition indie/etc/lilo.con nicht den gewunschten Erfolg bringt: Der Rechner bleibt beim Booten hangen...Als Alternative sei hier die Moglichkeit erwahnt, Linux in den NT-Bootmanager mit aufzunehmen. Dazuweisen Sie LILO an, sich in den Bootsektor der Linux-Root-Partition einzutragen.Danach fuhren Sie folgenden Befehl aus:

dd if=/dev/hda3 of=/windows/bootpartition/linux.img bs=512 count=1

Damit haben Sie den Bootsektor der Partition/dev/hda3 in die Dateilinux.img auf Ihrer Windows-Bootpartitionubertragen. Diese konnen Sie nun bequem als weiteren Menupunkt in Ihrerboot.ini Dateimit aufnehmen.

11.4.2. LILO deinstallieren

Um LILO zu deinstallieren und den MBR zu restaurieren geben Sie folgenden Befehl ein:

lilo -u /dev/hda

11.5. Grafischer Boot

Wie Sie sicherlich bemerkt haben, unterscheidet sich der Systemstart einer SuSE-Linux-Box von dem einerLinux-Box mit gewohnlichem Standardkernel. SuSE hat den Standardkernel um ein Splash-Screen Mo-dul erweitert. Dieses ist fur die Anzeige des SuSE Hintergrundbildes verantwortlich. Wer sich durch die-ses Bild gestort fuhlt, oder um ein Corporate Design bemuht ist, sucht oft nach einer Moglichkeit, diesesBild durch ein eigenes zu ersetzen. Dies geschieht durch die Anpassung einiger Dateien im Verzeichnis/usr/share/splash.

104

Page 105: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11.5. Grafischer Boot

Ubungen

1. Welches Programm ruft der Kernel beim Booten auf? Und was ist das besondere an diesem Programm?

2. In welcher Datei wird der Standard-Runlevel ersichtlich? Was wird mit dieser Datei gesteuert bzw. in ihrdokumentiert?

3. Mit welchem Kommando werden die Runlevel gewechselt und was passiert bei einem solchen Wechsel?

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

105

Page 106: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

11. Bootkonzept und -manager

106

Page 107: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

12. RPM - RedHat Paket Manager

Der ursprunglich von RedHat stammende Paket Manager wird zwar von modernen Installationstools vorneugierigen Blicken verborgen, allerdings bleibt deren Ausfuhrung dem Administrator vorbehalten. Aberauch wenn Benutzer keine Software systemweit installieren durfen, so brauchen sie gelegentlich Auskunftuber das eine oder andere Paket. An der Kommandozeile bietet der Befehl rpm alles was man zum Umgangmit der Paketverwaltung benotigt.

Lernziele

In diesem Kapitel lernen Sie,

• die Paketdatenbank des Paket Managers abzufragen,

• Abhangigkeiten anzuzeigen und zu losen,

• Informationenuber einzelne Pakete zu erhalten.

12.1. Grundlagen

Auf den ersten Blick erscheint die Installation von Software eine einfache Sache zu sein. Erst bei genaueremHinsehen offenbart sich, dass mehr dahinter steckt als ein einfacher Kopiervorgang vom Installationsmedi-um in das lokale Dateisystem. Gerade in Multiusersystemen sind folgende Punkte zu beachten.

• Umgebungsvariablen der Benutzer

• Berechtigungen im Dateisystem

• verschiedene Versionsstande

• Dokumentation

• Konfigurationsdateien

• Abhangigkeiten zu anderen Paketen

• ruckstandsloses Entfernen von Softwarefragmenten

Die Verwaltung dieser Informationen erfolgt mit Hilfe einer Datenbank, die von durchdachten Werkzeu-gen, beispielsweise YaST2, bedient wird. Spatestens wenn Pakete, die nicht von der Distribution mitgeliefertwurden, installiert werden sollen, kommt man jedoch um die Verwendung vonrpm nicht mehr herum.

107

Page 108: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

12. RPM - RedHat Paket Manager

12.1.1. Namenskonvention

In der Regel enthalt der Name eines rpm-Paketes folgende Einzelinformationen, die durch Bindestriche bzw.Punkte voneinander getrennt werden.

• Name des Pakets, kann vom Entwickler frei bestimmt werden,

• Versionsnummer, ergibt sich aus der laufenden Projekt-Entwicklung,

• Releasestand, wird laufend fur den Build des Pakets vergeben,

• Plattform, gibt Auskunftuber die Art des kompilierenden Rechners z.B. alpha, i386, ppc

• Endung, lautet auf rpm.

12.2. Installation

Die Installation einzelner Pakete lasst sich leicht bewerkstelligen. Dabei kann das rpm-Paket im lokalenDateisystem oder auf einem FTP- bzw. HTTP- Server liegen.

# rpm -i /share/install/suse8.0/suse/doc4/books-2002.3.20-0.noarch.rpm

Sind alle Abhangigkeiten aufgelost, kann sofort mit der installierten Software gearbeitet werden. BeiSchwierigkeiten helfen ggf. einige Parameter weiter, die in der Manualseite von rpm aufgefuhrt werden(z.B. -v fur eine gesprachigere Ausgabe, –hash fur eine Fortschrittsanzeige, –test um zu prufen, ob alle In-stallationsvoraussetzungen erfullt sind usw.).

12.3. Abfragen der Paketdatenbank

Die Abfrage der Paketdatenbank beginnt immer mit der Option-q fur Query.

Datei - Paket

Manchmal ist es interessant zu erfahren in welchem Paket eine bestimmte Datei bzw. ein haufig benutztesKommando zu finden ist. Um dem auf die Schliche zu kommen, muss zunachst der komplette Pfad inErfahrung gebracht und dann dem Befehl rpmubergeben werden.

> rpm -qf ‘type -p konsole‘kdebase3-3.0-5

Paketinformationen

Zu den zahlreichen Paketen der Distribution sind auch etliche Informationen in der Datenbank bzw. imPaketheader abgelegt, die wie folgt erfragt werden konnen

> rpm -qi kdebase3-3.0-5Name : kdebase3 Relocations: (not relocateable)Version : 3.0 Vendor: SuSE AG, Nuernberg, GermanyRelease : 5 Build Date: Mit 27 Mar 2002 18:50:26 CET

108

Page 109: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

12.3. Abfragen der Paketdatenbank

Install date: Mit 22 Mai 2002 22:52:23 CEST Build Host: D4.suse.deGroup : System/GUI/KDE Source RPM: kdebase3-3.0-5.src.rpmSize : 34644135 License: GPLPackager : [email protected] : KDE base package: base systemDescription :This package contains kdebase, one of the basic packages of the KDesktop Environment. It contains among others KWIN, the KDE windowmanager; KONQUEROR, the KDE browser; KControl, the configuration program.

This package is not needed if you want to start some KDE 2 applications,but not to use the KDE 2 Desktop.

Authors:--------

The KDE Team <[email protected]>

SuSE series: kdeDistribution: SuSE Linux 8.0 (i386)

Paketinhalt

In der Regel gibt die dem Paket beliegende Dokumentation Auskunftuber den Umfang der Software, dieNamen der Konfigurationsdateien und deren Installationspfad. Allerdings weiß daruber auch die DatenbankBescheid.

> rpm -ql kdebase3-3.0-5 | more/etc/opt/kde3/share/config/kdm/etc/opt/kde3/share/config/kdm/kdmrc/opt/kde3/bin/opt/kde3/bin/appletproxy/opt/kde3/bin/chooser/opt/kde3/bin/conttest/opt/kde3/bin/drkonqi/opt/kde3/bin/extensionproxy/opt/kde3/bin/kaccess/opt/kde3/bin/kaddressbook/opt/kde3/bin/kappfinder/opt/kde3/bin/kate/opt/kde3/bin/kblankscrn.kss/opt/kde3/bin/kcheckpass/opt/kde3/bin/kcminit/opt/kde3/bin/kcmshell/opt/kde3/bin/kcontrol/opt/kde3/bin/kdcop/opt/kde3/bin/kdebugdialog/opt/kde3/bin/kdeeject

109

Page 110: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

12. RPM - RedHat Paket Manager

/opt/kde3/bin/kdeprintfax/opt/kde3/bin/kdesktop...

12.4. Abh angigkeiten

Die Fahigkeiten von rpm gehen jedochuber die reine Installation von zusatzlicher Software hinaus. Sokonnen auch Abhangigkeiten zu anderen Paketen abgebildetet werden. In der Regel wird damit nur amRande konfrontiert, da die ausgeklugelten Installationswerkzeuge der Distributionen bestehende Abhangig-keiten erkennen und auflosen konnen.

Um zu erkennen, welche Pakete von dem gefragten Paket benotigt werden, wird folgender Befehl ange-wendet.

> rpm --requires -q kdebase3-3.0-5kdebase3-ksysguarddkcontrol.sokdesktop.sokeditbookmarks.sokfmclient.sokhotkeys.soklipper.sokmenuedit.sokonqueror.sokwrite.sold-linux.so.2libc.so.6...

Auch der umgekehrte Weg ist denkbar. Welche Pakete bauen auf einem bestimmten anderen Paket aufund werden nach einer unbedachten Deinstallation moglicherweise nicht mehr funktionieren.

> rpm --whatrequires -q kdebase3-3.0-5kein Paket verlangt kdebase3-3.0-5

12.5. Erstellung eigener Pakete

Hier die Erfahrungen aus der Arbeit dokumentieren!

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

110

Page 111: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13. Kernel und Kernelmodule

Wer glaubt, dass Linux schon immer so umfangreich war wie heute, der irrt. Nicht nur die verschiedenstenDistributoren, allen voran SuSE, haben immer mehr Software dazugepackt, sondern auch der eigentlicheBetriebssystemkern und die darum angeordneten Kernelmodule haben in den letzten Jahren ordentlich anCodeumfang zugelegt.

Lernziele

In diesem Kapitel lernen Sie,

• das dem Kernel zugrunde liegende Konzept kennen,

• die Aufgaben des Kernels einzuschatzen,

• eine Kernelkompilierung und -installation durchzufuhren,

• den Umgang mit Kernelmodulen zu verstehen.

Dieses besonders systemnahe Kapitel richtet sich weder an Einsteiger noch an Anwender. Es bietet sichjedoch denjenigen an, die tiefer in das System einsteigen wollen und hinter die Kulissen des Betriebssys-tems blicken mochten. Fur das allgemeine Verstandnis sollten Sie Kenntnisse im Aufbau von IT-Systemenmitbringen und insbesondere die Hardware Ihres eigenen Systems kennen.

Achtung!

Der Kernel ist nicht nur dem Namen nach der innerste Kern von Linux. Sie bewegen sich im vorliegendenKapitel sehr nah am System, was zwar einerseits interessant, andererseits aber auch nicht ganz ungefahrlichist. Gehen Sie also, nicht bloß weil Sie standig als root angemeldet sein werden, mit Bedacht vor.

13.1. Grundlagen

Bevor der Einstieg in die Umgebung des Kernels gelingen kann, sind noch einige Grundlagen zu schaffen.Dazu gehoren neben den Aufgaben des Kernels auch der grundlegende konzeptionelle Ansatz.

13.1.1. Aufgabenteilung

Der Kernel stellt eine Schnittstelle zwischen den einzelnen Hardwarekomponenten und den Anwendungendar. Daruber hinausubernimmt er grundlegende Funktionen wie die Speicher- und Prozessverwaltung.Module konnen in diesem Sinne als Treiber verstanden werden, die den Zugriff auf Gerate, wie Festplatten,Netzwerkkarten usw. gewahrleisten.Alle Zugriffe auf die Hardware mussen vom Kernel koordiniert werden, d.h. keine Anwendung darf direktauf einzelne Gerate zugreifen. Ausnahmen von dieser Regel sind beispielsweise X-Server, die direkt zurGrafikkarte durchgreifen oder verschiedene Datenbanken, die unter Umgehung des Kernel-Caches raw aufdie Platten schreiben.

111

Page 112: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13. Kernel und Kernelmodule

13.1.2. Geratedateien

Damit Anwendungen die verschiedensten Komponenten bzw. deren Treiberuberhaupt ansprechen konnen,stellt Linux im Dateisystem eine Unmenge an Geratedateien, die ausschließlich im Verzeichnis/dev zufinden sind, bereit. Der Zugriff auf das jeweilige Gerat kann also so erfolgen, als ob es eine Datei ware. DieAbwicklung der internen Systemaufrufeubernimmt dann der Kernel oder das zustandiges Modul.

Beispiel

Das Kommandodd soll das Image einer Bootdiskette auf Diskette schreiben. Dabei darf es nicht einfach amKernel vorbei auf den Floppy-Controller zugreifen. Stattdessen schreibt es auf die Geratedatei/dev/fd0.Alles andere ist Aufgabe des Kernels.Genauere Erlauterungen zum Devicefilesystem/dev finden Sie im gleichnamigen Kapitel.

13.1.3. Konzeption

Eine Kernel-Architektur kann grundsatzlich zwei konzeptionelle Ansatze verfolgen. Zu Beginn der Linux-entwicklung fuhrte dies auch zu heftigen Streitigkeiten zwischen Linus Torvalds, der mit dem vorerst mo-nolithischen Ansatz, ein anderes Model verfolgte als der Universitatsprofessor Andrew Tanenbaum, derMinix mit einem Microkernel implementiert hatte. Allerdings werden Sie im laufenden Betrieb auf keineder nachfolgend beschriebenen Losungen in ihrer reinsten Form treffen.

Monolithischer Ansatz

Samtliche Funktionen des Kernels werden bei der Kompilierung in diesen integriert. Daraus ergibt sich zwareinerseits eine einfache Struktur, andererseits braucht der Kernel aber aufgrund seiner Große mehr Sys-temressourcen und istuberdies nicht sonderlich flexibel. Wenn beispielsweise neue Hardware hinzukommt,muss ein neuer Kernel kompiliert werden, um die Unterstutzung fur diese Komponente zu aktivieren.

Modularisierter Ansatz

Zunachst wird nur das Notwendigste in den sogenannten Microkernel integriert. Zusatzliche Funktionenwerden von eigens kompilierten Kernelmodulen abgedeckt. Diese Module konnen im laufenden Betriebin den Kernel eingebunden und spater wieder entfernt werden, weshalb der Kernel immer optimal an dasSystem angepasst ist. Das spart zum einen wertvolle Systemressourcen und bringt zum anderen erhohteFlexibilitat, da neue Hardwarekomponenten ohne langwierige Neukompilierung des Kernels in das Systemintegriert werden konnen.

13.1.4. Versionsnummern

Anhand der Versionsnummer eines Kernels kann zwischen stabilen Anwender-Kerneln und noch nicht aus-gereiften Entwickler-Kerneln unterschieden werden. Der Unterschied besteht in der zweiten Ziffer in derVersionsnummer. Ist diese Ziffer gerade, so handelt es sich um einen ausgiebig getesteten Kernel, der furAnwender freigegeben wurde. Ist diese jedoch ungerade, so kann der Kernel noch nicht als stabil bezeichnetwerden und ist in erster Linie fur Kernel-Entwickler und muss noch ausgiebigen Stabilitats- und Belastungs-tests ausgesetzt werden.

112

Page 113: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13.2. Kompilierung und Installation

13.2. Kompilierung und Installation

Samtliche Distributoren liefern brauchbare Standard-Kernel und eine umfangreiche Sammlung von Modu-len mit. Einerseits laufen diese Kernel zwar stabil und enthalten die gangigsten Funktionen, andererseitsheißt das aber, dass diese kaum fur das von Ihnen eingesetzte System und die gefahrenen Anwendungenoptimiert sind.Die folgende Anleitung soll es Ihnen nicht nur ermoglichen einen Kernel zu kompilieren und zu installieren,sondern Ihnen auch ein tieferes Verstandnis fur das System vermitteln.

13.2.1. Motivation

Einer der wichtigsten Grunde fur die Beschaftigung mit den Kernel-Quellen ist das Durcharbeiten der mit-gelieferten undaußerst umfangreichen Dokumentation. Naturlich gibt es weitere gute Grunde fur die Kom-pilierung eines eigenen Kernels, beispielsweise

• die Optimierung des Betriebssystems,

• die Integration besonderer Funktionen,

• das Durcharbeiten der Kerneldokumentation,

• die Verwendung des neuesten Kernels.

An dieser Stelle sei noch einmal betont: Erfullt der verwendete Kernel Ihre spezifischen Anforderungenund daruber hinaus Ihre Vorstellungen von Stabilitat und Systemsicherheit, brauchen Sie weder ein Kernel-Update bzw. einen Kernel-Patch noch eine Kernel-Kompilation durchzufuhren.

13.2.2. Installation der Kernel-Quellen

Zunachst mussen die Quellen des Kernels installiert werden. SuSE liefert hierzu die Quellen des Stan-dardkernels und die des distributionsspezifischen Kernels mit. Sie finden die Pakete mit Suchbegriffen wie“Linux”, “Kernel” oder “Quellen” in der Paketdatenbank. Sind Sie auf eine aktuelle Kernelversion ange-wiesen, so finden Sie diese im Internet. Erste Anlaufstelle ware hier der jeweilige Distributor, der in derRegel eigene Kernelversionen zertifiziert und entsprechend als Paket bereitstellt. Hinzu kommt, dass dieDistributoren eigene Patches einspielen, die den Kernel speziell fur ihre Distribution anpassen. Reicht diesnicht aus, kann die neueste Entwicklerversion beiwww.kernel.org heruntergeladen werden. Hier findensich zu den letzten Versionen sogenannte Changelogs, die dieAnderungen der letzten Prepatches enthalten.Nach der Installation finden Sie die Kernelquellen im Verzeichnis/usr/src/linux-n, wobei dasn furdie Kernelversion steht. In der Regel gibt es auch ein Verzeichnis/usr/src/linux, dass jedoch nur eineVerlinkung auf eines der Quell-Verzeichnisse ist.

13.2.3. Konfiguration

Es wurde bereits angesprochen, dass ein Kernel fur das jeweils verwendete System optimiert werden kann.Dazu ist es nicht nur wichtig die eingebaute Hardware zu kennen, sondern auch zu wissen, welche Aufgabender jeweilige Rechner zuubernehmen hat. Im privaten Gebrauch mag dies eine untergeordnete Rolle spielen,beim professionellen Einsatz von Application Servern und Datenbanken durfen dieseUberlegungen nichtaußen vor bleiben.Bevor die eigentliche Kernel-Kompilierung begonnen werden kann, mussen umfangreiche Einstellungen,die in der Datei.config gespeichert werden, getatigt werden. Nach der Installation der Quellen ist diese

113

Page 114: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13. Kernel und Kernelmodule

Datei unter Umstanden noch nicht vorhanden, so dass Sie bei null anfangen mussten. Wenn Sie bei dergleichen Kernelversion bleiben, gibt es allerdings Abhilfe, da SuSE eine Standardkonfiguration in der Dateivmlinuz.config im Verzeichnis/boot ablegt.Mit dem Befehlcp /boot/vmlinuz.config /usr/src/linux-n/.config kann diese fur den jeweiligenKernelubernommen werden.Im Editor betrachtet, werden schnell zwei Sachverhalte deutlich. Erstens ist der Umfang kaumuberschaubar(fast jede Zeile enthalt eine Einstellung) und zweitens gibt es zu nahezu jeder Angabe grundsatzlich dreiMoglichkeiten.

Yes Unterstutzung wird in den Kernel integriert, beispielsweise dann wichtig, wenn Sie das Gerat bereitsbeim Booten benotigen.

Modul Treiber wird als Modul kompiliert und kann spater bei Bedarf mit eingebunden werden.

No Unterstutzung wird nicht mitkompiliert.

Auch wenn es moglich ist, sollten Sie dieAnderungen nicht eigenmachtig in die Datei.config eintra-gen, sondern eines der unten beschriebenen Werkzeuge verwenden. Wechseln Sie dazu in das Verzeichnis/usr/src/linux-n und fuhren Sie als root einen der genannten Befehle aus. Dabei gilt: Wenn Sie unsichersind, sollten Sie in jedem Fall die Dokumentation zur Rate ziehen oder es bei der Standardeinstellung be-lassen.

#make config Dieses Programm weist am wenigsten Komfort auf, da Sie eine endlose Liste von Fragender Reihe nach beantworten mussen und ein Zuruckgehen oder Vorwartsspringen nicht moglich ist.Letztendlich arbeiten Sie einfach die Einstellmoglichkeiten von.config sequentiell ab. EinzigsterVorteil dieser Methode besteht darin, dass keinerlei zusatzliche Programme installiert werden mussen.

#make menuconfig Dieses Programm ist vergleichsweise komfortabel. Die Konfiguration erfolgt zwar im-mer noch im Textmodus, allerdings konnen jetzt die einzelnen Konfigurationspunkte in einer Menustruk-tur ausgewahlt werden. Es ist also moglich, nur rasch vereinzelte Punkte zu verandern, ohne die ge-samte Liste der Einstellungen durchzuarbeiten.

#make xconfig Dieses Programm ist weit anspruchsvoller, da ein X - Server laufen und zudem tcl/tk in-stalliert sein muss. Die Konfiguration erfolgt jetzt per Mausklick, indem einzelne Optionen aus denMenus bzw. Listen an- bzw. abgewahlt werden. Anschließend speichern Sie die vorgenommene Kon-figuration ab.

Gleich welchen Befehl Sie verwenden, bleiben Ihnen eine Menge Fragen zur Kernelkonfiguration nichterspart. Jedoch kommt es nicht selten vor, dass viele spezielle Einstellungen nicht getatigt werden konnen,weil die dazugehorige grundsatzliche Unterstutzung nicht aktiviert wurde. In vielen Fallen werden Sie sichalso in die Dokumentation einlesen oder von vorneherein bei der Standardeinstellung verbleiben mussen.

13.2.4. Kompilierung

Nachdem Sie die benotigten Einstellungen getatigt haben, muss der Rechner den Kernel und die Modulekompilieren. Fuhren Sie dazu die untenstehenden Befehle der Reihe nach im Verzeichnis/usr/src/linux-naus und lehnen Sie sich zuruck, da der gesamte Vorgang je nach Systemleistung langer dauern kann.

114

Page 115: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13.2. Kompilierung und Installation

#make dep Die Abhangigkeiten zwischen den zu kompilierenden Kernelbestandteilen werden gepruft unddas Ergebnis in das entsprechende Quell-Verzeichnis in Dateien namens.depend eingetragen.

#make clean Ubergebliebene Reste vorangegangener Kompilationslaufe werden geloscht.

#make bzImage Die Kompilierung des Kernels wird gestartet und der fertige Kernel mit dem NamenbzImage in das Verzeichnis/usr/src/linux-n/arch/i386/boot kopiert. Die Module sind bei die-sem Kompilationslauf jedoch noch nicht enthalten.

#make modules Jetzt werden die Kernelmodule kompiliert. Dieser Vorgang dauert, in Abhangigkeit vonder Anzahl der Module, wesentlich langer als die eigentliche Kernel-Kompilierung.

Nach diesem recht zeitaufwendigen Vorgang, sind zwar der Kernel und die dazugehorigen Module kom-piliert, allerdings hat dies noch keine Auswirkungen auf das System, da der Kernel noch nicht installiertwurde. Sie mussen Ihr System dazu bringen, mit dem neuen Kernel zu booten und die neuerstellten Moduleeinzubinden.

13.2.5. Installation des Kernels

Nachdem der Kernel und samtliche Module kompiliert wurden, werden im Anschluss zunachst die zahlrei-chen Module und erst danach der Kernel installiert.

#make modules install Die gerade kompilierten Module, die verstreut im Quellpfad des Kernels liegen,werden in das Verzeichnis/lib/modules/n kopiert.

# cp /usr/src/linux-n/arch/i386/boot/bzImage /boot/vmlinuz.user Beim Booten des Rechners wird durchLILO der ausgewahlte Kernel gestartet. Haben Sie einen neuen Kernel kompiliert, muss der Kernelin das Verzeichnis/boot kopiert und LILO entsprechend angepasst werden.Uberschreiben Sie kei-nesfalls einen der funktionsfahigen Kernel, sondern legen Sie eine neue Datei beispielsweise mit demNamenvmlinuz.user an.

Jetzt muss dem Linux Loader (LILO) noch ein neuer Eintrag in der Datei/etc/lilo.conf hinzugefugtwerden, wobei Sie sich an den bereits vorhandenen Eintragen orientieren konnen. Damit der neue Ein-trag auch beim Booten sichtbar wird, muss zu guter Letzt noch das Kommandolilo ausgefuhrt werden.Dabei werden die internen Zeiger von LILO auf die veranderten Kernel aktualisiert. Dies ist immer dannnotwendig, wenn sich Kernel-Dateien geandert haben, also auch dann, wenn Sie nochmals einen Kernelkompilieren und damit einenalteren im Verzeichnis/boot uberschreiben.

13.2.6. Initial Ramdisk

Theoretisch ware ein Linuxkernel mit den oben genannten Vorbereitungen voll benutzbar. Es gibt da jedochnoch eine kleine Schwachstelle in diesem Konzept:Eventuell gehoren Sie zu den Menschen, die zum Beispiel ihre Root-Partition mit dem neuen Dateisys-temreiserfs formatiert haben. Oder sie sind glucklicher Besitzer eines Brenners, deruber dieide-scsiModule angesprochen wird. Sie ahnen bereits: Fur beide Gerate wird nach SuSE-Standard jeweils ein Ker-nelmodul erzeugt. Woher jedoch soll der Kernel beim booten diese Module nachladen, wenn diese auf ebender Reiser-Partition abgelegt sind?Fur dieses Problem haben sich die Leute bei SuSE das Konzept der Initial-Ramdisk ausgedacht: Der Boot-loader ladt eine Datei mit eben diesen Modulen, die so dringend vom Kernel benotigt werden in den Haupt-speicher, auf den ja bekanntlich ohne Schwierigkeiten zugegriffen werden kann.

115

Page 116: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13. Kernel und Kernelmodule

So weit, so gut. Ihr selbst compilierter Kernel braucht jedoch eventuell ebenso eine Ramdisk, aber die wurdeja bisher nicht erzeugt – Hier kommen Sie ins Spiel.

1. Um diese Ramdisk zu einzurichten, rufen Sie zuerst den Sysconfig-Editor im YaST auf, um die Va-riable Base-Administration/Common-Basics/initrdmodules mit den richtigen benotigten Modulen zufullen.

2. Jetzt mussen Sie die neue Ramdisk nur noch erstellen lassen. Dies erledigt fur Sie das Werkzeugmkinitrd. Sie mussen es aufrufen mit zwei Parametern:

-k dahinter geben Sie in Anfuhrungszeichen die Kerneldatei an, fur die Sie eine Ramdisk erzeugenwollen

-i dahinter geben Sie in Anfuhrungszeichen den Namen der neuen Ramdisk an

3. Schliesslich tragen sie die neue Ramdisk im Bootmanager, z.B.GRUB ein.

13.2.7. Systemtest

Jetzt starten Sie den Rechner durch und wahlen beim Hochfahren den entsprechenden Eintrag im LILO aus.Kurz darauf wird der neue Kernel zum ersten Mal gestartet. Dabei sollten Sie genauestens die Kernel- undModulmeldungen beobachten. Treten hierbei bereits Fehler auf, kommen Sie um eine erneute Konfigurationund Kompilierung nicht herum. Verlauft hingegen alles problemlos und funktionieren alle Hardwarekom-ponenten sollten Sie den Kernel im laufenden Betrieb eine Weile testen und dabei die Systemperformanceund Stabilitat beobachten. Daruber hinaus ist auch die Funktion der zahlreichen, aber vielleicht selten ver-wendeten, Hardwarekomponenten sicherzustellen.

13.3. Verwaltung der Kernelmodule

Wie bereits deutlich geworden sein sollte, beruht der Linux-Kernel im wesentlichen auf Modulen. Im fol-genden soll das Konzept der Kernelmodule aufgezeigt und die internen Systemablaufe bei der Einbindungvon Modulen verdeutlicht werden.

13.3.1. Motivation

Die Vorteile des modularisierten Kernels sind vielleicht schon weiter oben klar geworden. Hier noch einmalin kurzen Stichpunkten.

• Treiber fur selten benotigte Hardware werden nur bei Bedarf geladen,

• Kernel beherrscht viele Funktionen, bleibt aberubersichtlich schlank,

• Laden und Entladen der Treiber ermoglicht die wechselweise Benutzung von unvertraglichen Geratenohne Durchstarten des Systems,

• Vereinfachung und Beschleunigung der Entwicklung von Treibern.

13.3.2. Modulklassen

LowLevel-Treiber

Ganz nah am System sind die eigentlichen Hardwaretreiber, wie z.B. fur den Festplattencontroller, denChipsatz oder die Netzwerkkarten.

116

Page 117: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13.3. Verwaltung der Kernelmodule

HighLevel-Treiber

Darauf aufsetzend gibt es Treiber fur die diversen Dateisysteme und Netzwerkprotokolle.

Binary-Treiber

Daneben gibt es Treiber fur die Unterstutzung der verschiedenen Binary-Formate, wie z.B. a.out.

13.3.3. Automatismen

Die Modulverwaltung erfolgt in der Regel automatisch und gegenuber dem Anwender vollig transparent,ohne dass dieser manuell eingreifen musste. Noch nicht geladene Module werden bei Bedarf selbststandigeingebunden und danach wieder entfernt. Dafur ist ein, in den Kernel integrierter, Bestandteil namenskmod zustandig. Beim Nachladen optionaler Module berucksichtigt kmod verschiedene Parameter und Mo-dulabhangigkeiten. Die dazugehorigen Konfigurationsdateien werden wahrend der Installation und spaterbei der Konfiguration des Systems von den entsprechenden Tools der Distribution gewartet.

13.3.4. Selbstverwaltung

Nichtsdestotrotz kann die Modulverwaltung auch von Hand durchgefuhrt werden. Die Erklarungen zu dennachfolgend aufgefuhrten beispielhaften Kommandos sollen Licht ins Dunkel bringen und die Vorgehens-weisen der angesprochenen Automatismen verstandlich machen.

#lsmod Der Befehl zeigt die derzeit geladenen Module und deren Große an. Zusatzlich erfahren Sie durcheinen Zahler, wie oft das jeweilige Modul gerade geoffnet ist und von welchem Modul gerade daraufzugegriffen wird. Alle Module, die kmod automatisch geladen hat, werden mit dem Flagautocleangekennzeichnet.

#insmod ne io=0x300 irq=5 Mit diesem Kommando werden Module (hier eine Netzwerkkarte) nachge-laden. Als Parameter werden zum einen der Modulname und zum anderen die vom Gerat belegtenRessourcen (IO-Adresse, IRQ) mitgegeben. Sollte ein Fehler auftreten (falscher Modulname, falscheRessourcen) wird eine Fehlermeldung zuruckgegeben.

#modprobe es1371 Nicht selten ist das korrekte Einbinden eines Modules (hier eine Soundkarte) von an-deren Modulen abhangig. Aus der Datei/lib/modules/n/modules.dep werden diese Abhangig-keiten gelesen und fehlende Module mitgeladen. Außerdem bestimmtmodprobe die Ressourcen einerKomponente mit Hilfe der Datei/etc/modules.conf. Der angefuhrte Beispielbefehl ladt demnachzwei Module. Zunachst das Modulsoundcore und danach das davon abhangige Modules1371.Modprobe unterstutzt auch die Funktionalitat, mehrere passende Module durchzuprobieren. Sprichteiner der Treiber an, so wird davon ausgegangen, dass das Gerat im System vorhanden ist.

#rmmod isa-pnp Dieses Kommando entfernt Module (hier die Unterstutzung fur Plug and Play fahigeISA Karten) aus dem System und gibt den belegten Speicher wieder frei. Einzelne Module konnennaturlich nur entfernt werden, wenn diese gerade nicht verwendet werden. Mit der Option-a werdenalle zur Zeit nicht benotigten Module entfernt.

#depmod Dieser Befehl erstellt zusammen mit der Option-a die Dateimodules.dep, damitmodprobe dieAbhangigkeiten der Kernelmodule bestimmen kann. Auch die Angaben in der Datei/etc/modules.confwerden dazu herangezogen.

117

Page 118: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13. Kernel und Kernelmodule

13.3.5. Konfiguration

Nehmen SieAnderungen an der Datei/etc/modules.conf nur dann vor, wenn Sie wissen was Sie tun.Die Einstellmoglichkeiten sind sehr systemnah und damit riskant! Dennoch ist es gut zu wissen, was mitdieser Datei gesteuert wird, um das System in seiner Gesamtheit besser zu verstehen.

alias: gibt an, fur welche Devices welche Kernelmodule geladen werden sollen,

options: bestimmt die Optionen fur das angegebene Modul,

path: zeigt auf die Verzeichnisse, in denen sich die Kernelmodule befinden,

pre-install / post-install: legt Aktionen fest, die vor bzw. nach dem Laden eines Moduls ausgefuhrt werden.

Daneben gibt es noch zahlreiche weitere Anweisungen, die an dieser Stelle jedoch nicht naher erlautertwerden.

13.3.6. Kernelmodule von Drittanbietern

Der Linuxkernel bietet die Integration von dynamisch nachladbaren Modulen an. Das kann man auch ver-gleichen mit den unter der M$ –Welt so bekannt gewordenen Treibern. Auch unter Linux konnen Modulevon Drittanbietern, wie zum Beispiel Hardwareherstellern eingebunden werden. Dazu mussen die jeweili-gen Module fur den verwendeten Kernel kompiliert werden. Dies passiert relativ haufig, einige prominenteBeispiele seien hier aufgelistet:

alsa Advanced Linux Sound Architecture; viele moderne Soundkarten werden nicht mehr direkt durch dasLinux-Kernelprojekt unterstutzt. Das ALSA Team springt in diese Lucke und schreibt erganzendeModule fur diese Soundkarten.

nvidia Viele moderne Desktop PCs werden mit NVidia Grafikkarten bestuckt. Um zum Beispiel die all-seits beliebten Ego-Shooter oder harmlosere Spiele mit voller Hardwareunterstutzung laufen lassenzu konnen, liefert NVidia Treiber fur Ihre Grafikkarten mit einem verbundenen Kernelmodul aus. Da-durch konnen auch OpenGL Anwendungen unter Linux von vorhandener Beschleunigungshardwareprovitieren...

vmware Der Hersteller von PC-Emulatoren verwendet Kernelmodule um sein “virtuelles” Netzwerkdevicein das Linuxsystem einzubinden. Damit ist es dem “emulierten” Betriebssystem moglich, uber denLinux-Host auf das “echte” Netzwerk zuzugreifen...

Wie man sieht, ist die Nutzung von Kernelmodulen durch Drittanbieter weit verbreitet. Wenn man ersteinmal die Scheu vor dem Kompilieren von Zusatzmodulen und die Installation selbigeruberwunden hat,findet man dies gar nicht mehr so ungewohnlich.Fur ein Beispiel mochte ich hier auf die Installation eines ALSA-Moduls im Kapitel14.11auf Seite132verweisen...

Ubungen

1.

2.

3.

118

Page 119: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13.3. Verwaltung der Kernelmodule

Zusammenfassung

Im vorangegangenen Kapitel haben Sie den Kernel und dessen Aufgaben kennengelernt. Mit der Kernelkom-pilierung und der Modulverwaltung sind Sie tief in das System eingestiegen. Auch wenn solche Eingriffenur selten notwendig sind, sollten Sie das grundlegende Verstandnis fur diese systemnahen Vorgange imHinterkopf behalten.

119

Page 120: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

13. Kernel und Kernelmodule

120

Page 121: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

Die Unterstutzung von Standardhardware bereitet zwar nur noch selten Bauchschmerzen, von der unkom-plizierten Benutzung samtlicher Features einzelner Komponenten kann aber noch lange nicht die Rede sein.Ein guter Grund der eigenen Hardware mit Betriebssystemmitteln auf den Zahn zu fuhlen. Informationen zurverbauten Hardware erhalt man aber auch mit Hilfe des Procfs, das im Kapitel?? auf Seite?? ausfuhrlichbeschrieben ist.

Lernziele

In diesem Kapitel lernen Sie,

• die Hotplugfahigkeiten von Linux kennen,

• die Moglichkeiten der Hardwareerkennung,

• die Verwendung von PCMCIA Karten,

• die Konfiguration des APM,

• das Tunen des IDE Subsystems,

• einige Details zur Konfiguration von Netzwerkkarten,

• die Installation von Soundkartentreibern mit ALSA.

14.1. Arbeitsspeicher

Detaillierte Informationen zur derzeitigen Verwendung des Arbeitsspeichers konnen in der Datei/proc/meminfonachgeschlagen werden. Die Große des Arbeitsspeichers wird in der Regel korrekt vom Kernel erkannt.Nach einer Arbeitsspeichererweiterung kann es aber notwendig sein, den Kernelparameter mem z.B. durchmem=1024M auf die richtige Große zu setzen.

14.2. Festplatten

Informationenuber die verbauten Platten konnen mit dem Kommandohdparm abgefragt werden.

alisa:˜ # hdparm -i /dev/hda

/dev/hda:

Model=IC35L040AVER07-0, FwRev=ER4OA41A, SerialNo=SX0SXLP2830Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40BuffType=DualPortCache, BuffSize=1916kB, MaxMultSect=16, MultSect=16

121

Page 122: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=80418240IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}PIO modes: pio0 pio1 pio2 pio3 pio4DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 udma5AdvancedPM=yes: disabled (255)Drive Supports : ATA/ATAPI-5 T13 1321D revision 1 : ATA-2 ATA-3 ATA-4 ATA-5Kernel Drive Geometry LogicalCHS=5005/255/63 PhysicalCHS=79780/16/63

Informationenuber den Festplattenzugriff im PIO bzw. DMA Modus erhalt man ebenfalls mithdparm.

alisa:˜ # hdparm -cd /dev/hda

/dev/hda:I/O support = 1 (32-bit)using_dma = 1 (on)

Naturlich konnen samtliche Parameter auch mithdparm gesetzt werden (vgl. hierzuman hdparm). Al-lerdings muss man dabei mit Bedacht vorgehen, da unter Umstanden bei fehlender Hardwareunterstutzungseitens des Chipsatzes bzw. des Plattensubsystems das System stehen bleibt oder im Verlauf der BenutzungFehler auftreten bzw. Daten verloren gehen konnen.

14.3. Hotplug

Hotplugfahige Komponenten konnen im laufenden Betrieb angeschlossen und wieder abgenommen werden.Zuerst denkt man hier vielleicht an USB, aber auch PCI, PCMCIA, Firewire und SCSI gehoren dazu. DieAufgabe von Hotplug ist es diese Hardware zu erkennen und einzubinden. Aber auch das Entfernen derKomponenten muss vorbereitet und die belegten Ressourcen freigegeben werden.

14.3.1. Kernel

Damit das Hotplug-Systemuberhaupt funktionieren kann, mussen die Treiber eines hotplugfahigen Bussesin der Lage sein, neue Gerate zu erkennen und dem Betriebssystem zu melden. Im Kernel 2.4 sind USB,PCMCIA, Firewire, teilweise PCI und das Netzwerksubsystem dazu in der Lage. Dieser erste Teil vonHotplug ist fest in den Kernel und dessen Module einkompiliert und kann ohne weiteres nicht beeinflusstwerden.

14.3.2. Shellskripte

Der zweite Teil von Hotplug ist eine ganze Sammlung an Skripten im Verzeichnis/etc/hotplug, die dieBehandlung der vom Kernel gemeldeten Hotplug Ereignisseubernimmt. Als Schnittstelle zwischen dieserSammlung und dem Kernel gibt sich das Skript/sbin/hotplug. Zu dessen Aufgaben gehort nicht nur dasEinbinden bzw. Herauslosen von Geraten durch das Laden bzw. Entfernen von Treibermodulen. Auch dasMounten von Dateisystemen, die Konfiguration von Netzwerkkomponenten usw. kann durch diese Shell-skripte abgedeckt werden.Wenn ein hotplugfahiges Gerat angeschlossen wird, ruft der Kernel das Skript/sbin/hotplug auf undubergibt ihm zusatzliche Informationenuber die entsprechende Hardwarekomponente. Dann verteilt es dieArbeit an weitere Skripte, sogenannte Agenten, die dann die Treiber laden und die Konfigurationuberneh-men. Je nach Hardware wird der usb.agent, der pci.agent usw. verwendet.Der Kernel gibt zwar alle Hotplugereignisse an/sbin/hotplug weiter, solange jedoch das Hotplugsystemnicht gestartet ist, werden alle Ereignisse verworfen. Außerdem erkennt der Kernel bereits erste Kompo-nenten, wenn noch gar kein Dateisystem gemountet ist. Diese Ereignisse gehen dann einfach verloren. Umdas zu vermeiden wird in den Skripten/etc/hotplug/*.rc versucht, fur bereits vorhandene Hardware

122

Page 123: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14.3. Hotplug

entsprechende Ereignisse nachtraglich zu erzeugen.Das Hotplug-System kann mitrchotplug start gestartet und mitrchotplug stop gestoppt werden.

14.3.3. Konfiguration

In der SuSE typisch gut kommentierten Datei/etc/sysconfig/hotplug gibt es einige Variablen, die dasVerhalten des Hotplug-Systems steuern. Von besonderem Interesse sind die VariablenHOTPLUG_START_USB,HOTPLUG_START_PCI undHOTPLUG_START_NET. Weitere Variablen werden im folgenden naher beleuchtet.

14.3.4. Logdateien

Alle Meldungen des Hotplug-Systems werden in die Datei/var/log/messages geschrieben.

14.3.5. USB

Schließt man ein USB Gerat an, ermittelt das Skript /etc/hotplug/usb.agent einen geeigneten Treiber und ladtdiesen. Die Zuordnung von Hardware und Treiber erfolgt mehrstufig. Zunachst wird die Datei /etc/hotplug/usb.usermapherangezogen. Findet sich hier keine Losung wird eine individuelle Modulzuordnung durch die Datei /etc/hotplug/usb.handmapversucht. Zuletzt wird die Zuordnungstabelle des Kernels /lib/modules/kernelversion/modules.usbmap ver-wendet. Je nach Typ werden die USB Komponenten anders behandelt.

Speichermedien

Die Dateisysteme auf solchen Speichermedien werden, nachdem die erforderlichen Treiber geladen worden,durch /usr/sbin/checkhotmounts gemountet.

Netzwerkger ate

Netzwerkkomponenten losen ein eigenes Hotplugereignis im Kernel aus. Der USB Agent spielt hier nurinsofern eine Rolle, dass er fur das spatere Hotplugereignis Hardwareinformationen hinterlegt.

Kameras

Solche Komponenten werden durch den KDE Hardwarescan erkannt. Die erforderlichen Zugriffsrechte aufdas Devicefile werden dann durch /etc/hotplug/usb/usbcam gesetzt.

Mause

Solche Komponenten benotigen ausschließlich einen geladenes Modul, welches durch den USB Agentengeladen wird.

Tastaturen

Diese werden schon beim Bootvorgang benotigt und werden deshalb nicht von Hotplug behandelt.

Modems und ISDN-Karten

Leider wird diese Hardware noch nicht von Hotplug behandelt.In der bereits angesprochenen Datei /etc/sysconfig/hotplug finden sich noch weitere Variablen, die mo-

dulspezifische Angaben machen, so z.B. welche Module fur den USB Hostcontroller geladen werden sollenund welche Module bei einem spateren Entfernen wieder entladen werden mussen.

123

Page 124: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

Zusammenfassung

Die Hotplugfahigkeiten unterliegen eineraußerst dynamischer Entwicklung, die sich im wesentlichen imKernel widerspiegelt. Insofern kann davon ausgegangen werden, dass im Kernel 2.6 eine noch bessere Un-terstutzung fur diese Art von Hardware geboten wird.

14.3.6. PCI und PCMCIA

Hotplugereignisse fur PCMCIA Karten werden nur dann ausgelost, wenn es sich dabei um CardBus-Kartenhandelt und auch nur dann, wenn das Kernel PCMCIA-System aktiv ist. Technisch gesehen sind CardBus-Karten beinahe PCI Gerate, weshalb beide Bussysteme vom selben Skript/etc/hotplug/pci.agent be-handelt werden. Im Wesentlichen wird hier wiede r der Treiber ermittelt und geladen. Außerdem werdenInformationen hinterlegt, wo die Hardware angeschlossen wurde, damit ein spateres Netzwerkereignis dierichtige Konfiguration auswahlen kann.Die Auswahl der zugehorigen Treiber ist zweistufig. Zuerst wird in der Datei /etc/hotplug/pci.handmap nachindividuellen Einstellungen gesucht. Bleibt das erfolglos wird wiederum die Kerneltabelle unter /lib/modules/kernelversion/modules.pcimapzu Rate gezogen.Sobald die Karte wieder entfernt wird, werden auch die verwendeten Module wieder entladen. Fuhrt das Ent-fernen der Treiber zu Problemen, kann dies durch die VariableHOTPLUG_PCI_MODULES_NOT_TO_UNLOAD inder Datei/etc/sysconfig/hotplug abgefangen werden.

14.3.7. Netzwerk

Wird im Kernel ein neues Netzwerkinterface angemeldet, lost dieser ein Netzwerk-Hotplugereignis aus,welches vom Skript/etc/hotplug/net.agent behandelt wird. Gegenwartig werden Ethernet-, Tokenring-und WirelessLAN-Interfaces berucksichtigt. Die Hardwareinformation, die zur Konfiguration der Interfacesnotwendig ist, wird von vorausgegangenen USB- bzw. PCI-Hotplug-Ereignissen bereitgestellt. Dann werdendie Skripte /sbin/ifup bzw. /sbin/ifdown aufgerufen, die so in der Lage sind, einer bestimmten Karte immerdie richtige Konfiguration zuzuweisen, auch wenn das Interface, aufgrund der willkurlichen Namenszuord-nung durch den Kernel, einen anderen Namen hat.Schlagt die automatische Ermittlung der Hardware fehl, kann die Beschreibung der Netzwerkkarte in der Va-riableHOTPLUG_NET_DEFAULT_HARDWARE in /etc/sysconfig/hotplug abgelegt werden.HOTPLUG_NET_TIMEOUTlegt ubrigens fest wie lange der Agent auf eine zur Laufzeit erzeugte Hardwarebeschreibung wartet.

14.3.8. Firewire

Unter SuSE werden fur FireWire Komponenten derzeit nur die Treiber geladen. In nachfolgenden Versionendurfte sich die Unterstutzung solcher Komponenten weiter verbessern.

14.4. PCMCIA

14.4.1. Hardware

Es gibt zwei unterschiedliche Typen von PCMCIA1-Karten.

1. PC-Karten verwenden einen 16 Bit breiten Bus zur Datenubertragung und sind aufgrund ihreres gunsti-gen Anschaffungspreises recht weit verbreitet. Solche Karten werden zum Großteil sauber unterstutzt.

1Personal Computer Memory Card International Association

124

Page 125: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14.5. Hardware Erkennung

2. CardBus-Karten verwenden einen 32 Bit breiten Bus, was diese zwar beschleunigt aber auch teurermacht. Auch fur diese Karten gibt es bereits etliche Treiber, allerdings ist die Unterstutzung aufgrundeiniger Instabilitaten noch verbesserungsbedurftig.

Die zweite notwendige Komponente ist der PCMCIA-Controller bzw. die PC-Card / CardBus-Bridge,wobei Linux alle gangigen Modelle unterstutzt.

14.4.2. Dokumentation

Ausfuhrliche Informationen zu PCMCIA finden sichubrigens im Verzeichnis/usr/share/doc/packages/pcmcia/.Neben dem PCMCIA HowTo listet hier auch eine eigene Datei alle unterstutzten Karten.

14.4.3. Kommandos

Um zu erfahren, welche Karten gerade angemeldet sind, fuhrt mancardctl ident aus. Man erhalt Infor-mationenuber die einzelnen Steckplatze und erfahrt welche Funktion die jeweilige Karte hat.Der Typ des Controllers lasst sich laut SuSE Administrationshandbuch mit dem Befehlprobe abfragen.Handelt es sich um ein PCI-Gerat kann man auch mitlspci -vt einige zusatzliche Informationen erhalten.

14.4.4. Software

Derzeit gibt es zwei zu einander inkompatible Moglichkeiten das PCMCIA Subsystem zu unterstutzen, diejeweils auf verschiedene Kartentreibersatze aufbauen.

1. Das externe PCMCIA ist dasaltere und damit das stabilere von beiden. Es wird zwar immernoch weiter-entwickelt, die verwendeten Module sind jedoch nicht in die Kernelquellen integriert.

2. Das Kernel PCMCIA System ist eine aktuelle Entwicklung, die erst im Kernel 2.4 aufgenommen wurde.Es werden vor allem neuere CardBus Komponenten besser unterstutzt.

Die Voreinstellung von SuSE verwendet das Kernel PCMCIA.Neben den Moglichkeiten an der Kommandozeile gibt es auch ein grafisches Tool namens cardinfo zur

Verwaltung von PCMCIA-Karten.

14.4.5. Konfiguration

Die Konfiguration des PCMCIA Systems findet sich in der Datei/etc/sysconfig/pcmcia. Hier wird nichtnur bestimmt, welches der beiden Systeme verwendet wird. In seltenen Fallen ist es notwendig, anzugeben,welcher Treiber fur den PCMCIA-Controller mit welchen Optionen geladen werden soll.NachAnderungen wird das PCMCIA-System mitrcpcmcia restart durchgestartet. Vorubergehende Wech-sel zwischen den beiden Systemen sind allerdings auch mitrcpcmcia external bzw.rcpcmcia kernelmoglich.

Programm PCMCIA CardInfo

14.5. Hardware Erkennung

14.5.1. hwinfo

Schon einmal das Programm hwinfo betrachtet? Hier folgt eine Liste der Moglichkeiten.

125

Page 126: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

14.5.2. lspci

Gibt etwas schneller alle Informationen zu den eingebauten PCI Geraten aus.

14.6. Profile

Sie kennen das Problem: Sie sitzen an Ihrem Laptop daheim und surfen mit Ihrem DSL Anschluss, oder tau-schen Daten mit Ihrem Arbeitsplatzrechner aus. Am nachsten Tag an Ihrem Arbeitsplatz verbinden Sie sichwieder mit dem Firmennetzwerk. Naturlich haben beide Netzwerke verschiede IPs und Netzwerkmasken.Trotzdem wollen Sie nicht jeden Tag zweimal die Netzwerkdaten komplett umstellen. Die beiden SystemeExternal und Kernel PCMCIA gehen verschiedene Wege, um diese Funktionalitaten zu erreichen:

14.6.1. SCPM

Als Bestandteil des hotplug-Systems ist das Kernel-PCMCIA genauso in das Globale Profilmanagementper SCPM eingebunden, wie alle anderen Gerate. Sie steuern SCPMuber das Programscpm mit einementsprechendem Parameter. Nach der Aktivierung von SCPM mit dem Befehlscpm enable konnen Siesich den Namen des aktiven Profils mitscpm active ausgeben lassen. Ein neues (eigenes) Profil konnenSie sich durch den Aufruf vonscpm add PROFILNAME erzeugen. Durch einscpm switch PROFILNAMEwechseln Sie im laufenden Betrieb das aktuelle Profil. Scpm erkennt dann automatisch, welcheAnderun-gen am System vorgenommen werden mussen, und tauscht die entsprechenden Konfigurationsdateien aus,bevor die relevanten Dienste neu gestartet werden.Anderungen an den Profilen konnen Sie ausfuhren, indem Sie diese wie gewohnt durchfuhren, beim nachsten Profilwechsel werden diese dann erkannt und ab-gespeichert. Als Erganzung konnen Sie Ihrem Bootmanager (lilo, grub) als Kernelparameter die OptionPROFILE=profilname mitgeben, um gleich beim Systemstart im richtigen Profil zu landen.

14.6.2. Schemen

Fur PC Cards konnen Sie SCPM nicht zur Verwaltung dieser Profile hernehmen, und sind auf eine eigeneLosung des PCMCIA Systems angewiesen:schemes. Den Namen des aktuellen Schemas konnen Sie sichdurch Eingabe des Befehlscardctl scheme anzeigen lassen. Wenn Sie dabei noch zusatzlich einen neuenSchemennamenubergeben, wechselt der Cardmanager in dieses neue Schema und sobald Sie eine neueKarte einschieben/anmelden, wird Sie nach dem neuen Schema initialisiert.

14.7. PCMCIA

14.7.1. Uberblick

PCMCIA Gerate werden vom oben dargelegten Hotplug-System nur dann behandelt, wenn es Card-Bus-Karten sind und das Kernel PCMCIA-System gewahlt wurde. PCMCIA Karten sind fur PC-Verhaltnisse be-reits relativ alt - das Konzept stammt noch aus Commodorezeiten.Uber die Jahre hinweg ist dieser Standardden Bedurfnissen der User angepasst worden. Heutzutage sind großtenteils zwei Versionen von PCMCIAKarten gangig: 16Bit- und 32Bit-Karten. Diealteren 16Bit-Karten werden auch oft als “PC Card”-Karten be-zeichnet, wobei man neuere 32Bit-Karten oft unter dem Namen “CardBus”-Karten findet. Linux unterschei-det beide Typen, in der Art und Weise, wie diese benutzt werden konnen. Es existiert seit langem ein Zusatz-packet fur Linuxsysteme, mit dessen Hilfe man PCMCIA-Karten betreiben kann. Dieses ist allein lauffahigund nicht auf Kernelunterstutzung angewiesen. Daher wird es auch bei SuSE als der “External”-PCMCIAManager bezeichnet. Seit der Kernelversion 2.4 enthalt der Linuxkernel Unterstutzung fur PCMCIA Karten.

126

Page 127: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14.7. PCMCIA

Diese sind homogen in das Management von Hotpluggeraten eingebettet. Zumindest theoretisch. Denn derLinuxkernel unterstutzt großtenteils nur die neueren “CardBus”-Karten. Dies ist eine haufige Ursache furProbleme vor allem mit billigeren oderalteren PCMCIA Karten, denn SuSE Linux 8.1 hat standardmaßigdie Kernelversion von PCMCIA aktiviert. Begrundet wird das mit der besseren Unterstutzung fur PCMCIAWLAN Adapter. Ich personlich kenne allerdings mehr 16Bit-WLAN-Karten als 32Bit-Karten... Die beidenVarianten von PCMCIA Systemen sind leider inkompatibel zueinander und konnen nicht gleichzeitig betrie-ben werden. Sie stellen das verwendete System in der Datei/etc/sysconfig/pcmcia ein, indem Sie dieentsprechende Variable (PCMCIASYSTEM) auf den entsprechenden Wert (kernel oder external) setzen.Vorubergehend konnen Sie auch mit Hilfe derrc-Skripte manuell zwischen beiden Systemen umschalten.Die Syntax lautet dabeircpcmcia restart kernel beziehungsweisercpcmcia restart external.

14.7.2. “Kernel” PCMCIA

Zuerst mochte ich auf den neuen “Kernel” PCMCIA Manager eingehen, da es so aussieht, als ob SuSE Li-nux sich in Zukunft ganz auf diesen Mechanismus verliesse. Augenscheinlich lassen sich PCMCIA Karten(vor allem die Netzwerkkarten) sehr einfach mit den grafischen SuSE Werkzeugen einrichten, sobald Sie al-lerdings mehrere PCMCIA Karten Ihr eigen nennen, kommen Sie sehr schnell an die Grenzen der Masken.CardBus Karten werden seit SuSE Linux 8.1 durch den Hotplug-Manager gehandhabt. Dieserubernimmtdie Initialisierung der CardBus Karten und behandelt sie weiterhin wie die sonstublichen (und von der Ar-chitektur herahnlichen) PCI Karten. CardBus Netzwerk- (und Wireless-) Karten erzeugen beim Einsteckenein spezielles Hotplug-Event, dass geeignet abgefangen werden kann. Die Events fur andere Kartenarbeitensind teilweise noch in der Entwicklung und werden in zukunftigen Versionen eingebaut werden. Bei der Ent-nahme der Karten werden die entsprechenden Module auch wieder aus dem Speicher genommen. GenauereInstruktionen zur Einstellung von CardBus Netzwerkkarten sind nicht notig, da die Einrichtung genausoerfolgt wie die von “normalen” PCI Netzwerkkarten. Die Beschreibungen hierzu finden Sie im Kapitel zuhotplug. Verschiedene Konfigurationen verwalten Sie beim Kernel PCMCIA mit dem SCPM Werkzeug, wieunter14.6.1auf Seite126beschrieben.

14.7.3. “External” PCMCIA

Wenn Sie den External PCMCIA Manager wie oben beschrieben aktiviert haben, konnen Sie die gewunsch-ten Einstellungen an Ihren Karten mit Hilfe der Konfigurationsdateien im Verzeichnis/etc/pcmcia voll-ziehen.Fur jede Art von PC Cards finden Sie eine entsprechende Konfigurationsdatei mit der Endung.opts, diealle zum großten Teil sehr gut kommentiert sind, daher mochte ich an dieser Stelle nicht auf die einzelnenDateien eingehen, zumal External PCMCIA sowiesouber kurz oder lang durch das Kernel System abgelostwerden soll.Wie eine Netzwerkkarte eingerichtet wird, erfahren Sie im Abschnitt14.7.5auf Seite128.

14.7.4. Kartenkontrolle

Linux ist ein Mehrbenutzersystem. Daher ist es nur verstandlich, dass sie als Benutzer nicht einfach PCM-CIA Karten nach belieben ein- und ausbauen konnen. Wenn Sie die Entnahme rechtzeitig ankundigen, kannLinux die Karten korrekt abmelden. In manchen Fallen ist aber eine Entnahme ohne vorherige Benachrich-tigung nicht tragisch, zum Beispiel bei Netzwerkkarten...

Sie verschaffen sich eineUbersichtuber die derzeit eingebauten Karten und deren Anmeldunguber denBefehl:

cardctl status

127

Page 128: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

Um eine dieser Karten auszuwerfen, geben Sie als Userroot den Befehl:

cardctl eject [Nummer des Slots, den Sie leeren wollen]

Jetzt konnen Sie die Karte entweder entnehmen, oder wieder beim System anmelden mit dem Aufruf von:

cardctl insert [Nummer des Slots, der angemeldet werden soll]

Dieser Befehl ist normalerweise nicht notwendig. Sie konnen ihn allerdings dazu verwenden, Karten, dieSie miteject abgemeldet aber nicht entnommen haben, wieder anzumelden.

14.7.5. Beispieleinrichtung: PCMCIA-Netzwerkkarten

Die Installation von Netzwerkkarten unter SuSE Linux gestaltet sich denkbar einfach. Sie stecken dazu dieKarte in den PCMCIA Slot und rufen YaST2 auf. Hier wahlen Sie unter dem Modul Netzwerk/Basis dasIcon Konfiguration der Netzwerkkarte aus und fugen eine neue Netzwerkkarte hinzu, fur die Sie als Treiber-modul einfach PCMCIA ankreuzen. Die restlichen netzwerkspezifischen Einstellungen treffen Sie je nachWunsch mit Hilfe des grafischen Assistenten.Soweit die Theorie - in der Praxis gestaltet sich diese Prozedur etwas schwieriger, durch die zwei ver-schiedenen PCMCIA Manager und die gehobenen Anspruche in Bezug auf Profile/Schemen und andere“Spezialitaten”.

Netzwerkkarten mit dem External PCMCIA Manager

Die Einstellungen, die fur Ihre Netzwerkkarte gelten sollen, finden sie in der Datei/etc/pcmcia/network.opts.Hier sind verschiedene Teilbereiche definierbar, die jeweils auf verschiedene Arbeitsumgebungen passen.

Besonders interessant dabei ist die erste Zeile jeder Konfiguration, in der im Falle der SuSE Vorgabeeingetragen steht:

SuSE,*,*,*)

allgemein:

[Schemenname],[Slot],[Instanz],[MAC-Adresse])

Dabei handelt es sich um ein Muster, das immer dannuberpruft wird, wenn eine PCMCIA Netzwerkkartedurch einlegen oder explizite Anmeldung dem System bekannt gemacht wird. Dieses Muster besteht aus vierSpalten, getrennt durch Kommata und abgeschlossen durch die Klammer. Die einzelnen Teile bezeichnen:

Schemenname: Wird mit dem Namen des aktuellen Schemas verglichen

Slot: Wird mit der Nummer des Slots verglichen, in den Sie die neue Karte eingelegt haben.

Instanz: Keine Ahnung, was das ist.

MAC-Adresse: Wird mit der Hardware-MAC-Adresse der Netzwerkkarte verglichen

Unbelegte Teile werden durch* gekennzeichnet. Die Auswertung der Vergleiche erfolgt von links nachrechts. Ein passendes Muster fuhrt zur Anwendung der folgeneden Konfiguration.

So konnen Sie zum Beispiel die Netzwerkkarte, je nach dem in welchem Steckplatz sie eingelegt ist, mitunterschiedlichen IPs ausstatten.

128

Page 129: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14.8. APM - Advanced Power Management

Die meisten Konfigurationsmoglichkeiten sind dabei ziemlich selbserklarend, unterstutzt von den Kom-mentaren. Ungewohnt sind jedoch die Eintragestart_fn() undstop_fn(). Mit Hilfe dieser beiden Funk-tionen konnen Sie spezielle Befehle beim Start- oder Stopvorgang der Netzwerkkarte einstellen. Das istzum Beispiel dann nutzlich, wenn Sie Ihren Laptop zwischen zwei Netzwerken hin- und hertragen, diedurch DHCP-Server nur MAC-Adressen von eingetragenen Netzwerkkarten zulassen. Wenn Sie in beidenNetzen mit verschiedenen MAC-Adressen angemeldet sind ist es unheimlich praktisch, die MAC-AdresseIhrer Netzwerkkarte durch dasstart_fn() Skript auf das jeweilige Netzwerk anzupassen.

Netzwerkkarten mit dem Kernel PCMCIA Manager

Diese Netzwerkkarten richten Sie genau so ein wie allgemein PCI Netzwerkkarten. Auf Schemen mussenSie dabei ja nicht achten. Wie Sie PCI Netzwerkkarten einrichten, entnehmen Sie dem Kapitel daruber...

14.7.6. Compact Flash Adapter

Compact Flash Karten haben dank Digitalkameras und MP3-Spielern einen Hohen Grad der Verbreitungerreicht. Unter Linux konnen diese Speichermedienuber gangige Compact Flash PCMCIA Adapter Kartenangesprochen werden.

Die Einbindung in das System erfolgt denkbar einfach: Sobald der Adapter in das Kartenlaufwerk gestecktwird, wird die Flashkarte erkannt und eingebunden. Der Benutzer kann Sie verwenden wie eine beliebigePartition der Festplatte, durch einen Mountpoint im Dateisystem. Angesprochen wird diese Partition durchden nachsten freien Buchstaben, bei einem IDE-System mit zwei IDE-Kanalen also als/dev/hde1.

Durch einen Eintrag in der Datei/etc/fstab mit der Optionuser, kann der Systemadministrator dieBenutzung solcher Karten fur alle User ermoglichen.

Soll die Karte entnommen werden, so ist sie zuerst durch einenumount Befehl freizugeben, und durchcardctl eject [x] auszuwerfen!

14.8. APM - Advanced Power Management

Die Powermanagement Funktionalitaten unter Linux sind eher als rudimentar zu betrachten, fur ACPI be-steht gar keine Unterstutzung, und APM wird nur sehr einfach unterstutzt:

14.8.1. Suspend Mode

Sie konnen Ihren Rechner mit dem Befehlapm -s in den Suspend-Modus versetzen.

14.8.2. Standby Mode

Mit dem Befehlapm -S versetzen Sie den Rechner in den Standby-Modus. Auch diesmal wecken Sie ihnwieder durch Tastendruck.

14.8.3. Batterie-Fullstand

Sie erfahren mitapm -m den derzeitigen Akkufullstand.

14.9. IDE- und ATAPI Ger ate

Unter Linux steht ein Leistungsfahiges Tool zum Test und zur Konfiguration von IDE-Geraten zur verfugung.

129

Page 130: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

14.9.1. Informationen bezuglich IDE Ger ate

Eine kompakte Informationuber Ihre Gerate konnen Sieuberhdparm -i /dev/hd[x] abrufen. Sie erfah-ren dadurch, welche Standards das Gerat beherrscht und welches Modell in Ihrem Computer steckt.

14.9.2. Geschwindigkeitstests

Mit hdparm konnen Sie sehr leicht die Performance Ihrer Gerate testen. Normale Lesetests starten Sie mithdparm -t /dev/hd[x] und Tests unter Berucksichtigung des Caches mithdparm -T /dev/hd[x].

14.9.3. PIO-Mode und (U)DMA-Mode

Fur altere Laufwerke ergibt sich manchmal die Notwendigkeit, die Geschwindigkeit, in der dieses angespro-chen wird manuell herunterzusetzen. Dies kann mit dem Einstellen des PIO-Modesuberhdparm -p [x] /dev/hd[x]erreicht werden. Weitere Einstellungen sind:

• Auch Ultra-DMA oder normaler DMA-Zugriff macht aufalteren Systemen Probleme, daher kannman diesen Modus explizituberhdparm -d[x] /dev/hd[x] ein- und abgeschaltet werden.

• Die Feineinstellungen fur den (U)DMA-Zugriff konnen Sie mit dem Parameter-X?? treffen, dazulesen Sie bitte die Man-Pages zuhdparm

• 32bit-I/O Support konnen Sie mithdparm -c[x] /dev/hd[x] einstellen.

Sie konnen Ihr System ernsthaft beschadigen, wenn Sie mit hdparm falsche Einstellungen treffen! Um die-se Einstellungen permanent vorzunehmen mussen Sie entweder beim Kernel-Kompilieren auf die richtigeKonfiguration achten, oder die Boot-Skripten anpassen, darauf wird jedoch in den entsprechenden Kapitelngenauer eingegangen. . .

14.10. Netzwerkkarten

Hier sollte die Autonegotiation und die Moglichkeiten von ifconfig diskutiert werden.

14.10.1. manuelle Einrichtung von Netzwerkkarten

Unter Linux wird die Netzwerkkarte mit Hilfe vonifconfig eingerichtet. SuSE geht allerdings einen ei-genen Weg in diesem Bereich, um dem Benutzer das muhseelige Erstellen eigener Skripts abzunehmen.Im Nachsten Kapitel wird genauer darauf eingegangen, zum besseren Verstandnis soll hier jedoch auch derkonventionelle Weg geschildert werden:

Mit ifconfig fragen Sie die konfigurierten Netzwerkinterfaces ab. Hier sollte auf jeden Fall ein Loopbacklo eingetragen sein, weil sonst diverse Programme nicht richtig funktionieren werden. Wenn Sie den Rechnerin ein Netzwerk integrieren wollen und die Netzwerkkarte korrekt in das System eingebunden wurde, solltehier auch ein zweites Interface beispielsweise eth0 zu sehen sein.

Alle anderen eventuell noch nicht eingerichteten Netzwerkinterfaces bringt ein Aufruf vonifconfig -aans Licht.

Angezeigt werden die grundsatzlichen Daten des jeweiligen Netzwerkinterfaces, wie die IP-Adresse, dieSubnetzmaske und die MAC Adresse.

Die eigentliche Funktion vonifconfig besteht in der Einrichtung des Netzwerkes. Normalerweiseuber-nehmen die SuSE Skripte diese Aufgabe fur Sie, aber z.B. auf Boot-Disketten/CDs werden Sie die manuelleEinrichtung der Netzwerkkarte selbstubernehmen mussen. Zudem bietetifconfig auch tiefergreifende

130

Page 131: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14.10. Netzwerkkarten

Einstellungsmoglichkeiten als die Masken einem zeigen. So konnen Sie zum Beispiel die MAC-AdresseIhrer Netzwerkkarte temporar andern.

Vorgehensweise

Voraussetzung fur die Einrichtung des Netzwerks ist die korrekte Einbindung der Netzwerkkartentreiber inden Kernel, was im Kapitel Kernel naher erlautert ist.

1. Rufen Sieifconfig auf

2. Nun sehen Sie, ob das gewunschte Interface bereits eingerichtet ist. Wenn es bereits lauft, dannnsollten Sie es herunterfahren, bevor Sie Einstellungen daran vornehmen:ifconfig eth0 down

3. Nun konnen Sie zum Beispiel die MAC-Adresse des Interfaces einstellen:ifconfig eth0 hw ether 99:99:99:99:99:99

4. Der nachste Schritt ist die Zuweisung einer IP-Adresse und einer Subnetzmaske, wie unter TCP/IPublich:ifconfig eth0 192.168.0.103 netmask 255.255.255.0

5. Nun kann das Interface wieder hochgefahren werden:ifconfig eth0 up

14.10.2. Einrichtung der Netzwerkkarte uber die Konfigurationsdateien

SuSE Linux 8.1 verwaltet samtliche Netzwerkkarten und deren Einstellungen im Verzeichnis/etc/sysconfig/network.Hier legen Sie fur jede Ihrer Netzwerkkarten ein individuelles Konfigurationsskript in einer eigenen Dateian. Die Zuordnung von Konfigurationsdateien zu Netzwerkkarten erfolgtuber einen Abgleich der Namender Konfigurationsdateien mit den Kenndaten der Netzwerkkarten.

Moglich sind hierbei Differenzierungen zwischen Bustypen (z.B. PCI, USB, PCMCIA,...), Interfaces(z.B. eth, wlan,...) oder MAC-Adressen. Wenn Sie sich fur eine dieser Spezifizierungen entschieden haben,legen Sie die entsprechendeifcfg-XXXXXXXX Datei an, und fullen Sie sie mit den Daten Ihrer Netzwerk-verbindung. Sie konnen das bereits vorliegendeifcfg-lo als Beispiel dafur nehmen, oder in der man-Pagevonifup nachsehen.

Letzteres ist das SuSE eigene Skript, das als Wrapper fur ifconfig gedacht ist.Nach einem Aufruf vonrcnetwork restart sollten Sie IhreAnderungen bewundern konnen.

14.10.3. WLAN Karten

Damit Sie WLAN Karten unter Linux hernehmen konnen, mussen die Wireless Extensions auf Ihrem Sys-tem installiert sein. So ausgestattet, konnen Sie mit dem Befehliwconfig die Parameter der Wireless-Geratein Ihrem System einrichten. Die dazugehorige man-Page gibt Ihnen dazu genauer Auskunft.Um Ihre WLAN Karte automatisch beim Start des Systems initialisieren zu lassen, haben Sie die Moglich-keit, die entsprechenden Optionen entweder global in der Datei/etc/sysconfig/network/wireless zusetzen, oder fur jedes Interface einzeln in der jeweiligen Konfigurationsdateiifcfg-xxxxx, wie oben be-schrieben.

131

Page 132: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

14.11. ALSA - Advanced Linux Sound Architecture

Soundkarten unter Linux zum laufen zu bringen ist gewohnlich gar nicht schwer. Die meisten User be-nutzen die in der Standarddistribution mitgelieferten Module. In manchen Fallen gestaltet sich dies jedochunmoglich –

• Wenn Sie eine Soundkarte Ihr eigen nennen, die so neu ist, dass sie weder im Kernel, noch in denmitgelieferten Zusatzmodulen unterstutzt wird

• Wenn Sie einen neuen Kernel installieren

In beiden Fallen werden Sie nicht umhin kommen, die Treiber fur Ihre Soundkarte manuell hinzuzufugen.Dabei hilft Ihnen das sogenannte ALSA-System. ALSA steht fur “Advanced Linux Sound Architecture”.Sie konnen im Internet nachsehen, welche Soundkarten unter ALSA unterstutzt werden. EineUbersicht fin-den Sie unter www.alsa-project.org/alsa-doc.

Um ALSA auf Ihrem Linuxcomputer zu installieren mussen Sie 3 Pakete von der ALSA Homepageherunterladen. Achten Sie vor allem bei neueren Soundkarten darauf, auch die aktuellen Ausgaben derPakete zu bekommen. Sie benotigen die Pakete:

alsa-driver Um das Driver-Paket zu installieren, geben Sie nach dem Entpacken die Befehlskette./configure --with-cards=XXXXX --with sequencer=yes;make;make install ein, wobei Siedie ZeichenketteXXXXX mit dem richtigen Modulnamen wie auf der ALSA Webpage beschrieben er-setzen.

alsa-lib installieren mit./configure;make;make install

alsa-utils installieren mit./configure;make;make install

Abschliessend mussen die Module noch bei jedem Rechnerstart mitgeladen werden alsaconf

14.12. Grafikkarten

Fur die meisten Grafikkarten bieten Distributoren wie SuSE standardmassige XServer an. Mit diesen XSer-vern lasst sich meist problemlos arbeiten. Sobald Sie allerdings daran denken, auf Ihrer Linux-Box ein3D-Spiel auszufuhren, kommen Sie schnell an die Grenzen dieser Losung.

Ahnlich wie unter Windows gibts es auch unter Linux die Moglichkeit, die Fahigkeiten einer 3D-Beschleunigerkartevoll auszureizen – schliesslich existiert auch fur Linux eine OpenGL Implementation. Die Einrichtung einer3D-Karte erfordert meist jedoch ein wenig Handarbeit.

Eine weit verbreitete Marke von Grafikkarten ist die GeForce Reihe von NVidida. Weil deren XServeraus lizenzrechtlichen Grunden nicht mit in der SuSE Standarddistribution verteilt werden darf, stellt dieseGrafikkarte ein ideales Beispiel dar, wie man unter Linux neue XServer einbinden kann...

Nvidia

Um Grafikkarten des Herstellers NVidia korrekt einzubinden laden Sie sich zuerst von der NVidia-Homepagedie aktuellen Treiber herunter. Diese werden ausgeliefert in zwei Paketen:

1. NVIDIA_kernel-version.tar.gz

132

Page 133: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14.12. Grafikkarten

2. NVIDIA_GLX-version.tar.gz

Beide Pakete entpacken Sie wie gewohnt mittar xfz filename.tar.gz. Nun liegen die zwei Paketeim Quellcode vor, und Sie mussen sie nur nochubersetzen. Das ist natig, weil NVidia die Hardwarebe-schleunigung mit Kernelunterstutzung realisiert hat, und sie die notigen Module passend zu Ihrem Kernelkompilieren mussen. Dies erledigen Sie durch:

˜/# cd NVIDIA_kernel-version˜/NVIDIA_kernel-version# make install˜/NVIDIA_kernel-version# cd ..˜/# cd NVIDIA_GLX-version˜/NVIDIA_GLX-version# make install

Jetzt sind beide Paketeubersetzt und einsatzbereit. Sie stellen Ihren aktuellen XServer auf den neuen um,indem Sie im Runlevel 3 die Konfigurationsdatei/etc/X11/XF86Config abandern.

Sie bessern innerhalb der Section “Device” aus:Driver "nvidia". Innerhalb der Section “Module”muss stehen:Load "glx" und auf keinen FallLoad "dri" oder Load "GLcore".

Nun ist Ihre Karte fertig eingerichtet, und Sie konnen Ihrem Laster von nun an auch unter Linux frohnen!

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

133

Page 134: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

14. Hardware

134

Page 135: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

15. LVM - Logical Volume Manager

Wer kennt ihn nicht, den Server, der kurz nach seinerUbernahme in das Produktionsumfelduber sich hin-auswachst und sich plotzlich ganz anderen Anforderungen gegenubergestellt sieht, als zunachst geplant. Fle-xiblie Abhilfe bezuglich Dateisystemplatz schafft hier der Logical Volume Manager (LVM), der bei SuSELinux bereits seit mehreren Distributionen zum Lieferumfang gehort und mittlerweile zuverlassig grafischkonfiguriert werden kann.

Lernziele

In diesem Kapitel lernen Sie,

• die Funktionsweise des Logical Volume Managers und dessen Einsatzgebiete kennen,

• RAID Systeme von LVM Implementierungen abzugrenzen,

• den Logical Volume Manager zu konfigurieren.

15.1. Grundlagen

Bevor auf die Konfiguration und spezifische Kommandos des LVM eingegangen werden kann, mussenzunachst die Funktion und einige grundlegende Begriffe geklart werden.

Volume Management heißt, dass zunachst eine abstrakte Ebeneuber dem physikalischen Speicher erzeugtwird, deren Verwaltungubernimmt der sogenannte Logical Volume Managerubernimmt. Dadurch wird diehardwareseitige Speicherbereitstellung vollstandig vom softwareseitigen Speichermanagement entkoppelt.Dies hat zur Folge, dass flexibleAnderungen in beiden Ebenen moglich werden, ohne dass die jeweilsandere davon beeintrachtigt wird.

15.1.1. Funktion und Begriffe

ohne LVM: wie gewohnt gibt es physikalische Laufwerke mit Partitionen. Auf diese wird entwederuberDateisysteme oder ohne Benutzung des Kernelcaches und Dateisystemtreiber zugegriffen (sog. raw).

mit LVM: zwischen die physikalischen Laufwerke, auch Physical Volumes genannt, und den Partitionenwird eine abstrakte Schicht mit sogenannten Volume Gruppen eingezogen. Eine solche besteht alsoaus einer Gruppierung von nahezu beliebigen physikalischen Speicher. Aus der Sicht des Systemshandelt es sich hierbei um ein physikalisches Laufwerk, obwohl es in der Regel aus mehreren zusam-men gruppiert ist. Die Volume Group wird jetzt in Logical Volumes unterteilt, wobei jedes einzelneals Partition betrachtet und behandelt werden kann.

135

Page 136: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

15. LVM - Logical Volume Manager

15.1.2. Einsatzgebiete

Flexibilit at: Im laufenden Betrieb konnen Logical Volumes ohne weiteres vergroßert werden. Bei entspre-chender Unterstutzung durch das Dateisystem kann der neue Speicherplatz sofort ohne Betriebsunter-brechung benutzt werden. Anwendungen und User bemerken diesen Vorgang nicht. Da die Verwal-tungsinformationen des LVM auf den einzelnen physikalischen Devices abgelegt sind, konnen sichdie eigentlichen Devicenamen z.B. durch den Ein- / Umbau weiterer Plattenandern, ohne dass hierausProbleme entstehen.

HA-Systeme: Die Verwaltung einer Volume Group und der Logical Volumes kann geschehen, wahrenddiese vom System genutzt werden. So ist es beispielsweise durch die vollstandige Trennung vonlogischem und physikalischen Speicher moglich, wahrend des Lese- und Schreibzugriffs samtlichephysikalische Speichermedien zu tauschen. Daruber hinaus ist es denkbar, im laufenden Betrieb denlogischen Speicher an einen anderen physikalischen Ort zu verschieben.

Snapshots: Ein Snapshot Device ist ein Alias fur ein bestehendes Logical Volume und stellt ein Abbild(nur Lesezugriff) desselben zum Zeitpunkt des Snapshots dar. Diese Funktionalitat ist in der LVMAbstraktionsschicht implementiert und damit softwareunabhangig. Dies ermoglicht Sicherungslaufe,die den normalen Betrieb des Systems kaum beeintrachtigen.

Concatenation und Striping: Wie bereits weiter oben beschrieben, besteht mit LVM die Moglichkeit meh-rere Speichersubsysteme zu einer Volume Group zusammenzufassen. Die darauf angelegten LogicalVolumes konnen jetzt in zwei Art und Weisen angelegt werden. Zum einen verkettet, also linear hin-tereinander, oder abschnittsweise verteiltuber die Physical Volumes des Speicherpools. Mit letzteremwird zudem der Datenfluss beschleunigt, da die physikalischen Devices abwechselnd in Anspruchgenommen werden.

Shared Storage Cluster Option: Die Verwaltungsinformationen des LVM sind auf den physikalischenGeraten gespeichert. Beim Booten werden alle dem System bekannten Physical Volumes initialisiert,eventuelle LVM Konfigurationen ausgelesen und dementsprechend ins System integriert. Daher mussLVM in einem gemeinsamen Speichercluster nur einmal aufgesetzt werden. Allerdings fehlt noch einvolliges Clusterbewusstsein, weil die Konfigurationsinformationen nicht ohne Neustart an die Knotenverteilt werden.

15.1.3. Verwaltung und Beschr ankungen

Jedes Physical Volume (PV) ist in Physical Extents (PE) von gleicher Große unterteilt. Diese ist zwargrundsatzlich variierbar innerhalb einer Volume Group jedoch gleich. Jede PE bekommt eine ID zugewie-sen. Ein PE ist die kleinste Einheit, die vom LVM auf der physikalischen Ebene adressiert werden kann.

Jedes Logical Volume (LV) ist in Logical Extents (LE) aufgeteilt, die die gleiche Große wie die PEshaben. Jedem LE wirduber eine Tabelle genau ein PE zugewiesen. Dieser Vorgang heißt Mapping und bringteinen gewissen Zeitaufwand mit, der bei jedem Lese- und Schreibzugriff entsteht. Allerdings ist dieser imVergleich zur Reaktionszeit der Festplatte vernachlassigbar klein, da die wesentlichen Informationen imCache vorgehalten werden.

Die bereits erwahnten Verwaltungsinformationen werden auf jedem PV im sogenannten VGDA abgelegt.Hier wird im wesentlichen neben der Mapping Tabelle, die Zugehorigkeit des PV zur Volume Group unddie Große eines PE gespeichert.

136

Page 137: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

15.2. Konfiguration

15.1.4. Abgrenzung von RAID Systemen

Grundsatzlich ist das Logical Volume Management kein Ersatz fur RAID. RAID Systeme sind sehr hard-warenah implementiert und demzufolge von einem bestimmten Controller / Speichersubsystem abhangig.Je nach Konfiguration soll es vor einem Ausfall der Platten schutzen oder den Datendurchsatz erhohen.

Vorteile des LVM sind bereits weiter oben genannt worden und ergeben sich vor allem aus den Erklarun-gen zur HA und der aus LVM resultierenden Flexibilitat, was das Speichermanagement anbelangt.

Ein konkretes Beispiel soll noch einmal klar LVM von RAID abgrenzen. Angenommen ein RAID Arrayist bereits mit der vollen Anzahl an Platten bestuckt. Ohne die Trennung von logischem und physikalischemSpeicher ist es in diesem Fall nicht mehr moglich, den Plattenplatz fur den Benutzer / die Anwendungentransparent zu erweitern. Das Problem ergibt sich daraus, dass die in einem RAID Array zusammengefasstenPlatten an einem Controller hangen mussen. Mit LVM spielt die physikalische Anordnung der Laufwerkehingegen keine Rolle. Zudem musste der Rechner bei einerAnderung der SCSI Controller Konfigurati-on heruntergefahren werden. Mit LVM kann der Betrieb ununterbrochen fortgesetzt werden. Es sei nocheinmal betont: LVM bietet nicht unbedingt Schutz gegen Datenverlust nach einem Plattenausfall. Zu Be-denken ist die Implementierung des LVM in Software, die zwar systemnah arbeitet aber eben doch von derHardwareebene abstrahiert ist.

15.2. Konfiguration

Die Konfiguration des LVM kann sowohl mit einzelnen Kommandos in der Shell, als auch mit YaST2 vor-genommen werden. Im folgenden soll die grundsatzliche Vorgehensweise erlautert werden. Eine detaillierteDokumentation finden Sie im LVM HowTo oder im von SuSE veroffentlichten Whitepaper.

15.2.1. Vorgehensweise

Jede LVM Konfiguration setzt sich aus drei Teilschritten zusammen (eine ordentliche Konzeption sollte demvorausgegangen sein).

• Initialisierung der Physical Volumes,

• Definition der Volume Group,

• Einrichtung der Logical Volumes.

15.2.2. Physical Volumes

Bei Physical Volumes kann es sich um Partitionen (vom Typ 8E), um vollig unpartitionierten Plattenplatzund um RAID-Systeme handeln. Beim Anlegen des PV wird eine einzigartige LVM ID generiert und zusam-men mit anderen Verwaltungsinformationen in die ersten Sektoren der Partition / Platte geschrieben. Spaterwird diese stets ausgelesen und somit beispielsweise das Mapping zwischen LEs und PVs umgesetzt. BeimVerwenden von ganzen Platten ist es unumganglich, dass diese keine Partitionstabelle aufweisen und nichtnur einfach eine leere. Mit folgendem Befehl kann dies bewerkstelligt werden.

Vorsicht!

dd if=/dev/zero of=/dev/[device name of disk] bs=1k count=1

137

Page 138: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

15. LVM - Logical Volume Manager

15.2.3. Volume Group

Jedes PV wird nach dem Anlegen einer Volume Group zugeordnet. Diese Konfiguration wird ebenfalls inden LVM Verwaltungsinformationen festgehalten.

15.2.4. Logical Volume

Das Anlegen der Logical Volumes ist der letzte Schritt bezuglich der LVM Konfiguration und entsprichtdem bereits bekannten Anlegen von Partitionen. Spater erfolgt der Zugriff auf diese mit Hilfe von DeviceDateien, so wie Sie es bisher aus dem Umgang mit herkommlichen Geraten gewohnt waren.

15.2.5. Dateisysteme

Damit sind die Platten jedoch noch nicht bzw. nur raw benutzbar. Letztendlich mussen auf den LVs nochDateisysteme angelegt und Mountpoints im Root-Dateisystem vorgesehen werden.

15.3. Administration

Im folgenden werden einige Befehle aufgezeigt, die der administrativen Verwaltung dienen. Diese stellenbei weitem nicht alle Moglichkeiten eines Logical Volume Managers dar. Weitere Informationen finden sichim Whitepaper von SuSE.

Im Beispiel heißt die Volume Group vgsystem und das Logical Volume lvhome. Es wird davon ausge-gangen, dass eine IDE Platte hdb in das System eingebaut und vom BIOS korrekt erkannt wird.

Erweitern einer Volume Group

vgextend /dev/vg_system /dev/hdb

Vergr oßern eines Logical Volumes

lvextend -L +1000M /dev/vg_system/lv_homeresize_reiserfs /dev/vg_system/lv_home

Verkleinern einer Partition

umount /homereiserfsck -check /dev/vg_system/lv_homeresize_reiserfs -s -1000M /dev/vg_system/lv_homelvreduce -L -1000M /dev/vg_system/lv_homemount /home

Verkleinern einer Volume Group

vgreduce /dev/vg_system /dev/hdb

138

Page 139: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

15.3. Administration

Entfernen eines Logical Volumes

umount /usr/ora_vznlvscanlvchange -a n /dev/vg_oracle/lv_ora_vznlvscanlvremove /dev/vg_oracle/lv_ora_vzn

Entfernen einer Volume Group

vgdisplayvgchange -a n vg_oraclevgdisplayvgremove vg_oracle

Anlegen einer Volume Group

vgcreate -s 32M -v vg_oracle /dev/sdb1lvcreate -n lv_ora_vzn -L 200G -v vg_oraclelvdisplay /dev/vg_oracle/lv_ora_vzn

Anlegen eines Dateisystems

mkreiserfs /dev/vg_oracle/lv_ora_vzn

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

139

Page 140: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

15. LVM - Logical Volume Manager

140

Page 141: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

Dieses etwas knapp geratene Kapitel zur Administration umfasst nicht viel mehr als die Benutzer- und Grup-penverwaltung. Kein sehr spannendes Thema, aber doch ein wesentlicher Bestandteil des Gesamtsystemsohne dem ein vernunftiger Betrieb eines Multiusersystems nicht moglich ware.

Lernziele

In diesem Kapitel lernen Sie,

• neue Benutzer und Gruppen anzulegen,

• bestehende Beutzer- und Gruppeneinstellungen zuandern,

• bereits eingetragene Benutzer und Gruppen zu loschen,

• due zugehorigen Systemdateien kennen.

16.1. Systemverwalter

Die Administration des Systems umfasst in erster Linie die Benutzer- und Gruppenverwaltung. Solcher-lei Eingriffe in das System bedurfen bestimmter Rechte, die nur der Benutzer root hat. Dieser darf imAllgemeinen alles. Deswegen ist es notwendig, dass insbesondere, wenn man als root angemeldet ist, be-sondere Umsicht walten lasst. Man kann sich sowohl gleich als root einloggen, als auch mit dem Befehlsu nachtraglich root Rechte erhalten. Außerdem ist es mitsu [Benutzername] moglich, sich als andererBenutzer am System anzumelden. Erganzt man beim Kommandoaufruf ein -, so werden auch alle Umge-bungsvariablen dem neuen Account angepasst. Die derzeitigen Rechte sind an der Symbolik des Prompteszu erkennen. Ein # steht hier fur die privilegierte shell mit root Rechten. Fur großere Arbeiten am System istes sicherlich sinnvoll, sich gleich als root am System anzumelden. Eine Sicherheitslucke wurde sich hinge-gen bei andauernder Benutzung des root Accounts auftun, die leicht vermieden werden kann, solange mandiszipliniert am System arbeitet.

16.2. Login- und Systemsicherheit

Viele Einstellungen, die den Login und die Systemsicherheit betreffen, werden in der Datei/etc/login.defskonfiguriert. Diese ist jedoch so gut kommentiert, das weitere Erlauterungen kaum notwendig sind.

16.2.1. Name Service Cache Daemon

Der NSCD ist ein Daemonprozess, der einen Cache fur viele derublichen Namensanfragen bereithalt. Diezentrale Konfigurationsdatei findet sich unter/etc/nscd.conf und trifft vorallem Einstellungen bezuglichder gepufferten Dateien und deren Vorhaltezeit im Cache.

141

Page 142: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

16.3. Wichtige Systemdateien

Das System verwaltet die Informationenuber die einzelnen Benutzer bzw. Gruppen in den Konfigurationsda-teien/etc/passwd, /etc/shadow und/etc/group. Es ist moglich, diese Dateien mit einem Editor selbstzu editieren, da es sich hierbei um reine Textdateien handelt. Dabei muss man naturlich mit einer gewis-sen Vorsicht umgehen, da Linux ein bestimmtes Format der angesprochenen Dateien erwartet. Sollte dieserAufbau nicht korrekt sein, konnen die Dateien nur noch teilweise oder gar nicht mehr ausgewertet werden.So sollte beispielsweise der Zeilenumbruch in der letzten Zeile nicht vergessen werden. Eine fehleranfalligemanuelle Bearbeitung der zugrunde liegenden Dateien ist vor dem Hintergrund der zur Verfugung stehendendurchaus komfortablen Tools also nicht zu empfehlen.

16.4. Konfigurationstools

Unter Linux haben Sie fur ein- und dieselbe Sache sehr oft nicht nur ein Konfigurationstool zur Hand. Au-ßerdem konnten Sie samtliche Einstellungen auch per Hand vornehmen. Deshalb zunachst ein paar Regeln,die Ihnen das Leben bei der Konfiguration erleichtern.

• Konfigurationen, die mit einem vertrauenswurdigen Tool durchgefuhrt werden konnen, sollten nichtvon Hand in die entsprechenden Dateien eingetragen werden.

• Ist ein Teilaspekt des Systems mit einem bestimmten Werkzeug konfiguriert worden, sollten dieseEinstellungen wieder mit demselben Tool verandert werden.

• Dokumentieren Sie umfangreicheAnderungen am System mit, damit Sie bei einer spateren Neuin-stallation nicht wieder vor demselben Problem stehen.

• Bevor SieAnderungen direkt in einer der zahlreichen Konfigurationsdateien durchfuhren, sichern Siedas Original. Fuhren Sie danach den Befehl SuSEconfig aus, damit alle abhangigen Dateien mit denneuen Einstellungen versorgt werden.

• Gehen Sie erst von einer korrekten Konfiguration aus, wenn Sie das System komplett durchgestartethaben.

16.4.1. YaST2 Kontrollzentrum

YaST2 steht grundsatzlich sowohl textbasiert als auch grafisch zur Verfugung. Beide Varianten nehmen sichletztendlich in der Funktionalitat nichts. Die Konfigurationsmoglichkeiten, die das YaST2 Kontrollzentrumund seine Module bieten, werden von Version zu Version ausgefeilter. Dennoch kann YaST2 in seiner heuti-gen Form YaST1 noch nicht vollstandig ersetzen, da noch wenige Funktionen fehlen. Die Dialoggestaltungist derweil bereits an vielen Stellen so intuitiv, dass der Anwender in der Regel ohne großere Schwierigkeitenmit diesem Werkzeug zurecht kommt

16.4.2. Sax2

Mit diesen beiden Tools wird der X Server eingerichtet, wenn dies nicht bereits wahrend der Installationgeschehen ist. Dabei greifen beide Programme auf eine umfangreiche Hardwaredatenbank zu und versuchenso, die installierten Komponenten korrekt zu erkennen, was in der Regel problemlos klappt. Sollten einzelneEinstellungen nicht richtig vorgenommen worden sein, so konnen Sie hier manuell nachsteuern. Der letzteund wichtigste Schritt ist der Text des X Servers. Nur wenn dieser korrekt gestartet werden kann und keine

142

Page 143: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.4. Konfigurationstools

Darstellungsfehler aufweist, konnen Sie danach das X Window System starten. Sax2 ist demalteren Sax inder Regel vorzuziehen. Fuhren Sie jedoch eine einmal begonnene Konfiguration in jedem Fall zu Ende, dasonst falsche Eintrage in die Konfigurationsdateien geschrieben werden.

16.4.3. KDE Kontrollzentrum

Das KDE Kontrollzentrumahnelt der Systemsteuerung unter Windows. Die hier angebotenen Moglichkeitensind sehr umfangreich und ermoglichen es dem einzelnen Anwender, seinen eigenen Desktop bis zur Un-kenntlichkeit zu verstellen. Mit einigen Optionen kann man den Linux Desktop auch dem Windows-Systemangleichen. Andere Einstellmoglichkeiten sind das Verhalten der Task-Leiste, der Bildschirmhintergrund,die virtuellen Desktops, die Eingabegerate Maus und Tastatur, der Bildschirmschoner uvm.

16.4.4. Webmin

All diese Konfigurationsmittel haben entschiedene Nachteile:

• Es gestaltet sich sehr schwer, diese Tools sinnvoll zu verwenden, wenn man nicht direkt vor demRechner sitzt, den man konfigurieren will. Diese Lucke schliesst Webmin, denn man kann es vonjedem Computer aus, derubers Netzwerk angeschlossen ist, mittels eines Browsers ansprechen.

• Der Funktionsumfang der meisten Tools ist sehr stark eingeschrankt. Webmin besitzt einen großenUmfang an mitgelieferten Oberflachen. Von MySQL und Sambauber NIS bis ProFTP - alle Dienstewerden unterstutzt, auch zusatzliche Plugins fur nicht direkt unterstutzte Dienste (z.B. Tomcat) sindfrei erhaltlich.

• Die Bedienung verlauft komplett grafisch im Gegensatz zu den meisten anderen Einrichtungstools(z.B. YaST)

• Webmin nimmt alle Verwaltungsmoglichkeiten unter einen Hut, und macht somit doppelte Benut-zerverwaltungen und Passwortlisten unnotig. Zusatztools wie zum Beispiel myAdmin oder SWATwerden dadurchuberflussig.

Installation

Webmin ist nicht Bestandteil der SuSE Distribution, trotzdem gestaltet sich die Installation von Webmindenkbar einfach. Voraussetzung ist, dass Sie die das aktuelle .tar.gz Paket von www.webmin.com herunter-laden. Sie mussen nur die folgenden Schritte als Root ausfuhren:

1. Entpacken Sie das Archiv mittar xzf webmin-0.9x.tar.gz .

2. Rufen Sie./setup.sh im Verzeichniswebmin-0.9x/ auf.

3. Beantworten Sie die Fragen, die das Skript an Sie stellt nach Ihren Wunschen.

Benutzung

Sie konnen nun Webmin von jedem Browser aus aufrufen indem Sie die URLhttp://Rechnername:10000aufrufen, wobei Rechnername der Name des Rechners ist, auf dem Sie Webmin installiert haben. Daraufhinwerden Sie dazu aufgeforert, den bei der Installation vergebenen Usernamen und Passwort einzugeben. Nunkonnen Sie Webmin zum Einrichten des Rechners verwenden.

143

Page 144: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

16.5. Benutzerverwaltung

Um am System arbeiten zu konnen, benotigt ein Anwender einen Benutzernamen und ein Passwort. DieseKennung und ein bestimmter dem Benutzer zugeordneter Bereich fur die Datenablage wird in der Regeldurch den Administrator eingerichtet. Wie bereits angesprochen werden die Informationen von Linux inTextdateien gespeichert, in die im folgenden ein tieferer Einblick gewonnen werden soll.

Die Passworter aller Benutzer werden in der Datei/etc/passwd gespeichert. Diese Datei wird beimEinloggen eines Benutzers vom System gelesen und ausgewertet. Sie beinhaltet durch einen Doppelpunktvoneinander getrennte Felder, wie in Tabelle16.1auf Seite144beschrieben.

Feldname FunktionBenutzername Der Name eines Benutzers wird vom Administrator festgelegt, der

sich jedoch an bestimmte Namenskonventionen halten muss. Die Min-deslange betragt zwei Zeichen, die Hochstlange acht Zeichen. Er darfkeinen Doppelpunkt und keine Zeilenschaltung enthalten.

Passwort In fruheren Versionen stand an dieser Stelle einmal das verschlussel-te Passwort. Dieses ist jedoch aus Sicherheitsgrunden in die Datei/etc/shadow verlagert worden.

BenutzerID Hier steht eine, innerhalb des lokalen Rechners, eindeutige numerischeBenutzernummer (UID fur UserID), da das System in der Regel nichtmit Namen sondern mit Nummern arbeitet. Diese muss eine nicht nega-tive ganze Zahl sein, wobei die Null an root vergeben ist, die Nummerneins bis 99 fur systemseitig angelegte Benutzer reserviert sind und dieNummernuber 500 von Linux fur normale Benutzer vorgesehen sind.Es ist zwar moglich mehreren Benutzernamen eine UID zuzuordnen, furdas System handelt es sich in diesem Fall um einen Benutzer.

GruppenID Die Zahl kennzeichnet die primare Zugehorigkeit des Benutzers zu einerGruppe. Auch hier wird eine ganze positive Zahl vergeben. Benutzer mitderselben GID, gehoren der gleichen Gruppe mit denselben Rechten an.Was sich genau hinter einer bestimmten GID verbirgt, wird in der Datei/etc/group beschrieben.

Kommentar Dieses Feld enthalt in der Regel eine genauere Beschreibung des Benut-zers, beispielsweise den vollen Namen.

Home-Verzeichnis Die Angabe des Homeverzeichnisses, das zugleich das Arbeitsverzeich-nis des Benutzers darstellt, besteht aus einer absoluten Pfadangabe.Nach dem Anmelden befindet sich der Benutzer innerhalb dieses Ver-zeichnisses, wobei esublich ist, fur jeden Benutzer einen gesondertenOrdner unterhalb von /home zu erstellen, in dem dieser alle Rechte be-sitzt.

Shell An dieser Stelle wird festgelegt, mit welchem Kommandointerpreter derBenutzer nach der Anmeldung konfrontiert wird. Es ist auch moglich andieser Stelle den Pfad eines ausfuhrbaren Programms anzugeben, wel-ches dann automatisch gestartet wird sobald sich der Benutzer anmeldet.

Tabelle 16.1.:Einstellungen in der /etc/passwd

144

Page 145: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.5. Benutzerverwaltung

Wie bereits angesprochen werden die Passworter der Benutzer in der Datei/etc/shadow verwaltet. Auch diese Datei basiert auf Text und enthalt durch Doppelpunkt getrennte Felder.Sie ist nicht fur den Benutzer lesbar, sondern allein der Administrator hat samtliche Rechte auf dieser Datei.Der Inhalt ist in Tabelle16.2auf Seite145beschrieben.

Feldname FunktionBenutzername Dieser Eintrag entspricht dem in der Datei/etc/passwd.Passwort Dieses Feld beinhaltet das verschlusselte Passwort des Be-

nutzers.Anderungsdatum Hier steht die Anzahl der Tage, die seit dem 01.01.1970

und dem Datum, an dem das Passwort zuletzt geandertwurde, vergangen sind.

Minimale Anzahl von Ta-gen, an denen das Pass-wort gultig ist.

Erst nach Ablauf kann ein Benutzer das Passwortandern.Dies verhindert, dass ein geandertes Passwort vom Benut-zer gleich wieder zuruckgesetzt wird.

Maximale Anzahl von Ta-gen, an denen das Pass-wort gultig ist.

Nach Ablauf dieser Anzahl Tage muss der Benutzer seinPasswortandern.

Warntage Dieses Feld enthalt die Anzahl der Tage, an denen der Be-nutzer eine Warnung erhalt, dass er sein fast abgelaufenesPasswort baldandern muss. Die Meldung erscheint in derRegel beim Abmelden.

Inaktivsetzen des Pass-wortes

Die Anzahl der Tage, nach deren Ablauf der Account au-tomatisch gespeert wird, wenn sich der Benutzer nicht an-gemeldet hat, wird in diesem Feld festgelegt.

Ablaufdatum Dieses Feld enthalt die Anzahl der Tage, nach denen dieGultigkeit des Accounts ablauft. Das Datum wird durch dieAnzahl der seit dem 01.01.1970 vergangenen Tage darge-stellt.

Tabelle 16.2.:Felder in der /etc/shadow

16.5.1. Befehle zur Benutzerverwaltung

Wie bereits angesprochen, sollte aufgrund der hohen Fehleranfalligkeit die manuelle Bearbeitung der Konfi-gurationsdateien vermieden werden, solange entsprechend machtige Befehle zur Verfugung stehen. Fur dasAnlegen eines neuen Benutzers greift das System auf hinterlegte Standardeinstellungen, die mit dem Befehluseradd -D angezeigt werden konnen, zuruck, sofern nichts anderes angegeben wird. Diese Einstellungenwerden der Datei/etc/default/useradd entnommen.

Die gelisteten Eintrage haben folgende Bedeutung. Neue Benutzer werden per Standardeinstellung derGruppe mit der GID 100 zugeordnet. Normalerweise handelt es sich hierbei um die Gruppe Users. DieHomedirectories neuer Benutzer werden unter/home angelegt und erhalten als Verzeichnisnamen den Na-men des Benutzers. Der Account wird nicht auf inaktiv gesetzt, sollte sich der Benutzer eine langerer Zeitnicht anmelden. Zudem wird der Account nie ablaufen. Neue Benutzer erhalten die bash als Kommandoin-terpreter nach der Anmeldung zugeteilt. Beim Anlegen der Homedirectories werden die Vorlagedateien aus/etc/skel kopiert. ZumAndern der Voreinstellungen wird ebenfalls der Befehluseradd -D, durch weitere

145

Page 146: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

Optionen erganzt, verwendet (z.B.useradd -D [-g GID] [-b Verzeichnis] [-s Shell] [-f Tage] [-e mm/dd/yy]).Wann immer mit dem Kommando useradd Voreinstellungen angesehen oder verandert werden sollen, wirdneben weiteren Optionen immer die Option -D fur default benotigt. Ohne diesen Zusatz wirduseradd be-nutzt, um weitere Benutzer anzulegen.Dabei lautet die Syntax:useradd [-m [-k Verzeichnis]] [-u UID] [-o] [-s shell] [-g GID][-G GID,GID,...] [-d Verzeichnis] [-e Datum] [-f Tage] [-c ‘‘Kommentar’’]Benutzername

Die Optionen haben dabei die Bedeutung aus Tabelle16.3auf Seite146.

Option Bedeutung-m Das Homedirectory des Benutzers wird automatisch ange-

legt. Die Vorlagedateien werden dabei aus dem Standard-vorlageverzeichnis kopiert.

-m -k Verzeichnis Das Homedirectory des Benutzers wird automatisch ange-legt. Die Vorlagedateien werden dabei aus dem angegebe-nen Verzeichnis kopiert.

-u UID Der eindeutige numerische Wert der BenutzerID. Stan-dardmaßig wurde der erste freie Wert großer als 99, alsonach den Systemkennungen, verwendet.

-u UID -o Der numerische Wert der BenutzerID, allerdings darf dieNummer bereits vorhanden sein.

-s Shell Der Name der Shell oder des Startprogramms des Benut-zers. Fehlt diese Option wird die Standardshellubernom-men.

-g GID Gibt die primare Gruppe zu der ein Benutzer gehort an.Es kann sowohl der numerische Wert als auch der Grup-pename angegeben werden. Allerdings muss diese Gruppebereits vorhanden sein.

-G GID,GID,... Eine Liste weiterer Gruppen, zu denen der Benutzergehoren kann. Die Listeneintrage werden nur durch Kom-mata getrennt aneinandergereiht. Es gelten dieselben Be-dingungen wie bei der primaren Gruppe.

-d Verzeichnis Das automatisch erstellte Homeverzeichnis des Benutzers,wenn dafur nicht der in den Standardvorgaben enthaltenePfad verwendet werden soll.

-e mm/dd/yy Das Datum, ab welchem sich der Benutzer nicht mehr an-melden darf.

-f Tage Die Anzahl an Tagen, nach denen der Account gesperrtwird, wenn sich der Benutzer nicht mehr angemeldet hat.

-c ”Kommentar” Kommentar zum Benutzereintrag, in der Regel eine nahereBeschreibung des Benutzers.

Tabelle 16.3.:Parameter von useradd

Sollen die Benutzereinstellungen geandert werden, steht das Kommandousermod dafur bereit. Dieses

146

Page 147: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.5. Benutzerverwaltung

Feldname FunktionGruppenname Der Name einer Gruppe wird vom Administrator festgelegt. Er

darf die Hochstlange von acht Zeichen nichtuberschreiten, kei-nen Doppelpunkt und auch keine Zeilenschaltung enthalten.

Gruppenpasswort Das verschlusselte Passwort der Gruppe ist an dieser Stelle ab-gelegt. Die Verwendung dieses Passwortmechanismus ist jedochaußerst unublich.

GruppenID In diesem Feld wird dem Gruppennamen eine eindeutige nume-rische Gruppennummer (GID fur GroupID) zugeordnet, da dasSystem nicht mit Namen sondern mit Nummern arbeitet. Num-mern zwischen null und 99 sind fur Systemgruppen reserviert.In der Regel werden also Nummern zwischen 100 und 1000aufwarts fur Gruppen verwendet.

Benutzerliste Hier werden die zur Gruppe gehorenden Benutzer eingetragen.Die Zugehorigkeit eines Benutzer zur primaren Gruppe wurde be-reits in der Datei/etc/passwd hinterlegt, wahrend weitere Grup-penzugehorigkeiten fur eventuelle sekundar Gruppen hier festge-halten sind.

Tabelle 16.4.:/etc/group aufgeschlusselt

weist dieselben Optionen wie das eben beschriebeneuseradd auf. Das Kommandouserdel loscht einennicht mehr benotigten Benutzer. Die Syntax lautetuserdel -r Benutzername. Die Option -r bewirkt, dassauch das Homeverzeichnis des angegebenen Benutzers geloscht wird. Hierbei ist Vorsicht geboten, da sichalle personlichen Daten hierin befinden und diese nach dem Loschen unwiderruflich verloren sind.

16.5.2. Gruppenverwaltung

Wenn Benutzer zu Gruppen zusammengefasst werden, muss die GID der Benutzerubereinstimmen und esmuss ein entsprechender Eintrag in der Datei/etc/group vorhanden sein, da sonst die Gruppe nicht vomSystem erkannt wird. In jeder Zeile dieser Datei steht wiederum genau eine Gruppe, wobei jede Zeile vierdurch Doppelpunkt voneinander getrennte Felder enthalt, wie in Tabelle16.4auf Seite147erlautert.

16.5.3. Befehle zur Gruppenverwaltung

Ahnlich wie bereits angesprochen, werden auch die Gruppen verwaltet. Das Kommando, um eine neueGruppe hinzuzufugen, lautetgroupadd. Die Syntaxgroupadd [-g GID [-o]] Gruppenname. Die Parameter sind in Tabelle16.5auf Seite148.

Auch Gruppen konnen nachtraglich geandert werden. Der entsprechende Befehl lautetgroupmod undumfasst abgesehen von -n dieselben Optionen wie das Kommandogroupadd. Mit -n NeuerName kann derGruppenname verandert werden.

groupmod [-g GID [-o]] [-n NeuerName] Gruppenname

Mit dem Kommandogroupdel konnen Gruppen wieder geloscht werden. Die Syntax ist sehr einfach undsieht folgendermaßen aus.groupdel Gruppenname. Zu beachten ist allerdings, dass nur Gruppen geloscht

147

Page 148: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

Option Bedeutungkeine Option Das System verwendet als GID die großte bereits vorhandene GID und

addiert eins dazu. Nicht zu vergessen sind hierbei auch wieder die furSystemgruppen reservierten Nummern von 0 bis 99.

-g GID Der neuen Gruppe wird die angegebene numerische GID zugewiesen.-g GID -e Die verwendete GID ist bereits vorhanden und wird mehrfach belegt.

Tabelle 16.5.:groupadd Parameter

Feldname InformationsgehaltName BenutzernameStatus L steht fur locked (gespeertes Passwort) P steht fur password (gultiges

Passwort) NP steht fur no password (kein Passwort gesetzt)mm/dd/yy Datum, an dem das Passwort zuletzt geandert wurdeMin Mindestanzahl Tage zwischen PasswortanderungenMax Hochstanzahl Tage zwischen zwei PasswortanderungenWarn Anzahl Tage vor Passwortablauf, an denen der Benutzer eine entspre-

chende Warnmeldung erhaltInactive Anzahl der Tage, nach denen das Benutzerkonto ablauft, wenn der Be-

nutzer sich nicht angemeldet hat

Tabelle 16.6.:passwd Ausgabe

werden konnen, die nicht primare Gruppe eines Benutzers sind. In diesem Fall mussten erst allen Mitglie-dern eine neue primare Gruppe zugewiesen werden. Diese Regelung ist eine notwendige Einschrankung umsicherzustellen, dass jeder Benuter Mitglied einer primaren Gruppe ist.

16.5.4. Passwortverwaltung und -alterung

Einem Passwort ist stets eine besondere Bedeutung beizumessen, da es maßgeblich fur die Sicherheit imSystem ist. Der Passwortstatus eines Benutzers kann mit dem Befehl passwd abgefragt werden. Die Syntaxlautetpasswd -S Benutzername.

Die Ausgabe ist wie in Tabelle16.6auf Seite148zu interpretieren.Nach dem Anlegen einen neuen Benutzers mit den weiter oben beschriebenen Befehlen ist dessen Pass-

wortstatus Locked, d.h. der Benutzer kann sich nicht anmelden, bis ihm ein Passwort gesetzt wurde.Auch zumandern eines Passwortes oder zumAndern von Passwortmerkmalen ist das Kommando passwd

zustandig, allerdings um weitere Optionen erganzt.Die Syntax lautet

passwd [-f Kommentar] [-s Shell] [-g GID][-x max] [-n min] [-w warn] -l -u -d

Die Optionen haben die Bedeutung wie in Tabelle16.7auf Seite149.Das Passwort muss aus Kontrollgrunden zweimal eingegeben werden. Mit dem Kommandopasswd kann

root auch ein bestehendes Passwortandern, auslesen kann er es hingegen nicht. Vorsicht ist bei der Loschungeines Passworts walten zu lassen, weil sich jetzt jeder ohne Passwortabfrage am System anmelden kann.

148

Page 149: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.6. Drucker - Installation und Verwaltung

Option Bedeutung-f Kommentar Fugt einen Kommentar in die/etc/passwd ein.-s Shell Andert die Anmelde-Shell des Benutzers-g GID Weist einer Gruppe ein Passwort zu.-x max Beschreibt das Feld Hochstanzahl Tage-n min Beschreibt das Feld Mindestanzahl Tage-w warn Setzt die Einstellung fur das Feld Anzahl Tage fur

Warnmeldung-l Setzt das Passwort auf locked (gesperrt)-u setzt den Passworteintrag zuruck auf den Wert, den

es vor der Sperre hatte-d Setzt den Passworteintrag auf leer

Tabelle 16.7.:passwd Parameter

Auch wenn die Befehle fur die Benutzer- und Gruppenverwaltung nicht schwer zu erlernen sind, so istder Umgang mit ihnen nicht gerade komfortabel und zumindest anfanglich eher fehleranfallig. Deswegenwerden in aller Regel die Benutzer mit yast oderuber ein grafisches Tool namens KDE Benutzermanager,der mittlerweile auch zuverlassig arbeitet.

Bei YaST ist anzumerken, dass sich der entsprechende Dialog unter Administration des Systems/Benutzer-und Gruppenverwaltung verbirgt. Die Bedienung des grafischen Tools kuser ist hingegen so intuitiv, dasskeine naheren Erklarungen notwendig sind. Vielleicht nur soviel, dass es weitaus mehr Optionen der Befehleumsetzt als das klassische yast.

Ubungen

• In welcher Datei sind die Standardeinstellungen fur das Anlegen eines Benutzers abgelegt? Wie kannman sich diese anzeigen lassen?

• Mit welchen Kommandos konnen Benutzer bzw. Gruppen angelegt und deren Passworter und derenEinstellungen bearbeitet werden?

• Welche Dateien verbergen sich hinter der Benutzer- und Gruppenverwaltung von Linux?

• Wo wird das Passwort fur einen Benutzer in aller Regel abgelegt und was ist die administrative Be-grundung dafur.

16.6. Drucker - Installation und Verwaltung

In diesem Abschnitt wird auf die Einrichtung eines Druckers unter Linux eingegangen. Zudem wird bespro-chen, wie Druckerwarteschlangen verwaltet und Druckeruberwacht werden konnen.

16.6.1. Installation

Am einfachsten kann ein Drucker mit Hilfe von Yast eingerichtet werden. Starten Sie hierfur yast und wahlenSie im Hauptmenu den Befehl Administration des Systems. Wahlen Sie dann den Unterpunkt Hardware inSystem integrieren und dann den Befehl Drucker konfigurieren.

149

Page 150: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

Im sichoffnenden Fenster konnen Sie folgende Optionen festlegen.

• ob der Drucker farbig angesteuert wird

• den Typ des Druckers

• den Namen des Druckers

• die Papiergroße

• die Schnittstelle

• den Device - Namen

Anschließend wahlen Sie Install, damit die Eintrage in die Konfigurationsdateiubernommen werden.Linux besitzt mit dem apsfilter einen machtigen Filter, der automatisch den Typ einer Datei erkennen,

diese dann bestmoglichst konvertieren und auf dem Drucker ausgeben kann. Linux kennt das PostScript -Format und kann entsprechende Dateien drucken. Da zumeist jedoch kein PostScript - Drucker am Sys-tem angeschlossen ist, wird das Programm Ghostscript zur Interpretation und Konvertierung eingesetzt. DerAnschluss eines Druckers erfolgt in der Regeluber eine parallele Schnittstelle. Wie alle anderen Hardware-komponenten auch, werden diese Schnittstellenuber Geratedateien angesprochen, in diesem Fall/dev/lp0,/dev/lp1 usw.

16.6.2. Warteschlangen

Verwenden Sie den Befehl lpr mit folgender Syntax, um eine Datei auszudrucken.

lpr [-P Drucker] [-# Anzahl] [-J Job] [-T Titel] [-i Leerstellen][-w Spalten] [-hmrs] [-cdfglnptv] dateiname

Die wichtigsten Optionen zum Kommandolpr werden in Tabelle16.8auf Seite151erklart.Die auszudruckende Datei wird nicht direkt ausgedruckt. Die Druckauftrage werden zunachst gespoolt,

d.h. in temporare Dateien zwischengespeichert und vom Druckerdamon gesteuert der Reihe nach abge-arbeitet. Auf diese Weise konnen von verschiedenen Anwendern mehrere Druckauftrage gleichzeitig zumDrucker gesandt werden, ohne dass es zu Konflikten kommt. Der Anwender kann nach Absetzen des Druck-auftrages sofort weiterarbeiten.

Eine Druckerwarteschlange, auch Drucker - Queue genannt, besteht aus einem Eintrag in der Datei/etc/printcap, der die Warteschlange festlegt, und einem Verzeichnis in/var/spool, in das fur jedenDruckauftrag zwei Dateien gestellt werden, die eine fur Daten und die andere fur die Steuerung.

Ein Druckauftrag wird unter Linux in folgenden Schritten abgearbeitet.

• zu druckende Datei wird in das Verzeichnis einer Drucker - Queue kopiert

• eine zugehorige Steuerdatei wird erstellt, die zusammen mit der Datei einen Job bildet

• die Datei wird durch Angaben der Steuerdatei durch einen Filter geschickt, der die Daten entsprechendden Duckeranforderungen konvertiert

• die Datei wir entsprechend der Reihenfolge ihres Eintrags in der Drucker - Queue auf dem Druckerausgegeben

150

Page 151: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.6. Drucker - Installation und Verwaltung

Option Beschreibung-P Drucker gibt den zu verwendenden Drucker an, fehlt die Angabe, wird der Stan-

darddrucker verwendet.-# Anzahl gibt die Anzahl der gewunschten Ausdrucke an.-J Job gibt den Jobnamen zum Ausdruck auf der Kopfseite an, fehlt die Option

wird der Name der auszudruckenden Datei verwendet.-T Titel gibt den in der Kopfzeile zu verwendenden Titel an, fehlt die Option,

wird der Name der auszudruckenden Datei verwendet.-i Leerstellen gibt die Anzahl der Leerstellen an, die als linker Seitenrand eingehalten

werden sollen.-w Spalten gibt die Anzahl der pro Seite zu verwendenden Spalten an.-h unterdruckt den Ausdruck einer Kopfseite.-m sendet dem Benutzer eine mail, wenn der Druckauftrag abgeschlossen

ist.-r loscht die zu druckende Datei, nachdem der Druckauftrag abgeschlos-

sen ist.-s verwendet im Spoolverzeichnis anstatt einer Kopie der zu druckenden

Datei einen symbolischen Link zur Originaldatei.-cdfglnptv geben den je nach Dateityp zu verwendenden Filter an.

Tabelle 16.8.:lpr - Parameter

16.6.3. Uberwachung

Zur Steuerung Ihrer Drucker und Druckauftrage verwenden Sie das Kommandolpc.

lpc [Kommando [Argumente ...]]

Das Programmlpc kann folgende Aktionen durchfuhren.

• deaktivieren eines oder aller Drucker

• deaktivieren einer oder aller Druckerwarteschlangen

• andern der Reihenfolge einzelner Druckauftrage innerhalb der Warteschlange

• Statusabfrage

• Warteschlange einem anderen Drucker zuordnen

• einzelne Druckauftrage einer anderen Warteschlange zuordnen

• Prioritat eines Druckauftragesandern

• Druckauftrag neu starten

Die Parameter von lpc finden Sie in Tabelle16.9auf Seite152. Es ist zwar eine direkte Eingabe der Kom-mandos beim Programmaufruf von lpc moglich, wenn jedoch keine der oben erlauterten Optionen angege-ben wird, erscheint der lpc Prompt, hinter dem Sie dann die gewunschten Kommandos mit den erforder-lichen Argumenten eingeben konnen. Die bei manchen lpc Kommandos benotigte Druckauftragsnummerkonnen Sie mit dem Befehl lpq ermitteln.

151

Page 152: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

Option Beschreibungabort [all — Drucker ...] beendet den Druckdamon fur den / die

angegebenen Drucker sofort, der lau-fende Druckauftrag wird abgebrochen

clean [all — Drucker ...] loscht alle Dateien aus der dem / denangegebenen Drucker (n) zugeordne-ten Warteschlange

enable [all — Drucker ...] aktiviert die Warteschlange fur den /die angegebenen Drucker

exit beendet lpcdisable [all — Drucker ...] deaktiviert die Warteschlange fur den /

die angegebenen Druckerdown [all — Drucker ...] [Nachricht] kombiniert die Kommandos stop und

disable, eine Nachricht fur die Benut-zer kann hinzugefugt werden

help [Kommando] gibt eine kurze Erklarung zum ange-gebenen Kommando, ohne Argumentwird eine Liste der verfugbaren Kom-mandos ausgegeben

quit beendet lpcrestart [all — Drucker ...] Beendigung und Neustart des

Spooldamons fur den / die ange-gebenen Drucker

start [all — Drucker ...] aktiviert den Spooldamon fur den / dieangegebenen Drucker

status [all — Drucker ...] fragt den Status des / der angegebenenDrucker(s) ab

stop [all — Drucker] beendet das Drucken von Auftragenan dem / den angegebenen Drucker(n), sobald der laufende Auftrag abge-schlossen ist

topq Drucker [Jobnummer ...] [Benutzer ...]stellt den / die angegebenen Job(s) anden Anfang der Warteschlange

up [all — Drucker ...] kombiniert die Kommandos start undenable

Tabelle 16.9.:lpc - Parameter

152

Page 153: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.6. Drucker - Installation und Verwaltung

16.6.4. Ausgabesteuerung

Das Kommando lpq dient zum Verfolgen der Druckerwarteschlange und zum Ermitteln der Jobnummereines Druckauftrages.

lpq [-a] [-l] [-P Drucker] [Benutzer ...] [Jobnummer ...]

Die Optionen und Argumente werden in Tabelle16.10auf Seite153.

Option Beschreibung-a zeigt die Warteschlangen aller Drucker an-l gibt alles im langen Format aus-P Drucker zeigt die Warteschlange des angegebenen DruckersBenutzer zeigt die Auftrage des / der angegebenen BenutzerJobnummer zeigt die Druckauftrage mit der / den angegebenen Druckauf-

tragsnummer (n)

Tabelle 16.10.:lpq - Parameter

Ohne Angabe einer Option oder eines Arguments wird die Warteschlange des Standarddruckers ange-zeigt.

Das Kommando lprm dient zum Loschen von Druckauftragen aus der Warteschlange.

lprm [-P Drucker] [[Jobnummer] [Benutzer] ...]

Die Parameter sind wieder mal in einer Tabelle, namlich16.11auf Seite153.Um die Wirkung der Kommandos zu verdeutlichen, wurden im obigen Beispiel vor und nach dem lprm

Kommando der jeweilige Zustand der Warteschlange mit lpquberpruft. Sie konnen an obigen Beispielauch deutlich sehen, dass ein Druckauftrag in zwei Dateien (Steuerdatei und Daten) abgelegt wird, da beimEntfernen eines Druckauftrags zwei Dateien geloscht werden. Beachten Sie, dass nur der Superuser dasRecht hat, Jobs anderer Benutzer zu loschen.

Ubungen

• Richten Sie einen weiteren Drucker auf Ihrem System ein.

Option Beschreibung-P Drucker gibt den Drucker an, aus dessen Warteschlange ein Auftrag

geloscht wird, ist keiner angegeben, gilt der Standarddrucker alsausgewahlt

Benutzer gibt den Benutzer an, dessen Auftrag / Auftrage geloscht werdensollen

Jobnummer spezifiziert den zu loschenden Auftrag anhand der Druckauftrags-nummer

Tabelle 16.11.:lprm - Parameter

153

Page 154: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

• Schicken Sie einen Druckauftrag an diesen neuen Drucker, um dessen Funktion zuuberprufen.

• Lassen Sie sich den Druckerzustand anzeigen.

• Starten Sie einmal einen Drucker durch.

• Uberprufen Sie die Jobs im Spool - Verzeichnis.

• Loschen Sie einen beliebigen Job aus der Queue.

16.7. Umgang mit Dateisystemen

Dieser Abschnitt behandelt die Partitionierung der Festplatte und das anschließende Einrichten eines Datei-systems.

16.7.1. Partitionierung einer Festplatte mit fdisk

Bevor Sie ein neues Dateisystem auf einer Partition erzeugen konnen, muss diese zunachst einmal auf derFestplatte erstellt werden. Bei der Installation wird dieser Vorgang bequem mit Yast bzw. Yast2 durch-gefuhrt. Zu beachten ist, dass durch eine nachtraglich durchgefuhrte Partitionierung gegebenenfalls Datenzerstort oder bereits vorhandene Partitionen verschoben werden und so andere Bezeichnungen erhalten unddamit nicht mehr korrekt gemountet werden konnen. Der Befehl lautet:

fdisk [Plattenname]

Vorsicht! Mit diesem Befehl konnen Sie Ihr System vollig zerstoren. Im Menu, das Sie sich mit m anzei-gen lassen, sind samtliche Moglichkeiten aufgefuhrt. Mit x erhalten Sie weitreichende Optionen aus demExpertenmenu.

16.7.2. Uberprufen des Dateisystems mit fsck

Immer wenn eine Datei geandert, neu angelegt oder geloscht wird, muss das Betriebssystem diese Aktua-lisierungen des Dateisystems durchfuhren. Meistens werden solcheAnderungen in einem Puffer zwischen-gespeichert und asynchron auf die Festplatteubertragen. Aufgrund der asynchronen Datenubertragung, diesehr performant arbeitet, muss der Rechner moglichst ordentlich heruntergefahren werden, damit noch imPuffer befindliche Daten sauber auf die Festplatte zuruckgeschrieben werden. Die Pufferung ist notwendig,damit der Benutzer, auch wenn dieAnderungen noch nicht auf der Festplatte durchgefuhrt worden sind,unbeeintrachtigt weiter arbeiten kann. Nur bestimmte systemrelevante Prozesse, wie z.B. die Freigabe vonInodes, werden synchron durchgefuhrt, um auf diese Weise zu vermeiden, dass das Dateisystem inkonsis-tent wird. Dennoch kann ein Dateisystem aus diversen Grunden solche Inkonsistenzen aufweisen. In denmeisten Fallen sind hierfur Hardware-Fehler oder Stromausfalle verantwortlich. Sollte der Rechner nichtordnungsgemaß heruntergefahren worden sein, fuhrt das Betriebssystem beim Neustart einen Check desDateisystems durch und schlagt bei Bedarf geeignete Korrekturmaßnahmen vor. Dies geschieht mit Hilfedes Programms fsck, das auch manuell gestartet werden kann.

fsck [-A -a -r -R -N -V -t <Dateisystemtyp>] Dateisystem

Die Parameter finden Sie in Tabelle16.12auf Seite155.Beachten Sie, dass eineUberprufung des Dateisystems mehrmals durchgefuhrt werden sollte und zwar

solange bis keine Fehler mehr auftreten. Der Vorgang lauft in der Regel in mehreren Phasen ab.

154

Page 155: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.7. Umgang mit Dateisystemen

Option Beschreibung-A pruft alle in der Datei /etc/fstab aufgefuhrten Dateisysteme-a repariert automatisch das Dateisystem ohne Ruckfrage-r erzeugt Sicherheitsabfragen, vor der moglichen Reparatur-R verhindert, dass das Root-System bei einerUberprufung mit der

Option -A ebenfallsuberpruft wird-N fuhrt keine echteUberprufung durch, sondern gibt nur aus, wie

eineUberprufung aussehen wurde-V gibt zeitgleich zurUberprufung detaillierte Meldungen aus-t Dateisystemtyp gibt den Typ des Dateisystems an

Tabelle 16.12.:fsck Parameter

erste Phase

In der Initialisierungsphase werden die Optionen und Argumente, die dem Befehlubergeben wurden, auf ih-re Richtigkeit hinuberpruft. Zudem wird der Superblock auf Lesbarkeit kontrolliert. Tritt hierbei bereits derFehler Der Superblock ist nicht lesbar auf, sollten Sie dem Vorschlag des Systems einen Backup-Superblockzu verwenden, zustimmen.

zweite Phase

Jetzt wird die Inode-Tabelleuberpruft. Hier konnen zum Beispiel die Fehler Falsches Inode - Format, BadBlocks, Nicht existierende Blocke, doppelte Blocke oder unbekannter Inode - Typ auftauchen. An dieserStelle sollten Sie das Programm die fehlerhaften Angaben loschen lassen.

dritte Phase

Es werden Verzeichniseintrage entfernt, die auf Inodes verweisen, die die vorherige Phase als fehlerhaftoder nicht vorhanden gekennzeichnet hat.

vierte Phase

Es wirduberpruft, ob es Verzeichnisse ohne Verbindung zum Dateisystem gibt. Solche Verzeichnisse tretendann auf, wenn in der vorangegangenen Phaseubergeordnete fehlerhafte Verzeichnisse entfernt wurden, diejetzt untersuchten Verzeichnisse aber keine Fehler aufweisen. Diese werden nach erfolgter Bestatigung indas Verzeichnis lost + found gestellt.

funfte Phase

Das Dateisystem wird nach Dateien durchsucht, die nicht referenziert sind. Auch diese werden in das Ver-zeichnis lost + found kopiert.

letzte Phase

Die Listen, die die freien Datenblocke und die bereits verwendeten Inodes fuhren, werden mit der Listeverglichen, die fsck neu aufgebaut hat. Bei Abweichungen wird vorgeschlagen, die alten Listen durch dieneuen zu ersetzen.

155

Page 156: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

16.7.3. Wechsel von ext2 von ext3

Der Wechsel von ext2 auf ext3 gestaltet sich recht einfach, da beide Dateisysteme binar kompatibel sind.Ein einfaches Kommando genugt. Allerdings muss das Dateisystem dafur unmounted sein.

tune2fs -j <device>

Im gemounteten Zustand wird dann das Dateisystem in der Datei .journal mitgeschrieben.

Ubungen

• Mit welchem Befehl kann eine Festplatte partitioniert werden?

• Mit welchem Befehl erhalten Sie eine Liste aller Partitionen Ihres Systems?

• Mit welchem Befehl kann ein Dateisystemuberpruft werden?

• Mounten und Unmounten Sie zurUbung verschiedene Dateisysteme.

• In welchen Verzeichnissen kann der normale Anwender Dateien und Unterverzeichnisse anlegen?

• Wie heißen die zentralen Konfigurationsdateien, die das Ein- und Aushangen von Dateisystemen mit-bestimmen?

16.8. Syslog-Daemon

Der Syslog-Daemon ist fur das Mitloggen umfangreicher Systemmeldungen zustandig. Die Konfigurationfindet sich unter/etc/syslog.conf. An dieser Stelle muss noch eine genaue Betrachtung des syslogddurchgefuhrt werden. Insbesondere ist die Moglichkeit interessant, auf einem remote loghost zu loggen.

16.9. Cron

Das Kommandocron ist etwas schwieriger zu handhaben. Jedoch konnen hiermit Aufgaben immer zubestimmten Zeitpunkten wiederholt werden. Diese Zeitsteuerungen werden in einer Tabelle namens crontabhinterlegt, wobei jede Zeile grundsatzlich identisch aufgebaut ist und deren Inhalt in Tabelle16.13auf Seite156erlautert wird.

Feld InhaltMinute 0 bis 59 oder *Stunde 0 bis 24 oder *Tag des Monats 0 bis 31 oder *Monat 0 bis 12 oder Monatsname oder *Wochentag 0 bis 7 oder Wochentag oder * (0 entspricht Sonntag)Kommando jedes beliebige Linux - Kommando oder ein beliebiges Programm

Tabelle 16.13.:crontab - Parameter

156

Page 157: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16.10. Logdateien

Da es unter Umstanden zu schweren Systemfehlern aufgrund einer falschen crontab kommen kann, solltenSie zunachst eine temporare Datei editieren und erst nach nochmaliger Kontrolle diese Datei ins Systemeinspielen und den crond durchstarten.

Die benutzerspezifischen Tabellen fur den crond liegen unter/var/spool/cron/tabs. Als systemweiteTabelle wird die Datei/etc/crontab verwendet, in der zusatzlich zur Zeitangabe der Benutzer, unter demder jeweilige Auftrag laufen soll, angegeben werden muss. Ebenso verhalt es sich mit den paketspezifischenCron-Tabellen in/etc/cron.d.Das Skript/usr/lib/cron/run-crons wird durch die systemweite crontab alle 15 Minuten aufgerufen,um sicherzustellen, dass eventuell versaumte Laufe rechtzeitig nachgeholt werden. Innerhalb des Skriptswird dann mit Hilfe der Dateien im Verzeichnis/var/spool/cron/lastrun gepruft, ob ein erneuter Laufnotwendig ist.

16.10. Logdateien

Zahlreiche Systemdienste und der Kernel selbst schreiben im laufenden Betrieb oft in unregelmaßigenAbstanden in sogenannte Logfiles, die meistens im Verzeichnis/var/log abgelegt sind. Hier kommt esalso zu einem dynamischen Wachstum, dass durch geeignete Mechanismen kontrolliert werden muss, umein Volllaufen des Dateisystems zu verhindern.Vor SuSE 8.0 war hierfur die Datei/etc/logfiles zustandig, deren Syntax selbsterklarend ist. Ab SuSE8.0 wird hierfur das Paket logrotate verwendet, dessen Konfiguration zum einen inetclogrotate.conf— undzum zweiten im Verzeichnis/etc/logrotate.d abgelegt ist. Die genaue Syntax kann in der manpage vonlogrotate nachgeschlagen werden. Logrotate selbst wird einmal taglich durch den cronduber das Skript/etc/cron.daily/logrotate

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

157

Page 158: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

16. Administration

158

Page 159: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

Im folgenden Kapitel soll Ihnen Grundlagenwissen hinsichtlich der Prozesse und ihrer Verwaltung vermitteltwerden. Wahrend im ersten Teil auf den Prozess selbst und dessen mogliche Zustande eingegangen wird,liegt der Schwerpunkt des zweiten Teils auf der Prozesshierarchie, den Kenndaten eines Prozesses und derKommunikation zwischen den Prozessen. Im dritten Teil werden die Kommandos, die zur Steuerung undVerwaltung von Prozessen notwendig sind, behandelt. Zur Abrundung des Kapitels werden am Ende Dienstegenannt, die Prozesse zeit- und ressourcenabhangig anstoßen.

Lernziele

In diesem Kapitel lernen Sie,

• etliche neue Begrifflichkeiten im Kontext der Prozessverwaltung zu definieren,

• die verschiedenen Prozesszustande kennen,

• grundlegendes zur Prozesskommunikation,

• administrative Prozessverwaltung durchzufuhren.

17.1. Grundlagen

Der Begriff des Prozesses und dessen Abgrenzung gegenuber dem Programm, ist nicht leicht festzumachen.Deswegen soll zunachst eine Erklarung versucht werden. Beachten Sie, dass im Verlauf des Kapitels derEinfachheit halber von einem Rechnersystem mit einer CPU ausgegangen wird.

17.1.1. Definition des Begriffs “Prozess“

Ein Prozess ist zunachst ein Programm wahrend der Ausfuhrung, kann daruber hinaus aber auch als Paket furein Programm betrachtet werden, dass verschiedene Informationen verwaltet unduber dessen Schnittstellendas Betriebssystem steuernd eingreifen kann. Ein Beispiel soll der Verdeutlichung dienen. Wird von einemBenutzer ein Programm gestartet, so wird der zugehorige Programmcode in den Hauptspeicher geladen. Dasablaufende Programm wird dann als Prozess bezeichnet. Startet ein anderer Benutzer dasselbe Programm,handelt es sich um verschiedene Prozesse, obwohl beide das gleiche Programm ausfuhren. Denken Sie aberbei Prozessen nicht nur an Programme, die von den Benutzern des Systems gestartet werden, wie die Shell,verschiedenste Kommandos oder Anwendungen unter X, sondern auch an die im Hintergrund laufendenDamonen (daemons).

159

Page 160: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

17.1.2. Prozesszust ande

Wahrend der Lebenszeit eines Prozesses nimmt dieser unterschiedliche Zustande an, wobei solche Zustands-wechsel immer durch das Eintreten eines bestimmten Ereignisses ausgelost werden. Man unterscheidet hier-bei im wesentlichen drei Zustande: aktiv, bereit und blockiert. Ein Prozess ist aktiv (running), wenn er ge-rade von der CPU bearbeitet wird und bereit (ready), wenn er die CPU benutzen konnte. Ein blockierter(blocked) Prozess, wartet auf das Eintreten eines bestimmten Ereignisses (z.B. auf eine Eingabe des Be-nutzers). In einem Rechnersystem mit nur einem Prozessor kann immer nur ein Prozess aktiv sein. Fur alleanderen verwaltet das Betriebssystem verschiedene Wartelisten, in der beispielsweise alle bereiten Prozessein der Reihenfolge ihrer Ankunft und in Abhangigkeit von ihrer Prioritat eingetragen werden. Die blockier-ten Prozesse werden ohne besondere Anordnung in einer eigenen Warteliste gefuhrt, bis das entsprechendeEreignis eintritt.

Wird ein Programm gestartet, so wird der zugehorige Prozess am Ende der Warteliste fur bereite Prozesseeingetragen. Erst wenn er bis an den Anfang der Tabelle vorgedrungen ist und die CPU frei wird, bekommter CPU-Zeit zugeteilt und wechselt seinen Zustand von bereit auf aktiv (dispatch). Um ein endloses Beset-zen der CPU durch den Prozess zu verhindern, wird nach Ablauf einer Zeitscheibe die CPU wieder entzogen(timerunout). Der Prozess wird zuruck in die Warteliste gestellt und ein anderer Prozess bekommt die CPUzugeteilt. Denkbar ware auch, dass ein Prozess vor dem Ablauf der ihm zustehenden CPU-Zeit eine Ein-oder Ausgabeoperation anfordert. In diesem Fall gibt er selbstandig die CPU frei (block). Dies ist zugleichder einzigste Zustandswechsel, den ein Prozess selbst veranlassen kann. Der letzte mogliche Zustandswech-sel ist das Eintreten eines Ereignisses auf das ein blockierter Prozess wartet, wodurch dieser aufgewecktwird (wakeup).

Die vier moglichen Zustandswechsel stellen sich also wie in Abbildung17.1auf Seite160dar:

aktiv

bereit blockiert�

��

���

dispatch@

@@@R

block

�wakeup

��

��

time run out

Abbildung 17.1.:Prozesszustande

17.1.3. Prozesskontrollblock

Wird ein neuer Prozess angelegt, so werden zur Verwaltung benotigte Informationen in einen sogenanntenProzesskontrollblock (process control block, kurz PCB) geschrieben. Dabei handelt es sich beispielsweiseum

• die eindeutige Prozesskennung (process identification, kurz PID)

• den Namen des auszufuhrenden Programms

• die Prioritat des Prozesses

• den momentanen Prozesszustand

• den aktuellen Programmschritt

• die Adresse des vom Programm belegten Hauptspeichers

160

Page 161: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17.1. Grundlagen

• die reservierten Ressourcen

• den Benutzer, der das Programm gestartet hat

• usw.

Bei der Zuteilung der CPU an die Prozesse greift das Betriebssystem auf den PCB zu, damit der Prozessan seiner unterbrochenen Stelle fortfahren kann. Verlasst der Prozess den aktiven Zustand werden fur dieFortsetzung des Prozesses notwendige Informationen in den PCB zuruckgeschrieben.

17.1.4. Entstehung einer Prozesshierarchie

Eine Prozesshierarchie entsteht durch die Moglichkeit eines Prozesses einen oder mehrere neue Prozess zustarten (spawn). Ein auf diese Weise erzeugter Prozess wird Sohnprozess (child process) und der erzeugendeProzess Vaterprozess (parent process) genannt. In dieser Hierarchie gilt, dass ein Sohnprozess immer nureinen Vater hat, aber jeder Vaterprozess mehrere Sohnprozesse aufweisen kann.

17.1.5. Prozessoperationen

Zur Verwaltung der Prozesse muss das Betriebssystemuber Operationen verfugen, die das Prozessverhaltenbeeinflussen. Einige dieser Funktionen (dispatch, timerunout, block und wakeup) wurden bereits weiteroben genannt. An dieser Stelle kommen noch folgende hinzu.

Erstellen eines Prozesses (create)

Diese Operation zieht einige Arbeiten nach sich. So muss beispielsweise eine neue PID vergeben, ein Ein-trag in die Prozesstabelle des System vorgenommen, die Prozessprioritat festgelegt und ein PCB angelegtwerden. Außerdem mussen die benotigten Ressourcen reserviert werden.

Loschen eines Prozesses (kill)

In diesem Fall reicht es nicht aus, nur den Prozess selbst zu entfernen. Insbesondere mussen auch die Ein-trage aus den systeminternen Tabellen geloscht, die reservierten Ressourcen freigegeben und der PCB ent-fernt werden. Dabei werden in der Regel auch alle zuvor gestarteten Sohnprozesse geloscht.

Suspendieren eines Prozesses (suspend)

bzw.

Wiederbeleben eines suspendierten Prozesses (resume)

Eine Suspendierung wird zumeist nur fur kurze Zeit vorgenommen, wenn das Systemuberlastet oder benotig-te Ressourcen zur Zeit nicht verfugbar sind. Je nachdem in welchem Zustand sich der Prozess vor derSuspendierung befunden hat, wird er entweder auf suspendiert-bereit oder suspendiert-blockiert gesetzt.Nachdem sich die Situtation geandert hat, wird der Prozess wiederbelebt.

Andern einer Prozesspriorit at (change)

Im Betriebssystem konkurrieren alle Prozesse um die CPU. Dabei ist es von der Prioritat abhangig wie oftein Prozess innerhalb einer bestimmten Zeiteinheit die CPU zugeteilt bekommt. Um eineAnderung derPrioritat eines Prozesses auch nachtraglich zu ermoglichen, verfugt das Betriebssystemuber die Operationchange.

161

Page 162: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

17.2. Prozesse unter Linux

Wie bereits angesprochen, wird bei der Ausfuhrung eines Kommandos oder einer Anwendung immer eineigener Prozess gestartet. Als Ausnahme sind Befehle zu nennen, die vom Kommandointerpreter der Shellselbst ausgefuhrt werden, sogenannte built-in-Funktionen.

Der nachfolgende Abschnitt geht im Einzelnen auf die Prozesshierarchie, die Prozesskenndaten und dieKommandos zur Prozessverwaltung ein.

17.2.1. Prozesshierarchie

Ein kurzer Abriss des Betriebssystemstarts und des Anmelden eines Benutzers soll verdeutlichen, wie sichdie Prozesshierarchie unter Linux aufbaut.

Zunachst wird nach dem Booten der Linux-Kernel in den Arbeitsspeicher geladen und zur Ausfuhrunggebracht. Dieser Prozess erhalt die PID 0 und startet das Programm init mit der PID 1, der die Wurzel derProzesshierarchie bildet, da ihm alle weiteren System- und Benutzerprozesse untergeordnet sind. Init liestdann die Datei/etc/inittab und wertet die Eintrage, wie z.B. den zu startenden Runlevel, aus. Durch diejeweiligen Startskripten werden jetzt Sohnprozesse von init mit eindeutigen PIDs erzeugt, die zunachst diedrei Dateien Standardeingabe (stdin), Standardausgabe (stdout) und Standardfehlerausgabe (stderr) anlegen.Danach startet init unter anderem das Programm getty, dass die Aufforderung zum Anmelden am entspre-chenden Terminal ausgibt und auf die Eingabe des Benutzernamens wartet. Getty ruft dann das Kommandologin, mit dem Benutzernamen als Argument, auf, so dass das Passwort abgefragt und auf seine Richtigkeituberpruft werden kann. Sollten keine Fehler auftreten, startet init als nachstes die Standardshell des Benut-zers (vgl Eintragung in/etc/passwd). Dieses Programm ist kein neuer Prozess, sondern lauft immer nochunter der gleichen Prozessnummer wie der von init fur das entsprechende Terminal erzeugte Sohnprozess.

Die zu startende Shell ist benutzerspezifisch und wird in der Datei/etc/passwd angegeben, wobei dieStandardshell unter Linux die Bourne-Again-Shell (/bin/bash) ist. Dieses Programm ist ein Komman-dointerpreter und dafur verantwortlich, dass alle vom Benutzer eingegebenen Kommandos entgegengenom-men, ausgewertet, entsprechende Sohnprozesse erzeugt und durch den Kernel ausgefuhrt werden. Eventu-elle Kernel-Meldungen werden dem Benutzer wieder durch die Shellubermittelt. Ist in/etc/passwd derEintrag false gesetzt, kann der Benutzer keine Shell starten, sondern nur nach außen angebotene Dienstenutzen.

Beendet jetzt der Benutzer seine Sitzung beispielsweise mit dem Kommando exit, so wird der Sohnpro-zess geloscht und von init ein neuer Sohnprozess fur dieses Terminal gestartet.

17.2.2. Prozesskenndaten

Zu jedem Prozess gibt es eine Reihe von Informationen, die vom Betriebssystem in verschiedenen internenTabellen, wie den PCB (vgl. Erklarungen weiter oben), verwaltet werden. Dabei konnen einige dieser Da-ten von einem Vaterprozess an seine Sohnprozesse weiter vererbt werden. Typische Prozesskenndaten sindnachfolgend aufgelistet und in Teilen weiter unten genauer erlautert.

• Prozessnummer (process identification, kurz PID)

• Prozessnummer des Vaterprozesses (parent process identification, kurz PPID)

• Benutzernummer (user identification, kurz UID) und Gruppennummer (group identification, kurzGID) des Prozesseigentumers

• Prozessprioritat

162

Page 163: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17.2. Prozesse unter Linux

• Prozesszustand

• Kontrollterminal, das Terminal von dem der Prozess aus gestartet wurde

• CPU-Zeit, die der Prozess bisher verbraucht hat

• CPU-Status (Befehlszahler und Inhalt der Register)

• Adresse des Programmes im Arbeitsspeicher

• Dateien, die vom Prozess geoffnet sind

• Arbeitsverzeichnis (working directory) des Prozesses

• usw.

Prozessnummer

Die Nummer (PID), die jeder Prozess beim Starten zugewiesen bekommt, ist systemweit eindeutig, so dasssichergestellt ist, das zwei gleichzeitig laufende Prozesse niemals die gleiche PID besitzen. Die Prozessnum-mer des Vaterprozesses (PPID) gibt an, von welchem Prozess ein bestimmter Sohnprozess erzeugt wurde.

Benutzer- und Gruppennummer des Prozesseigentumers

Ein Prozess besitzt zwei Arten von UID und GID, zum einen die effektive UID / GID, zum anderen diereale UID / GID. Ist das set-user-id-Bit bzw. set-group-id-Bit fur ein Programm nicht gesetzt, so sind dieeffektiven UID / GID fur den erzeugten Prozess gleich den realen UID / GID, namlich die UID und GIDdes Aufrufenden. Ist dagegen das set-user-id-Bit bzw. das set-group-id-Bit gesetzt, so wird als effektiveUID / GID die UID / GID des Eigentumers der Programmdatei und als reale UID / GID die des Aufru-fenden fur den hieraus erzeugten Prozess gesetzt. Ein Beispiel verdeutlicht diese Funktionalitat. Auf diePasswortdatei/etc/shadow hat nur der Benutzer root Schreibberechtigung. Trotzdem muss es jedem Be-nutzer moglich sein, sein Passwort zuandern. Das Kommando heißt passwd und darf von jedem Benutzerausgefuhrt werden. Die ausfuhrbare Datei gehort dem Benutzer root und hat das set-user-id-Bit gesetzt. Wirdpasswd gestartet, lauft der entsprechende Prozess unter der effektiven UID von root, so dass in die Datei/etc/shadow geschrieben werden darf. Eine Loch in der Systemsicherheit entsteht in diesem Fall nur, wennjeder die Programmdatei/sbin/passwd verandern darf, da somit die Moglichkeit besteht, Kommandos mitroot Berechtigung auszufuhren.

Prozesspriorit at

Wie bereits angesprochen konkurrieren im Betriebssystem sehr oft mehrere Prozesse um die Zuteilung derCPU. Ein Algorithmus legt dabei anhand der Prioritat fest, wie schnell Prozesse in der Warteliste nach vornerucken. Damit ist sichergestellt, dass alle Prozesse irgendwann zur Ausfuhrung gelangen, wobei Prozessemit hoher Prioritat ofter die CPU zugeteilt bekommen. Die Prioritat ist dabei nicht nur abhangig von derbeim Start festgelegten sondern zusatzlich von der vom Prozess verbrauchten Zeit, seiner Große und seinerWartezeit.

Prozess-Adressraum

Daneben verfugt ein Prozess nochuber einen sogenannten Adressraum, welcher in drei getrennte Bereicheunterteilt ist, wie in Tabelle17.1auf Seite164angedeutet.

163

Page 164: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

Segment BeschreibungTextsegment enthalt den Programmcode, ist schreibgeschutzt und kann von mehreren

Prozessen gleichzeitig benutzt werden.Datensegment enthalt die Benutzerdaten des Prozesses und wird nochmals in einen

initialisierten und einen nicht initialisierten Datenbereich unterteilt.Stacksegment enthalt den Benutzerstack und die Verwaltungsdaten des Prozesses.

Tabelle 17.1.:Prozess-Adressraum

17.2.3. Prozesskommunikation

Die Kommunikation zwischen Prozessen kann mit unterschiedlichsten Mechanismen erfolgen, von deneneinige im folgenden vorgestellt, andere nur genannt werden sollen.

Dateien

Ein Prozess kann Daten in Dateien schreiben, welche von anderen Prozessen wieder ausgelesen werden.Allerdings ist diese Form des Datenaustausches nicht sehr effizient, da zeitaufwendige Plattenzugriffe un-vermeidlich sind. Die Datei bzw. die enthaltenen Daten werden nach dem FIFO Prinzip verarbeitet, d.h. dasszuerst die Datensatze gelesen werden, die schon am langsten in der Datei stehen.

Beispiel:

ls > inhaltgrep * < datei

Das erste Kommando schreibt die Ausgaben des Befehls ls in eine Datei mit dem Namen inhalt. Solltediese Datei noch nicht bestehen, wird sie angelegt, ist sie bereits vorhanden, wird sieuberschrieben. An-schließend liest grep wieder die Inhalte der Datei aus. Mit ¿¿ werden die Ausgaben an die Datei angehangtund mit 2¿ die Standardfehlerausgabe umgeleitet.

Pipes

Um zeitaufwendige Zugriffe auf externe Speichermedien zu vermeiden, konnen im Arbeitsspeicher Puffereingerichtet werden, die, als Pipe verwendet, einen deutlichen Geschwindigkeitsvorteil bieten. Ein Prozessschreibt seine Daten in diese Pipe, die ein anderer Prozess wieder auslesen kann. Eine Pipe ist einkana-lig, d.h. ein Prozess kann entweder nur lesend oder nur schreibend darauf zugreifen. Sollen Daten in beideRichtungen ausgetauscht werden, ist das Einrichten einer zweiten Pipe notwendig. Wie Dateien auch, wer-den Pipes nach dem FIFO Prinzip verwaltet.

Beispiel:

ls | grep *

Ein Nachteil der Pipe besteht darin, dass deren Lebensdauer von den darauf zugreifenden Prozessenabhangt.

Signale

Signale werden in erster Linie zur Kommunikation zwischen System- und Benutzerprozessen verwendet.Dieses asynchrone Ereignis kann zu jedem beliebigen Zeitpunkt eintreten und bewirkt eine Unterbrechungauf Prozessebene. Signale konnen durch folgende Ereignisse ausgelost werden.

164

Page 165: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17.3. Kommandos zur Prozessverwaltung

Aktionen des Benutzers am Terminal (z.B. Tastenkombinationen, Beenden des Terminals) Programmfeh-ler (z.B. Division durch Null) Senden eines Signals durch einen anderen Prozess (vgl. weiter unten)

Fangt ein Programm ein Signal nicht explizit durch eine Signalbehandlungsroutine ab, so fuhrt dies un-weigerlich zum Programmabbruch. Wie spater gezeigt wird, kann das Signal SIGKILL garnicht abgefangenwerden.

Andere Kommunikationsm oglichkeiten

Des Weiteren gibt es sogenannte Named Pipes, Message Queues, Semaphores, Shared Memory und Stre-ams.

17.3. Kommandos zur Prozessverwaltung

Wenn ein Anwender ein Programm startet und wieder beendet, werden folgende Schritte durchgefuhrt.

• Erzeugen eines Prozesses

• Ausfuhren des Programms

• Beenden des Prozesses

Ein Programm mit Unterprogrammen wird entsprechend abgearbeitet, indem weitere untergeordnete Pro-zesse fur jedes gestartete Unterprogramm angelegt werden. Im folgenden werden Kommandos vorgestellt,die einen Zugriff auf die Prozesse erlauben.

17.3.1. Befehle zur Prozessansicht

pstree

Der Aufbau der Prozesshierarchie verdeutlicht sich bei Aufruf des Kommandos pstree, das durch die Option-h zusatzlich noch den aktuellen Prozess fett gedruckt hervorhebt.

ps

Die Informationen aller Prozesse werden, im jeweiligen Prozesskontrollblock zusammengefasst, von Linuxverwaltet. Auf die darin enthaltenen Informationen kannuber die eindeutige Prozessnummer, auch PIDgenannt, zugegriffen werden. Mit Hilfe des Befehls ps konnen Sie die Prozessnummer ausfindig machen.

Die Ausgabe der einzelnen Spalten haben folgende Bedeutung.

PID ist die eindeutige Prozessnummer, die fortlaufend vergeben wird

TTY ist das Terminal, auf dem der Prozess gestartet wurde

STAT bezeichnet den Prozessstatus wie in Tabelle17.2auf Seite166

TIME gibt die vom Prozess verbrauchte Prozessorzeit an

COMMAND steht fur den Namen des Programms, das der Prozess ausfuhrt

Zudem gibt es weitere Optionen zum Kommando ps, die es erlauben, detaillierte Informationenuber allegerade laufenden Prozesse abzufragen. Sie stehen in Tabelle17.3auf Seite166.

165

Page 166: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

STAT Bedeutung ErlauterungR runnable Prozess ist lauffahigS sleeping Prozess wartet auf ein EreignisD uninterruptable sleep Prozess befindet sich im nicht unterbrechbaren

SchlafzustandT traced gestoppter ProzessZ Zombie process Prozessausfuhrung wurde abgeschlossen, ohne Va-

terprozess zu informieren.W no resident pages Prozess belegt keine Seiten im Arbeitsspeicher

Tabelle 17.2.:Prozessstatus

Option Beschreibung-a zeigt die Prozesse aller Benutzer-e zeigt die Prozessumgebung-l langes Format-m zeigt die Speichernutzung-r zeigt nur die laufenden Prozesse-u zeigt die Besitzer der Prozesse-x zeigt die Prozesse, die von keinem Terminal kontrol-

liert werden

Tabelle 17.3.:ps - Parameter

166

Page 167: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17.3. Kommandos zur Prozessverwaltung

17.3.2. Prozessterminierung

Wenn die Ausfuhrung eines Befehls zu lange dauert, durch eine fehlerhafte Funktion die Eingabemoglich-keit der Shell blockiert ist oder das Kommando versehentlich gestartet wurde, gibt es die Moglichkeit diesenProzess gezielt mit Hilfe das Befehls kill zu beenden. Dieses Kommando sendet ein Signal an den Prozess,der dieses Signal mit der nachsten CPU - Zuteilung empfangt. Ein Prozess kann, in Abhangigkeit von derMachtigkeit des Signals und der Programmierung des Programms, auf unterschiedliche Weise auf ein sol-ches Signal reagieren. Es ist durchaus moglich, dass das gesendete Signal, wenn man vom Signal SIGKILLabsieht, ignoriert wird.

Die Syntax lautet

kill [-signalnummer] pid

Sie mussen dem Kommando kill also sowohl eine Signal-, als auch eine Prozessnummer mitgeben.Die Bedeutung samtlicher Signalnummern erhalten Sie mit dem Befehl kill -l. Die Prozessnummern

werden mit dem Befehl ps ausgegeben. Geben Sie keine Signalnummer an, wird das Signal 15 (SIGTERM)an den Prozess gesendet. Dieses Signal fordert den Prozess auf, die laufenden Tatigkeiten abzuschließenund sich zu beenden. Das Signal 9 (SIGKILL) bedeutet, dass der Prozess sofort beendet wird. Diese Optionsollte grundsatzlich als letzte Moglichkeit in Betracht kommen, da unter Umstanden temporare Dateienzuruckbleiben.

17.3.3. Vorder- und Hintergrundprozesse

Wenn ein Anwender einen Befehl am Terminal eingibt, wird das dazugehorige Programm gestartet. Dieseswird abgearbeitet und anschließend wieder beendet. In dieser Zeit ist das Terminal aber durch den Prozessbelegt. Da es Prozesse gibt, die entweder sehr viel Zeit fur die Ausfuhrung in Anspruch nehmen oder auf-grund einer Umlenkung in eine Datei keine Ausgabe am Terminal verwenden, ist es moglich, diese auch imHintergrund ablaufen zu lassen.Ein Prozess der gerade im Vordergrund ablauft, kann mit der Tastenkombination Strg + Z gestoppt werden.Anschließend kann dieser mit der Anweisung bg im Hintergrund ausgefuhrt werden. Naturlich kann einProzess von Anfang an in den Hintergrund verschoben werden. Um dies zu erreichen, hangen Sie ein & andie Befehlszeile an. Die Ruckmeldung besteht aus zwei Nummern. Die Zahl in eckigen Klammern enthalteine neue ID, die die auf diesem Terminal gestarteten Hintergrundprozesse identifiziert. wahrend die zweiteZahl ist die zugehorige PID darstellt.Jobs, die im Hintergrund arbeiten, lenken ihre Ausgaben (stdout, stderr) weiterhin auf das Terminal um.Wenn Sie im Vordergrund ungestort arbeiten wollen, mussen Sie diese Ausgabe selbst entsprechend umlei-ten.Mit dem Befehljobs geben Sie die im Moment laufenden Hintergrundprozesse aus. Mit dem Befehlfg jobnummer konnen Sie den jeweiligen Prozess wieder in den Vordergrund holen. Außerdem ist es mitStrg + C moglich, den im Vordergrund laufenden Prozess zu beenden.

Hintergrundprozesse bis zum Ende ausfuhren lassen

Oftmals mochte man auf einem Rechner einen Prozess starten, der lange Zeit lauft, und keine Kommunika-tion mit dem Benutzer erfordert. Zum Beispiel langwierige Downloads aus dem Internet. Linux bietet dieMoglichkeit, solche Prozesse zu starten, und sich daraufhin auszuloggen, ohne dass der Prozess beendetwird, wie es gewohnlich der Fall ist. Dazu dient der Befehlnohup.Als Parameter dient der ganz normale Befehl, der ausgefuhrt werden soll. Um zum Beispiel die Homepa-ge http://www.mytux.de auf die eigene Festplatte zu spiegeln, und dabei nicht anwesend sein zu mussen,verwende man:

167

Page 168: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

nohup wget -r http://www.mytux.de &

Achtung

Einen Prozess, den Sie mit nohup gestartet haben, konnen Sie nur noch durchkill beenden!

17.4. Zeitgesteuerte Prozessausfuhrung

Aufgaben, die zu bestimmten Zeiten ausgefuhrt werden sollen, mussen vom System zeitlich gesteuert wer-den. Dies konnten beispielsweise Datensicherungen oder große Druckauftrage sein. Oft handelt es sich umVorgange, die sehr viel Systemleistung benotigen oder zumindest eine Ressource des System dermaßen starkin Anspruch nehmen, dass ein vernunftiges Arbeiten derubrigen Benutzer nicht mehr moglich ist. Denk-bar sind auch Sicherungen, die außerhalb derublichen Benutzungszeiten durchgefuhrt werden mussen, umInkonsistenzen zu vermeiden.

Linux bietet zu diesem Zweck drei Programme an, die in der Lage sind, solche Aufgaben zeitgesteuertabzuarbeiten.

• at fur die Ausfuhrung von einmaligen Jobs

• cron fur Aufgaben, die wiederholt auftreten

• batch fur das Abarbeiten von Jobs, die nicht an einen festgelegten Zeitpunkt gebunden sind, sondernsich nach der Belastung der Systemressourcen richten

17.4.1. atd

Die Syntax lautet wie folgt.

at [-l -d <jobnummer> -f <dateiname>] zeit

Das Kommando at kennt die Optionen aus Tabelle17.4auf Seite168.

Option Beschreibung-l zeigt eine Liste der zur Ausfuhrung anstehenden at - Jobs an-d ¡jobnummer¿ loscht den durch die Jobnummer spezifizierten Auftrag aus der

Liste-f dateiname liest die auszufuhrenden Befehle aus der angegebenen Datei

Tabelle 17.4.:at - Parameter

Alternativ zuat -l konnen Sie auch das Kommandoatq, zu at -d konnen Sie auch das Kommandoatrm verwenden.

Sie werden nach der Festlegung der Zeit aufgefordert, die gewunschten Aktionen anzugeben. Sind alleAnweisungen eingegeben worden, so konnen Sie die Eingabe mit Strg + D beenden. Wenn das Systemmit Hilfe des Befehls echo Nachrichten verschicken soll, so werden diese nicht am Terminal ausgegeben,sondern als mail an den jeweiligen Benutzer verschickt.

168

Page 169: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17.4. Zeitgesteuerte Prozessausfuhrung

17.4.2. batch

Dieser Befehl entspricht in seiner Anwendung dem bereits besprochenen Befehl at, nur dass hierbei auf eineZeitangabe verzichtet werden kann, da die eingegebenen Kommandos ausgefuhrt werden, wenn das Systemnur wenig belastet wird.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

169

Page 170: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

17. Prozesskonzept

170

Page 171: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

Abbildung 18.1.:Bildunterschrift

Dieses Kapitel soll in die Grundlagen der Netzwerktechnologie einfuhren und einen Einblick in die Kon-figuration der zugehorigen Hardware und Schnittstellen geben. Die Besprechung der zur Fehlersuche und-analyse eingesetzten Werkzeuge rundet das Ganze ab.

Lernziele

In diesem Kapitel lernen Sie,

• Grundlagenwissenuber Netzwerktechnologie, -topologien und -protokolle,

171

Page 172: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

• die Einbindung der Hardware vorzunehmen und die korrekte Funktion zuuberprufen,

• die Konfiguration der Netzwerkinterfaces durchzufuhren und die zugehorigen Konfigurationsdateienzu lesen,

• Werkzeuge zur Fehlersuche und -analyse einzusetzen.

Dieses Kapitel handeltubrigens nicht die unterschiedlichen Dienste im Intra- und Internet ab. Diese wer-den im eigens dafur vorgesehenen BuchIII ab Seite213abgehandelt.

18.1. Grundbegriffe

Elementare Grundbegriffe werden in der Tabelle18.1auf Seite173.

18.2. Grundkonfiguration

Die Konfiguration des Netzwerkes kann bequem mit Hilfe von YaST2 durchgefuhrt werden. Alternativkonnen Sie das Netzwerk auch manuell in den zahlreichen Konfigurationsdateien einrichten. Dies ist zwarsehr viel interessanter, kann jedoch aufgrund der erhohten Fehleranfalligkeit grundsatzlich nicht empfohlenwerden. Andererseits muss Ihnen bewusst sein, dass gerade die Konfiguration eines Netzwerkes beliebigkomplex werden kann, sodass Sie mit allgemeinen Werkzeuge zur Systemkonfigurationen sehr schnell anGrenzen stoßen werden. Deshalb ist es notwendig die verschiedenen textbasierten Dateien zu kennen, diefur die Konfiguration des Netzwerkes verantwortlich zeichnen.

18.2.1. YaST2

Melden Sie sich grafisch als root an und starten Sie YaST2 entweder aus der Konsole oder mit dem DialogAusfuhren, der durch Drucken der Tastenkombination Alt + F2 erscheint. Wahlen Sie jetzt die Rubrik Netz-werk und dann den Eintrag Konfiguration der Netzwerkkarte. YaST2 liest jetzt die derzeitige Konfigurationaus den Dateien aus, was durchaus eine Weile dauern kann. Anschließend wird die bisherige grundlegen-de Netzwerkkonfiguration angezeigt. Wenn Sie noch keine Hardware in das System eingebunden bzw. dieNetzwerkkarte getauscht haben, begeben Sie sich zunachst in den Dialog Hardware. Hier klicken Sie aufHinzufugen und folgen den Anweisungen von YaST2.

Sie kommen anschließend zur Konfiguration der Netzwerkadresse und wahlen hier die richtigen Optionenaus. Sollte in Ihrem Netz ein DHCP Server die Adressvergabeubernehmen, brauchen Sie die IP-Adressenicht statisch vergeben. Andernfalls geben Sie eine solche und die zugehorige Subnetzmaske ein. DieseNummern sind nicht beliebig. Jede IP-Adresse identifiziert die Netzwerkschnittstelle eines Rechners imNetz eindeutig.

Im Dialog Rechnername und Nameserver geben Sie Ihrem Computer noch einen Namen und legen eineDomain fur diesen fest. Sollte die Namensauflosung der IP-Adressen von im Netz integrierten Nameservernvorgenommen werden, tragen Sie deren Adressen unter Liste der Nameserver ein. Im letzten Dialog Routingwird das sogenannte Standardgateway festgelegt. Hierbei kann es sich beispielsweise um einen Router han-deln, der zwischen samtlichen Teilnetzen eines Firmennetzes vermittelt. Haben Sie keinen solchen Routerist hier die IP-Adresse Ihrer Netzwerkkarte einzutragen.

Damit sind die Einstellungen soweit vollstandig. Sie konnen jetzt mit Weiter zum Ausgangsdialog, woSie jetzt ein Interface eingetragen finden, zuruckkehren und mit Beenden die Konfiguration des Netzwerkabschließen.

172

Page 173: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18.2. Grundkonfiguration

Begriff Erkl arungRechner- bzw. Hostname Der Name, den der Rechner im Netzwerk haben soll. Der Name

sollte nicht langer als acht Zeichen umfassen und darf im lokalenNetzwerk noch nicht vergeben sein.

Domainname Der Name der Domain, der der Rechner angehort. Domains die-nen der Gliederung von Netzen.

FQHN1 Ein Rechner wird durch die Angabe seines Full Qualified HostName adressiert. Dieser setzt sich aus Rechnername, Domain-name und Top-Level-Domain zusammen. Die einzelnen Namenwerden durch Punkte voneinander getrennt.

FQDN2 Ein Netz wird durch die Angabe seines Full Qualified DomainName adressiert. Dieser setzt sich aus Domainname und Top-Level-Domain zusammen. Die einzelnen Namen werden durchPunkte voneinander getrennt.

IP-Adresse Jede Netzwerkschnittstelle weist mindestens eine Adresse auf,die innerhalb des Netzwerkes eindeutig ist. Diese Adresse be-steht nach dem derzeit gultigen Standard aus einer Sequenz vonvier Bytes, die durch Punkte voneinander getrennt werden. Beider Vergabe der Adressen ist zu bedenken, ob das lokale Netz mitdem Internet verbunden werden soll. Wenn dem so ist, muss derAdressbereich registriert werden oder man greift auf die priva-ten Adressbereiche zuruck, da diese innerhalb des Internet nichtgeroutet werden.Einige IP-Adressen sind nicht fur Rechner bestimmt, sondernhaben eine spezielle Funktion. Wahrend die auf Null endendeAdresse fur das Netzwerk selbst steht, ist die auf 255 endendeAdresse die dazugehorige Broadcast-Adresse.

Gateway- bzw. Router-Adresse Ein Rechner, der in mehr als einem Netz hangt und so das Wei-terleiten von Paketen vom einen in das andere Netzubernimmt,fungiert als Gateway bzw. Router.

Subnetzmaske Die Subnetzmaske gibt an, in welchem Netzwerk eine gegebeneIP-Adresse zu finden ist. Die IP-Adresse des Rechners wird mitder Subnetzmaske durch ein logisches UND verknupft, wodurchder Hostanteil der Adresse ausgeblendet wird und somit nur nochdie Adresse des Netzwerksubrig bleibt.

Nameserver Der Nameserver stellt den Dienst DNS3 zur Verfugung, mit demsich Rechnernamen in IP-Adressen auflosen lassen. Soll bei derNamensauflosung auf einen Nameserver zuruckgegriffen wer-den, muss dessen IP-Adresse bei der Netzwerkkonfiguration an-gegeben werden.

Tabelle 18.1.:Netzwerk - Grundbegriffe

173

Page 174: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

YaST2 halt jetzt das Netzwerk an, nimmt die Eintragungen in den Konfigurationsdateien vor und startetanschließend das Netzwerk neu, so dass sofort die Funktion mittels pinguberpruft werden kann. Manch-mal kommt es trotz korrekter Konfiguration zu Fehlermeldungen. Stellen Sie dennoch zunachst mit ifconfigsicher, dass das Interface eingetragen wurde. Andererseits konnen beispielsweise auch Probleme beim Rou-ting auftreten. Entweder Sie starten den Rechner in einem solchen Fall komplett durch oder versuchen durchgezieltes Neustarten der Dienste das Netzwerk zum laufen zu bringen. Fahren Sie hierfur zunachst das Netz-werk und dann das Routing herunter, um diese gleich im Anschluss in umgekehrter Reihenfolge wieder zustarten. Die Befehlsfolge lautet rcnetwork stop, rcroute stop, rcroute start und rcnetwork start.

18.2.2. Konfigurationsdateien

Dieser Abschnitt soll eineUbsichtuber die Netzwerkkonfigurationsdateien bieten, deren Funktion erlauternund auf das verwendete Format eingehen. Solange jedoch Tools zur Konfiguration der jeweiligen Funktionzur Verfugung stehen, sollten Sie von einem manuellen Eingreifen in die Dateien absehen./etc/rc.config In dieser zentralen Konfigurationsdatei wird deruberwiegende Teil der Einstellung

hinsichtlich des Netzwerkes vorgenommen. Jede Variable ist durchaus einleuchtend dokumentiert. Soll-ten an einigen Stellen manuelle Veranderungen vorgenommen worden sein, so ist es notwendig nach demSpeichern der Datei durch den Aufruf von SuSEconfig alle abhangigen Dateien und Bootskripte neu zugenerieren bzw. zu aktualisieren. Bevor die Funktion des Netzwerkesuberpruft werden kann, ist es zudemunerlasslich des Netzwerk mit dem Befehl rcnetwork restart neu zu starten. Haben Sie zudem einen Routerangegeben, muss durchrcroute restart auch der Routing-Damon durchgestartet werden./etc/hosts In dieser Datei werden den Rechnernamen IP - Adressen zugeordnet. Wird kein Nameserver

verwendet, ist es notwendig samtliche Rechner des Netzwerkes hier einzutragen, insofernuberhaupt Namenverwendet werden sollen. Je Rechner wird hierfur eine Zeile bestehend aus IP - Adresse, dem voll quali-fizierten Hostnamen und dem Rechnernamen in die Datei eingetragen. Dabei werden die Eintrage durchLeerzeichen voneinander getrennt. Kommentare werden durch ein # eingeleitet./etc/networksHier werden Netzwerknamen in Netzwerkadressen umgesetzt. Im Gegensatz zur/etc/hosts

stehen hier die Namen vor den Adressen./etc/host.conf Diese Datei, die jedoch nur fur altere Programme, die noch gegen die libc4 oder die

libc5 gelinkt sind, zustandig ist, steuert die Auflosung von Rechner- und Netzwerknamen. Die moglichenParameter sind in Tabelle18.2auf Seite175aufgefuhrt./etc/nsswitch.conf Ahnlich wie in der eben besprochenen Datei, wird in der Datei/etc/nsswitch.conf

festgelegt, in welcher Reihenfolge bestimmte Informationen abgefragt werden. Aktuelle Programme, diebereits gegen die glibc gelinkt sind, greifen auf die Einstellungen des Name Service Switches zuruck. Dieansprechbaren Datenbanken sind in der Tabelle18.3auf Seite176aufgefuhrt. Die Schalter aus Tabelle18.4auf Seite176bestimmen, wo nach den jeweiligen Informationen gesucht werden soll./etc/nscd.conf Der Name Service Cache Damon wirduber diese Datei konfiguriert. In diesen Ser-

vice sind die Dateien passwd, groups und hosts eingebunden. Der Daemon muss bei Veranderungen an der/etc/nscd.conf bzw. an /etc/resolv.conf mit dem Befehl rcnscd restart neu gestartet werden./etc/resolv.conf Diese Datei ist ebenfalls fur die Konfiguration der Auflosung von Rechnernamen

verantwortlich. Es wird angegeben, welcher Domain der Rechner angehort und wie die Adresse des Name-servers ist, der angesprochen werden soll. Durch das Schlusselwort nameserver eingeleitete Zeilen machendie verfugbaren Nameserver bekannt. Kommentare werden mit # eingeleitet./etc/HOSTNAMEHier wird der Name des Rechners eingetragen, weshalb diese Datei nur eine Zeile enthal-

ten darf. Verschiedene Skripten werten beim Start diese Datei, die automatisch aufgrund der Einstellungenin /etc/rc.config generiert wird, aus.

174

Page 175: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18.3. Haufige Netzwerkbefehle und Fehlersuche

Parameter Funktionorder Legt fest, in welcher Reihenfolge die Dienste zum

Auflosen eines Namens angesprochen werden. MoglicheArgumente sind durch Leerzeichen oder Kommata vonein-ander getrennt. Beispielhafte Eintrage sind: hosts: durch-sucht die Datei /etc/hosts bind: spricht einen Nameserveran nis: greift auf eine NIS Datenbank zu

multi Bestimmt, ob ein in /etc/hosts eingetragener Rechner meh-rere IP - Adressen haben darf.

trim ¡domainname¿ Der angegebene Domainname wird vor dem Auflosen desRechnernamens von diesem abgeschnitten, wenn der ange-gebene Rechnername diese Domain enthalt. Diese Optionist von Nutzen, wenn in der Datei /etc/hosts die Rechner-namen ohne Domainnamen gepflegt sind.

Tabelle 18.2.:/etc/host.conf

18.2.3. Startup - Skripten

Wahrend des Hochfahrens des Rechners werden, wie bereits im Kapitel “Bootkonzept” erlautert, verschie-dene Skripte angestoßen. Unter diesen sind auch etliche die Netzwerkprogramme starten, sobald in denentsprechenden Runlevel gewechselt wird. Dabei werden die angesprochenen Konfigurationsdateien ausge-wertet. EineUbersicht in Tabelle18.5auf Seite177.

18.3. Haufige Netzwerkbefehle und Fehlersuche

In diesem Abschnitt lernen Sie verschiedene Befehle, die das Netzwerk betreffen, kennen. Gleich zu Beginnwerden Ihnenifconfig undping vorgestellt, weil diese in der Regel zur Fehlersuche verwendet werden.Anbei werden auch verschiedene Fehlerquellen angesprochen. Danach folgen andere remote Befehle, diejedoch nicht unbedingt auf einem Standardsystem installiert sind.

18.3.1. route

Mit dem Befehlroute konnen Sie die Routing-Tabelle des Rechners anzeigen und verandern lassen. DieRouting Tabelle bestimmt, wohinn Ihre TCP/IP Pakete verschickt werden. Sie konnen dazu sogenannteGateways definieren, die Ihre Pakete an andere Netzwerkbereiche weiter verschicken. In der Praxis wirddiese Tabelle von SuSE Skripten und Masken gesetzt, aber wie oben beschrieben konnten auch Sie in dieSituation kommen, dass Sie die Routing-Tabelle selbst aufsetzen mussen.

Vorgehensweise

Die Routingtabelle wird beim Rechnerstart normalerweise, wie in der Datei/etc/route.conf angegeben, aufgebaut. Genauere Erlauterungen zu dieser Datei entnehmen Sie bitte derman-Page zuroute.conf mit dem Befehlman route.conf.Um die Routingtabelle zur Laufzeit einzurichten gehen Sie folgendermassen vor:

1. Lassen Sie sich die Routing-Tabelle ausgeben:route -n

175

Page 176: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

Datenbank Beschreibungaliases Mail - Aliaseethers Ethernet - Adressengroup Liste mit den Gruppennamenhosts IP - Adressen und Hostnamennetgroup Zusammenfassung von Rechnern, Benutzern und Domains zu ei-

ner Netzwerkgruppenetwork Netzwerknamen und -adressenpasswd Liste mit den Benutzernamenprotocols Netzwerk-Protokollepublickey Offentliche und geheime Schlussel fur sichere Remote Procedu-

re Calls (Secure RPC), beispielsweise verwendet von NFS undNIS+

rpc Remote Procedure Call - Namen und - Adressenservices Netzwerkdienste mit Portnummern und Protokollnamenshadow Passworter der Benutzer

Tabelle 18.3.:Datenbanken

Schalter Beschreibungfiles auf Dateien zugreifendb auf Datenbanken zugreifennis, nisplus uber NIS Datenbanken zugreifendns auf Dienst DNS zuruckgreifen (nur bei hosts und networks ver-

wendbar)compat nur bei passwd, shadow und group verwendbar

Tabelle 18.4.:Wo soll gesucht werden

2. Zusatzliche Eintrage konnen Sie wie folgt einfugen. Hier wird ein Eintrag fur das lokale Netzwerkgesetzt:route add -net 192.168.0.0 netmask 255.255.255.0 eth0

3. Fur alle weiteren Adressen wird hier als Gateway 192.168.0.1 gesetzt:route add default gw 192.168.0.1 eth0

Die genaue Syntax vonroute ist analog zu den Eintragen der/etc/route.conf.

18.3.2. nslookup

Sie konnen mit Hilfe vonnslookup Ihren DNS-Server fragen, in welche IP-Adresse eine URIubersetztwird. Dazu geben Sie einfach ein:

nslookup [URI]

zum Beispiel

nslookup www.petter-residenz.de

176

Page 177: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18.3. Haufige Netzwerkbefehle und Fehlersuche

Skriptname Beschreibung/etc/init.d/network ubernimmt die Konfiguration der Netzwerk Hard- und

Software des Systems und wertet die Variablen der/etc/rc.config aus

/etc/init.d/route setzt die statischen Routen im Netzwerk/etc/init.d/inetd/etc/init.d/portmap startet den Portmapper, der benotigt wird, um auf RPC auf-

setzende Server verwenden zu konnen/etc/init.d/nfsserver startet den NFS Server/etc/init.d/sendmail kontrolliert sendmail/etc/init.d/ypserv startet den NIS Server/etc/init.d/ypbind startet den NIS Client

Tabelle 18.5.:Startup - Skripts imUberblick

18.3.3. ping

Ping wird dazu verwendet, zu testen, ob eine Netzwerkverbindung besteht oder nicht und wird aus diesemGrund sehr haufig beim Einrichten von Netzwerken zur Fehlersuche benutzt. Wenn die Namensauflosungfunktionstuchtig ist, kann auch mit Rechnernamen gearbeitet werden.

ping <IP - Adresse>

ping <Rechnername>

Ein paar haufige Fehlerquellen sehen Sie in Tabelle18.6auf Seite178:

18.3.4. traceroute

Mit diesem Befehl konnen Sie den Weg von einem Rechner zu einem anderen nachvollziehen. Sie erhaltennach Ausfuhrung des Kommandos eine Route,uber welche Rechner die Verbindung weitergeleitet wird.

traceroute rechnername

18.3.5. rusers

Dieser Befehl zeigt Ihnen, welche Benutzer, an welchen Systemen Ihres Netzwerks angemeldet sind.

rusers [-al]

-a zeigt alle Rechner im Netzwerk, auch wenn dort niemand angemeldet ist.-l ergibt eine detaillierteAuflistung

Das Kommandorusers erfordert, dass auf allen beteiligten Hosts der Damonrpc.rusersd lauft.

18.3.6. rup

Dieser Befehl zeigt eine Liste der im Moment aktiven Rechner im Netz.

rup [host | -u | -v]

177

Page 178: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

Fehler LosungMan kann einen Rechneruber dessenIP-Adresse anpingen, aber mit dessenName funktioniert es nicht.

Die Namensauflosung arbeitet nicht korrekt.Sehen Sie sich die Eintragungen in der/etc/hosts an und kontrollieren Sie die IP-Adresse des Nameservers insofern Sie einenverwenden.

Der Rechner kann sich zwar selbst an-pingen, ist aber von außen nicht er-reichbar.

Das Routing funktioniert nicht. Dies kannzwei Ursachen haben. Entweder stimmt dieIP-Adresse des Routers / Standardgatewaysnicht oder die Routingfunktion wurde nichtordentlich hochgefahren. Versuchen Sie ein-mal den Rechner durchzustarten.

Das Interface erscheint nicht, wennman den Befehl ifconfig eingibt.

Vermeiden Sie es fur ein und dieselbe Kon-figuration zwei unterschiedliche Werkzeugewie YaST und YaST2 zu verwenden. LoschenSie das Interface nochmals komplett und rich-ten Sie es erneut ein. Beachten Sie auch dieAusgaben des jeweiligen Tools.

Obwohl alles richtig konfiguriert ist,kann ich mich remote, beispielsweiseper telnet, nicht am anderen Rechneranmelden.

Haufigste Fehlerursache ist an dieser Stelleeine veraltete Datei /etc/hosts, in der ja der IP-Adresse ein Rechnername zugeordnet wird.Wenn der Name des anfragenden Rechnersvorhanden ist, die IP-Adresse aber nichtuber-einstimmt, oder die IP-Adresse zwar gepflegtist, jedoch ein anderer Name zugeordnet wur-de, dann wird die Anmeldung verweigert.

Eine NFS Freigabe wurde auf dem Ser-ver eingerichtet, ein neuer Client kanndiese Freigabe jedoch nicht mounten,da ihm Berechtigungen fehlen.

Die zentrale Steuerungsdatei fur die Berech-tigungen auf alle NFS Freigaben ist die/etc/exports. Hier mussen samtliche Rechner,die das Verzeichnis des Servers einbindenwollen, aufgefuhrt sein. Eine korrekte Konfi-guration kann mit YaST2 ohne große Schwie-rigkeiten durchgefuhrt werden. (vgl. auch Ka-pitel ”NFS-Server und -Client Konfiguration”

Tabelle 18.6.:Fehler im Netzwerk

178

Page 179: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18.3. Haufige Netzwerkbefehle und Fehlersuche

Das Argument host wird angegeben, wenn Sie lediglichuber einen einzelnen Host Informationen anfordernwollen. Die Option -v liefert die Versionsnummer und beendet anschließend das Programm. Informationenuber die angemeldeten Benutzer erhalten Sie mit der Option -u.

Das Kommando rup erfordert, dass auf allen beteiligten Rechnern der Damonrpc.rstatd lauft (rup steht fur remote up).

18.3.7. rlogin

Dieser Befehl ermoglicht es Ihnen, sich an einem Remote - Rechner anzumelden. Mit der Option -l usernamekonnen Sie sich dort auch unter einem anderen Benutzernamen als dem aktuellen anmelden (rlogin steht furremote login).

rlogin <Name des Remote - Rechners>

rlogin <IP - Adresse des Remote - Rechners>

18.3.8. rlogin/rsh

Mit diesem Befehl konnen Sie Befehle auf anderen Rechnern ausfuhren, d.h. Sie konnen dort Prozesseablaufen lassen (rsh steht fur remote shell). Dieser Befehl ist veraltet - Sie sollten die Alternativen slogin/sshhernehmen

rsh [-l Benutzername] remote-rechner | ip-adresse [befehl]

Die Option -l ermoglicht es, das gewunschte Kommando unter einem anderen Benutzernamen ausfuhren zulassen. Wenn Sie keinen Befehl angeben, werden Sie mittels rlogin am Fremdrechner angemeldet.

18.3.9. rcp

Mit diesem Befehl ist es moglich Dateien und Verzeichnisse von einem entfernten Rechner auf den eigenenRechner zu kopieren (rcp steht fur remote copy).Dieser Befehl ist veraltet - Sie sollten die Alternative scphernehmen.

rcp [-r] remote-rechner:/pfadname /zielpfad

Die Option -r erlaubt eine rekursive Kopie, die samtliche Unterverzeichnisse mit einschließt.

18.3.10. slogin/ssh/scp

Dieser Befehl ermoglicht es einem User, sich auf einem anderen Rechner einzuloggen. Dazu muss zwi-schen beiden Rechnern eine funktionierende TCP/IP Verbindung bestehen, wie bei rlogin/rsh. slogin/sshist als Ablosung von rlogin/rsh gedacht, da rlogin/rsh Verbindungen unverschlusselt die Datenubertragen.Dadurch wird es fur Hacker leicht, Passworter und personliche Daten des Benutzers abzuhoren. slogin/ssh- Verbindungen werden mit dem Public-/Private-Key verfahren verschlusselt, und sind damit erheblich vielsicherer als rlogin/rsh.

Benutzung der s-Dienste

Zur Verwendung der s-Dienste mussen Sie eigentlich nichts einrichten. Die Syntax entspricht der vonrsh/rcp:

179

Page 180: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

slogin [-r] remoterechner [-l benutzer]

bzw.

ssh [-l benutzer] remoterechner befehl

bzw.

scp [-r] [benutzer@]remote-rechner:/pfadname /zielpfad

Einrichtung von Passphrases

Die s-Dienste unterstutzen die Authentifizierunguber Public-/Private-Keys in Verbindung mit Passphrases.Dazu muss der Benutzer ein Public-/Private-Key Paar erzeugen. Dazu dient der Befehl:

ssh-keygen [-t rsa/dsa]

z.B.: ssh-keygen -t dsa

Im Laufe dieses Programmaufrufs werden Sie nach einem Dateinamen fur den Private-Key gefragt, den Siedurch drucken auf RETURN auf seinem Standardwert( ˜/.ssh/id_dsa) belassen sollten. Als nachstes fragt Sie das Programm nach einer sogenannten “Pass-phrase”, die Sie beliebig vergeben konnen. Achtung: Sie werden in Zukunft beim Loginuber ssh immernach diesem Passphrase gefragt werden, also merken Sie sich diese gut. Sie konnen auch gar kein Pass-phrase definieren, in dem Sie einfach auf RETURN drucken. Dadurch werden Sie bei Loginsuber ssh nichtmehr nach einem Passwort gefragt werden, und die Authentifizierung lauft komplett automatisch ab.ss-keygen erzeugt in Ihrem Verzeichnis˜/.ssh die Dateienid_dsa undid_dsa.pub. Letztere enthalt Ih-ren offentlichen Schlussel. Um sich vom Rechnercharlotte auf dem Rechnerbabette in Zukunft ohnePasswort einloggen zu konnen, kopieren Sie diesen Schlussel in Ihr / Verzeichnis aufbabette und fugenden Inhalt dieser Datei in eine neue Zeile der Datei˜/.ssh/authorized_keys2 aufbabette hinzu:

auf charlotte:ssh-keygen -t dsascp .ssh/id_dsa.pub michael@babette:˜

und auf babette:cat id_dsa.pub >> .ssh/authorized_keys2

Zusatzlich sollten Sie darauf achten, dass die Rechtevergabe in den.ssh Verzeichnissen stimmen, sonstnehmen die s-Dienste auch in Zukunft die gewohnliche Authentifizierunguber Passworteingabe her. Typi-scherweise sollten alle Dateien in.ssh nur fur Sie lesbar sein (600). Das Verzeichnis.ssh selbst sollte auchfur andere lesbar sein (744).Sie sollten sich nun per Public/Private-Key verfahren aufbabette einloggen konnen.

• Dieser Mechanismus eignet sich ideal dazu, skriptgesteuert Befehle auf viele Rechner zu verteilen.Allerdings sollten Sie beachten, dass Sie auf diese Weise in Zukunft sehr genau auf Ihre Login-Shell“aufpassen” sollten, da z.B.: in der Mittagspause ein “Kollege” durch Missbrauch Ihres Logins Zu-gang nicht nur auf Ihrer lokalen Maschine sondern auch auf allen von Ihnen mit Schlusseln praparier-ten Rechnern erlangen kann.

180

Page 181: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18.4. TCP / IP Protokolle und darauf aufsetzende Dienste

• Auf SuSE-Distributionen ist in der Datei/etc/ssh/ssh_config die Voreinstellung Protocol 1,2 ge-troffen. Dadurch versucht ssh sichuber das ssh-Protokoll 1 zu authentifizieren. Wenn Sie jedoch IhreSchlussel wie empfohlen im Protokoll 2 erzeugt haben (mit dem Parameter -t dsa), dann funktioniertder Schlusselaustausch nicht. Wenn Sie auf dieser Maschine root - Rechte haben, sollten Sie dieseOption daher ausbessern. Wenn Sie nur einen gewohnlichen Account besitzen konnen Sie entwederselbst eine Datei.ssh/config anlegen, oderssh in Zukunft immer mit dem Parameter-2 aufrufen.

• Auch auf die Gefahr der Einrichtung einer “Backdoor”, durch unerwunschte Schlussel in Ihrer.ssh/authorized_keys2sei hiermit hingewiesen

18.4. TCP / IP Protokolle und darauf aufsetzende Dienste

Grundlage fur den Netzwerkbetrieb ist unter Linux in der Regel das TCP / IP Protokoll. Rechner sindinnerhalb eines Netzwerksuber ihre IP - Adresse ggf. aber auchuber einen vergebenen Namen erreichbar.Die IP - Adresse ist eindeutig, da sie innerhalb des Netzwerks nur ein Gerat identifiziert. Dieses Geratkann sowohl eine Netzwerkkarte in einem PC, eine Schnittstelle zum Großrechner, ein Terminal oder einDrucker sein. Die IP - Adresse ist in vier Elemente mit jeweils acht Bit Lange unterteilt, was der dezimalenDarstellung 0 bis 255 entspricht. Der gesamte Adressraum wird in Klassen unterteilt, die sich voneinanderdadurch unterscheiden, dass der Netzanteil einer Adresse mit steigender Klasse zunimmt. Der Rechneranteilnimmt dagegen immer weiter ab.

18.4.1. Dienst telnet

Mit diesem Dienst kann eine Terminalemulationuber das Netz realisiert werden. Der Aufruf kann mitHilfe der IP - Adresse stattfinden oder bei aktivierter Namensauflosung mit dem Namen des gewunschtenRechners.

telnet <IP - Adresse des Remote Rechners>

telnet <Name des Remote Rechners>

Der Remote - Rechner meldet sich dann mit einem Login - Prompt, und Sie konnen sich durch Eingabe vonBenutzernamen und Passwort am Remote - Rechner anmelden. Eine sofortige Anmeldung als root ist ausSicherheitsgrunden nicht moglich, da telnet die Passworter unverschlusseltubertragt. Mit exit oder Strg + Dbeenden Sie die telnet Verbindung.

Eine hartnackige Fehlerquelle ist immer wieder eine schlecht gepflegte Datei/etc/hosts, in der veralteten IP-Adressen nochalteren Rechnernamen zugeordnet werden. Der remoteRechner vergleicht den Namen des anfragenden Rechners mit dem der IP-Adresse entsprechenden Namenin seiner/etc/hosts. Treten hier Ungereimtheiten auf, kommt eine Verbindung garnicht erst zustande.

18.4.2. Dienst ftp

Dieser Dienst ermoglicht die Dateiubertragung zwischen beliebigen Systemen, dieuber eine Netzverbin-dung verfugen. Die Verbindung kann hier ebenfalls mit der IP - Adresse bzw. dem Namen des RemoteRechners aufgebaut werden.

ftp <IP - Adresse des Remote Rechners>ftp <Name des Remote Rechners>

181

Page 182: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

Wenn es sich nicht um anonymous ftp handelt, mussen Sie sich auch hier mit einem Benutzernamen undzugehorigem Passwort am Remote-System authentifizieren. Nach der Anmeldung meldet sich ftp mit einemeigenen Prompt, an dem die ftp Befehle eingegeben werden konnen. In den meisten Fallen werden diebeiden Befehle put und get vollig ausreichen. Ersterer ist fur das Kopieren von Daten vom lokalen Rechnerauf den Remote Rechner zu verwenden, letzterer zum Kopieren von Daten in der umgekehrten Richtung.Dabei sollte beachtet werden, dass fur das Kopieren von binaren Dateien zuerst der Transfertyp mit demftp Kommando bin auf binar gesetzt wird. Mit den ftp Kommandos quit oder bye beenden Sie die Sitzung.Hilfe erhalten Sie durch die Eingabe eines ? am ftp Prompt.

Wenn Sie sich lediglich eine Datei von einem FTP-Server herunterladen wollen, so konnen Sie auf dieinteraktive FTP-Sitzung verzichten und konnenftp im Batchmodus aufrufen. Dabei geben Sie einmal alleParameter fur den Download beim Aufruf des Programmes an, und haben danach keine weiteren Eingabenmehr zu tatigen. Die Syntax lautet:

ftp ftp://[User][:Passwort]@[FTP-Server]/[Dateiname]

zum Beispiel

ftp ftp://bill:[email protected]/overkill.exe

Im letzten Beispiel ladt Benutzer Bill vom FTP-Serverftp.kleinweich.com mit dem Passwort “Weltherr-schaft” die Dateioverkill.exe herunter.

Die Angabe eines Passworts ist allerdings nur im Notfall anzuraten, schliesslich kann jeder andere Be-nutzer mit einem einfachentop Befehl den kompletten Programmaufruf inklusive ihrem Passwort (!) direktablesen. Indem Sie auf die Angabe des Passwortes verzichten, zwingen Sie das Programm dazu, Sie nochmalexplizit danach zu fragen, was bewirkt, dass sich das Passwort nicht mehr im Aufrufstring befindet.

Eine Attacke durch einen Sniffer konnen Sie dadurch allerdings auch nicht ausschliessen, da ftp einunverschlusselndes Protokoll ist. Daher sei hier nochmals auf die SSH-Dienste verwiesen, die diese Mangelnicht aufweisen.

18.4.3. Ausfuhren von X-Anwendungen

franzi ist der Server, die Anwendungen sollen auf diesem ausgefuhrt werden, aber am lokalen Rechnerangezeigt werden.

alex ist der lokale RechnerAnweisungen:

xhost +franzirlogin franziexport DISPLAY=alex:0

Programme werden jetzt auf alex angezeigt.

Ubungen

1. Nennen Sie Dienste, die die Nutzung gemeinsamer Ressourcen im Netzwerk ermoglichen?

2. Welche Voraussetzungen mussen erfullt sein, damit ein Netzwerk fur einen Anwender transparent ist?

3. Mit welchem Befehl konnen Sie den Weg von einem Rechner zu einem anderen nachvollziehen?

182

Page 183: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18.4. TCP / IP Protokolle und darauf aufsetzende Dienste

4. Was ist der erste Schritt zur Fehleranalyse im Netzwerk?

5. Wie erhalten Sie eine Liste von aktiven Rechnern im Netz?

6. Auf welche unterschiedliche Arten konnen Sie sich remote auf anderen Rechnern einloggen?

7. Mit welchem Tool konnen Sie Samba bequem per grafischer Oberflache konfigurieren?

8. Was bedeutet die Einstellung security = user in der Datei /etc/smb.conf?

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.Uberbleibsel aus der alten Ausgabe 0.5 Ob das Interface korrekt erkannt und in den Kernel eingebunden

wurde, kann mit Hilfe des Befehls ifconfig nachvollzogen werden. Zum anderen ist in diesem Zusammen-hang auch die Datei/etc/modules.conf interessant, in der der Name des Moduls als Alias eingetragensein muss. Trifft dies zu, so ist der Kernel korrekt fur das Netzwerk konfiguriert.

183

Page 184: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

18. Netzwerk

184

Page 185: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19. Shellprogrammierung

Wahrend der Anwender nur selten mit ihr in Beruhrung kommt, ist die Shell1 fur den Administrator einunerlassliches Werkzeug bei der taglichen Arbeit. Nicht zuletzt deshalb, weil sie es mit ihrer Skriptspra-che ermoglicht, administrative Vorgange zu automatisieren und eigene Anforderungen selbst auf einfachemWege zu realisieren.

Lernziele

In diesem Kapitel lernen Sie,

• mit der Shell umzugehen,

• eigene Skripten zu schreiben,

• Fehler in Shellskripten zu finden und auszubessern.

19.1. Motivation

Die Shell ist und bleibt auch zu Zeiten grafischer Oberflachen einaußerst nutzliches Werkzeug. Sie stelltdabei nicht nur eine vielfaltige Auswahl an Kommandos zur Verfugung, sondern bietet mit der sogenanntenShellskript-Programmierung die Moglichkeit durchaus komplexe Vorgange zu automatisieren. Die folgendeEinfuhrung soll Ihnen hierzu einenUberblick vermitteln, kann aber sicherlich in der jetzigen Form nicht eingutes Buch bzw. eine umfangreiche Referenz zum Thema ersetzen.

19.2. Shell - Allgemeinwissen

Die Shell ist ein sogenannter Kommandointerpreter, der die Aufgabe hat, Eingaben vom Benutzer entgegenzunehmen, auszuwerten, auszufuhren und anschließend die Ausgaben wieder zuruckzuliefern (interaktiveShell). Außerdem stellt sie eine Umgebung zur Ausfuhrung von Shell-Skripten, die grunsatzlich in einereigenen Shell laufen, dar (nicht interaktive Shell). Daruber hinaus verwaltet die Shell samtliche System-variablen und unterstutzt benutzerfreundliche Mechanismen wie Pfad- und Kommandovervollstandigung.Nicht nicht zu vergessen, die Auswertung der Wildcards, die Steuerung der Prozesse, die Verwendung re-gularer Ausdrucke und die Moglichkeiten zur Ablaufsteuerung. Unter Linux ist die Standardshell die Bash(Bourne Again Shell), auf die sich die nachfolgenden Erlauterungen ausschließlich beschranken.

19.3. Shellskripte - Grundlagen

Ein Shellskript ist im Grunde nichts anderes als eine Textdatei, die mehrere Kommandos enthalt. Dabei stelltes selbst ein Kommando dar und kann, wie ein Systemkommando, auch mit Parametern aufgerufen werden.

1die nachfolgenden Ausfuhrungen beziehen sich ausschließlich auf die Bash, die unter Linux standardmaßig verwendet wird

185

Page 186: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19. Shellprogrammierung

Haufig gebrauchte Kommandofolgen konnen so leicht zusammengefasst und insbesondere admininstrativeVorgange automatisiert werden.Um zu einem funktionsfahigen Skript zu kommen, erstellen Sie zunachst eine Textdatei, wobei darauf zuachten ist, dass bereits die Benennung auf den Zweck des Skriptes hinweist und dass die Dateiendungmoglichst .sh ist. Anschließend kann das Skript mit einem beliebigen Editor bearbeitet werden. Zuletztmussen naturlich noch die Ausfuhrungsrechte gesetzt werden.

touch skript.shvi skript.shchmod u+x skript.sh

Jetzt ist das Skript zwar grundsatzlich ausfuhrbar, allerdings zeigt die Pfadvariable nur selten auf dasaktuelle Verzeichnis, so dass das Skript wie folgt angestartet werden muss.

./skript.sh

Als Alternative hierzu kann auch eine neue Shell gestartet werden, der der Name des Skriptes als Para-meterubergeben wird.

bash skript.sh

19.4. Skriptsprache - Bestandteile

Der Sprachumfang der Skriptsprache durfte im Vergleich zu anderen Programmiersprachen verhaltnismaßigklein sein. Dabei sind Ihnen sicher bereits einige Sprachelemente aus anderen Umgebungen bekannt. DieMachtigkeit der Shellskript-Programmierung geht indes nicht von diesen Elementen aus, sondern beruht aufden zahllosen Kommandos, die auf der Kommandozeile zur Verfugung stehen. Ein einfaches Beispielskriptsoll Ihnen die wesentlichen Komponenten aufzeigen und erlautern.

#!/bin/bash Festlegung des verwendeten Shell-Interpreters#Kommentarzeilenls -al; who; cp einfache Kommandos und deren Optionen$varname fur eigene nur im eigenen Skript gultige Variablen$VARNAME fur Systemvariablen (vgl. man bash)$n fur Ubergabeparameter Variablen und Ubergabeparameterset; unset Setzen von Ubergabeparametern und Loschen von Variableninhaltenif bedingung; then kommandos; [ elif bedingung; then kommandos; ] ... [ else kommandos; ] ficase wort in [ [(] inhalt [ | inhalt ] ... ) kommandos;; ] ... esac Verzweigungen> bzw. >> und < bzw. << Kommunikation zwischen Prozessen (Pipes, Aus- und Eingabeumlenkungen)echo Ausgaben‘...‘ und ’...’ und "..." KommandosubstitutionVAR=$(kommando) Parametersubstitutionwhile bedingung; do kommandos; donefor varname [ in wort ] ; do kommandos ; donefor (( ausdruck1 ; ausdruck2 ; ausdruck3 )) ; do list ; done Zahlschleifentest Prufen von Bedingungen

Jetzt nachdem Sie die wesentlichen Sprachbestandteile kennengelernt haben, sollen diese ausfuhrlicherdargestellt werden.

186

Page 187: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19.4. Skriptsprache - Bestandteile

19.4.1. Festlegung des Shell-Interpreters

Gleich in der ersten Zeile jedes Skriptes ist die zu verwendende Shell zu nennen. In dieser Umgebung wirddann das Skript ausgefuhrt. In der Regel werden Sie hier Angaben der Form#!/bin/bash bzw.#!/bin/shfinden. Dabei ist/bin/sh in der Regel nur ein Link auf die Bourne Again Shell.

19.4.2. Kommentare

Kommentare beginnen immer mit# und behalten ihre Gultigkeit bis zum Zeilenende. Die Verwendung vonKommentaren ist immer empfehlenswert, da Anmerkungen im Quelltext die Lesbarkeit des Skriptes deutlicherhohen und damit die spatere Fehlersuche oder Anpassung deutlich erleichtern. Auch ist es sinnvoll imKopf des Skriptes den Autor, das Datum, die Funktion und eventuell die Version des Skriptes festzuhalten.Manchmal wird sogar ein Changelog gepflegt, dassuber die letztenAnderungen Auskunft gibt. Allerdingswerden auch einige Spezialitaten der Shellskriptprogrammierung, wie z.B. die verwendete Shell und dasexec Kommando, hinter Kommentarzeichen versteckt, und bleiben dennoch nicht unbeachtet.

19.4.3. einfache Kommandos

Hiermit sind Kommandos gemeint, die man auch am Prompt der Shell eingeben wurde. Unix bzw. Linuxbietet aufgrund des Grundsatzes ”Small is beautiful” eine Vielzahl an Befehlen, die fur sich alleine gestellteine sehr eingeschrankte Funktionalitat aufweisen, aber durch geschickte Kombination zu einem machtigenWerkzeug heranwachsen. EinenUberblickuber die gangigen Kommandos finden Sie in der Kommandore-ferenz im KapitelB auf der Seite305.

19.4.4. Ubergabeparameter

$0 Name des Shellskripts$1 $2 $3 $4 $5 $6 $7 $8 $9 ${n} Variablen aus der Parameterubergabe$# Anzahl der ubergebenen Argumente$* ("$1 $2 $3 $4 $5 $6 $7 $8 $9 ...") Die Variable $* verbindet alle Argumente, die dem Programm ubergeben wurden, zu einer

Zeichenkette. Die einzelnen Argumente sind durch Leerzeichen voneinander getrennt. Deshalblasst sich die Variable $* hervorragend fur Skripte mit variabler Argumentliste einsetzen.Außerdem lassen sich mit $* Argumentlisten erzeugen (vgl. Befehl set).

$@ ("$1" "$2" ... "$n") Im Gegensatz zur Variablen $* werden die Parameter als einzelne Zeichenketten zusammengefasst.Damit die Abgrenzung zu $* gelingt, vergleichen Sie hierzu die Beispiele im Abschnitt Schleifen.

$? Ruckgabewert des letzten Kommandos, setzen mit exit exitcode$$ Prozessnummer der aktuellen Shell (z.B. eignet sich fur die Erzeugung von temporaren Dateien, da eindeutig.)$! Prozessnummer des letzten Hintergrundprozesses

19.4.5. Variablen

Stringvariablen

Variablen sind in der Shellprogrammierung zunachst vom Datentyp string und brauchen nicht deklariert zuwerden. Es hat sich allerdings fur dieUbersichtlichkeit als gunstig erwiesen, diese am Anfang des Skripteszu initialisieren und ihre Funktion, soweit nicht aus dem Namen erkennbar, zu kommentieren. Abgesehendavon sieht die gebrauchliche Namenskonvention vor, dass kleingeschriebene Variablen nach dem Muster$varname nur innerhalb des eigenen Skriptes gultig sein sollten, wahrend es sich bei großgeschriebenenin der Form$VARNAME in der Regel um Systemvariablen handelt, die mit Hilfe des Befehlsexport in

187

Page 188: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19. Shellprogrammierung

das Environment der untergeordneten Shells eingehen. Die Wertzuweisung kann auf unterschiedliche Artund Weise erfolgen. Eine genauere Erklarung zu den Quotierungen erfolgt weiter unten in einem eigenenAbschnitt.

var=inhalt einfachste Zuweisung, moglich bei Strings ohne Leer- und Sonderzeichenvar="inhalt der variablen: $var" hier sind auch Leerzeichen zulassig, mit $ angegebene Variable werden ausgewertetvar=’inhalt der $variablen’ eine Auswertung der mit $ angefuhrten Variablen erfolgt jetzt nicht mehr bestimmte Sonderzeichen mussen mit Backslash maskiert werdenvar= hier wird ein Leerstring zugewiesen, es sind keine Leerzeichen vor / nach dem = zulassig

Wahrend die Wertzuweisung nur mit dem Variablennamen erfolgt, wird spater unter Verwendung desDollarzeichens ($var) auf den Variableninhalt zugegriffen. Naturlich sind auch Stringoperationen wie Aus-schneiden, Abschneiden, Teilen und Vergleichen moglich. Einige dieser Moglichkeiten werden in spaterenBeispielskripten deutlich.

Integervariablen

Die Deklaration von Integervariablen erfolgt mit Hilfe vondeclare -i zahl. Ubliche Operationen wieEin-/Ausgaben, Wertzuweisungen, die Grundrechenarten, Vergleichsoperationen und logische Ausdruckewerden von der Shell unterstutzt. Allerdings ist der Umgang mit solchen Variablen nicht so einfach, wie eszunachst scheint. Gerade als Einsteiger fallt man hier leichtuber Stolpersteine.

read / echo Ein-/Ausgabe von Variableninhalten= Wertzuweisung+ - * / \% Rechenarten (Summe, Differenz, Produkt, Quotient, Modulo)< > <= => == != Vergleiche (kleiner, großer, kleiner / gleich, großer / gleich, gleich, nicht gleich&& || logische Verknupfungen (logisches UND, logisches ODER)

19.4.6. Arrays

Variablen konnen in der Shell mitdeclare -a als eindimensionale Felder vereinbart werden. Arrays weisendabei folgende Eigenschaften auf:

• auf einzelne Array-Elemente kann mit Hilfe eines Indexes zugegriffen werden

• ein Index ist ein Integerausdruck, der in eckigen Klammern steht

• Arrays mussen nicht deklariert werden, es reicht aus den Elementen die jeweiligen Werte zuzuweisen

• die Zuweisung eines Wertes zu einem Feld erfolgt wie bei Variablen

• die Indizes beginnen bei 0

Beispiel:

#!/bin/bash# author: tobias mucke# date: 23. may 2002# comment: some experiences with arrays

# initializationn=0 # counteri=$# # number of parameters

188

Page 189: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19.5. Zeichenkettenzerlegung

# reading parameters into arraywhile [ $n -lt $i ]; do

array[$n]="$1"shift 1n=$[$n+1];

done

# getting the number of array elementsi=${#array[*]}echo "Anzahl der Arrayelemente: $i"

# writing all array elements to stdoutn=0while [ $n -lt $i ]; do

echo ${array[$n]}n=$[$n+1];

done

# end of skript

19.5. Zeichenkettenzerlegung

Der Befehl set ist eigentlich dazu gedachtUbergabeparameter neu zu setzen. Durch einen typischen Shell-trick kann man jedoch auch auf einfachste Art und Weise eine Zeichenkette mit set zerlegen. Dabei istjedoch zu beachten, dass samtliche Parameter, die beim Aufruf des Skriptsubergeben wurden,uberschrie-ben werden.

#!/bin/bash# author: tobias mucke# date: 31. dec 2002# comment: parsing of strings with set

set $(date)

day="$1 der $3."month="$2"time="$4"year="$6"

echo "Uhrzeit: $time"echo "Datum: $day $month $year"

# end of skript

19.6. Parser

Ahnlich wie viele Shellkommandos bringen auch einige Skripten eine Unzahl an Optionen und Parame-tern mit. Ein Parser sorgt fur die Kontrolle und Auswertung derUbergabeparameter. Das folgende etwastrickreiche Beispiel zeigt einen einfachen Parser.

#!/bin/bash

189

Page 190: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19. Shellprogrammierung

# author: tobias mucke# date: 31. dec 2002# comment: parsing parameters and options given to the script

while [ -n "$1" ]; docase $1 in-f | --file) file=$2

shift 2;;-d | --destination) destination=$2

shift 2;;-s | --source) source=$2

shift 2;;-h | --help) echo ’Hilfe!’

shift 2;;*) echo ’Hilfe!’

exit 1;;esac

done

echo ’File: ’$fileecho ’Destination: ’$destinationecho ’Source: ’$source

# end of skript

19.7. Funktionen

Wie jetzt schon aus den gezeigten Beispielen ersichtlich wird, wachst der Umfang ausgeklugelter Skrip-te stark an. Oft braucht man denselben Code an mehreren Stellen und mochte durch die Verwendung vonFunktionen zum einen vermeiden, dass man Anpassungen an mehreren Stellen vornehmen muss und zumanderen, dass man durch ausgelagerte Skripten viele voneinander abhangige Dateien erzeugt. Außerdemermoglichen Funktionen eine strukturierte Programmierung, deren großter Vorteil die gesteigerteUbersicht-lichkeit darstellt.

#!/bin/bash# author: tobias mucke# date: 31. dec 2002# comment: functions in shellscripts

usage() {echo ’genaue Anleitung zur Verwendung von Funktionen im Linuxhandbuch’exit}

usage

# end of skript

Ubungen

1.

190

Page 191: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19.7. Funktionen

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

191

Page 192: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

19. Shellprogrammierung

192

Page 193: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20. VFS - Virtual File System und andereDateisysteme

Wie bereits deutlich geworden sein sollte, ist das Dateisystem der entscheidende Dreh- und Angelpunktunter Linux. Dabei dominiert nicht ein einzelnes Dateisystem die Szene, vielmehr gibt es fur die verschie-densten Einsatzzwecke eigens konzipierte Filesysteme. Das VFS integriert alle unterstutzten Dateisystemeund bietet so den Prozessen und Anwendern eine einheitliche Schnittstelle zu den Daten an. Die Imple-mentierung einzelner Dateisysteme wird dadurch komplett abstrahiert, so weiß beispielsweise ein Benutzernicht ob er gerade auf einem lokalen oderuber das Netzwerk gemountetem Dateisystem arbeitet.

Lernziele

• Sie verstehen das Konzept des Virtuellen Filesystems.

• Sieuberblicken die verschiedenen Dateisysteme unter Linux und konnen diese einordnen.

• Sie kennen die wichtigsten Kommandos zur Dateisystemverwaltung.

20.1. Procfs

Das Procfs ist nichts anderes als eine Schnittstelle zum Kernel, an der Sie Informationenuber die laufendenProzesse, die erkannte Hardware und verschiedenste Kerneleinstellungen abfragen konnen. Grundsatzlichkonnen Sie sich hier wie in einem normalen Dateisystem bewegen, so dass der Umgang mit dem Procfssofort gewohnt erscheint.

Lernziele

In diesem Kapitel lernen Sie,

• Informationen zu den laufenden Prozessen abzufragen,

• Kerneleinstellungen einzusehen und zuandern,

• und zusatzliche Angabenuber die erkannte Hardware auszulesen.

Daneben werden Kommandos angesprochen, die ein komfortables Arbeiten dadurch ermoglichen, dasssie die im Procfs liegenden Dateien auslesen und deren Informationen aufbereiten. Auf diese Weise mussman nicht selbst in den Tiefen dieses speziellen Dateisystems wuhlen und teils kryptische Angaben inter-pretieren.

193

Page 194: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20. VFS - Virtual File System und andere Dateisysteme

20.1.1. Prozessinformationen

Viele Eintrage im Procfs werden vom Kernel zur Prozessverwaltung verwendet. Fur jede gestartete Anwen-dung gibt es ein eigenes Verzeichnis, das nach deren PID benannt ist. Da es sich hierbei nur um ein Abbilddes Arbeitsspeichers handelt, belegt keines dieser Verzeichnisse wirklich Speicherplatz.

Dateien / Verzeichnisse Funktioncmdline Kommando, Parameter und Optionencwd symbolischer Link auf das aktuelle Arbeitsverzeichnisenviron Umgebungsvariablen und deren Werteexe symbolischer Link auf das Binary des ausgefuhrten Programmsfd Verzeichnis mit symbolischen Verlinkungen einzelner Dateide-

skriptoren auf Dateienmappedbasemaps Speicheradressen und deren Inhaltmem Arbeitsspeicher des Prozessesmounts gemountete Dateisystemeroot symbolischer Link auf das Wurzelverzeichnisstatstatm Informationen zur Verwendung des Arbeitsspeichersstatus Statusinformationen

Tabelle 20.1.:Prozessinformationen

————————————————————————————————————————-Daneben gibt es noch das Verzeichnisself, ein Link auf den Prozess, der gerade im Dateisystem liest.

Jedes dieser Prozessverzeichnisse enthalt die in der Tabelle??auf Seite??aufgefuhrten Dateien.Um detaillierte Informationenuber einen einzelnen Prozess auszulesen, mussen nur die jeweiligen Datei-

en im Prozessverzeichnis betrachtet werden. Ein Beispiel anhand des Prozesses mit der PID 2422 soll dasErklarte verdeutlichen.

> cat /proc/2422/cmdline/bin/sh/usr/X11R6/bin/mozilla

> cat /proc/2422/statusName: mozillaState: S (sleeping)Tgid: 2422Pid: 2422PPid: 1487TracerPid: 0Uid: 500 500 500 500Gid: 100 100 100 100FDSize: 256Groups: 100 14 16 17 33VmSize: 2588 kBVmLck: 0 kBVmRSS: 1228 kBVmData: 124 kB

194

Page 195: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20.2. Oberpunkt

VmStk: 24 kBVmExe: 432 kBVmLib: 1644 kBSigPnd: 0000000000000000SigBlk: 0000000080010000SigIgn: 8000000000000004SigCgt: 0000000000010002CapInh: 0000000000000000CapPrm: 0000000000000000CapEff: 0000000000000000

Die zuruckgegebenen Informationen entsprechen im wesentlichen der Ausgabe des Kommandosps. Tatsachlichgreifen eine Menge Befehle auf das proc-Dateisystem zu und bereiten dessen Informationsgehalt fur den Be-nutzer auf.Daruberhinaus kann anhand der Datei statm wie bereits angedeutet die Speicherverwendung des jeweiligenProzesses betrachtet werden. Hier werden die Anzahl der Seiten im Speicher verwaltet, wobei zwischentotal, shared, code, data/stack, lib und dirty unterschieden wird.

20.2. Oberpunkt

20.2.1. Unterpunkt

• erster Stichpunkt

• zweiter Stichpunkt

• dritter Stichpunkt

20.2.2. Unterpunkt

1. erster Arbeitsschritt

2. zweite Anweisung

3. abschließende Ausfuhrungen

20.3. Oberpunkt

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

195

Page 196: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20. VFS - Virtual File System und andere Dateisysteme

20.4. Kerneldaten

Ahnlich wie die einzelnen Prozesse, gibt auch der Kernel im proc-Dateisystem Informationenuber das lau-fende System bekannt. Die Tabellen20.2 und 20.3 auf den Seiten196 und 197 enthalten eine Liste derdenkbaren Dateien, wobei es insbesondere vom Kernel aber auch von den geladenen Modulen abhangt,welche Dateienuberhaupt vorhanden sind. Aus verstandlichen Grunden sind einige Dateien nur als Syste-madminstrator root lesbar.

Datei Inhaltapm Informationen zum Advanced Power Managementasound Informationen zur Soundkarte und ihrer Fahigkeitenbus Verzeichnis mit den vorhandenen Bussystemencmdline Kommandozeile des Kernels z.B. mit Kernelparameterncpuinfo Informationenuber den Prozessordevices Liste der zur Verfugung stehenden block- und zeichenorientierten

Geratedma Liste der verwendeten DMA Kanalefilesystems Liste der unterstutzten Dateisystemefs Verzeichnis mit Dateisysteminformationen z.B. NFS exports, quotaide Verzeichnis mit detaillierten Informationenuber IDE-Controller und

Gerateinterrupts Verwendung der Interruptsiomem Speicherbereiche fur I/O Operationenioports Verwendung der I/O Portskcore Speicherabbild des Kernelkernskmsg Nachrichten des Kernelsksyms Tabelle mit Kernelsymbolenloadavg Ausgabe der durchschnittlichen Systembelastunglocks Kernellockslvm Verzeichnis fur den Logical Volume Manager

Tabelle 20.2.:Kerneldaten in /proc - Teil 1

In der Datei/proc/meminfo finden sich sehr genaue Informationen zur derzeitigen Verwendung desArbeits- und Swapspeichers. Hier gilt es jedoch zu beachten, dass nicht immer zwischen den beiden Spei-chertypen unterschieden wird. Abgesehen von der Performance stellt sich der Swapbereich gegenuber An-wendungen genauso dar, wie der eigentliche Arbeitsspeicher.Desweiteren benutzt der Kernel noch weitere Zwischenspeicher, die sogenannten Slab Caches, in denenbeispielsweise Puffer fur den Netzwerkzugriff enthalten sind. Die genaue Verwendung ist in der Datei/proc/slabinfo dokumentiert.

So konnen Sie beispielsweise mit dem Kommandocat auf viele systeminterne Informationen zugreifen.

> cat interruptsCPU0

0: 1282097 XT-PIC timer1: 39613 XT-PIC keyboard2: 0 XT-PIC cascade

196

Page 197: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20.5. IDE Subsystem

Datei Inhaltmeminfo Informationen zum Verwendung des Arbeitsspeichersmisc Verschiedenesmodules Liste der geladenen Modulemounts Aufstellung der gemounteten Dateisystemenet Informationen zum Netzwerk (vgl. unten)partitions Liste der systemweit bekannten Partitionenpci Auflistung der erkannten Gerate am PCI Busrtc real time clock im Unterverzeichnis /proc/driverscsi Informationen zum SCSI Subsystem (vgl. unten)slabinfo Informationen zu den slab pools (vgl. unten)stat umfassende Systemstatistikswaps Informationuber die Swapbereiche und deren Verwendungsys Verzeichnis mit Zugriff auf Kernelparameter (vgl. nachstes Kapitel)tty Verzeichnis mit detaillierten Informationen zu den seriellen Schnittstel-

lenuptime Uptime des Systemsversion Kernel Version

Tabelle 20.3.:Kerneldaten in /proc - Teil 2

8: 2 XT-PIC rtc10: 145828 XT-PIC EMU10K111: 87 XT-PIC eth0, usb-uhci, usb-uhci12: 366015 XT-PIC PS/2 Mouse14: 65590 XT-PIC ide015: 21 XT-PIC ide1

NMI: 0ERR: 0

Die bereits angesprochene Dateislabinfo gibt uber die Speicherverwendung im slab Level Auskunft.Die sogenannten slab pools liegenuber dem page level der Speicherverwaltung und werden fur haufigverwendete wie Netzwerkpuffer, Verzeichniscache usw. verwendet.

20.5. IDE Subsystem

Das Verzeichnis/proc/ide enthalt alle IDE Gerate vom Chipsatz,uber den Controller bis hin zu deneinzelnen Laufwerken, die der Kernel erkannt hat. Neben der Dateidrivers und einer chipsatzspezifischenDatei beispielsweise namensvia wird fur jeden Controller (vgl. Tabelle20.4auf Seite198) und jedes daranangeschlossene Laufwerk (vgl. Tabelle20.5auf Seite198) ein eigenes Verzeichnis verwaltet dessen Dateienaußerst genaue Informationenuber das jeweilige Gerat bereitstellen. Allerdings sind nicht alle Dateien sindfur jeden Benutzer lesbar.

> cat /proc/ide/driverside-floppy version 0.99

197

Page 198: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20. VFS - Virtual File System und andere Dateisysteme

ide-cdrom version 4.59ide-disk version 1.12

Datei Inhaltchannel IDE Kanal (in der Regel 0 oder 1)config Konfiguration der PCI/IDE bridgemate Name des matesmodel Type bzw. Chipsatz des IDE Controllers

Tabelle 20.4.:IDE Controller in /proc/ide

Datei Inhaltcache Große des Laufwerkscachecapacity Kapazitat des Mediums in 512Byte Blockendriver Treiber und dessen Versiongeometry physikalische und logische Geometry des Laufwerksidentity ID Block des Laufwerksmedia Typ des Mediumsmodel Hersteller und Typbezeichnungsettings Konfiguration des Laufwerkssmarttresholds IDE Festplatten Verwaltung tresholdssmartvalues IDE Festplatten Verwaltung Werte

Tabelle 20.5.:IDE Laufwerke in /proc/ide

Sollen also beispielsweise der Hersteller und die Typbezeichnung eines IDE Laufwerks ausgelesen wer-den, konnte der Befehl wie folgt aussehen.

> cat /proc/ide/ide0/hda/modelIC35L040AVER07-0

Außerdem interessant sind die Laufwerkseinstellungen, die in der Datei settings abgelegt sind. Auf diesehat jedoch nur der Benutzer root lesenden Zugriff.

20.6. SCSI Subsystem

Wenn Sie einen SCSI Host Adapter in Ihrem System haben, finden Sie ein nach dem Treiber benanntesVerzeichnis unter/proc/scsi wieder. Dieses enthalt eine Datei fur jeden erkannten Adapter mit genauerBezeichnung, BIOS Revision, belegte Ressourcen usw. Außerdem gibt die Datei/proc/scsi/scsi ubersamtliche erkannten SCSI Komponenten Auskunft.

> cat /proc/scsi/scsi...

198

Page 199: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20.7. Netzwerk

20.7. Netzwerk

Genauso wie die bisher angesprochenen Verzeichnisse verhalt es sich auch mit/proc/net. Tabelle20.6auf Seite199 listet einige der wichtigsten Dateien in diesem Zusammenhang. Sollte Ihr Kernel mit IPv6Unterstutzung kompiliert worden sein, so kommen noch weitere Dateien hinzu.

Datei Inhaltarp Tabelle des Kernel ARP Cachesdev Netzwerk Interfaces und Statistikenigmp IP Multicast Adressennetstat Netzwerkstatistikenroute Kernel Routing Tabellerpc Verzeichnis fur Remote Procedure Callsrt cache Routing Cachesnmp Datenuber SNMPsockstat Socketstatistikentcp TCP Socketsudp UDP Socketsunix Unixdomain Socketswireless Statistiken fur Wireless Interfaces

Tabelle 20.6.:Netzwerk in /proc/net

20.8. Parallelport

Zu finden unter /proc/sys/dev/parport/ vgl. Kapitel 4

20.9. Serielle Schnittstelle

Dieses Verzeichnis halt Informationenuber die verfugbaren und verwendeten seriellen Schnittstellen vor.Tabelle20.7auf Seite199nennt einige Dateien und ihre Bedeutung.

Datei Inhaltdrivers Liste mit Treibern und deren Verwendungldiscs registrierte Zeilen Disciplinedriver/serial Statistik und Status einzelner serieller Leitungen

Tabelle 20.7.:Serielle Schittstellen in /proc/tty

Ubungen

1.

199

Page 200: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20. VFS - Virtual File System und andere Dateisysteme

2.

3.

Zusammenfassung

Wie Sie im vorangegangen Kapitel gesehen haben, dient das proc-Dateisystem nicht nur der Prozessverwal-tung sondern auch in hohem Maße dem Zugriff auf Kerneldaten. Das Stobern in der Verzeichnisstruktur undin einzelnen Dateien ist dabei mit herkommlichen Kommandos ohne weiteres moglich. Allerdings greifenviele Befehle aus dem Alltag des Systemadministrators ebenfalls auf /proc zuruck und prasentieren ihreErgebnisse weitaus schoner als manch kryptische Datei.

20.10. Devfs

Ziel des Kapitels

• Sie haben im Hinterkopf, um was es sich beim Device File System handelt.

• Sie konnen Fachbegriffe, die im Zusammenhang mit den Devfs stehen, einordnen und erlautern.

• Sie kennen die Unterschiede zwischen der alten und der neuen Implementierung des Devfs.

20.10.1. Grundlagen

Mehrmals ist bereits deutlich geworden, dass in einem Linux-System die Datei eine tragende Rolle spielt.So sind beispielsweise Verzeichnisse nur Dateien, in denen der Dateiname einer Inodenummer zugeordnetwird. Ahnlich verhalt es sich mit samtlichen Geraten des Computers. Der Zugriff auf diese erfolgt durchsogenannte Geratedateien (Device-Files), die die Schnittstelle zum Kernel darstellen. In einem eigenen Ver-zeichniss /dev sind zahllose solcher Dateien angelegt, anhand derer Namen man die Verwendung erkennenkann.

to do: wie arbeiten die alten Geratedateien?Neuere Entwicklungen lassen die derzeitige Verwaltung der Gerate in einem anderen Licht erscheinen.

Aus diesem Grund beschaftigt sich eine Reihe von Entwicklern mit einer Neukonzeption, die man kurzer-hand devfs nennt.

• Bisher wurden die Gerate eindeutig durch die Zuordnung von major- und minor device numbersgekennzeichnet. Im Devfs werden diese durch einen namespace ersetzt. Dies hat den Vorteil, dass dieVerwendung einer Geratedatei in Zukunft aus dem Namen hervorgeht.

• Die Verwaltung des Verzeichnisses /dev war bisher zweigeteilt. Die Major- and Minor-Device Num-mern wurden in Datenbanken gehalten, wobei eine im Kernel und die andere in /dev abgelegt war.

• Die zahllosen Dateien im Verzeichnis /dev werden großtenteils nicht verwendet, weil die entsprechen-de Hardwarekomponente nicht im System ist. Abgesehen von der Unubersichtlichkeit verlangsamt derzunehmende Umfang von /dev die Zugriffe auf die Kerneltreiber und damit auf die Gerate.

KernelhelpCONFIG DEVFS FS:This is support for devfs, a virtual file system (like /proc) which provides the file system interface to de-

vice drivers, normally found in /dev. Devfs does not depend on major and minor number allocations. Device

200

Page 201: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20.11. Reiserfs

drivers register entries in /dev which then appear automatically, which means that the system administra-tor does not have to create character and block special device files in the /dev directory using the mknodcommand (or MAKEDEV script) anymore.

This is work in progress. If you want to use this, you *must* read the material in Documentation/filesystems/devfs/,especially the file README there.

If unsure, say N.

20.11. Reiserfs

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

20.12. Codafs

Coda ist ein weit entwickeltes Dateisystem fur den Einsatz im Netzwerk. Leider war es mir bisher nichtmoglich genauere Informationen und praktische Erfahrungen zu sammeln, so dass dieser Abschnitt nochnicht weiter fortgeschritten ist.

Lernziele

In diesem Kapitel lernen Sie,

• welche Eigenschaften Codafs mit bringt,

• wie es in den Kernel eingebunden ist.

20.12.1. Eigenschaften

1. steht unter einer freizugigen Lizenz

2. hohe Performance durch clientseitigen Persistenzcache

3. Replikation mit dem Server

4. Sicherheitsmodell zur Authentifizierung, Verschlusselung und Zugriffskontrolle

5. durchgangiger Betrieb auch bei auftretenden Netzwerkfehlern

6. Ausnutzung der Netzwerkbandbreite

7. gute Skalierbarkeit

8. Moglichkeit des Offline Betriebs z.B. fur Mobile Computing

201

Page 202: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

20. VFS - Virtual File System und andere Dateisysteme

20.12.2. Einbindung in den Kernel

Es folgt die Kerneldokumentation zur VariableCONFIG_CODA_FS.

Kernel Help

CONFIG_CODA_FS:

Coda is an advanced network file system, similar to NFS in that itenables you to mount file systems of a remote server and access themwith regular Unix commands as if they were sitting on your harddisk. Coda has several advantages over NFS: support fordisconnected operation (e.g. for laptops), read/write serverreplication, security model for authentication and encryption,persistent client caches and write back caching.

If you say Y here, your Linux box will be able to act as a Coda*client*. You will need user level code as well, both for theclient and server. Servers are currently user level, i.e. they needno kernel support. Please readDocumentation/filesystems/coda.txt and check out the Codahome page <http://www.coda.cs.cmu.edu/>.

If you want to compile the coda client support as a module ( = codewhich can be inserted in and removed from the running kernelwhenever you want), say M here and readDocumentation/modules.txt. The module will be called coda.o.

Zusammenfassung

Weit mehr Informationen zu diesem interessanten Dateisystem finden sich im Internet unterwww.coda.cs.cmu.edu.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

202

Page 203: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21. Cluster

Bisher blieb der Teilbereich der hochverfugbaren Server und Dienste exotischer Hardware und teuren Be-triebssystemen vorbehalten. Immer haufiger wird jedoch auch von herkommlichen Systemen eine Ausfall-sicherheit gefordert. Die konkrete Umsetzung aber auch prinzipbedingte Einschrankungen unter Linux aufIntel-Standardarchitektur soll im folgenden aufgezeigt werden.

Lernziele

In diesem Kapitel lernen Sie,

• die wichtigsten Grundbegriffe im Zusammenhang mit Hochverfugbarkeit kennen,

• einen ausfallsicheren Cluster aufzubauen und zu konfgurieren,

• das Gesamtsystem zu testen.

21.1. Motivation

Eine der ersten Frage bei Serverdiensten betrifft in der Regel die Verfugbarkeit und die Vereinbarung vonWartungsfestern. Immer haufiger bekommt man zu horen, dass man weder nachts noch am Wochenende aufden Server verzichten konne, geschweige denn tagsuber. Rund um die Uhr soll die Anwendung verfugbarsein, Wartungsfenster gibt es nicht.Die Tatsache, dass Hochverfugbarkeit auch hohe Kosten nach sich zieht, wird dabei oftubersehen. Nichts-destotrotz kann auch mit einem kleineren Geldbeutel die Verfugbarkeit gesteigert werden, um doppelteHardware kommt man jedoch nicht herum.

21.2. Grundbegriffe

Auch in diesem Kapitel soll es so gehandhabt werden, dass zunachst ein grundlegenderUberblick uberdas Thema gegeben wird. Diejenigen, die gleich mit einer konkreten Software und deren Konfigurationeinsteigen wollen, konnen jedoch die folgenden Grundbegriffeuberspringen.

21.2.1. Cluster

Der Begriff Cluster ist seit einiger Zeit in aller Munde, doch nur selten wird verdeutlicht, dass Cluster nichtgleich Cluster ist. Es folgen teils beachtliche Unterschiede.

Computing Cluster

Computing Cluster, auch Beowulf Cluster genannt, bestehen in der Regel aus gunstigen Rechnern mit In-tel 32Bit Architektur und erledigen ihnen gestellte Rechenaufgaben verteiltuber alle Clusternodes. Beim

203

Page 204: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21. Cluster

Einsatz solcher Clusterverbande handelt es sich immer um speziell auf den jeweiligen Zweck abgestimmteKonfigurationen. Das Beowulf-Projekt ist im Internet unterhttp://www.beowulf.organzutreffen.

Load balancing Cluster

In einem sochen Cluster ist den zahlreichen Nodes ein sogenannter Load Balancer vorgeschalten, der Verbin-dungsanfragen zu einem bestimmten Dienst entgegennimmt und an einen der Clusternodes weitergibt, derdann die eigentliche Arbeit erledigt. Oft hort man in diesem Zusammenhang auch den Begriff Serverfarm.Ubrigens: der Load Balancer kann sowohl ein Rechner mit eigenem Betriebssystem als auch eine spezielleNetzwerkkomponente sein. Im Internet arbeitethttp://www.linuxvirtualserver.organ diesem Projekt.

High availability Cluster

Diese Form des Clusterings stellt die Verfugbarkeit einzelner Dienste sicher. Fallt einer der Nodes aus, soubernimmt ein zweiter dessen Funktion nach nur kurzer Unterbrechung. Ob auf diese Art und Weise Hoch-verfugbarkeit erreicht werden kann, hangt von der Konsequenz in der Umsetzung ab. In den anschließendenAusfuhrungen geht es ausschließlich um Hochverfugbarkeitscluster. Die Internetseite fur das HA-Projektlautethttp://linux-ha.org

21.2.2. Weitere Grundbegriffe

Single Point of Failure

Sogenannte SPOFs sind beim Aufbau eines HA-Cluster unbedingt zu identifizieren und anschließend zuelimieren.

Service Interface

Das Service Interface wird beim Booten mit einer IP angestartet, die tatsachlich diesem Rechner zugeordnetist. Beim Starten von Heartbeat und den zugehorigen Resource Gruppen wird dieses Interface mit weiterenvirtuellen IPs belegt. Keine der Resource Gruppen sollte unter der IP des Nodes ansprechbar sein, da derenIP-Adressen beim Failover auf den anderen Nodeubernommen werden.

21.3. Hochverfugbarkeit

Jetzt nachdem die Grundbegriffe klar geworden sind, kann das Thema Hochverfugbarkeit genauer betrachtetwerden. Aber was heißt hochverfugbaruberhaupt? Im Wesentlichen dreht es darum, dass durch Redundanzsamtlicher Einzelkomponenten das Gesamtsystem so zuverlassig wird, dass man von einer beinahe standi-gen Verfugbarkeit gesprochen werden kann. Das eigentliche Ziel ist es also nicht, eine Maschine rund umdie Uhr zu betreiben, sondern einzelne Ausfalle gegenuber dem Anwender so transparent zu gestalten, dassdiese ohne oder nur mit kurzer Unterbrechung weiterarbeiten konnen.

Hinweis

Auch wenn ein zuverlassiger Cluster die Hochverfugbarkeit der Dienste garantiert, die Notwendigkeit, Not-fallplane fur die Systemadministration und das Operating zu erstellen, besteht weiterhin. Insbesondere istzu dokumentieren, wie die Funktionsfahigkeit des Clusters nach einem Failoveruberpruft werden kann und

204

Page 205: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21.3. Hochverfugbarkeit

was zu tun ist, wenn dieUbernahme fehlgeschlagen ist. Außerdem ist immer noch der Worst-Case denkbar,namlich dass beide Clusternodes ausfallen.

21.3.1. Verfugbarkeit und Ausfallszenarien

Im Zusammenhang mit Hochverfugbarkeit hort man oft die Forderung 7x24, d.h. an sieben Tagen die Wochevierundzwanzig Stunden Verfugbarkeit. Auf das Jahr hochgerechnet bedeutet das Ausfallzeiten zwischennur wenigen Minuten bis zu einer halben Stunde. Diese Forderung muss jedoch vor dem Hintergrund derunter Linux moglichen Losungen relativiert werden.Bei den Ausfallen kann allerdings nochmals unterschieden werden. Zum einen die geplanten Systemwar-tungsarbeiten, deren Umfang im Service Agreement festzuhalten sind, und zum anderen die ungeplantenSystemausfalle, die auf unterschiedlichste Szenarien zuruckgefuhrt werden konnen. Je nach Strenge des Be-trachters werden geplannte Systemwartungsarbeiten von der Verfugbarkeitszeit abgezogen oder eben nicht.

21.3.2. Kosten

Naturlich sind die mit Linux darstellbaren Losungen im Vergleich zu anderen Produkten gunstig. Dochauch fur samtliche Umgebungen gilt, selbst wenn die doppelte bis dreifache IT Infrastruktur angeschafftwerden muss, sind die dabei anfallenden Kosten im Vergleich zu den eventuell entstehenden Kosten beieinem Systemausfall gering.

21.3.3. Single Point of Failure

Sogenannte SPOFs sind in einer HA-Umgebung durch Anschaffung redundanter Komponenten konsequentauszuschalten. Dabei treten jedoch einige Schwierigkeiten auf. Zum einen ist Redundanz technisch nichtimmer moglich, an anderen Stellen wird diese auch gar nicht benotigt und manchmal kann man sich Red-undanz auch nicht in jeder Hinsicht leisten. Dennoch ist es unerlasslich jeden einzelnen SPOF zu ermittelnund sich, wenn er weiter besteht, dessen bewusst zu sein.Aber wo treten diese einzelnen Fehlerpunkteuberhaupt auf? Ein paar Anregungen folgen.

• Hardware: Nahezu samtliche Komponenten in einem Rechner sind SPOFs. Offensichtlich ist dies beiProzessoren, Speicher, I/O Controller, Erweiterungskarten usw. Aber auch Bus-Systeme, Netzteileund Verkabelung gehoren dazu. Einige davon sind recht einfach andereuberhaupt nicht zu beseitigen.Dennoch muss bereits auf dieser Ebene so konsquent wie moglich an der Vermeidung von SPOFsgearbeitet werden, z.B. durch entsprechende Netzteile, Netzwerkkarten, ... . Nicht vermeidbare SPOFswerden durch redundante Auslegung in hoheren Schichten aufgelost.

• Netzwerk: Ein durch Redundanz glanzender Cluster nutzt nichts, wenn die Anbindung an das Netz-werk und dessen Infrastruktur nichtahnlich robust ausgelegt ist. Jeder einzelne Netzwerkkomponente,angefangen bei Kabelnuber Switches bis hin zu Routern, ist in diesem Sinne ein SPOF. Auch der Zu-gang zum Internet oder die Firewall sind als SPOF denkbar.

• Stromversorgung: Die Anbindung an das Stromnetz bzw. an die USV sollte ebenfalls doppelt aus-gelegt werden. Diese Idee muss auch innerhalb eines Clusters gewahrt bleiben, denn was nutzt einhochverfugbarer Cluster, wenn der Ausfall einer Steckerleiste samtliche Nodes stromlos schaltet.

• Location: Beim Aufbau eines Clusters muss man sich bewusst sein, dass auch die Platzierung inner-halb eines Rechenzentrums, innerhalb eines Gebaudes, innerhalb eines Standortes usw. ein SPOF seinkann. Ein Rechenzentrum kann zusammenbrechen, ein Gebaude brennen und ein Standort von einemAnschlag betroffen sein. Schlussendlich kann eine ganze Gegend von einem Erdbeben erschuttert

205

Page 206: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21. Cluster

werden. Diese SPOFs durch raumlich getrennte Cluster auszuraumen, zieht sicher einen ganzen Rat-tenschwanz an anderen Schwierigkeiten nach sich. Das heißt nicht, dass jeder SPOF vermieden wer-den soll. Wie bereits erwahnt, sollte man sich aber bei Inkaufnahme eines SPOFs immer dessen be-wusst sein.

• Personal: Auch das betreuende Personal in der Systemadministration und im Operating kann einenSPOF darstellen. Es ist darauf zu achten, dass es immer einen greifbaren Backup fur jeden Themenbe-reich gibt. Sicher ist das nicht billig, aber es soll schon vorgekommen sein, dass wichtige Mitarbeiternicht mehr aus ihrem Safari-Urlaub zuruckgekommen sind.

• Kernel: Zunachst mag man hier an die zahlreichen Treiber denken. Daruber hinaus ist aber auch z.B.die Implementierung des TCP / IP Stacks ein SPOF. Deshalb wird weiter unten auch empfohlen denHeartbeat zusatzlichuber eine serielle Verbindung zu schicken.

21.3.4. Fehlertolerante Systeme

Ebenso wie andere HA-Losungen im Unix ist auch HA unter Linux nicht dafur gedacht fehlertoleranteSysteme aufzubauen, deren Ausfallzeiten bei einem Fehler weit unter einer Sekunde liegen. Ebenso kannnicht jeder Ausfall transparent gemacht werden. Bei Ausfall eines Clusternodes folgt die Reaktionszeit desStandbynodes. Erst nachdem dieser den anderen fur ausgefallenerklart, findet dieUbernahme der ResourceGruppen statt. Wie spater noch gezeigt wird, handelt es sich hierbei im wesentlichen um IP-Adressen, ggf.MAC-Adressen, externen Speicher und Dienste. Letztere werden neu angestartet und setzen nicht wie beifehlertoleranten Systemen an der Unterbrechungsstelle wieder auf. Der gesamteUbernahmeprozess kannein paar Sekunden aber auch wenige Minuten dauern.

21.3.5. Aufwandsabsch atzung

Die Aufwande, die bei der Planung, Installation und Wartung entstehen, durfen nicht unterschatzt werden. Jenach Komplexitat der Anforderungen bleibt es nicht bei zeitlichem Aufwanden, sondern es benotigt daruberhinaus erfahrene Administratoren, Systemintegratoren, Storage- und Netzwerkspezialisten. Schließlich solldie Umgebung nicht nur hochverfugbar heißen, sondern auch sein.

21.3.6. Datenbest ande und Filesysteme

Das moglicherweise kritischste Merkmal, das ein Betriebssystem fur eine HA-Umgebung mitbringen muss,ist ein transaktionsorientiertes Dateisystem, das schnelle Dateisystemchecks im Falle eines Failovers erlaubt.An einem Logstrukturiertem Dateisystem wird bereits gearbeitet.

21.3.7. Failover Strategien

Der wesentliche Unterschiede zwischen den im folgenden vorgestellten Failover Strategien drucken sichvorallem durch deren Skalierbarkeit aus. So es zwar denkbar, dass ein Node den Failover eines anderen be-handelt. Genauso gut kann auch ein Host als Failover fur mehrere Nodes dienen oder ein Cluster abgebildetwerden, in dem mehrere Nodes fur den Failover mehrerer Nodes bereitstehen.

Simple Failover

Dem primaren Node gehort die Resource Gruppe, wahrend der sekundare Node keine oder nur wenig kriti-sche Anwendungen fahrt. Bei einem Ausfall des ersten Nodesubernimmt der zweite die Resource Gruppe.

206

Page 207: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21.4. Heartbeat

Wenn der primare Node zu einem spateren Zeitpunkt wieder in den Cluster eintritt, wird die Resource Grup-pe wieder an diesenubergeben.

Idle Standby

Wieder gehort dem primaren Node die Resource Gruppe. Alle anderen Nodes im Clusteruberwachen ihnlediglich. Bei einem Ausfall findet auch hier eineUbernahme der Resourcen statt. Dabei wird jedoch auf diePrioritat aller Nodes geachtet. Immer der Node mit der hochsten Prioritat beansprucht die Resource Gruppefur sich. Kommt bei dieser Strategie ein hoher priorisierter Node in den Cluster werden die entsprechendenResourcen von ihmubernommen.

Rotating Standby

Im Gegensatz zum Idle Standby gibt es hier keine Priorisierung der Nodes. Der erste Nodes der dem Clusterbeitritt, ubernimmt demnach die Resourcen, wahrend der zweite als Standby auftritt. Der Nachteil dieserStrategie ist die fehlende Skalierbarkeit, da man einen Cluster mit mehr als zwei Nodes grundsatzlich nichtaufbauen kann.

Mutual Takeover

Beide Nodes verfugenuber verschiedene Resource Gruppen, die bei einem Ausfall vom jeweils anderenubernommen werden. Beide Rechner mussenuber ausreichende Performance fur den Betrieb samtlicherResource Gruppen verfugen. Diese Strategie kann auch mit mehr als zwei Nodes bestens gefahren werden.

Concurrent Access

Alle Nodes fahren ein und dieselbe Resource Gruppe, die aber weder IP- noch MAC-Adresse dafur aberexternen Speicher, auf den konkurrierend zugegriffen wird umfasst.

21.3.8. Hardware Fehler

Damit Ausfallsicherheit auch bei Teilausfallen des Systems gegeben ist, mussten die Kernelmodule stan-dardisierte Errorcodes an die HA-Software zuruckgeben. Der derzeitige Enwicklungsstatus ist in dieserHinsicht aber unklar und muss fur den produktiven Einsatz aufwendig erprobt werden.

21.4. Heartbeat

21.4.1. Konzept

Resource Skript

Zu einer Resource Group gehort mindestens eins in der Regel aber mehrere solcher Resource Skripte. Dieseunterstutzen als Parameter Start, Stop und Status und ordnen der Resource Gruppe z.B. IP-Adressen, Fi-lesysteme usw. zu. In einer spateren Entwicklungsphase sollen diese Skripten auch eine Monitor-Funktionunterstutzen.

IP-Adress Takeover

Wie bereits angesprochen, gehort zu jeder Resource Gruppe eine eigene IP-Adresse. Im Falle eines Failoverswird diese auf dem einspringenden Node auf das passende Interface als zusatzliche IP konfiguriert.

207

Page 208: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21. Cluster

MAC-Adress Takeover

Nach einem IP-Adress Takeover werden samtliche Clients mit einer neuen MAC-Adresse konfrontiert.Hier mussen im einzelnen noch Untersuchungen zum Verhalten der Clients und der Netzwerkkomponentendurchgefuhrt werden. In der Regel sollten die Eintrage in den ARP-Caches jedoch schnell auf den aktuellenStand gebracht sein.Anscheinend gibt es auch eine Moglichkeit die MAC-Adresse zuubernehmen. Allerdings gilt diese immerfur alle IPs auf einem Interface, was dazu fuhrt dass samtliche Resource Gruppen die selbe MAC haben.Dabei muss auch sichergestellt werden, dass die fur die Resource Gruppen benutzte MAC nicht im LANverwendet wird.

Filesysteme

ext2fs

Das herkommliche Standarddateisystem ext2 gilt zwar als stabil undaußerst robust, eignet sich aber furdie Verwendung in einem Cluster aufgrund verschiedener Schwachen kaum. So benotigt allein der Filesys-temcheck eines inkonsistenten ext2fs je nach Große viel oder eher noch mehr Zeit. Außerdem kann nichtdavon ausgegangen werden, dass ein automatisierter Filesystemcheck samtliche Fehler ohne Eingriff desSystemadministrators behebt. Demnach ist ext2fsuberhaupt nicht fur eine HA-Umgebung geeignet.

ext3fs

Dieses Journaling Filesystem erscheint schon eher geeignet.

nfs

Auf den ersten Blick scheint es eine gute Idee zu sein, den externen Speicher durch einen NFS-Server bereit-zustellen. Fur erste Versuche mit externen Filesystemen mag das eine vorubergehende aber inperformanteLosung sein. Das K.O. Kriterium ist jedoch, dass der NFS-Server ein SPOF ist.

Das eigentliche Ziel sind transaction-oriented oder log-structured Filesystems. Aber was ist damit ge-meint?

Hinweis

Wenn Dateisysteme von verschiedenen Nodes gemountet werden sollen, so muss sichergestellt sein, dassdie Datei/etc/fstab auf allen Nodes des Clusters identisch gehalten wird. Auch diese Aussage bedarfeiner konkreten einsichtigen Begrundung!Es wird empfohlen auf den gemeinsam zu verwendenden Filesystemen nur die Datenbestande der An-wendung nicht aber die Binaries abzulegen, da unter Umstanden eine abgesturzte Anwendung das saubereAushangen des betroffenen Filesystems verhindert.

Heartbeatmedien

Es darf auf keinen Fall die Situation eintreten, dass beide Nodes leben, aber vom jeweils anderen glaubener ware tot. In einem solchen Fall laufen samtliche Resource Gruppen auf beiden Hosts. Im Falle von exter-nen Storage, der dann gleichzeitig von beiden Nodes benutzt wird, kommt es aufgrund fehlender Locking-Mechanismen zu inkonsistenten Dateisystemen.

208

Page 209: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21.4. Heartbeat

21.4.2. Installation

21.4.3. Konfiguration

Init-Skripte

Naturlich kann man Heartbeat in den System-V Start einbinden. In einer produktiven Umgebung wird mandas jedoch vermeiden. Dafur gibt es zwei gute Grunde. Je nach Failback-Modus (vgl. unten) kann es pas-sieren, dass nach dem Anstarten von Heartbeat samtliche Resource Gruppen wiederubernommen werden.Sturzt das System immer wieder ab, kommt es damit zu einem standigen Failover - Failback. Der zweiteGrund ist darin begrundet, dass der Grund fur den Systemausfall zunachst untersucht werden sollte, bevorproduktive Anwendungen wieder zum Laufen kommen.

Failback-Modi

Zwei Failback-Modi sind in Heartbeat implementiert.

Normal

In diesem Modus ist einer der beiden Rechner als bevorzugter Node fur eine bestimmte Resource Groupvorgesehen. Solange diese Maschine verfugbar ist, wird sie diese Resource Gruppen fahren. Im Falle einesFailoversubernimmt der zweite Clusternode diese Resourcen. Ein Failback tritt in dem Moment ein, indem der erste Node wieder verfugbar wird. Dieser Modus wird zwingend benotigt, wenn eine Aktiv-AktivKonfiguration verwendet wird.

Nice

In diesem Modus gibt es keinen direkten Zusammenhang zwischen einer Resource-Gruppe und einem be-stimmten Node im Cluster. Im Falle eines Failoversubernimmt wie gewohnt der andere Node die entspre-chenden Resource-Gruppen. Auch wenn der ursprungliche Node wieder verfugbar wird, findet kein Failbackstatt. Das minimiert zwar die Dienstunterbrechungen und ist letztendlich besser kontrollierbar, erlaubt abernicht den Betrieb einer Aktiv-Aktiv Konfiguration.

21.4.4. Failover-Szenarien

21.4.5. Monitoring

Heartbeat selbst ist nicht dafur gedacht die Resourcen mit Hilfe eines Monitors zuuberwachen. Hierzu mussauf Software anderer Projekte zuruckgegriffen werden.

21.4.6. Warnungen

Soweit funktioniert Heartbeat ganz gut und reicht in dieser Form sicherlich fur viele Clusterszenarien furerste aus. Allerdings gibt es die eine oder andere Einschrankung, die man bei intensivem Einsatz beachtensollte.

Failover-Szenarien mit vielen IP-Adressen

Hier scheint Vorsicht geboten. Zumindest rat man in der Dokumentation zu Heartbeat davon ab mehr alsacht IP-Resourcen im Failover-Fall zuubernehmen. Stattdessen soll man das Ganzeuber eine geschickteKonfiguration des Routings losen.

209

Page 210: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

21. Cluster

Verwendung von zwei Ethernetverbindungen als Heartbeatstrecke

Eigentlich spricht auf den ersten Blick nichts gegen diese Konfiguration. Allerdings ist der IP-Stack des Ker-nels in diesem Falle ein SPOF, der leicht vermieden werden kann. Die Verwendung zweier unterschiedlicherMedien umgeht diesen Single Point of Failure.

Timing Parameter bei hoher Systemauslastung

Die Standardeinstellungen sind im Falle hoher Systemauslastung unter Umstanden nicht gunstig und fuhrenvielleicht zu einem ungewollten Failover. Es bietet sich an wahrend der ersten Wochen, die entsprechen-den Einstellungen nach oben zu setzen und im Logfile die langsten Abstande zwischen zwei Heartbeatsauszulesen. Diese sollten Anhaltspunkt fur die zukunftigen Einstellungen sein.

Authorisierung

Wie in der Konfiguration beschrieben, ist es wichtig, dass die Datei authkeys nur fur root lesbar ist. Ansons-ten startet heartbeat nicht, schreibt aber auch keine entsprechenden Meldungen in die Logfiles oder an dieKonsole.

Betrieb mehrerer HA-Cluster im selben Netzsegment

Das ist ohne weiteres moglich, wenn der Heartbeatuber eigene Ethernetkabel bzw. serielle Verbindungenlauft. Ansonsten sollte man fur jeden Cluster eine eigene Multicast-Gruppe einrichten. Mochte man Broad-casts verwenden, mussen die Heartbeats der Cluster auf unterschiedliche Ports gelegt werden.

21.5. Dokumentation

Weiterfuhrende Dokumentation zu diesem Thema findet sich in den einschlagigen HOWTOs und in derDokumentation zu den einzelnen Paketen.

Ubungen

1.

2.

3.

Zusammenfassung

Nach dem Durcharbeiten des vorangegangen Kapitels sollten Sieuber einen grundlegendenUberblickuberdas HA-Clustering unter Linux verfugen. Vor diesem Hintergrund sollte es Ihnen keine Schwierigkeitenmehr bereiten Heartbeat zu installieren und zu konfigurieren.

210

Page 211: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Teil III.

Linux fur Netzwerker- Einsatz in heterogenen Netzwerken -

211

Page 212: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 213: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

22. Netzwerk - Grundlagen

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

213

Page 214: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

22. Netzwerk - Grundlagen

214

Page 215: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

23. SNMP - Simple Network Management Protocol

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

215

Page 216: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

23. SNMP - Simple Network Management Protocol

216

Page 217: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

24. NTP - Network Time Protocol

Egal ob Server oder Client ein richtig tickende Uhr ist ganz besonders wichtig. Insbesondere dann, wenn esum Fehleranalyse und Auswertung von Logfiles geht. Der Abgleich mit Referenzuhren im Internet und dieKonfiguration eines Timeservers ist Gegenstand des folgenden Kapitels.

Lernziele

In diesem Kapitel lernen Sie,

• allgemeinesuber das Network Time Protocol,

• die Konfiguration des Clients,

• die Konfiguration eines eigenen Servers.

24.1. Allgemeines

Auch wenn unter allen anderen Distributionen das zum Protokol ntp gehorige Paket ebenfalls ntp heißt, sohalt doch SuSE aus historischen Grunden an der Bezeichnung xntp fest. Xntp wird bereits standardmaßigin der Version 4.1.1 mitinstalliert und enthalt sowohl das Kommandozeilenprogramm ntpdate als auch denDaemon ntpd. Zusatzlich kann weitere Doku aus dem Paket xntp-doc installiert werden.

24.1.1. Offentliche Zeitserver

Folgende NTP-Server sind innerhalb von Europa ansprechbar.

Belgien Stratum 2 ntp1.belbone.be, btp2.belbone.be

Deutschland Stratum 1 ntps1-0.cs.tu-berlin.de, ntps1-1.cs.tu-berlin.de, ntp0.fau.de, ntp1.fau.de, ntp2.fau.de,ntp3.fau.de, ntp1.ptb.de, ntp2.ptb.de

Frankreich Stratum 2 ntp1.curie.fr, ntp2.curie.fr

Großbritannien Stratum 2 ntp.cis.strath.ac.uk

Italien Stratum 1 time.ien.it

Niederlande Stratum 1 ntp0.nl.net, ntp1.nl.net, ntp2.nl.net

Polen Stratum 1 ntp.certum.pl

Schweden Stratum 1 ntp1.sp.se, ntp2.sp.se, time2.stupi.se

217

Page 218: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

24. NTP - Network Time Protocol

24.2. Client

Das Kommando ntpdate arbeitet nach einem einfachen Prinzip.

1. Zeitserver abfragen

2. Uhr stellen.

Bereits nach wenigen Sekunden ist damit die Uhr gestellt.Damit die Zeit jedoch dauerhaft richtig geht, gibt es verschiedene Ansatze.

permanete Internetverbindung

Ist man mit einer dauerhaften Verbindung ins Internet wie LAN, Standleitung oder DSL ausgestattet, kannman es sich leisten in bestimmten Zeitabstanden die Zeit zu syncronisieren. Fur einen stundlichen Abgleichkopiert man einfach folgendes Skript nach/etc/cron.hourly und macht es dann ausfuhrbar.

#!/bin/shntpdate -s ntpserver [ntpserver] [ntpserver] ...

Die Option -s bewirkt, dass der entstehene Output an den Syslogdubergeben wird. Soll zusatzlich bei je-dem Boot die Zeit gleich mitgestellt werden, sieht SuSE in /etc/sysconfig/xntp hierfur die Variable XNTPDINITIAL NTPDATEvor, die ebenfalls mit mehreren NTP-Servern gefullt wird.

tempor are Internetverbindung

Hier reicht es aus in XNTPDINITIAL NTPDATE Timeserver einzutragen, so dass durch das Skript /etc/ppp/ip-up in Verbindung mit /etc/ppp/poll.tcpip bei Aufbau der Wahlverbindung die Zeit richtig gesetzt wird.Tatsachlich wirdubrigens /usr/sbin/rcxntpd ntptimeset ausgefuhrt.

24.3. Server

Der Server hingegen geht um ein Vielfaches aufwendiger vor. Er befragt mehrere Zeitserver, pruft die Plau-sibilitat der Antworten und vergleicht deren Qualitat. Zuletzt bewertet er die Rechneruhr und beginnt sie zustellen. Bis zum ersten Stellen kann das einige Minuten dauern. Außerdem stellt der Xntpd solange er laufteinen Timeserver im Netzwerk bereit.Damit ist naturlich Aufwand in Form von Ressourcen verbunden, außerdem stellt der Ntpd eine potentielleSicherheitslucke dar. Deshalb sollte also nur dann ein eigener Timeserver aufgesetzt werden, wenn man ihntatsachlich benotigt.

24.3.1. Konfiguration

Seine Einstellungen liest der ntpd aus der Datei/etc/ntp.conf. Im Driftfile wird nach jeweils einer Stundeein Korrekturwert zur Systemuhr abgelegt. So braucht beim nachsten Anstarten des Daemons nicht lange dieHardwareuhr beobachtet zu werden. Jede Quelle fur die Zeitsyncronisation steht in einer eigenen Zeile, diemit server eingeleitet wird. Dazu gehoren neben anderen NTP-Servern auch lokal angeschlossene Uhren, diean etwas seltsamen IP-Adressen erkennbar sind. Zeilen die mit fudge beginnen, setzen zusatzliche Optionenfur eine Zeitquelle. So beispielsweise ein hohes Stratum fur die kaum vertrauenswurdige RTC1. Die Option

1Real Time Clock

218

Page 219: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

24.4. Zeitanpassung

iburst beschleunigtubrigens die erste Syncronisation, da der betreffende Server anfangs mit mehr Paketenabgefragt wird und so die zur Bewertung erforderlichen Daten schneller gesammelt werden.

#### Undisciplined Local Clock. This is a fake driver intended for backup## and when no outside source of synchronized time is available.##server 127.127.1.0 # local clock (LCL)fudge 127.127.1.0 stratum 10 # LCL is unsynchronized

#### Outside source of synchronized time#### server xx.xx.xx.xx # IP address of server

driftfile /var/lib/ntp/ntp.drift # path for drift file

logfile /var/log/ntp # alternate log file# logconfig =syncstatus + sysevents# logconfig =all

# statsdir /tmp/ # directory for statistics files# filegen peerstats file peerstats type day enable# filegen loopstats file loopstats type day enable# filegen clockstats file clockstats type day enable

## Authentication stuff## keys /etc/ntp.keys # path for keys file# trustedkey 1 2 3 4 5 6 14 15 # define trusted keys# requestkey 15 # key (7) for accessing server variables# controlkey 15 # key (6) for accessing server variables

24.4. Zeitanpassung

Je nach Abweichung von der Referenzzeit werden zum Nachstellen der Zeit zwei verschiedene Methodenverwendet. Bei einem nur geringen Unterschied wird die Systemzeituber einen langeren Zeitraum in kleinenSchritten angepasst, sogenanntes Slew, damit insbesondere Anwendungen keineAnderung der laufendenZeit bemerken. Ist der Unterschied zur Referenzzeit groß genug, wird die Uhr auf einen Schlag nachgestellt,sogenannter Step.

Ubungen

1.

2.

219

Page 220: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

24. NTP - Network Time Protocol

3.

Zusammenfassung

Sie haben in diesem Kapitel gelernt die Sytemzeit mit denoffentlich zuganglichen Timeserver zu syncroni-sieren und einen eigenen Timeserver aufzusetzen.

220

Page 221: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

25. DNS - Domain Name System

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

221

Page 222: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

25. DNS - Domain Name System

222

Page 223: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26. DHCP - Dynamic Host Configuration Protocol

Bereits in kleinen bis mittleren Netzen lohnt sich die Bereitstellung eines DHCP-Servers, gerade dann wenndas Netzwerk bestandig weiter wachst. Wie unter Linux ein solcher Server aber auch der Client aufgesetztund konfiguriert wird, beschreibt das nachfolgende Kapitel.

Lernziele

In diesem Kapitel lernen Sie,

• Allgemeinesuber DHCP,

• einen DHCP-Server aufzusetzen und zu konfigurieren,

• einen DHCP Client ins Netzwerk zu integrieren.

Ein oder mehrere DHCP-Server versorgen die Clients eines TCP/IP basierten Netzwerks mit IP-Adressenund anderen netzwerkspezifischen Informationen, wie Default-Route, Netzwerkmaske, DNS-Server usw.Das Protocol wird ausfuhrlich in den RFCs 2131, 2132, 2485 und 2489 beschrieben.

26.1. Funktionsweise

Beim Hochfahren fragt der Client mittels eines Broadcasts nach seiner IP-Adresse. Die Antwort erfolgtdurch den DHCP-Server, der gleich noch weitere Angaben ausliefert.

Default-Route , jedes Subnetz verfugt uber ein anderes Standard-Gateway

DNS-Server-Adressen , zur Namensauflosung

Subnetzmaske

Broadcast-Adresse

Vendor-Optionen , geben bestimmten Geraten anhand derer Kennung spezifische Werte mit

Lease-Time , Gultigkeitsdauer der IP-Adresse

Der Ablauf von der Anfrage bis zur fertigen Konfiguration des Clients sieht dabei wie folgt aus. DieKommunikation lauft per UDP zwischen dem Server Port 67 und dem Client Port 68. Wenn der Client boo-tet, fragt er mit einem DHCPDISCOVER per Broadcast nach seiner Konfiguration. Zu diesem Zeitpunkthat der Client keine brauchbare IP sondern nur seine weltweit eindeutige MAC-Adresse. Deshalb hat dasBroadcast-Paket die Quelladresse 0.0.0.0 und die Zieladresse 255.255.255.255. Die Antwort des Serversmittels DCHPOFFER hat bereits die zukunftige IP des Clients als Zieladresse. Zugestellt wird diese alleindurch die MAC-Adresse des Clients. Der Client sammelt die Antworten, die er gegebenenfalls von mehreren

223

Page 224: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26. DHCP - Dynamic Host Configuration Protocol

Server erhalt und sucht sich anschließend eine Konfiguration heraus. Er schickt dann ein DHCPREQUESTan den Server zuruck und fordert so die Konfiguration an. Die Bestatigung des Servers erfolgt durch einDHCPACK. Ab sofort hat der Client eine gultige IP und Netzwerkkonfiguration.Sollte bei diesem Vorgang etwas schief gehen, z.B. dass die IP aufgrund von Konfigurationsfehlern doppeltvergeben wurde, schickt der Client ein DHCPDECLINE an den Server und die Initialisierung beginnt vonvorne.Fahrt der Client herunter, kann er seine IP-Adresse mit einem DHCPRELEASE wieder freigeben. Genauso-gut kann er sie sich jedoch merken und nach einem Reboot wieder verwenden, wenn die Gultigkeitsdauer,die sogenannte Lease-Time, noch nicht abgelaufen ist. Die ersten Schritte der Initialisierung entfallen dannund der Client fordert gleich mittels DHCPREQUEST die alte Konfiguration vom Server an. Dieser bestatigtdie Adresse oder zeigt mit DHCPNAK an, dass der Client seine gespeicherte Konfiguration vergessen undmit der Initialisierung neu beginnen soll.

26.2. DHCP-Client

SuSE installiert den DHCP-Client aus dem Paketdhcpcd bei jeder Standardinstallation mit. Die Unterstutzungreicht von der normalen Netzwerkkonfiguration bis hin zu den PCMCIA CardServices. Nach dem der Clientdie Antwort vom Server erhalten hat, werden diese von von ifconfig und route ausgewertet und die Name-server in die Datei /etc/resolv.conf eingetragen.Noch umfassender kann der DHCP-Client des ISC konfiguriert werden, der nachfolgend beschrieben wird.Dazu mussen die Paketedhcp-client unddhcp-base installiert werden.

26.2.1. Konfiguration

Die eigentlichen Einstellungen fur den DHCP-Client finden sich in der Datei/etc/dhclient.conf. Sys-temweite Einstellungen sind in/etc/sysconfig/network/dhcp abgelegt. Neben diesen beiden Dateienwird beim Start auch der Inhalt der Datei /var/lib/dhcp/dhclient.leases ausgewertet, der Auskunftuber diebisher erhaltenen Konfigurationen gibt. So kann der Client im Falle eines Ausfalls des DHCP-Servers aufeine alte noch gultige Konfiguration zuruckgreifen und mit diesen Einstellungen weiterarbeiten.

/etc/dhclient.conf

Neben Zeitangaben konnen in dieser Datei Angaben zu den Leases gemacht werden. Außerdem konneneinzelne Server benannt werden, von denen keine Konfigurationen akzeptiert werden.

# wieviele Sekunden der Client nach einem Server suchttimeout 60;# ist kein Server erreichbar und ist keine gultige Konfiguration mehr verfugbar, so wird nach# einigen Sekunden die Suche erneut begonnenretry 60;# der Client hat innerhalb der Grenzen, die durch den Server vorgegeben werden, die Moglichkeit# bestimmte Einstellungen selbst zu setzensend dhcp-lease-time 3600;# der Client kann bestimmte Werte vom Server anfordernrequest subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name;# die angebotenen Konfigurationen konnen auf bestimmte Informationen gepruft werden, werden diese# diese nicht angeboten, wird die Konfiguration abgelehntrequire subnet-mask, domain-name-servers;# sind die vom DHCP-Server ubermittelten Werte unvollstandig, konnen diese Lucken durch Standardvorgaben# gefullt werdendefault {

nis-domain planeten;nis-servers sonne.welt.dom;

}

224

Page 225: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26.3. DHCP-Server

# außerdem konnen die vom Server angebotenen Werte auch uberschrieben werdensupersede {

host-name saturn;}# Angebote bestimmter Server konnen auch abgelehnt werdenreject 192.168.0.10;

#reboot 10;#select-timeout 5;#initial-interval 2;#script "/sbin/dhclient-script";

/etc/sysconfig

Jetzt muss der Client angewiesen werden vom DHCP-Server seine Konfiguration zu beziehen. Das kannbequem per YaST2 erledigt werden oder in den Dateien im Verzeichnis /etc/sysconfig. So kann nicht nur dieIP-Adressvergabe, sondern auch dieUbernahme des Hostnamens, der Nameserver und der Domainsearch-liste aktiviert werden.Diese Optionen finden sich auch alle gut dokumentiert in /etc/sysconfig/dhcp wieder. Die Konfiguration dereinzelnen Interfaces unter /etc/sysconfig/network enthalt dann noch Variablen wie BOOTPROTO=”dhcp”und STARTMODE=”onboot”, die es ermoglichen, dass der DHCP-Client beim Hochfahren des Rechnersmitgestartet wird.

26.3. DHCP-Server

Grundsatzlich ist die Vergabe von IP-Adressen auf zwei Weisen moglich.

1. Statische Vergabe: Jeder anfragende Rechner bekommt aufgrund seiner eindeutigen MAC-Adresse im-mer wieder dieselbe IP-Adresse zugewiesen.

2. Dynamische Vergabe: Die IP-Adressen werden an anfragende Clients nur auf Zeit vergeben, so dass einClient nach einer gewissen Zeit mit hoher Wahrscheinlichkeit eine neue Adresse zugeteilt bekommt.

Dadurch wird die Administration eines großen Netzwerks entscheidend vereinfacht, da samtliche netz-werkspezifischen Einstellungen zentral auf dem DHCP-Server verwaltet werden.

26.3.1. Installation

Der DHCP-Server befindet sich im Paketdhcp-server, das bequem mit YaST2 nachinstalliert werdenkann. Zusatzlich wirddhcp-base automatisch ausgewahlt. Der Server des ISC1 liegt in der Version 3.0.1rc9vor.Im Paketdhcp-tools finden sich zwei weitere nutzliche Werkzeuge. Das Programm dhcpdump hilft beimDebuggen des DHCP Servers in dem es den Netzwerkverkehr analysiert und dhcping pruft ob ein DHCP-Server noch erreichbar ist.

26.3.2. Dokumentation

Wie so oft kann dieses Kapitel nur einen grundlegenden Einstieg in den DHCP Server bieten, weiterfuhrendeDokumentation finden Sie jedoch nach der Installation der Pakete im Verzeichnis/usr/share/doc/packages/dhcp*.Das zugehorige HowTo ist leider schon etwasalter und liegt unter/usr/share/doc/howto.

1Internet Software Consortium

225

Page 226: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26. DHCP - Dynamic Host Configuration Protocol

Auch zahlreiche man pages helfen weiter, so z.B. zu den Themen dhcpd, dhclient, dhcpd.conf, dhcp-optionsund dhcp.leases.

26.3.3. Konfiguration

Die Konfiguration spielt sich in der zentralen Konfigurationsdatei/etc/dhcpd.conf ab. Zusatzliche Ein-stellungen finden sich in/etc/sysconfig/dhcpd. Erstere ist hierarchisch strukturiert. Zuerst werden glo-bale Konfigurationsoptionen gesetzt, die fur alle Clients im Netz gelten. Weiter unten folgen Subnetz-, Pool-und Hostspezifische Angaben. Parameter in einer unteren Hierarchiestufeuberschreibenubergeordnete An-gaben. WerdenAnderungen an einer dieser Dateien vorgenommen, muss der DHCP-Server neu gestartetwerden.

Globale Definitionen

Die hier getroffenen Einstellungen gelten fur alle nachfolgenden Hosts, wenn sie nicht weiter unten aus-drucklich uberschrieben werden. Wichtig ist, dass samtliche Zeilen mit einem Semikolon abgeschlossenwerden.

#Definition der DNS-Domain, in der Regel der tatsachliche Domainnameoption domain-name "de.eu";

#Definition der Adressen der DNS-Serveroption domain-name-servers 151.136.124.134;

#Definition der statischen Routenoption static-routes Ziel Gateway;

#Definition der NIS-Domainoption nis-domain NIS-Domainname;

#Definition der Adressen der NIS-Serveroption nis-servers NIS-Server;

#Definition der Adresse des SMTP-Serversoption smtp-server SMTP-Server;

#Definition der Adressen der Druckserveroption lpr-servers Printserver;

#Definition der Adressen der Zeit-Serveroption ntp-servers NTP-Servers;

#Definition der Subnetzmaskeoption subnet-mask Maske;

#Definition der Broadcast-Adresseoption broadcast-adress IP-Adresse;

#Standardgultigkeitsdauer einer IP-Adresse in Sekundendefault-lease-time 600;

#maximale Gultigkeitsdauer einer zugewiesenen IP-Adresse in Sekundenmax-lease-time 7200;

#Wahl des Aktualisierungsverfahrens fur DDNS#mogliche Werte fur style sind interim, ad-hoc, noneddns-update-style style none;

#Unterstutzung fur DDNS#mogliche Werte fur flag sind on oder offddns-updates flag off;

226

Page 227: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26.3. DHCP-Server

Abgesehen von den Einstellungen fur DDNS konnen die Deklarationen auch in einzelnen Subnetzenwiederuberschrieben werden.

Deklarationen

Deklarationen beschreiben die Topologie eines Netzwerkes, beschreiben die Clients, geben IP-Adressbereichean usw. Die wichtigsten Deklarationen werden im folgenden vorgestellt.

subnet Die Definition eines Subnetzes muss immer gefolgt sein von der Anweisung netmask, weitere Pa-rameter konnen folgen. Aus diesen Angaben bestimmt der dhcpd, ob eine bestimmte IP-Adresse imjeweiligen Subnetz liegt.

range Mit dieser Anweisung werden die IP-Adressbereiche eingegrenzt.

host Hier konnen Angaben zu einem ganz bestimmten Host getatigt werden.

group Rechner, Subnetze und andere Gruppen konnen mit dieser Deklaration zu einer Gruppe zusammen-gefasst werden.

Parameter

Parameter haben einen beschreibenden Charakter. Sie geben z.B. an, ob unbekannte Clients bedient werden,wie lange eine IP vergeben wird und welche Konfiguration an den Clientubermittelt wird.

default-lease-time Die Standardgultigkeitsdauer in Sekunden einer an einen Rechner zugewiesenen IP-Adresse.

max-lease-time Die maximale Gultigkeitsdauer in Sekunden, fur die ein Rechner eine IP behalten darf.

hardware Mit Hilfe der Hardware-Adresse kann jeder Rechner eindeutig identifiziert werden. Zusatzlichmuss noch die Netzwerktopologie mit ethernet bzw. token-ring angegeben werden. Der Eintrag kannnur innerhalb der Deklaration host erfolgen.

fixed-address Bei fest vergebenen IP-Adressen z.B. fur Server wird dieser Parameter verwendet, der nurinnerhalb der Deklaration host zulassig ist.

# in diesem Subnetz werden nur Adresse zwischen 0.100 und 0.150 zur Verteilung freigegebensubnet 192.168.0.0netmask 255.255.255.0{range 192.168.0.100 192.168.0.150;}

# jetzt wird fur einen Host eine feste IP vergeben, die angegebene Adresse liegt nicht in einem# der IP-Rangeshost berlin{hardware ethernet 00:90:27:51:4D:95;fixed-address 192.168.0.3;}

# fur alle Mitglieder der Gruppe soll eine andere Gultigkeitsdauer gesetzt werden# fur alle anderen gilt weiterhin die globale Definitiongroup{default-lease-time 43200;max-lease-time 43200;

227

Page 228: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26. DHCP - Dynamic Host Configuration Protocol

host hamburg.de.eu{hardware ethernet 00:90:27:51:4D:96;}host dresden.de.eu{hardware ethernet 00:90:27:51:4D:97;}}

andere Beispielkonfiguration

#Name des DHCP-Servers, entspricht dem Hostnamen des Serversserver-identifier dhcp.testnetz.de;

# globale Vorgabe der Domain fur alle Clientsoption domain-name "testnetz.de";

# Angabe der Domain Name Server, bei Verwendung des Namens muss dieser auflosbar sein, ansonsten setzt man# hier die IP-Adresseoption domain-name-servers dns.testnetz.de;

# hier wird das Standardgateway gesetztoption routers 192.168.1.1;

subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.10 192.168.1.50;range dynamic-bootp 192.168.1.50 192.168.1.60;option broadcast-address 192.168.1.255;default-lease-time 36000;max-lease-time 72000;option subnet-mask 255.255.255.0;

}

host extrawurst {hardware ethernet 00:11:22:33:44:55;option host-name "extrawurst";option routers 192.168.1.2;fixed-address 192.168.1.5;

}

26.3.4. Protokolldatei

Damit keine Inkonsistenzen und Fehler bei der Vergabe der IP-Adresse auftreten, muss der Server stetsdaruber informiert sein, welche Konfigurationen gerade vergeben sind. In der Datei /var/lib/dhcp/dhcpd.leaseswerden die vom DHCP-Server vergebenen IP-Adressen festgehalten. Dazu kommen Informationen daruberwelche Rechner die IP erhalten haben, wann diese vergeben wurden und wie lange sie gultig sind. Immerwenn eine dynamische Konfiguration ausgeliefert wird, kommt ein entsprechender Eintrag am Ende derDatei dazu. Adressen die fest an bestimmte Clients vergeben werden, stehen nicht in dieser Protokolldatei.Damit diese Datei nicht im Laufe der Zeit unmoglich groß wird, wird sie zwischenzeitlich neu geschrieben.Die alte Datei bleibt unter einem temporaren Namen erhalten.

Inhalt der Datei dhcpd.leases

Hinter dem Eintrag starts steht die Zeit, zu der die Adresse vergeben wurde, hinter dem Schlusselwortends die Zeit, zu der die Gultigkeit der Adresse ablauft bzw. die Zeit, zu der die Adresse wieder freigegebenwurde. Die erste Zahl nach dem Schlusselwort bezeichnet den Wochentag (0 steht fur Sonntag, 1 fur Montagusw.), anschließend folgen Datum und Uhrzeit als GMT.

228

Page 229: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26.3. DHCP-Server

26.3.5. Integration System V

Naturlich kann der Server wieublich mit rcdhcpd start gestartet werden. Damit der DHCPD auch beimHochfahren des Systems mitgestartet wird, fugt man mit Hilfe des Runlevel-Editors von YaST2 oder mitinsserv die erforderlichen symbolischen Links in die Runlevelverzeichnisse ein.

Ubungen

1. Einer der Kursteilnehmer jeder Gruppe konfiguriert seinen Rechner als DHCP-Server, der alle benotigtenInformationen an die anfragenden Clients ausliefert.

2. Die anderen Gruppenmitglieder konfigurieren den DHCP-Client.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

229

Page 230: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

26. DHCP - Dynamic Host Configuration Protocol

230

Page 231: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

27. NFS - Network File System

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

NFS steht fur Network File System und ermoglicht es, dass ein Server seine lokalen Verzeichnisseuberdas Netzwerk zur Verfugung stellt. Nach dem Mounten der Freigaben greifen die Clients vollig transparentauf die Ressourcen des Servers zu, so als ob es sich um das lokale Dateisystem handelt.

27.1. Motivation

27.2. Installation der Software

Die benotigten Pakete (nfs-server, nfs-utils) sind leicht zu finden und konnen ohne Schwierigkeiten mitYaST / YaST2 installiert werden.

27.3. Konfiguration

Die komplette Konfiguration des Servers kann mit YaST2 sehr zuverlassig durchgefuhrt werden. WahlenSie hier den Eintrag Netzwerk aus und klicken Sie auf NFS-Server. Jetzt wahlen Sie die Option NFS-Serverstarten und bestatigen mit Weiter. Im nachsten Dialog geben Sie im oberen Bereich die zu exportierendenVerzeichnisse an, wahrend unten die Zugriffsrechte vergeben werden. Wahlen Sie dafur die entsprechen-de Freigabe oben aus und klicken Sie dann am unteren Rand auf Neu bzw. Bearbeiten. Leider gibt IhnenYaST2 keine genauere Hilfe und verweist nur auf die man-page der Datei exports. Im Feld Rechner (Wild-card) konnen Sie sowohl den Namen des berechtigten Rechners eintragen, insofern dieseruber die Datei/etc/hosts bzw. einen Nameserver aufgelost werden kann, als auch die IP-Adresse eintragen. Moglich istjedoch auch die Verwendung sogenannter Wildcards, d.h. Sie durfen auch Platzhalter fur Adress- / Namens-teile einsetzen. Unter Optionen geben Sie die Art des Zugriffs an. Hierbei steht ro fur nur lesend (readonly)und rw fur lesend und schreibend (read/write). Sind Sie soweit mit IhrenAnderungen zufrieden, verlassenSie den Dialoguber Beenden.

231

Page 232: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

27. NFS - Network File System

Auch hier passieren naturlich im Hintergrund etliche Dinge, die durch YaST2 verdeckt werden. Fur dasgrundlegende Systemverstandnis sind deshalb folgende Informationen wichtig. NFS baut ebenfalls auf Re-mote Procedure Calls auf, weshalb sichergestellt werden muss, dass der portmapper gestartet wird. Im Hin-tergrund wird die Variable USEKERNEL NFSD auf yes gesetzt und in die Datei/etc/exports geschrie-ben.

27.4. Starten der D amonen und Statusabfrage

Dem System mussuber das Setzen von bestimmten Variablen mitgeteilt werden, welche Dienste gestartetwerden sollen. Dafur mussen die Variablen NFSSERVER, STARTPORTMAP und USEKERNEL NFSDauf yes gesetzt werden.

Die Skriptdateien rpc, rstatd und nfsserver sind fur den Start der Dienste verantwortlich.Zur Kontrolle kann der Status der Damonen mit Hilfe der Befehle ps und rpcinfo abgefragt werden. Die

Kommandos wurden beispielsweise

ps -ax | grep nfs

ps -ax | grep rpc

und

rpcinfo -p

lauten.Sollte der Server einmal durchgestartet werden mussen, ist nur ein erneuter Start des nfsservers notwen-

dig. Das zugehorige Skript ist unter/sbin/init.d/nfsserver abgelegt. Der Befehl lautet wie folgt.

rcnfsserver restart

27.5. Konfiguration der Datei /etc/exports

Die zentrale Konfigurationsdatei fur den NFS-Server ist die Datei/etc/exports. Diese steuert, welcherRechner auf welche Verzeichnisse mit welchen Rechten zugreifen darf. Die Rechner konnen wahlweisedurch IP Nummern oder durch Namen angegeben werden. Die Maskierung der IP Adressen ist genausozulassig wie Jokerzeichen, die sowohl bei den Adressen als auch bei den Namen erlaubt sind. Eintragungensiehe Tabelle27.1auf Seite232.

Parameter Funktionro Freigabe mit Leserechtenrw grundsatzlich kann auf der Freigabe gelesen und geschrie-

ben werden, Dateisystemrechte werden nicht ausgehebelt.no root squash Rootrechte bleiben erhaltenlink relative absolute symbolische Links werden in relative umgesetzt,

sinnvoll wenn das gesamte Dateisystem eines Rechners ge-mountet wird.

link absolute symbolische Links bleiben unverandert

Tabelle 27.1.:Datei /etc/exports

232

Page 233: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

27.6. Client

Damit eine Veranderung von/etc/exports wirksam wird, muss das Kommandoexportfs -a aus-gefuhrt werden (vgl. hierzu man kexportfs und das Verzeichnis/var/lib/nfs). Hierbei wird eine syntaktischeUberprufung der Datei vorgenommen.

27.6. Client

Eine gesonderte Konfiguration der Clients ist in der Regel nicht notwendig.Damit man NFS-Freigaben verwenden kann, mussen jedoch einige Vorraussetzungen erfullt sein. Der

Rechner, dessen Dateisystem eingebunden werden soll, mussuber das Netzwerk erreichbar sein. Das Kom-mando ping pruft, ob die Verbindung steht. Außerdem muss dort ein NFS Server installiert und so konfi-guriert sein, dass der Client die Erlaubnis zum Dateizugriff auf das gewunschte Verzeichnis hat. Sind dieseVorraussetzungen erfullt, so ist der Zugriff denkbar einfach. Ein einfacher mount Befehl genugt um dasentfernte Dateisystem einzubinden.

mount -t nfs tina:/home /home

Damit wird das Verzeichnis/home des NFS Servers tina auf dem lokalen Rechner alex unter dem Verzeich-nis /home eingehangt. Naturlich muss dieses Verzeichnis vor der Ausfuhrung des Befehls mount bereitsangelegt sein. Außerdem ist die Angabe von host Namen nur zulassig, wenn die Eintrage in der Datei/etc/hosts entsprechend gepflegt sind. Selbstverstandlich kann auch ein entsprechender Eintrag in dieDatei/etc/fstab vorgenommen werden.

tina:/home /home nfs user,auto,exec 0 0

27.7. Kommandos

showmount

Das Kommando showmount zeigt Informationenuber die Freigaben eines NFS-Servers. Die wichtigstenOptionen heißen -a und -e.

27.8. Stolpersteine

Der Server istuber das Netz gar nicht erreichbar (Uberprufung mit ping). Der Client hat nicht die erforder-lichen Rechte, um die freigegebenen Verzeichnisse zu mounten. Das angegebene Verzeichnis ist gar nichtfreigegeben.

Achtung! Damit NFS sauber funktioniert ist es wichtig, dass jeder einzelne Benutzer sowohl auf denClients, als auch auf dem Server die selbe UID hat. Andernfalls besteht ein großes Sicherheitsloch!

27.9. Fehlerbehebung

Die nachfolgenden Erklarungen sollen dazu geeignet sein, sich Schritt fur Schritt an den Fehler heranzutas-ten und diesen zu beheben.

233

Page 234: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

27. NFS - Network File System

Keine Dateien auf der gemounteten Freigabe

Zuerst ist zuuberprufen, ob die NFS-Freigabe tatsachlich gemountet wurde. Dies kann am sichersten in derDatei/proc/mounts nachvollzogen werden. Gleichfalls ist dies mit dem Kommandomount -f moglich.Wenn das Dateisystem gemountet ist, wurde vielleicht ein anderes daruber gemountet oder am Server wurdeder Mountpoint exportiert bevor das Filesystem dort gemountet wurde, so dass nur der leere Mountpointsichtbar ist.Sollte die Freigabe noch nicht gemountet sein, dann holen Sie das mit den gewohnten Kommandos nach.

Dateizugriff h angt oder Timeout

Anscheinend ist es dem Client nicht moglich mit dem Server zu kommunizieren. (vgl. unten)

Freigabe kann nicht gemountet werden

Es treten zwei mogliche Fehler beim Mounten einer NFS-Freigabe auf.

Failed, reason given by server: Permission denied

Der Server erkennt nicht, dass der Client berechtigterweise auf die Freigabe zugreift.Kontrollieren Sie in diesem Fall die Datei/etc/exports und stellen Sie sicher, dass die zu mountendeFreigabe tatsachlich eingetragen ist und der Client mit der richtigen IP und den vorgesehenen Mountoptio-nen zugreift. Sollte beispielsweise die Freigabe nur readonly exportiert werden, schlagt der Mountrequestmit read/write fehl.Stellen Sie sicher, dass dieAnderungen in/etc/exports auch dem NFS-Server bekannt gemacht worden.Um sicher zu gehen, fuhren Sie erneut das Kommandoexportfs -ra aus, so dass die Freigaben erneutgelesen werden.Sehen Sie sich die Datei/proc/fs/nfs/exports an. Hier werden die Freigaben und Clients gelistet. Au-ßerdem gibt die Datei/var/lib/nfs/xtab alle derzeit exportierten Verzeichnisse und die dazugehorigenOptionen an.Hilft das alles nichts sollte auf IP- bzw. Hostname-Ebene sichergestellt werden, dass der Client den Servermit der erwarteten IP anspricht. Dabei konnen Fehler in der Namensauflosung genauso wie fundamentaleNetzwerkprobleme zu seltsamen Fehlern fuhren.

RPC: Program Not Registered oder andere RPC Fehler

Der Client kann den NFS-Server selbst nicht ansprechen.Zunachst sollte kontrolliert werden, ob der NFS-Serveruberhaupt lauft. Dies kann mit dem Kommandorpcinfo -p auf dem Server erfolgen. Die Ausgabe folgt.

program vers proto port100000 2 tcp 111 portmapper100000 2 udp 111 portmapper100024 1 udp 32772 status100024 1 tcp 32774 status100003 2 udp 2049 nfs100003 3 udp 2049 nfs100021 1 udp 32773 nlockmgr100021 3 udp 32773 nlockmgr100021 4 udp 32773 nlockmgr

234

Page 235: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

27.9. Fehlerbehebung

100005 1 udp 32774 mountd100005 1 tcp 32775 mountd100005 2 udp 32774 mountd100005 2 tcp 32775 mountd100005 3 udp 32774 mountd100005 3 tcp 32775 mountd

Mindestens die Dienste portmapper, nfs und mountd sollten hier auftauchen. Ist das nicht der Fall konnenmit den RC-Skriptenrcportmap bzw.rcnfsserver die jeweiligen Server durchgestartet werden.Auch vom Client aus kann gepruft werden, ob die Dienste laufen. Fuhren Sie hierzurpcinfo -p [server]aus und setzen Sie fur Server entweder die IP-Adresse oder den Hostnamen ein. Jetzt ist insbesondere aufdie angegebenen Versionen und die Protokollart zu achten. Erscheint keine Auflistung der Dienste, kann diesan den Dateien/etc/hosts.allow bzw./etc/hosts.deny auf dem Server liegen. Hinweise auf Verstoßegegen die Sicherheitseinstellungen finden sich ggf. in/var/log/messages. Notfalls stellt ein Ping die Er-reichbarkeit des Servers sicher. Allerdings ist auch denkbar, dass eine zwischengeschaltete Firewall zwardas Pingen zulasst, NFS aber ausschließt.

Zugriffsberechtigung auf Dateien der Freigabe

Auch hier kommen wieder zwei Probleme in Betracht. Zum einen konnen die Berechtigungen fur die Frei-gabe auf der Serverseite eingeschrankt sein, was in der Datei /proc/fs/nfs/exports nachvollzogen werdenkann. Auf Clientseite kann die Freigabe auch readonly gemountet worden sein. Hier sieht man sich am bes-ten die Datei /proc/mounts an.Das zweite Problem kann durch das Mapping der UID bzw der GID auf den Benutzernamen bzw. den Grup-pennamen in der /etc/passwd bzw. in der /etc/group auftreten. Sowohl server- als auch clientseitig mussendie UIDs der angelegten Benutzerubereinstimmen, sonst geraten die Berechtigungen fur Dateien und Ver-zeichnisse vollig durcheinander.Sollten Sie als root auf die Freigabe zugreifen wollen, so muss in der Datei /etc/exports die Option noroot squashgesetzt sein. Ansonsten wird root auf den Benutzer nobody gemapped.Bei der Konfiguration des NFS-Servers muss darauf geachtet werden, dass Leerzeichen in der /etc/exportszu ernsthaften Missverstandnissen fuhren konnen.

/export/dir hostname(rw,no_root_squash)/export/dir hostname (rw,no_root_squash)

Mit der ersten Zeile wird die Freigabe fur den genannten Host read/write zur Verfugung gestellt, wobei derBenutzer root nicht umgelenkt wird. In der zweiten Zeile wird die Freigabe fur den Host mit den Standarde-instellungen, also read/write mit Umlenkung der root Privilegien, freigegeben und außerdem allen anderenSchreibberechtigung ohne Umleitung der root Berechtigung gewahrt! Trifft keines der zwei genannten Pro-bleme zu, handelt es sich moglicherweise um Zugriffsrechte auf Dateisystemebene, die nichts mit NFS zutun haben.

Export oder Mount readonly

Entweder die Freigabe wird nur readonly exportiert oder sie wurde nur readonly gemountet. Demnach mussdie Datei/etc/export abgeandert und danach der Befehlexportfs -ra

235

Page 236: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

27. NFS - Network File System

Ubungen

1.

2.

3.

Zusammenfassung

Im vorangegangenen Kapitel haben Sie den Kernel und dessen Aufgaben kennengelernt. Mit der Kernelkom-pilierung und der Modulverwaltung sind Sie tief in das System eingestiegen. Auch wenn solche Eingriffenur selten notwendig sind, sollten Sie das grundlegende Verstandnis fur diese systemnahen Vorgange imHinterkopf behalten.

236

Page 237: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

28. NIS - Network Information Services

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

Mit zunehmender Große des Netzwerks und steigender Anzahl der verbundenen Rechner wird eine zen-trale Administration beispielsweise der Benutzer immer dringender erforderlich. Die Network InformationServices, die anfanglich unter dem Namen Yellow Pages (eingetragenes Warenzeichen der British Telecom)von Sun entwickelt wurden, kommen dieser Anforderung nach und bieten daruber hinaus weitere nicht zuverachtende Vorteile. Dahinter steckt ein sauberes Konzept und eine nicht ganz einfache Konfiguration, derim folgenden jedoch der Schrecken genommen werden soll.

28.1. Motivation

Konkret sind die Network Information Services ein Dienst, der Informationen textbasierter Dateien in Formeiner Datenbank im Netzwerk zur Verfugung stellt. Dabei handelt es sich in der Regel um Dateien aus demUmfeld der Benutzer- und Gruppenverwaltung (/etc/passwd, /etc/group). Denkbar ist aber auch dieVerteilung anderer Dateien, beispielsweise der/etc/hosts, die die IP-Adressauflosung in einem Netzwerkohne Nameserverubernimmt. Diese Dienste bringen folgende entscheidende Vorteile mit sich.

Zentrale Administration ausgewahlter Dateien z.B. der Benutzer- / Gruppendatenbank. Transparenz desNetzwerks fur den Benutzer, der sich in Verbindung mit einem NFS-Server (zentrale Bereitstellung derHome-Verzeichnisse) an allen Rechnern der jeweiligen NIS-Domane anmelden kann unduberall dieselbeArbeitsumgebung vorfindet. Schaffung der Voraussetzungen fur eine sichere Umgebung, in deruber dasNetzwerk Ressourcen verteilt werden konnen, da jeder Benutzer systeminternuber die gleiche UID darge-stellt wird.

28.2. Konzept

NIS gliedert, als asymmetrischer Datenbankdienst, das Netz zunachst in NIS-Domanen, die wiederum NIS-Server (einen Master- und beliebig viele Slave-Server) auf der einen und NIS-Clients auf der anderen Seiteumfassen. Zusatzlich zu den oben genannten bietet eine solche Struktur weitere Vorteile, die bereits beiwenigen Linux-Rechnern das Aufsetzen einer NIS-Umgebung rechtfertigen.

237

Page 238: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

28. NIS - Network Information Services

Samtliche verteilte Informationen werden in datenbankahnlichen Maps bereitgehalten, die insbesonderebei großen Datenmengen schnellere Suchergebnisse, verglichen mit dem Zugriff auf in Textdateien vorge-haltene Informationen, ermoglichen. Durch die Bereitstellung von Slave-Servern kann die Ausfallsicherheitder NIS-Domain aufgrund der Redundanz entscheidend verbessert werden.

28.3. Funktion der Einzelkomponenten

28.3.1. Master-Server

Der NIS-Server stellt zentral in seiner NIS-Domane allen unter Linux laufenden Rechnern die bereits an-gesprochenen Datenbanken zur Verfugung. Somit konnen sich Anwender an jedem im LAN befindlichenLinux-Rechner anmelden, ohne dass sie dort einen lokalen Benutzeraccount haben mussen. Zugleich ver-waltet der NIS-Server auch die Datenbanken, d.h. dass beispielsweise neue Benutzer vom Administrator nurnoch hier anlegt werden. Um dieseAnderungen im gesamten Netzwerk bekannt zu machen, mussen jetztallerdings die Datenbanken aktualisiert werden.

28.3.2. Slave-Server

Gesetzt den Fall, der Master-Server wurde absturzen oder ware uber das Netzwerk nicht mehr erreich-bar. Dann konnte sich in der Domane niemand mehr anmelden und der Geschaftsbetrieb ware empfindlichgestort. Hier greifen die Slave-Server und erhohen durch eine redundante Datenhaltung der Maps die Aus-fallsicherheit der Domane. Es gibt auch noch andere Grunde die fur die Bereitstellung eines zweiten Serverssprechen. Bei einem weitlaufigen Gelande und damit verbundenen langen Kabelstrecken zwischen dem Ser-ver und seinen Clients verbessern raumlich getrennte Slave-Server entscheidend die Antwortzeiten. Im Fallezahlreicher Hosts kommt es auch zu einer Lastverteilung unter den Servern, da sich die Clients dem Servermit den kurzesten Antwortzeiten zuwenden.

28.3.3. Client

Der Damonprozess ypbind stellt eine Verbindung zum NIS-Server her und erhalt diese Verbindung aufrecht,um die Informationen in der NIS-Datenbank nutzen zu konnen. Dann schickt ypbind in kurzen AbstandenAnfragen an den Server. Sollte dieser nicht antworten, so versucht ypbind einen anderen Server anzuspre-chen. Außerdem wird von Zeit zu Zeit gepruft, ob der angesprochene Server noch der schnellste ist. Weist einanderer kurzere Antwortzeiten auf, so wird auf diesen umgeschaltet. Beim Zugriff auf Informationen verlasstsich der NIS-Client zunachst auf seine lokalen Informationen. Sollte er hier nicht fundig werden, greift erauf die uber NIS zur Verfugung gestellten Dienste zuruck, um beispielsweise die Benutzerauthentifizie-rung durchzufuhren. Beachten Sie, dass diese Reihenfolge (festgelegt in der Datei/etc/nsswitch.conf)entscheidend sein kann!

28.4. Installation

Die Benennung der Pakete kann von einer zur anderen Distribution variieren. Wahrend der eigentlicheServer im Paket ypserv steckt, muss clientseitig das Paket ypbind installiert werden. Hinzu kommen nochdie Pakete yp-tools und ypmake, deren Installation auf beiden Seiten Sinn macht.

ypserv Dies ist der eigentliche NIS-Server, der sich jedoch aus mehreren Komponenten zusammensetzt.

• Skript/etc/init.d/ypserv (Link unter/usr/sbin/rcypserv) startet den NIS-Server dessenProgrammcode in der Datei/usr/sbin/ypserv abgelegt ist.

238

Page 239: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

28.5. Konfiguration

• Skript/etc/init.d/yppasswdd (Link unter/usr/sbin/rcyppasswdd) startet einen weiterenServer, der es den Benutzern ermoglicht, mit verschiedenen Kommandos auf die Datenbankenam Server zuzugreifen, um so beispielsweise ihr Passwort zuandern.

• Skript/etc/init.d/ypxfrd (Link unter/usr/sbin/rcypxfrd) startet einen weiteren Dienst,der das Kopieren der Daten zu den Slaves-Servern erheblich beschleunigt.

• Programm/usr/sbin/yppush sorgt dafur, dass die Datenbanken an alle NIS-Slaveserverubert-ragen werden.

• verschiedene Libraries, Konfigurationsdateien und man-pages.

ypbind Der als Damon realisierte NIS-Client bindet den jeweiligen Host in eine NIS-Domain ein und suchtnach anderen NIS-Servern, wenn der derzeit verwendete nicht erreichbar ist.

• Skript/etc/init.d/ypbind (Link unter/usr/bin/rcypbind) startet den NIS-Client.

• eigene man-pages.

yp-tools Dieses Paket enthalt nutzliche Werkzeuge, um Zugang zu den Maps zu erhalten oder um dieKonfiguration eines NIS-Servers zu testen.

• Kommando nisdomainname / ypdomainname setzt den Namen der jeweiligen NIS-Domane.

• Kommando ypcat greift auf den Inhalt der NIS-Datenbanken durch, wenn man als Parameterden Namen einer Map angibt.

• Kommandoypchfn andert die personlichen Informationen eines Benutzers

• Kommandoypchsh andert die Standardshell

• Befehlypmatch pruft beispielsweise, ob ein bestimmter Benutzer in den Maps vorhanden ist.

• Kommandoyppasswd andert das Passwort eines Benutzers

• Kommandoypwhich erfragt den aktuellen NIS-Server.

• Kommandosyppoll undypset

• Konfigurationsdatei/var/yp/nicknames, in der die Zuordnung der Dateinamen zu den Namender Datenbankdateien erfolgt.

• umfangreiche man-pages zu jedem der genannten Befehl.

ypmake Dieses Paket enthalt Perl-Module (/usr/lib/yp/ypmake/...), die das Erstellen und Warten derNIS-Datenbanken auf dem Master-Server unterstutzen.

28.5. Konfiguration

28.5.1. Master-Server

• Starten der Dienste (Variablen ausschließlich in/etc/rc.config)

Portmapper: Zuerst muss sichergestellt werden, dass der Portmapper gestartet wird. Dieser ist not-wendig, da NISuber Remote Procedure Calls (RPC) realisiert ist. Die zugehorige Variable heißtSTART PORTMAP.

YP-Server: Damit dieser bei jedem Hochfahren gleich mitgestartet wird, setzt man die VariableSTART SERV auf yes.

239

Page 240: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

28. NIS - Network Information Services

weitere Server: Um yppasswdd zu starten, setzen Sie die Variable STARTYPPASSWDD ebenfallsauf yes. Das ist notwendig damit Benutzer beispielsweise ihr Passwort gleich in der Datenbankandern durfen. Fur den Dienst ypxfrd, der ein beschleunigtes Kopieren der Maps auf die Slave-Server ermoglicht, ist eine eigene Variable STARTYPXFRD vorgesehen.

• Setzen des Domainnamens Der nachste Schritt betrifft den NIS-Domainnamen und den Namen desNIS-Servers. Mit verschiedenen Domainnamen ist es moglich, mehrere NIS-Server in einem Netz-werk einzurichten, ohne dass sich diese in die Quere kommen.

YP-Domainname: Die zugehorige Variable heißt YPDOMAINNAME.

YP-Server: Der Name des Servers wird in der Variable YPSERVER abgelegt.

Speichern Sie an dieser Stelle die vorgenommenen Einstellungen und starten Sie, damit der Domain-name gesetzt wird, das System durch. Wollen Sie einen Neustart vermeiden, konnen Sie auch mit demKommando

domainname YP_DOMAINNAME

die NIS-Domane setzen. Ruft man selbiges ohne Parameter auf, wird die eingestellte NIS-Domanezuruckgegeben.

• weitere Einstellungen: Einige weitere Variablen sind noch in der Datei/etc/rc.config.d/ypserv.rc.config abgelegt. Hier konnen die Pfade zu den Dateien passwd,shadow usw. angegeben und die Moglichkeit des Benutzers,Anderungen an der Benutzerdatenbankvorzunehmen, beschnitten werden.

28.5.2. Makefile

Zunachst liegen samtliche Dateien als reine Textdateien vor. Das Makefile(/var/yp/Makefile) gibt an, welche Informationen wie in die NIS-Datenbankubernommen werden.

AchtungGehen Sie beiAnderungen im Makefile mit Bedacht vor! Schnell ist etwas falsch konfiguriert und dieDatenbanken konnen nicht mehr sauber erstellt werden. Sie konnen eine Aufstellung der Optionen in Tabelle28.1auf Seite241nachlesen.

Daneben gibt es noch weitere Variablen, durch die man das Erstellen der Maps konfigurieren kann. DieVerzeichnisse der Konfigurationsdateien lassen sich ebenso einstellen, wie die dafur verwendeten Program-me.

28.5.3. Erstellen der Datenbanken

Nachdem alles soweit vorbereitet ist (Variablen inrc.config gesetzt, Makefile vorbereitet), fehlen jetztnur noch die NIS-Datenbanken. Diese zu erstellen, ist jedoch keine große Hurde mehr. Wechseln Sie indas Verzeichnis/var/yp und fuhren Sie hier das Kommando make aus. Jetzt wird ein Verzeichnis mit demNamen der NIS-Domain in/var/yp angelegt und hierhin werden die Datenbankdateien kopiert. Dazu greiftmake auf die Informationen zahlreicher Dateien (passwd, group, shadow, hosts, networks, printcap, ...) desVerzeichnisses/etc zuruck. Achten Sie in der Ausgabe von make auf etwaige Fehlermeldungen.

Das Makefile sollte nur auf dem NIS-Masterserver der Domain ausgefuhrt werden. Alle aktualisiertenMaps werden automatisch zu den Slave-Servern geschoben, die jedoch in der Datei/var/yp/ypserversreferenziert werden mussen.

240

Page 241: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

28.5. Konfiguration

Option FunktionMIN UID MIN GID Benutzer und Gruppen, deren ID kleiner als der angegebe-

ne Wert ist, werden nicht in die NIS-Mapsubernommen.Somit bleiben standardmaßig samtliche Systemaccountsaußen vor und deshalb lokal auf jedem Rechner bekannt.

all Dateien, die in die Mapsubernommen werden.NO PUSH z.B. false nur mit der Einstellung false werden die Maps an die

in der Datei/var/yp/ypservers eingetragenen Slave-Server verteilt.

MERGE PASSWDMERGE GROUP z.B.true

Die Passwort-Dateien fur Benutzer und Gruppen solltennicht uber das Netz verteilt werden, da dies ein potenzi-elles Sicherheitsrisiko darstellt. Um dennoch eine Authen-tifizierung durchfuhren zu konnen, werden (bei Setzen derVariablen auf true) die Dateien passwd und shadow bzw.group und gshadow miteinander verknupft.

Tabelle 28.1.:Optionen im Makefile

Beispiel Benutzerverwaltung

Durch die zentralisierte Benutzerverwaltung ist bereits viel gewonnen.Anderungen werden jedoch nichtdirekt in den bereitgestellten Datenbanken vorgenommen, sondern man greift weiterhin auf dieublichenTools zuruck, um Benutzer, Gruppen, usw. zu pflegen. Die geanderten Eintrage finden jedoch nicht alleinein die Datenbank. Deshalb muss der Administrator nach jederAnderung das Makefile erneut aufrufen, wassich jedoch leicht mit cron automatisieren lasst. Interessant ist, dass nicht immer die kompletten Mapsgeschrieben, sondern nur die Veranderungenubernommen werden.

28.5.4. Slave-Server

Im Grunde ist die Einrichtung weiterer Slave-Server ein Kinderspiel. Diese unterscheiden sich vom Master-Server nur insofern, dass sie die Maps nicht selbst erstellen, sondern vom Master beziehen. Sie halten sichbei der Konfiguration zunachst an die besprochenen Variablen im Abschnitt ”Konfiguration des Master-Servers”. Dann setzen Sie auf dem Master die Variable NOPUSH im Makefile auf false und tragen samtli-che Slave-Server in die Datei/var/yp/ypservers ein. Danach erstellen Sie nochmals die Datenbanken.

28.5.5. Client

Die Konfiguration des Clients gestaltet sich mit Hilfe von YaST / YaST2 sehr einfach und zuverlassig.Sie konnen aber die im Hintergrund vorgenommenenAnderungen anhand der folgenden Erlauterungennachvollziehen.

Zunachst muss der Name der NIS-Domane in der Variablen YPDOMAINNAME gesetzt werden. Da-nach kann bereits der Damon ypbind gestartet werden, der den Server selbststandiguber Broadcasts findet.Da es auf diese Weise jedoch sehr leicht moglich ist, dem Netz einen falschen Server unterzujubeln, soll-te darauf verzichtet werden. Der sicherere Weg ist, die verfugbaren Server fest in/var/yp/ypserversbzw./etc/yp.conf einzutragen. Unter SuSE sollte dieseAnderung nicht handisch vorgenommen werden,sondern die Variable YPSERVER in/etc/rc.config gesetzt werden. Ein Name ist hier naturlich nurzulassig, wenn dieser mit Hilfe der/etc/hosts aufgelost werden kann. Eine Namensauflosunguber DNS

241

Page 242: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

28. NIS - Network Information Services

ist nicht moglich! Bei der Kontaktaufnahme verwendet ypbind den Server, der zuerst antwortet. Nun mussdem Client noch mitgeteilt werden, dass er Benutzeruber NIS suchen soll. Dies bewerkstelligt die Zeile+:::::: am Ende der Dateien/etc/passwd und/etc/groups. Sie veranlasst das System bei ihm unbekann-ten Benutzern und Gruppen, dieseuber das Netzwerk zu authentifizieren. Die Reihenfolge der Quellen, indenen Linux nach Informationen sucht, wird in der Datei/etc/nsswitch.conf festgelegt.

Ubungen

1.

2.

3.

Zusammenfassung

Im vorangegangenen Kapitel haben Sie den Kernel und dessen Aufgaben kennengelernt. Mit der Kernelkom-pilierung und der Modulverwaltung sind Sie tief in das System eingestiegen. Auch wenn solche Eingriffenur selten notwendig sind, sollten Sie das grundlegende Verstandnis fur diese systemnahen Vorgange imHinterkopf behalten.

242

Page 243: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29. SMB - Samba File Server und Primary DomainController

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

In heterogenen Netzwerken nimmt die Integration des Betriebssystems Linux, sowohl als Client, als auchals Server eine besondere Rolle ein. Das Schlusselwort fur das Zusammenspiel mit Windows heißt Sambaund leitet sich vom SMB Protokoll der Firma Microsoft ab. Seit Projektbeginn 1991 hat sich Samba zueinem sehr stabilen und portablen Produkt entwickelt, das seinen festen Platz im Unternehmen eingenom-men hat und dort in die bestehenden Umgebungen integriert wurde. Im folgenden kann Samba keinesfallsauch nur halbwegs ausgeleuchtet werden, das wurde den Umfang der Schulung und dieser Unterlage spren-gen. Stattdessen sollen zwei grundlegende Konfigurationsbeispiele (Verzeichnis- / Drucker-Freigaben undPrimary Domain Controller) erlautert werden.

29.1. Grundlagen

Das Projekt setzt das Protokoll SMB (Server Message Block) der Firma Microsoft auf TCP / IP auf. Mitder Version 2.2.2 kann die komplette Windows NT Domanenstruktur abgebildet werden. Die Version 3.x,die sich derzeit noch im alpha-Stadium befindet, soll auch das Active Directory unterstutzen. FolgendeFahigkeiten bringt das aktuelle Programmpaket mit.

Bereitstellung leistungsfahiger File- und Printserver fur DOS, Windows und OS/2 Funktionalitat einesPrimary Domain Controllers unter Windows NT

29.2. Installation

Bei fast allen modernen Linux-Distributionen wird Samba als Paket mitgeliefert, so dass man sich vor einemSelbstkompilieren drucken kann. Außerdem ist Samba dann bereits an die Gegebenheiten der jeweiligenDistribution angepaßt. Braucht man hingegen die neueste Release oder mochte man die Version 3.0 alphaausprobieren, kommt man um das Kompilieren der Sourcen nicht herum.

Installation der rpm-Pakete samba und samba-client Wahrend das erste im wesentlichen die beiden Ser-verdienste smbd (SMB-Server) und nmbd (Netbios Name Server) bereitstellt, ermoglicht das zweitePaket den Betrieb als Client.

243

Page 244: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29. SMB - Samba File Server und Primary Domain Controller

• smbd: nimmt Verbindungen der Clients entgegen

• nmbd: stellt den Clients Netbios Dienste zur Verfugung

Beide Damonprozesse mussen laufen, damit der Samba Server seine Dienste im Netzwerk bereitstel-len kann.

Kompilierung der Sourcen Sollten Sie nicht auf die Pakete der jeweiligen Distribution zuruckgreifen wol-len, sondern die aktuellen Sourcen heruntergeladen haben, beachten Sie die beigefugte Anleitung zurKompilierung und Installation. Eventuell weichen die daraus resultierenden Pfadangaben von denVorgaben der Distribution und dieser Unterlage ab. Bei der Konfiguration konnen Sie sich trotzdeman den unten vorgestellten Vorschlagen orientieren.

Die angesprochenen Serverdienste smbd und nmbd werden im Verzeichnis /usr/sbin installiert und beimBooten durch das bereitgestellte Start-Skript rcsmbd gestartet. Dafur muss allerdings die Variable STARTSMBin derrc.config auf yes gesetzt werden. Dies konnen Sie wahlweise mit YaST / YaST2 oder einem be-liebigen Editor durchfuhren. Vergessen Sie in letzterem Fall nicht SuSEconfig zu starten. Naturlich konnendie Dienste mit rcsmb start / stop / restart auch manuell gestartet / beendet bzw. durchgestartet werden.

29.3. Konfiguration

Die Konfiguration des Samba-Servers wird ausschließlich durch die Datei/etc/samba/smb.conf gesteuert, die sich grundsatzlich in drei Teile gliedert.

Sehen Sie sich doch einmal diese Datei, bevor Sie mit der Konfiguration beginnen, an.

global In diesem Abschnitt werden freigabeubergreifende Einstellungen vorgenommen.

homes / shares Hier wird den Clients bzw. deren Benutzern der Zugriff auf ihre Homeverzeichnisse oderandere Verzeichnisfreigaben ermoglicht. Voraussetzung ist naturlich, dass der Client den ServerubersNetzwerk erreichen kann und der Benutzeruber eine Zugangsberechtigung zum Server verfugt. Wei-teren Freigaben wird jeweils ein eigener gleichnamiger Abschnitt in der/etc/samba/smb.conf zu-geordnet. Dabei kann der Freigabenahme vollig losgelost von der eigentlichen Verzeichnisstrukturauf dem Server vergeben werden.

printers Hiermit werden die in der/etc/printcap spezifizierten Drucker den Clients zur Verfugung ge-stellt. Die benotigte Konfiguration wird in der Regel schon nach Installation bereitgestellt und mussnur in seltenen Fallen angepasst werden.

Naturlich konnen Sie diesmb.conf mit einem Texteditor bearbeiten und danach, damit dieAnderun-gen wirksam werden, die Dienste durchstarten. Diese Vorgehensweise ist jedoch fehleranfallig. Deswegenenthalt das Samba Projekt ein sehr komfortables Tool fur diesen Zweck, das zudem von den Clients ausuberden Browser erreichbar ist. Dieses Werkzeug heißt Samba Web Administration Tool, kurz SWAT, und wirdim folgenden vorgestellt.

29.3.1. Samba Web Administration Tool (SWAT)

SWAT bietet nicht nur die komfortable Konfiguration des Samba-Servers an, sondern weist zu jeder Optioneine Verlinkung an eine Stelle in der umfangreichen Dokumentation auf. In der Regel lauft das Tool bereitsnach der Installation der angesprochenen Pakete problemlos. Starten Sie einen Browser Ihrer Wahl undgeben Sie in der Adresszeile den Dienst http://, den Namen des Rechners gefolgt von einem Doppelpunktund der Portnummer 901 ein (z.B. http://alisa001:901). Wenn die Verbindung problemlos aufgebaut werden

244

Page 245: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29.3. Konfiguration

kann, erscheint ein Fenster fur die Passwortabfrage, in dem Sie sich, damit Sie administrativ tatig werdenkonnen, als root ausweisen. Wurden Sie sich als normaler Benutzer anmelden, konnten Sie nicht viel mehrals Ihr Passwortandern.

mogliche Probleme • Name des Servers wird nicht aufgelost: der Nameserver ist nicht erreichbar oderSie haben keinen solchen eingerichtet. Tragen Sie den Server clientseitig in die Datei /etc/hostsein oder geben Sie statt des Namens die IP-Adresse an.

• Verbindung wird abgelehnt: der Server ist zwar erreichbar, aber eine Verbindung auf diesen Portwird nicht zugelassen. Sehen Sie sich die Dateien /etc/services und /etc/inetd.conf an. Sind hierdie Zeilen fur SWAT auskommentiert? Entfernen Sie ggf. das # und starten Sie den Dienst inetdmit rcinetd restart durch.

• Rechner kann nicht erreicht werden: Nur im Ausnahmefall werden Sie den Samba-Serverubereinen Proxy erreichen. Rufen Sie die Einstellungen Ihres Browsers auf und vereinbaren Sie imUnterpunkt Proxies, dass Sie die Verbindung zum Samba-Server nichtuber den Proxy herstellen.

• Seite kann nicht angezeigt werden: Stellen Sie mit rcinetd status sicher, dass auf Ihrem Linux-System der Dienst inetd lauft. Ist das nicht der Fall starten Sie ihn mit rcinetd start und setzen Siedie Variable STARTINETD in der rc.config auf yes, damit dieser auch beim nachsten Durch-starten des Rechners mitgestartet wird.

die Register Globals, Shares und Printers • Letztendlich tragt SWAT IhreAnderungen auch nur indie dahinterstehende Datei smb.conf ein, weshalb sich die Benennung der Register und Optionenganz nach den Vorgaben dieser Datei richten.

• Auf den Registern Globals, Shares und Printers legen Sie mit zahlreichen Optionen die grundle-gende Konfiguration und samtliche Einstellungen fur Freigaben fest. Wichtig ist, dass Sie, bevorSie das Register bzw. die Freigabe wechseln, auf die Schaltflache Commit Changes klicken.Erst dann werden IhreAnderungen in die smb.confubernommen. Andernfalls gehen Ihnen diezuletzt vorgenommenen Einstellungen verloren.

die Register Home, Status, View und Password Wahrend auf dem Register Home vor allem die umfang-reiche Dokumentation zu Samba verlinkt ist, bietet Ihnen das Register Status die Moglichkeit, dieDamonprozesse smbd und nmbd, z.B. nach einerAnderung an der Konfiguration, durchzustarten.Daruberhinaus sind hier alle aktiven Verbindungen, Freigaben und geoffneten Dateien aufgefuhrt.Unter View erhalten Sie einen Einblick in die smb.conf. Auf dem Register Password konnen neueBenutzer zum System hinzugefugt bzw. geloscht und Passworter zuruckgesetzt werden. Was sich soleicht anhort, hat es in sich. Mehr zur Benutzerverwaltung weiter unten.

29.3.2. Globale Einstellungen

Die in Tabelle29.1auf Seite246aufgefuhrten Optionen mussen unabhangig von der spateren Verwendungdes Samba-Servers gesetzt werden. Leider kann hier nur ein sehr eingeschrankter Einblick in die zahlreichenMoglichkeiten gegeben werden.

29.3.3. Verzeichnis-Freigaben

Die Einstellungen aus Tabelle29.2 auf Seite247 sind fur jedes freigegebene Verzeichnis individuell zusetzen.

245

Page 246: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29. SMB - Samba File Server und Primary Domain Controller

Option Funktionworkgroup z.B. mytux.de Geben Sie hier den Namen der Arbeitsgruppe oder der

Domane an.netbios name z.B. ali-sa001

Geben Sie hier den Namen an, unter dem der Samba-Serverin der Netzwerkumgebung der Windows - Clients erschei-nen soll.

server string z.B. Samba-Server

Dieser Text wird in der Netzwerkumgebung der Clients alsKommentar im Eigenschaftsfenster sichtbar.

interfaces z.B. eth0 Hier brauchen Sie nur das Netzwerkinterface anzugeben,konnten aber auch eine IP - Adresse mit Subnetmask ein-tragen.

security z.B. user share: Sicherheit auf Freigabeebene. Dies erfordert fur je-de einzelne Freigabe ein eigenes Passwort und ist dahersehr aufwandig zu verwalten. user: Sicherheit auf Benut-zerebene. Die Authentifizierung erfolgtuber die Samba ei-gene Benutzerdatenbank. server: Die Authentifizierung derBenutzer wird von einem anderen Server durchgefuhrt. Indiesem Fall mussen Sie zusatzlich den Parameter passwordserver setzen. domain:Ahnlich der Einstellung server, nurwird die Authentifizierung von einem Windows NT Pri-mary Domain Controller durchgefuhrt. Dieser muss in derOption password server referenziert werden.

encrypt passwords z.B.yes

Geben Sie hier an, ob die Passwortubertragung ver-schlusselt oder unverschlusselt stattfindet.

map to guest z.B. never In welchen Fallen soll ein zugreifender Client auf denGastzugang gelassen werden. never: Jeder Zugriff mit un-bekannten Namen oder falschem Passwort wird abgewie-sen. bad user: Zugriffe mit unbekanntem Benutzernamenwerden unter dem Gast-Account angemeldet. bad pass-word: Zugriffe mit falschem Passwort werden unter demGast-Account angemeldet.

wins server wins supportz.B. yes

Samba kann einen bestehenden WINS - Server nutzen (ge-ben Sie hierfur im Feld wins server die IP - Adresse desentsprechenden Servers an) oder selbst die Funktion einesWINS - Serversubernehmen (setzen Sie die Option winssupport auf auf yes).

Tabelle 29.1.:Samba - Globale Einstellungen

246

Page 247: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29.3. Konfiguration

Option Funktioncomment z.B. Home Ver-zeichnis

Der Kommentar wird auf den Windows-Clients im Eigen-schaftsfenster der Freigabe angezeigt.

path z.B. /home/%u Der Pfad gibt das freigegebene Verzeichnis auf demSamba-Server an. Fur die Variable %u wird der Benutzer-name eingesetzt.

read only z.B. no Setzen Sie diese Option auf yes, ist die Freigabe schreib-geschutzt, setzen Sie sie auf no, ist Sie grundsatzlich furden Schreibzugriff freigegeben. Diese Einstellung wirdggf. von den Rechten des einzelnen Benutzers weiter ein-geschrankt, jedoch niemals gelockert.

create mask z.B. 0640 Diese Option gibt die Zugriffsrechte neu angelegter Datei-en auf dieser Freigabe in Oktalzahldarstellung an.

directory mask z.B. 0750 Diese Option gibt die Zugriffsrechte fur neu angelegte Ver-zeichnisse an.

guest ok (guest account)z.B. no (z.B. nobody)

Wenn Sie diese Option auf yes setzen, konnen beliebigeAnwender mit den Rechten des unter guest account an-gegebenen Benutzers auf die Freigabe zugreifen. Beach-ten Sie, dass solche Freigaben vollig ungeschutzt vor un-authorisiertem Zugriff sind. Vereinbarte Zugriffsrechte aufDateisystemebene bleiben davon jedoch unberuhrt!

browseable z.B. yes Geben Sie hier yes an, wird die Freigabe in der Windows-Netzwerkumgebung sichtbar, andernfalls bleibt sie ver-steckt, kann aber dennoch verbunden werden.

available z.B. yes Mit dieser Option konnen Sie eine Freigabe sperren, sodass alle Verbindungsversuche abgelehnt werden.

valid users z.B. mucke(invalid users)

Diese Option wird nur sichtbar, wenn Sie die SchaltflacheAdvanced View anklicken. Hier geben Sie die Benutzeran, die auf die Freigabe zugreifen durfen. Sie konnen so-wohl einzelne Benutzer oder ganze Gruppen angeben. EineMoglichkeit einzelne Benutzer oder Gruppen auszusper-ren, bietet die Option invalid users.

Tabelle 29.2.:Verzeichnisfreigaben

247

Page 248: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29. SMB - Samba File Server und Primary Domain Controller

29.3.4. Drucker-Freigaben

Um einen Linux-Drucker auch von Windows-Rechnern aus nutzen zu konnen, muß zunachst sichergestelltsein, daß der Drucker bereits unter Linux installiert und konfiguriert ist. Wenn das Drucken unter Linuxmoglich ist, dann laßt sich die gemeinsame Nutzung des Druckers relativ einfach einrichten. Genau ge-nommen brauchen Sie gar keine Freigabe einzurichten, weil der vordefinierte Eintrag Printers automatischsamtliche Drucker freigibt. Dennoch sollen einige Einstellungen wie in Tabelle29.3auf Seite248erlautert,vorgestellt werden. Optionen, die sich mit denen fur Verzeichnis-Freigaben decken (vgl. oben), werden nichtnochmals aufgefuhrt.

Option Funktionpath z.B. /var/tmp Mit diesem Parameter geben Sie den Pfad zum

Spool-Verzeichnis an.printable z.B. yes Setzen Sie diese Option auf yes, damit Clients

im vereinbarten Spoolverzeichnis Dateien schreibendurfen.

printer name z.B. HPLj5L Name des Druckers, so wie er bei der Einrichtungunter Linux angegeben wurde.

Tabelle 29.3.:Druckerfreigaben

Danach kann der Drucker in der Netzwerkumgebung gesehen und auf den Clients installiert werden,vorausgesetzt, Sie haben einen Treiber fur die jeweilige Windows-Version.

29.3.5. Aufsetzen eines Primary Domain Controllers

Ein Primary Domain Controller ist fur die zentrale Verwaltung der Benutzer und der Rechner in seinerDomane verantwortlich. Jeder Benutzer meldet sich nach dem Hochfahren des Clients beim PDC, der dieAuthentifizierung durchfuhrt, an. Von daher gestaltet sich die Konfiguration eines PDC ein wenig anspruchs-voller.

Achtung

Es ist zwar eine gute Idee, testweise einen Samba-Server als PDC zu konfigurieren, das sollte aber niein einer produktiven Umgebung geschehen. Stellen Sie bei einem Testaufbau unbedingt sicher, dass Siekeinen anderen PDCs in die Quere kommen, d.h. auf keinen Fall eine physikalische Verbindung zu einembestehenden Netzwerk herstellen!

Wenn man weiß, wie Windows-Netze funktionieren, braucht man sichuber die nachfolgend angefuhr-te Konfiguration nicht zu wundern. Tatsache ist, dass sich samtliche Windows-Rechner, oder solche, diedieselben Protokolle verwenden, standig um die Vormachtstellung streiten. Deswegen konnen Sie auch inWindows-Netzen mit einem Sniffer standig Pakete nachweisen, obwohl keiner Ihrer Benutzer / Clients einenDienst beansprucht. Linux und Unix Rechner verhalten sich in aller Regel sehr still, es sei denn, sie sind einSamba-Server und werden standig von anderen Windows-Clients befragt. Zusatzlich zu den oben genanntenglobalen Optionen, mussen noch die aus Tabelle29.4auf Seite249gesetzt werden.

29.3.6. Benutzerverwaltung

So weit so gut! Aber noch kann niemand die Freigaben im Explorer verbinden, geschweige denn sich undseinen Rechner an der Domane anmelden. Zunachst mussen noch Benutzer angelegt werden. Hier reicht

248

Page 249: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29.3. Konfiguration

Option Funktiondomain logons z.B. yes Gibt an, ob sich Clients der unter workgroup ange-

gebenen Arbeitsgruppe / Domane bei diesem Serveranmelden mussen.

domain master z.B. true Diese Option legt fest, dass der Samba-Server derje-nige Browser in der Domane ist, den andere lokaleBrowser (in anderen Netzen) nach einer Liste mitzulassigen Rechnern und Benutzern fragen.

preferred master z.B. true Der Rechner wird mit der vorgeschlagenen Einstel-lung mit an Sicherheit grenzender Wahrscheinlich-keit ein Master Browser fur seine Domane.

local master z.B. yes Sorgt dafur, dass der Samba-Server auch der lokaleMaster des Subnetzes wird.

os level z.B. 30 Diese Zahl legt, in Verbindung mit den anderen Op-tionen fest, wie gut die Chancen stehen, dass derServer ein lokaler Master Browser wird.

Tabelle 29.4.:PDC mit Samba

es nicht aus, auf dem letzten Register Password einen neuen User einzutragen. Welche Rechte sollte dieserim Dateisystem haben? Es muss also auch noch ein Benutzer auf der Linux-Betriebssystemseite her. Erstwenn dieser angelegt wurde, konnen Sie Ihn mit SWAT auf der Sambaseite hinzufugen. Nutzen die Benutzernur die Dienste des Samba-Servers brauchen sich diese niemals auf dem Linux-Rechner einzuloggen. Daserreicht man, indem beim Anlegen des Users die Shell mit/bin/false angegeben wird.

Wenn Sie einen PDC konfiguriert haben, braucht auch jeder Rechner einen Account. Sie konnten hierfureine eigene Gruppe verwenden. Um einen solchen Maschinen Account anzulegen, schreiben Sie das folgen-de Skript ab und fuhren Sie es dann fur jeden Rechner aus, indem Sie es mit dem Hostnamen als Parameteraufrufen.

#!/bin/bashuseradd -g hosts -s /bin/false -c ??Maschinen Account?? ??$1\$??smbpasswd -m -a ??$1\$??

Sie konnen dieses kurze Skript noch an Ihre Bedurfnisse anpassen. Die erste Zeile gibt die Shell an,unter der das Skript lauffahig ist. Dann folgt die Anweisung, die den Benutzer in die/etc/passwd bzw./etc/shadow eintragt. Nach dem Parameter -g steht die zugehorige Gruppe, nach -s folgt die Shell undhinter -c wird ein Kommentar angegeben. Die Variable $1 enthalt den Rechnernamen, der um ein $ erweitertwird und in der letzten Zeile in die Datei/etc/samba/smb.conf als Maschinen-Account (-m) eingetragenwird. Danach konnen die Rechner an der Domane angemeldet werden. Als berechtigter Benutzer tritt rootauf, der auch als Samba-User eingetragen sein muss.

29.3.7. Passwort-Problematik

Entscheidend fur die Passwortverwaltung unter Samba ist die auf den Clients eingesetzte Windows-Version.Windows95ubertragt samtliche Passworter unverschlusselt, wahrend Windows98, WindowsNT, Windows2000usw. prinzipiell verschlusselt arbeiten. Dementsprechend muss der Parameter encrypt passwords gesetztwerden. Sollten Ihre Clients verschiedene Windows-Versionen benutzen, so muss unter Umstanden die Ver-schlusselung der aktuelleren Clients durch Eintrage in der Registry verhindert werden. Beim Anlegen der

249

Page 250: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

29. SMB - Samba File Server und Primary Domain Controller

Benutzer mit SWAT wird die Datei/etc/samba/smbpasswd gepflegt. Die hier aufgefuhrten Passworterwerden mit den bei der Authentifizierung der Clients gelieferten verglichen.Andert ein Benutzer seinWindows-Kennwort muss er auch sein Samba-Passwort (mit Hilfe von SWAT)andern, damit er noch aufpasswortgeschutzte Freigaben zugreifen kann. Dieser Nachteil existiert mit einem Primary Domain Con-troller nicht, da die Passwortanderung auf dem PDC erfolgt.

29.4. Samba-Client

In der Regel wird ein Linux-Rechner in einem Netzwerk zwar als Samba-Server eingesetzt, aber auch derumgekehrte Weg ist moglich, soll hier aber nur kurz angerissen werden. Mit dem folgenden Kommando kannnach erfolgreicher Passworteingabe eine Windows-Freigabe in den Verzeichnisbaum von Linux gemountetwerden.

mount -t smbfs //alisa001/home /mntodermount -t smbfs -o username=mucke,ro //alisa001/home /mnt

Sie konnen jetzt auf den Mountpoint zugreifen, als wurden die Daten auf Ihrem eigenen Rechner liegen.

29.5. Dokumentation und Quellcode

Wie bereits deutlich geworden ist, stellt Samba ein sehr komplexes Produkt dar, weshalb an dieser Stelle aufweiterfuhrende Dokumentation verwiesen werden soll.

• Paketdokumentation im Verzeichnis/usr/share/doc/packages/samba

• man-Page der Konfigurationsdatei smb.conf

• Samba HOWTO

Werfen Sie außerdem einen Blick auf das im Anhang befindliche Literaturverzeichnis, das einige Buchtipszu diesem und anderen Themen bereithalt. Des Weiteren finden sich im Internet viele Quellen, die bei auftau-chenden Fragen und Fehlern weiterhelfen. Allen voran sei hier die Homepage des Projekts www.samba.orgselbst genannt. Es lohnt sich aber auch bei www.google.de nach Hilfestellungen, Erfahrungsberichten oderForen mit dem Thema Samba zu suchen.

Ubungen

1.

2.

3.

Zusammenfassung

Im vorangegangenen Kapitel haben Sie den Kernel und dessen Aufgaben kennengelernt. Mit der Kernelkom-pilierung und der Modulverwaltung sind Sie tief in das System eingestiegen. Auch wenn solche Eingriffenur selten notwendig sind, sollten Sie das grundlegende Verstandnis fur diese systemnahen Vorgange imHinterkopf behalten.

250

Page 251: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

30. CVS - Concurrent Version System

Eine Entwicklungsumgebung ohne jegliche Verwaltung des Quellcodes ist bei den heutigen Projektumfangenkaum mehr denkbar. Im Vordergrund steht dabei die gleichzeitige Bearbeitung der Sourcen durch zahlrei-che Entwickler. Weitere Eigenschaften wie eine geschickte Versionsverwaltung, die Moglichkeit Parallel-entwicklungen vom Hauptentwicklungsast abzuspalten und die Moglichkeit zu einem spateren Zeitpunktdie verschiedenen Richtungen wieder zusammen zu fuhren, machen ein CVS unschlagbar. Wie man eineneigenen CVS-Server einrichtet, erklart das nachfolgende Kapitel.

Lernziele

In diesem Kapitel lernen Sie,

• wie man einen solchen Server aufsetzt,

• geschickt einrichtet

• und administriert.

Wie man ein CVS verwendet, wirdubrigens nicht an dieser Stelle, sondern im BuchV, Kapitel37.1aufSeite273erlautert.

30.1. Installation der Softwarepakete

Mit Hilfe von YaST2 kann das von SuSE mitgelieferte Paketcvs problemlos nachinstalliert werden. Auchandere Distributoren verzichten auf diese wichtige Software nicht und stellen entsprechende Pakete zurVerfugung.

30.2. Vorbereitung

Der hier vorgestellte CVS-Server verwendet als CVSROOT das Verzeichnis/var/cvs. Der Benutzer an-onymcvs wird als Alias fur den anonymen Zugriff eingerichtet. Außerdem wird eigens eine Gruppe cvs furalle Benutzer des CVS eingerichtet.

30.2.1. Gruppenverwaltung

Nachdem eine GID fur die neue Gruppe cvs systemweit reserviert wurde, kann die Gruppe mit ”YaST2/Benutzer/Gruppenbearbeiten und anlegen” eingetragen werden. Anschließend werden alle Benutzer, die CVS benutzen sollen,in diese Gruppe aufgenommen. Fur den anonymen Zugriff erganzt man zusatzlich den User nobody.

251

Page 252: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

30. CVS - Concurrent Version System

30.2.2. Einrichtung des Repositories

Jetzt legt man ein Verzeichnis/var/cvs an und initialisiert dieses als CVS-Repository mit Hilfe der Kom-mandozeilecvs -d /var/cvs init.

chgrp -R cvs /var/cvschmod -R g+sw /var/cvs

STICKY DIRECTORIES When the sticky bit is set on a directory, files in that directory may be unlinkedor renamed only by root or their owner. Without the sticky bit, anyone able to write to the directory can deleteor rename files. The sticky bit is commonly found on directories, such as /tmp, that are world-writable.

30.2.3. Passwortverwaltung

Damit der Benutzer anonymcvs auf das CVS zugreifen kann, muss er auf einen Systemuser gemappt wer-den und ein Passwort zugeordnet bekommen. Ersteres passiert mit der Datei /var/cvs/CVSROOT/passwd,letzteres kann mit dem Kommando htpasswd erzeugt werden. Außerdem wird eine Datei erzeugt, in der alleUser mit lesendem Zugriff aufgefuhrt werden.

htpasswd -n anonymcvsecho anonymcvs:SzYEQpU4cMmPU:nobody >> /var/cvs/CVSROOT/passwdecho anonymcvs >> /var/cvs/CVSROOT/readers

30.3. Portkonfiguration

In der Regel spricht man den CVS-Serveruber den Port 2401 an. Dieser muss in der Datei/etc/servicesfur TCP- und UDP-Verbindungen genannt werden. Man fugt also die beiden Zeilen wie hier gezeigt ein.

cvspserver 2401/tcp # cvspservercvspserver 2401/udp # cvspserver

30.4. Konfiguration des Inetd

Der CVS-Server wird nur auf Anfrage vom Inetd gestartet. In dessen Konfiguration ist also die nachfolgendeZeile entweder mit ”YaST2/Netzwerk/Start und Stop von Systemdiensten” oder mit Hilfe eines beliebigenEditors in der Datei/etc/inetd.conf hinzuzufugen und zu aktivieren.

cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs --allow-root=/var/cvs pserver

Verwendet man YaST2 nicht, darf man keinesfalls das An- bzw. Durchstarten des Inetd vergessen. Wardieser bereits gestartet reicht einrcinetd reload aus. Zusatzlich muss sichergestellt sein, das dieser Dienstauch beim Hochfahren des Rechners gestartet wird.

bis SuSE 7.3

In der Datei /etc/rc.config mussSTART_INETD="yes" gesetzt werden. Diese wirkt sich dann beim nachstenHochfahren des Systems aus. Manuell kann der Dienst aber auch mitrcinetd start angestartet werden.

252

Page 253: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

30.5. Funktionstest

ab SuSE 8.0

Entscheidend fur das Anstarten eines Dienstes ist die Verlinkung im entsprechenden Runlevel. Dies kannmit YaST2/System/Runlevel-Editor oder dem Kommandoinsserv inetd erfolgen. Ein Durchstarten desSystems ist nicht notwendig, wenn der erste Start gleich mitrcinetd start angestoßen wird.

30.5. Funktionstest

Ein kurzer Funktionstest soll zeigen, ob der CVS-Server tatsachlich funktioniert.

mucto@linux:˜> cvs -d :pserver:anonymcvs@linux:/var/cvs loginLogging in to :pserver:anonymcvs@linux:2401/var/cvsCVS password:mucto@linux:˜>

Ubungen

1.

2.

3.

Zusammenfassung

Im vorangegangenen Kapitel haben Sie gelernt einen CVS-Server aufzusetzen. Wie man ein CVS-Systemverwendet, erfahren Sie im BuchV, Kapitel37.1auf Seite273.

253

Page 254: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

30. CVS - Concurrent Version System

254

Page 255: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

31. VNC - Virtual Network Computing

Wer hat noch nicht davon getraumt, eine Verbindung zu einem entfernten X-Server herzustellen, und aufdiesem zu arbeiten als ware es der lokale Arbeitsplatz? Mit VNC steht dem nichts mehr im Wege.

Lernziele

In diesem Kapitel lernen Sie,

• die Konzeption von VNC kennen,

• die Funktionsweise des Clients und Servers zu verstehen,

• die wichtigsten Kommandos im Umgang mit VNC anzuwenden.

31.1. Motivation

Sich auf einem entfernten Rechner einzuloggen und eine Remote-Shell zu starten, ist, wie Sie wissen, keingroßes Problem. Allerdings lasst dabei die Benutzerfreundlichkeit große Wunsche offen, die nur von einergrafischen Benutzeroberflache bedient werden konnen. Warum also nicht gleich die X-Anwendungen oderbesser noch den X-Serverubers Netz verteilen? Grundsatzlich steht dem unter Linux nichts im Wege, dadie komplette Architektur des X Window Systems bereits auf einer Client-Server Architektur beruht. Da-bei sind jedoch zwei Stufen zu unterscheiden. Zum Einen konnen die X-Anwendungen auf dem entferntenRechner laufen, aber auf dem lokalen X-Server angezeigt werden, zum Zweiten kann der X-Server und alledarauf laufenden X-Anwendungen remote laufen und von einem Viewer lokal angezeigt werden. Die zu-letzt genannte Vorgehensweise verfolgt VNC, und bietet damit gegenuber der ersten Variante entscheidendeVorteile.

• Die entfernten grafischen Oberflachen konnen in einem Remote-Displayuber das Netzwerk auf an-deren Rechnern einer Vielzahl an Architekturen angezeigt werden.

• Dabeiubernimmt der Viewer nur die Aufgabe der Anzeige und speichert keine zusatzlichen Informa-tionen. Wird er geschlossen, hat das keine Auswirkungen auf den entfernten X-Server und man kannnach Aufbau einer neuen Verbindung an derselben Stelle weiterarbeiten, wo man zuvor aufgehort hat.

• Der Programmcode ist stark optimiert und nimmt wenig Speicher ein.

• Die Bedienung sowohl des Servers als auch des Clients ist denkbar einfach.

• Neben dem normalen Viewer, der fur viele Plattformen verfugbar ist, gibt es noch einen Java Viewer,der es ermoglicht den X-Server in einem Browserfenster anzuzeigen, dadurch wird echte Plattformu-nabhangigkeit erreicht.

• Desweiteren ist es moglich, dass ein Desktop von mehreren Viewern gezeigt wird.

• Außerdem ist VNC frei erhaltlich und kann auf Basis der GNU Public Licence heruntergeladen, be-nutzt, weiterentwickelt und vertrieben werden.

255

Page 256: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

31. VNC - Virtual Network Computing

31.2. Softwareinstallation

Das Paketvnc wird bei SuSE 8.0 in derVersion 3.3.3r2-223 mitgeliefert und kann demnach problemlosmit YaST2 nachinstalliert werden. Die aktuelle Version kann bei Bedarf als binarestar.gz bzw.zip Archivvon http://www.uk.research.att.com/vnc fur samtliche Plattformen heruntergeladen werden. Außer-dem findet sich hier reichhaltige Dokumentation zum Thema VNC und anderen damit verwandten Themen.Die nachfolgende Installation gestaltet sich recht einfach, da das Archiv nur entpackt und die Dateien in einbeliebiges Verzeichnis kopiert werden mussen. Dieses sollte jedoch fur die Allgemeinheit zuganglich seinund in die Pfadvariablen aufgenommen werden.

31.3. Funktionsweise

VNC besteht im wesentlichen aus zwei Komponenten, dem Server, der das Display erzeugt, und dem View-er, der das Display anzeigt. Dabei konnen Server und Viewer auf verschiedenen Rechnern verschiedenerArchitekturen laufen, da das darunterliegende Protokoll einfach, offen und plattformunabhangig ist. Wiebereits angesprochen, halt der Viewer keine sessionspezifischen Daten im Speicher, so dass eine erneuteVerbindung auf den Server den zuletzt verlassenen Desktop wieder darstellt. Unter VNC liegt die TCP/IPProtokoll Suite. Insofern mussen die Rechner entsprechend vernetzt sein. Allerdings spricht grundsatzlichnichts gegen die Implementierung anderer Netzwerkprotokolle und -topologien. Der Serverubernimmt zweiwesentliche Aufgaben. Aus Sicht der X-Anwendungen handelt es sich um einen X-Server, der mit dem be-kannten X-Protokoll angesprochen werden kann. Vom Standpunkt der VNC-Clients stellt er sich jedoch alsVNC-Server dar, deruber das VNC-Protokoll ein Remote-Display zur Verfugung stellt.

31.4. VNC-Server

Mit vncserver kann ein virtueller X-Server gestartet werden. Beim ersten Mal wird man nach einem Pass-wort gefragt, dass bei jeder weiteren Verbindung angegeben werden muss. Spater kann es durchvncpasswdgeandert werden. Der neu angestartete Server erstellt ein neues Display und gibt diesem einen Namen, derden Rechnernamen und eine fortlaufende Nummer enthalt. Welcher Windowmanager und welche Anwen-dungen beim Starten des Servers aufgerufen werden, ist in der Datei˜/.vnc/xstartup angegeben und kannnach Belieben angepasst werden. Außerdem schreibt der Server samtliche Aktivitaten in ein Log-File na-mens /.vnc/<display>.log. Weitere wichtige Optionen betreffen die Auflosung (-geometry widthxheight)und die Farbtiefe (-depth depth).Beispiel:vncserver -geometry 1024x768 -depth 24 startet einen VNC-Server auf dem ersten verfugba-ren Display mit einer Auflosung von 1024x768 und einer Farbtiefe von 24bit.Ein VNC-Server kann mit demselben Aufruf auch wieder beendet werden. Allerdings ist hierzu der Para-meter-kill notwendig.Beispiel:vncserver -kill :1.

31.5. VNC-Client

31.5.1. Viewer

Mit vncviewer wird der Client gestartet, dem jedoch noch der Displayname und das Passwortubergebenwerden muss. In der Regel funktioniert das problemlos und man erhalt nach der Authentifizierung ein Fens-ter, das die grafische Oberflache anzeigt.

256

Page 257: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

31.6. Beispielanwendungen

31.5.2. Browser

Der VNC-Server enthalt auch einen kleinen Web-Server, der beim Verbindungsaufbau die Java-Version desViewers an den Clientubermittelt. Damit ist es moglich von jedem javafahigen Browser auf dem Servergrafisch zu arbeiten. Der Server lauscht am Port 5800 + Displaynummer.Beispiel:http://mandy:5801/. Nach Anstarten des Applets wird nach dem Passwort gefragt und kurzdarauf der X-Server und seine Anwendungen angezeigt.

31.6. Beispielanwendungen

Wie Screenshots auf der Website zeigen, ist das Einsatzgebiet von VNC recht weitlaufig. Sowohl Windows-,als auch Unix-, ja sogar Macintosh-Systeme konnen als Server, aber auch als Client dienen. Allerdings istdie Performance stark abhangig vom verwendeten Windowmanager.

Zusammenfassung

Sie haben VNC kennengelernt.

31.7. Uberbleibsel aus der alten Version

31.8. VNC - Virtual Network Computing

Die Software VNC besteht grundsatzlich aus zwei Komponenten, einerseits dem Server, der ein Displayzur Verfugung stellt, und andererseits dem Viewer, der das Display auf dem Bildschirm anzeigt. Der Serverkann auf einem anderen Rechner, einem anderen Betriebssystem und einer anderen Systemarchitektur lau-fen als der Viewer. Das Protokoll, das beide miteinander verbindet ist unkompliziert, offen und unabhangigvon der Plattform. Der Viewer speichert keinerlei Daten. Somit gehen keinerlei Daten verloren, wenn dieVerbindung unterbrochen wird. Nachdem diese wiederhergestellt wurde, kann ohne jegliche Einschrankungweitergearbeitet werden. Auf diese Weise ist man sehr flexibel, da die Verbindung ohne weiteres auch voneinem anderen Rechner wiederaufgebaut werden kann. Um VNC zu starten, ist es demnach notwendig einenServer zu starten und den Viewer mit diesem zu verbinden. Dazu mussen naturlich zunachst die richtigenPakete installiert werden. Das Paket heißt vnc und kann mit YaST2 nachinstalliert werden. Die Windowsver-sionen sowohl des Servers als auch des Viewers finden Sie auf der ersten CD unter/dosutils/vnc. VNCsetzt voraus, dass zwischen Server und Viewer eine Netzwerkverbindunguber TCP/IP besteht. Damit Siemit VNC zurechtkommen, benotigen Sie in jedem Fall die IP-Adresse oder den Namen des Servers.

31.8.1. VNC-Server

Der VNC-Server stellt fur die X-Anwendungen ein X-Display zur Verfugung, so dass diese annehmen, siewurden tatsachlich auf einem X-Server laufen. Was auf der Serverseite fehlt, ist der physikalische Monitorzur Anzeige der Anwendungen. Der Server kann am Prompt durch den Befehl vncserver, hinter dem sichein Perl-Skript verbirgt, gestartet werden. Sitzen Sie an einem entfernten Rechner, loggen Sie sich zunachstauf dem Server beispielsweise telnet ein. Wenn Sie den VNC-Server zum ersten mal starten, werden Sienach einem Passwort gefragt, das Sie dann benotigen, wenn Sie sich mit dem Viewer verbinden. Alle voneinem Benutzer gestarteten Server verwenden das gleiche Passwort, das zu einem spateren Zeitpunkt mitvncpasswd geandert werden kann. Beim Starten des Servers wird Ihnen ein Hinweis angezeigt, was Siebeim Start des Viewers angeben mussen. Hierbei geht es um den Namen des Servers und die Nummer desDisplays. Ersteren konnen Sie naturlich nur verwenden, wenn die Namensauflosung funktioniert. Ansonsten

257

Page 258: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

31. VNC - Virtual Network Computing

mussen Sie mit der IP-Adresse arbeiten. Die erste freie Nummer wird die Nummer des neuen Displays. Siewerden einmal abgesehen von der Ausgabe des Skripts keine Veranderungen auf dem Server bemerken.

weitere Optionen!!!Ein Server kann mit dem Befehlvncserver kill :DISPLAYNUMMER beendet werden.

31.8.2. VNC Client

Wenn Sie den Viewer starten, brauchen Sie den Namen des Servers oder dessen IP-Adresse und die Nummerdes Displays.

Beschreibung / Viewer, Browser

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

258

Page 259: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

32. LDAP - Lightweight Directory Access Protocol

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

259

Page 260: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

32. LDAP - Lightweight Directory Access Protocol

260

Page 261: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

33. Apache

Die mit Abstand haufigste Verwendung eines Linux System durfte nach wie vor der Einsatz als Webserverdarstellen. Das Open Source Projekt Apache hat hier klar die Nase vorn.

Lernziele

In diesem Kapitel lernen Sie,

• die SuSE spezifischen Vorgaben und

• vieles mehr kennen.

SuSE Linux bringt jedoch auch die Version 2 des Apache Webservers mit.

33.1. Softwareinstallation

Im Wesentlichen befinden sich die notwendigen Dateien fur den Apache Webserver in den drei Paketenapache, apache-doc undapache-example-pages.Der eigentliche Server heißt/usr/sbin/httpd. Die Konfigurationsdateien sind im Verzeichnis/etc/httpd.Die Protokolldateien werden unter/var/log/httpd abgelegt. Die PID des Servers findet sich in der Datei/var/run/httpd.pid. Das Root Verzeichnis fur den Server liegt unter \verb/srv/www— unddas Start-/Killskript liegt unter/etc/init.d/apache.

33.2. Beispielumgebung

Einige Beispieldokumente befinden sich im DocumentRoot/srv/www. Soll ein eigener Webserver aufge-baut werden, so sollte in der Datei/etc/httpd/httpd.conf die Einstellung DocumentRoot auf ein anderesVerzeichnis gelenkt werden.

Ubungen

1.

2.

3.

Zusammenfassung

Das war der Apache Web Server.

261

Page 262: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

33. Apache

262

Page 263: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

34. FTP - File Transfer Protocol

Lernziele

In diesem Kapitel lernen Sie,

• die SuSE Beispielumgebung und

• vieles mehr kennen.

34.1. Softwareinstallation

34.2. Beispielumgebung

Um die Einrichtung eines FTP-Servers zu erleichtern, halt die SuSE Distribution im Paketftpdir eineBeispielumgebung fur das Verzeichnis/src/ftp bereit.

Ubungen

1.

2.

3.

Zusammenfassung

Das war der FTP-Server.

263

Page 264: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

34. FTP - File Transfer Protocol

264

Page 265: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

35. Printserver

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

265

Page 266: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

35. Printserver

266

Page 267: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

36. Internetdienste

kurze Einstimmung

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

267

Page 268: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

36. Internetdienste

268

Page 269: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Teil IV.

Linux fur Sicherheitsfanatiker- Einsatz in unsicherer Umgebung -

269

Page 270: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 271: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Teil V.

Linux fur Entwickler- Einsatz als Entwicklungsumgebung -

271

Page 272: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 273: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37. Programmierung

Linux eignet sich hervorragend als Programmierungsumgebung, dank verschiedener Aspekte:

• Viele Compiler sind als Open Source Projekte fur Linux erhaltlich

• Dadurch ist auch oftmals Dokumentation fur diese Projekte frei zuganglich

• Die X - Umgebung ist dank Ihrer Vielseitigkeit gut fur die Softwareentwicklung geeignet

• Die Netzwerkfahigkeiten von Linux erleichtern dem Programmierer vielmals die Arbeit

• Linux ist die naheliegende Basis fur Apache, und daher auch als Inter/Intranet Server die ideale Platt-form

Lernziele

In diesem Kapitel lernen Sie,

37.1. CVS - Concurrent Versions System

In diesem Kapitel geht es um die Verwendung der Code-Verwaltung CVS. Die Einrichtung eines CVS-Servers kann im BuchIII , Kapitel30auf Seite251nachgelesen werden.

37.1.1. Motivation

Sobald mehrere Menschen zusammenarbeiten gibt es zwangslaufig Probleme - Diese steigern sich, je mehrLeute an einem Projekt beteiligt sind. Das schlagt sich auch auf die produzierten Dokumente oder Quell-codes aus. Wenn ein Dokument fur alle anderen zur Bearbeitung freigegeben ist, wird es von allen anderengenommen, und im schlechtesten Fall tragt jederAnderungen und Kommentare ein - mit dem Resultat,dass der ursprungliche Autor große Muhe hat die einzelnenAnderungen mit einander abzugleichen undzusammenzufuhren. Die Herausgabe des Dokuments an jeweils nur einen Bearbeiter fallt allerdings ausZeitgrunden auch weg - Was nun?

An dieser Stelle setzt das CVS ein - es erlaubt eine zentrale Versionsverwaltung, bei der jeder jederzeitZugriff auf das Dokument erhalt, und in dem die Zusammenfuhrung unterschiedlicher Versionen erleichtert,wenn nicht sogar kommplett dem Verwalter abgenommen wird.

CVS eignet sich also sowohl fur ein Team von Programmierern als auch fur eine Gruppe von Autoren,die an einem Buch schreiben, und andere Projekte . . .

273

Page 274: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37. Programmierung

37.1.2. Installation

CVS ist Bestandteil aller großen Distributionen, und daher einfach zu installieren. Es ist schon schwierigereine Codebasis zur Arbeit mit CVS zu erstellen und allen Benutzern zur Verfugung zu stellen.

Um CVS sinnvoll zu installieren ist es von Vorteil, auf dem Zielrechner Root-Rechte zu besitzen, es gehtjedoch mit Einschrankungen in der Funktionalitat auch ohne.Uberspringen Sie einfach die entsprechendenStellen, zu denen Sie als normaler Benutzer nicht berechtigt sind.

Befolgen Sie die Anweisungen Schritt fur Schritt, um eine Codebasis fur CVS zu erstellen:

1. Erstellen Sie das zentrale Verzeichnis fur die Verwaltung der Quellcodes mit CVS mit:

mkdir /pfad/codebasis

2. Initialisieren Sie das Verzeichnis fur die Benutzung mit CVS als Codebasis:

cvs -d /pfad/codebasis init

3. Um die Zugriffsrechte auf das Verzeichnis geeignet verwalten zu konnen legen Sie bitte eine eigeneBenutzergruppe fur die CVS Benutzer an, und verandern Sie fur das Codebasis-Verzeichnis die Rechtefolgendermassen:

chgrp -R cvsgruppe /pfad/codebasischmod ug+rwx /pfad/codebasis/CVSROOT

4. Fugen Sie die Benutzer, die CVS verwenden sollen, in die CVS-Gruppe ein!

Die Codebasis ist jetzt fertig fur die Benutzung.

37.1.3. CVS uber das Netzwerk

Installation

CVS kannuber das Netzwerk verwendet werden. Dafur gibt es zwei Moglichkeiten.

• Um CVSuber ein Extraprogramm, dem PServer zu verwenden, mussen Sie unter SuSE Linux zuersteine Einstellung in der Datei/etc/inetd.conf vornehmen - hier ist namlich standardmassig derEintrag fur cvspserver auf Port 2401 deaktiviert. An dieser Stelle konnen Sie auch die Repositoriesspezifizieren, zu denen die User Zugriff haben sollen.

• Um CVS uber die SSH Tools auszufuhren mussen Sie auf dem Server-Rechner nichts anderes alseinen normalen Benutzeraccount mit entsprechenden Rechten besitzen. Auf dem Clientrechner solltenSie vor der Verwendung die UmgebungsvariableCVS_RSH aufssh setzen.

Verwendung

Sie rufen CVS auf wie gewohnt, nur dass Sie als CVSROOT folgende Angabe nehmen:

:[Remoteprotokoll]:[username]@[rechnername laut DNS]:[Verzeichnis des Repositories]

Dabei konnen Sie als Remoteprotokoll entwederpserver fur die Inetd Methode oderext fur die SSHMethode angeben. Um mitpserver aus entfernten Rechnern Dateien auschecken zu konnen mussen Siesich allerdings zuerst mitcvs login auf dem Rechner authentifizieren.

274

Page 275: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37.1. CVS - Concurrent Versions System

37.1.4. Verwendung

Zur Arbeit mit CVS bieten sich mehrere Werkzeuge oder auch Clients an. Auf der Kommandozeile heisstdas Toolcvs. CVS kann auf verschiedene Repositories zugreifen; deshalb mussen Sie entweder die Umge-bungsvariable CVSROOT fur jeden Benutzer des Repositories richtig setzen, oder das richtige Repositorybei jedem Aufruf von cvs per Parameter spezifizieren. Die Umgebungsvariable setzen Sie mit:

export CVSROOT=/pfad/codebasis

Um das nicht bei jeder neuen Login Shell neu eingeben zu mussen, konnen Sie diesen Befehl auch in IhreDatei.profile eintragen.

Wenn Sie das Repositoryuber Parameter angeben wollen, tun Sie das analog hierzu:

cvs -d /pfad/codebasis [CVS-Befehl]

Im Folgenden gehen wir davon aus, dass Sie den Weg der Umgebungsvariable gewahlt haben.

Projekt anlegen

Um ein neues Projekt (Sammlung von Quellcodes, alle zu einem Programm/Programmpaket gehorig) beieinem CVS - Repository anzumelden, muss man es “importieren”. Dazu dient der Befehlcvs import:

cd [zu importierendes Verzeichnis]cvs import -m "[Kommentar/Erlauterung]" [group]/[name] [user] [releasetag]

Dabei sind mehrere Sachen zu beachten:

Kommentar: kurze Erlauterung des Zustands des Quellcodes

group: Gruppenname fur Projektgruppen, kann man beliebig schachteln

name: Projektname

user: Von wem das Release eingespielt wurde

releasetag: “ offentlicher” Name fur die eingespielte Version

cvs liest nun das aktuelle Verzeichnis aus, und importiert enthaltene Dateien. Alle importierten Dateienwerden nochmals ausgegeben.

Sie haben nun ein neues Projekt im CVS-Repository angelegt und konnen getrost ihre Quellcodes loschen(Fur vorsichtige Menschen empfiehlt es sich, das Quellcodeverzeichnis einfach nur umzubenennen).

Projekt extrahieren/wiederherstellen

Um die Quellcodes eines Projekts aus dem Repository herauszuholen brauchen Sie den Befehlcvs checkoutoder auchcvs co:

cd [Verzeichnis, in das sie das Projekt holen wollen]cvs co [group]/[name]

CVS gibt dabei aus, welche Dateien aus dem Repository geholt wurden.

275

Page 276: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37. Programmierung

Unterschiede anzeigen lassen

Um Ihre geanderten Quellcodes mit den ursprunglichen/neuen Quellen aus dem Repository zu vergleichen,verwenden Siecvs diff:

cd [Verzeichnis mit Ihren Quellcodes]cvs diff

Nun vergleicht CVS die beiden Quellcodeversionen und schreibt Ihnen die Unterschiede aus: Dabei werdendie Dateinamen, Zeilennummern und Zeileninhalte angegeben, die sich verandert haben:

im Beispiel:

cvs diffdiff -r1.1.1.1 quelltext.cpp1c1,3c3,4< # quelltext.cpp editiert am 12.2.2002---> # quelltext.cpp editiert am 20.2.2002< return 0;}---> printf("Programmende");> return 0;}

Hier wurden jeweils Zeile 1 und 3 durch andere Zeilen ersetzt (c steht fur changed), und Zeile 4 neu ein-gefugt.

Anderungen ver offentlichen

Bevor Sie IhreAnderungen veroffentlichen, sollten Sie Ihre Quellen mit den aktuellen im CVS abgleichen,damit Sie nicht eventuell inzwischen erfolgteAnderungen Ihrer Kollegenuberschreiben. Daher ist zuersteincvs update notig. Um IhreAnderungen am Quellcode wieder zuruck in das Repository zu schreiben,verwenden Sie den Befehlcvs commit odercvs ci. Achtung, dabei werden Ihre neuen Quellcodes zu denallgemein aktuellen. Sie sollten das nur dann tun, wenn Sie wirklich vorher aktuellen Ausgangscode zurVerfugung hatten, sonstuberschreiben Sie evtl. vorher von anderen Benutzern eingepflegteAnderungen. . .

cd [Verzeichnis mit den Quellcodes]cvs updatecvs commit -m "Kommentar"

Softwareversion erstellen

Von Zeit zu Zeit gerat Software in einen Zustand, in dem sie stabil und weitgehend ohne Bugs lauft. Dies istder Zeitpunkt, aus den Quellcodes ein Paket anzufertigen, und dem ganzen eine Versionsnummer, oder einenNamen zuzuordnen. Diese Nummern sind dabei vollig unabhangig von den sogenannten Revisionsnummernder einzelnen Dateien, die eigentlich nur fur interne Zwecke gedacht sind.

Dazu verwenden Sie den Befehlcvs tag [Versionsname].

Sonstiges

CVS unterstutzt noch eine Menge differenzierterer Verwaltungsmoglichkeiten, wie die Etablierung und wie-der Zusammenfuhrung von Quellcodezweigen, oder die Anzeige der Versionshistory. Auch die Verwaltungvon Binardateien beherrscht CVS. Weiterfuhrende Informationen konnen Sie leicht der Man-Page voncvsentnehmen.

276

Page 277: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37.2. Makefiles

37.2. Makefiles

muss Michael noch machen Makefiles unter Linux sind in einer Art Skriptsprache verfasst. Sie dienen dazu,großere Mengen Quellcodes effizient zu verwalten. Dabei konnen Sie meistens sogar mehrere Arten derKompilierung und Prakompilierung spezifizieren. Kombiniert mit der Moglichkeit, Shellscriptkomponentenmit einzubauen stellt das Makefile ein machtiges Werkzeug im Umgang mit Quellcodes bei der taglichenArbeit dar. Im Folgenden soll ein kurzer Einblick in die Erstellung von Makefiles gegeben werden.

37.2.1. Erste Schritte

Makefiles werden aufgerufen durch den Befehlmake. Ohne Parameter versehen suchtmake im aktuellenVerzeichnis nach einer Datei mit NamenMakefile. In diese Datei also mussen wir unsere Anweisungenschreiben.

Beim Aufruf von solchen Skripts wird meistens auch noch ein Parameter verwendet, der das sogenannteZiel spezifiziert. Sie kennen Das wahrscheinlich vom Kernelkompilieren, wo es zum Beispiel die beidenAufrufe make config undmake bzImage gibt. Diese Aufrufe werden alle vom selben Makefile behandeltaber fuhren zu unterschiedlichen Ergebnissen.

37.2.2. Aufbau des Makefiles

Im ersten Teil des Makefiles hat der User Gelegenheit, Variablen zur spateren Verwendung in weiterenAnweisungen zu spezifizieren.

Der zweite Teil des Makefiles wird von Verschiedenen Zielen eingenommen, die hier spezifisch behandeltwerden konnen. Dabei werden auch die sogenannten Abhangigkeiten von anderen Zielen beachtet.

37.2.3. Kommentare

Kommentare in Makefiles werden durch# eingeleitet.

37.2.4. Variablen

Variablen werden konnen definiert werden duch

[Variablenname] = [Variableninhalt]

zum Beispiel:

CC = gcc

Im weiteren Teil des Makefiles konnen diese Variablen angesprochen werdenuber$(Variablenname), sowurde zum Beispiel$(CC) zugcc ausgewertet werden.

Sollen Variablen mit Wertenuber mehrere Zeilen hinweg belegt werden, so muss die Direktivedefineverwendet werden:

define erklaerungstextecho Programmname: MichaelsProgramm1echo Parameter: Nicht vorhandenecho Zweck: Welcher Zweck?endef

277

Page 278: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37. Programmierung

Variablen konnen auch dynamisch belegt werden. So kann zum Beispiel mit$(wildcard *.cpp) allecpp Dateien angesprochen werden. Auch die Ausgabe von Unixbefehlen kann so angesprochen werden:$(shell date) gibt zum Beispiel das aktuelle Datumuber den Befehldate aus.

37.2.5. Zielbereich

Hier steht eine Liste von Zielen. Ein Ziel ist so aufgebaut:

Zielname: AbhangigkeitenKommando1Kommando2Kommando3

In Makefiles wird genau auf die Einruckung Ihres Zielbereichs geachtet. Sie mussen darauf achten, dassZielnamen am Anfang der Zeile beginnen, und Kommandos durch zweimalige Einruckung mit der Tabula-tortaste gekennzeichnet sind.

Zielname: Der Zielname entspricht genau dem Parameter, der dem Makebefehlubergeben werden kann,oder auf den sich andere Zile mit ihren Abhangigkeiten beziehen konnen.

Abh angigkeiten: Hier konnen Dateien oder andere Ziele eingetragen werden. Die Abhangigkeiten sindals fur das aktuelle Ziel notig als “Vorbereitung”, oder zur Erstellung des neuen Ziels. Dateien alsAbhangigkeiten werden auf Existenz und Aktualitat uberpruft.

Kommando: Jedes Kommando das nun folgt wird als Shell-Kommando aufgefasst. Um dabei die Ausgabeder Befehle selbst zu unterdrucken empfiehlt sich die Voranstellung eines “Klammeraffen”, dem @.

37.2.6. Direktiven

Direktiven in einem Makefile dienen dem Umgang mit Variablen. Ein Vergleich kann somit gepruft werden,durch

ifeq "Variablenname" "Variablenname"# Anweisungenelse# Anweisungenendif

Auch kann gepruft werden, ob eine Variable definiert ist, durchifdef.Weiterhin kann auch der Inhalt anderer Dateienuber deninclude Befehl eingebunden werden.

37.2.7. Ausblick

Gute Beispiele fur Makefiles finden Sie beim Linuxkernel mitgeliefert im Verzeichnis/usr/src/linux.

37.3. Shellskripts

37.4. Java

Java hat sich mittlerweile zu einer der beliebtesten Programmiersprachenuberhaupt gemausert. Einer derGrunde dafur ist die plattformunabhangige Bereitstellung des Compilers, und die Portierbarkeit sowohl derQuellcodes als auch der Binaries.

278

Page 279: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37.4. Java

37.4.1. Installation

Bei jeder SuSE-Distribution befinden sich mehrere Versionen des JDK mit im Lieferumfang, welche jedochmeistens nicht mehr der aktuellen Ausgabe von Java entsprechen. Wie sie manuell ein JDK nachinstallierenkonnen, erfahren Sie hier am Beispiel des SUN-JDKs:

1. Rufen Sie YaST auf, um die KonfigurationsvariableCREATE_JAVALINK auf no zu setzen. Sie werdenden richtigen Link auf das Java-Verzeichnis von Hand richtig setzen. . .

2. Laden Sie die gewunschte Javaversion von der SUN-Homepage http://java.sun.com herunter und ent-packen Sie sie in ein temporares Verzeichnis

3. Kopieren Sie letzteres in das Verzeichnis/usr/lib unter dem Namenjdk?.?.?, wobei Sie fur dieFragezeichen die Java-Versionsnummern einsetzen

4. Loschen Sie den Softlinkjava, der auf einalteres Java-Verzeichnis linkt, falls ein solcher existiert,und erstellen Sie einen neuen, der auf Ihr Java verweist.

5. Es macht Sinn, bei jedem User zuuberprufen, ob das Verzeichnis/usr/lib/java/bin im Pfad mitaufgenommen ist.

37.4.2. Verwendung

Durch einen einfachen Aufruf vonjava konnen Sie Java-Programme ausfuhren, mitjavac konnen Sie.java Programme kompilieren

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

279

Page 280: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

37. Programmierung

280

Page 281: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

38. Entwicklungsumgebungen

erste Erlauterungen zum Thema

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel

• zweites Lernziel

• drittes Lernziel

38.1. Entwicklungsumgebungen

38.1.1. Emacs

Viele Entwickler, die unter Linux Programme entwickeln, schworen auf den Editor Emacs. Er zeichnetsich durch seine vielen Zusatzmodule aus, die Sie zu einem richtigen Allroundgenie machen. Die hoheKonfigurierbarkeit macht ihn zu einem sehr flexiblen Werkzeug – Er ist so beliebt, dass er mittlerweile auchunter Windows eine beachtliche Anhangerschar um sich sammelt.

Der Nachteil betrifft hauptsachlich Umsteiger von Windowssystemen – die Tastenkombinationen, mitdenen man Emacs bedient sind nicht die selben, die man von bekannten Windows-Pendants gewohnt ist.Umlernen ist in diesem Fall kaum zu umgehen. Zwar kann man die Tastenbelegungen abandern, jedochbringen Sie damit die gangigen Tastenkombinationen durcheinander.

Die nachfolgenden Bedienungshinweise beziehen sich großtenteils auf die in den gangigen Linuxdis-tributionen ausgeteilten Emacszusammenstellungen und unterscheiden sich zum Teil sehr stark von denVarianten fur SUN-Solaris und andere professionelle Unixe.

Emacs verwenden

Sie starten Emacs mit dem Befehlemacs auf der Kommandozeile. Optional konnen Sie auch noch die zuoffnende Datei als Parameterubergeben. Falls Sie nur die Kommandozeilenvariante von Emacs verwendenwollen, soubergeben Sie als weiteren Parameter die Option-nw.

Nunoffnet sich das Editiorfenster von Emacs, und sie konnen wie gewohnt mit den Pfeiltasten den Cursorbewegen, Buchstaben loschen und Text einfugen.

Der Bereich, den Sie momentan editieren wird Buffer genannt. Pro Sitzung mit einem Emacs konnenmeherere Dateien geoffnet werden, also mehrere Buffer erzeugt werden.

281

Page 282: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

38. Entwicklungsumgebungen

Tastenkombinationen

Bei der Benutzung von Emacs gewinnt man besonder stark durch die Benutzung der einzelnen Tastenkom-binationen – die gebrauchlichsten finden Sie in Tabelle38.1auf Seite 282. Bei manchen dieser Befehlewandert der Cursor in die unterste Zeile des Editorfensters – den Minibuffer. Dieser dient der Interaktionvon Benutzer und Programm. Hier konnen zum Beispiel Dateinamen der zuoffnenden Dateien eingege-ben werden. Dabei unterstutzt Emacs zum Beispiel auch die Vervollstandigung von Dateinamenuber dieTAB-Taste.

Kurzel Bedeutung

CTRL-x CTRL-f DateioffnenCTRL-x CTRL-s Datei speichernCTRL-x CTRL-w Datei speichern unterCTRL-x 2 Fenster teilenCTRL-x 1 Fenster vereinenCTRL-x 5 2 zweites EditorfensteroffnenCTRL-x 5 1 zweites Editorfenster schliessenCTRL-x k aktuellen Buffer schliessenCTRL-x CTRL-c Emacs beenden

CTRL-a An den Anfang der Zeile springenCTRL-e Ans Ende der Zeile springenCTRL-space Markierung anfangenCTRL-w Markierung ausschneidenALT -w Markierung kopierenCTRL-y Text aus der Zwischenablage einfugenCTRL-k Rest der Zeile loschenCTRL-d Zeichen loschenCTRL-x z Letzte Aktion widerholenCTRL- Undo

CTRL-s Suche / nachstes gefundenes VorkommenCTRL-r Suche ruckwarts / letztes gefundenes VorkommenALT-% Suchen&Ersetzen

CTRL-c CTRL-q Quellcode automatisch einruckenCTRL-c CTRL-m Quellcode mit make komplilierenCTRL-c r t Rechteckigen markierten Bereich mit Minibuffer

uberschreiben

ALT -/ Wort komplettierenALT -! Befehl auf Kommandozeile ausfuhren

ALT-X Einleitung zu einem Spezialbefehl

Tabelle 38.1.:Tastenkombinationen fur Emacs

In die Tiefen von Emacs...

Die oben genannten Tastenkombinationen erleuchten nur einen sehr kleinen Teil der Machtigkeit von Emacs.Sie konnen noch viele weitere Befehle auf den aktuellen Buffer anwenden. Dazu mussen Sie einen der in

282

Page 283: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

38.1. Entwicklungsumgebungen

Befehl Wirkung

bs-cycle-next Wechselt zum nachsten geoffneten Bufferbs-cycle-previous Wechselt zum vorigen geoffneten Bufferfont-lock-mode Schaltet Syntax-Highlighting an oder ausindent-region Ruckt den Quellcode nach Standards ein

sgml-mode Schaltet in einen Modus fur SGML-Dateien um (z.B.XML, HTML, etc.)

java-mode Schaltet in den Java-Modus umc++-mode Schaltet in den C++-Modus umhexl-mode Schaltet in den Hex-Edit-Modus umlatex-mode Schaltet in den LaTeX-Modus umpascal-mode Schaltet in den Pascal-Modus um

base64-decode-regionDecodiert den Bereich aus dem BASE64 Formatrevert-buffer Ladt den Puffer neu von der Festplatteauto-revert-mode Ladt den Puffer bei jederAnderung neu von der Festplatte

Tabelle 38.2.:einige nutzliche Befehle fur Emacs

Emacs vordefinierten Befehle aufrufen. Dies leiten Sie durch die Tastenkombination ALT-x ein. Danachwechselt der Cursor in den Minibuffer, wo Sie den Befehl eintippen konnen.

Wenn Sie nicht wissen, wie der Befehl heisst, den Sie aufrufen wollen, so tippen Sie analog zumOff-nen von Dateien einfach zweimalig die Tabulator-Taste, dann wird Ihnen angezeigt, welche Befehle Sie zurVerfugung haben. Auch die Namensvervollstandigung funktioniert wie Befehle analog zum Vervollstandi-gen beimOffnen von Dateien.

Zum Beispiel wollen Sie den Inhalt des aktuellen Buffers neu von der Festplatte laden lassen: Sie tippenALT-x revert-buffer. Eine Liste mit einer Auswahl an hilfreichen Befehlen finden sie in Tabelle38.2auf Seite283.

Emacs einrichten

Sie konnen Emacs auf sehr vielfaltige Weise anpassen. Zum Besipiel, indem Sie die Konfigurationsdatei˜/.emacs verandern. Sie konnen zum Beispiel eigene Tastenkombinationen vereinbaren. Sie vereinbarenzum Beispiel die Tastenkombination CTRL-tab mit “wechsle in den nachten Puffer”, indem Sie folgendeszur Konfiguration hinzufugen:

(global-set-key [C-tab] ’bs-cycle-next)

Die Datei.emacs ist in Lisp verfasst, mit ein bisschen Gewohnung finden Sie sich sicher schnell darinzurecht. Im Internet gibt es eine Menge an Zusatzmodulen fur den Emacs, meist Dateien mit der Endung.el, die Sie mit in Ihr Repertoir an Modulen aufnehmen, indem Sie das entsprechende Verzeichnis so laden:

(add-to-list ’load-path (expand-file-name "˜/emacs_themes"))

38.1.2. Java Netbeans

Ubungen

1.

283

Page 284: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

38. Entwicklungsumgebungen

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

284

Page 285: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

39. Sprache C

Große Teile von Linux sind in C geschrieben, deswegen an dieser Stelle eine kurze Einfuhrung.

Lernziele

In diesem Kapitel lernen Sie,

• die Programmiersprache C kennen,

• wie Sie eigene Programme schreiben, kompilieren und ausfuhren konnen,

• wie fremde Quelltexte schnell verstanden, angepasst und neu kompiliert werden konnen.

39.1. Grundelemente

io helloworld.c

#include <stdio.h>

void main(){printf("Hello World.\n");

}

string linux.c

#include <stdio.h>

void main(){char txt[] = "Linux\n";printf(txt);

}

io string basics.c

#include <stdio.h>

void main(){char txt[80];printf("Input: ");

285

Page 286: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

39. Sprache C

scanf("%s",txt);printf("Output: ");printf(txt);

}

39.1.1. Datentypen, Operatoren und Ausdrucke

Bevor eine Variable in C verwendet werden kann, muss diese deklariert werden. Bei der Deklaration einerVariablen erhalt diese einen Namen und einen Datentyp. In einem zweiten Schritt wird die Variable defi-niert, d.h ihr wird ein Stuck vom Arbeitsspeicher zugewiesen. Zu einem spateren Zeitpunkt erfolgt dann dieInitialisierung, also die Wertzuweisung.

io int basics.c

#include <stdio.h>

void main(){short int x;long int y;

printf("x=");scanf("%d",&x);printf("y=");scanf("%d",&y);printf("x= %d\ny= %d\n",x,y);

}

Ein Ausdruck ist nichts anderes als eine Aneinanderreihung von Zahlen, Strings, oder sonstigen Daten-elementen sowie Operatoren, die sich stets zu einem einzelnen Wert auflosen lasst.

Operatoren: Addition, Subtraktion, Multiplikation, Division, Bestimmung des Divisionsrests (modulo),Inkrement, Dekrement, ...

io int arithm.c

#include <stdio.h>

void main(){int a, b, c;

printf("a= ");scanf("%d",&a);printf("b= ");scanf("%d",&b);

c = a + b;printf("c= %d\n",c);

286

Page 287: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

39.1. Grundelemente

}

Die Kompilierung des nachfolgenden Beispiellistings muss mit gcc main.c -lm durchgefuhrt werden,damit math.h tatsachlich gelesen wird.

io double arithm.c

#include <stdio.h>#include <math.h>

void main(){double x = 0.;

printf("x= ");scanf("%lg",&x);

x = sqrt(x);

printf("sqrt(x)= %lg\n",x);}

io char.c

#include <stdio.h>

void main(){char letter = ’C’;char alphabet[] = "abcdefghijklmnopqrstuvwxyz";

alphabet[2] = letter;

printf(alphabet);}

io ascii.c

#include <stdio.h>

void main(){int i = 0;for(i=0;i<=255;i++) {printf("%d %c\n",i,i);

}}

287

Page 288: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

39. Sprache C

arith mwst.c

#include <stdio.h>#define MWST 16.0

void main(){float netto = 0.;float brutto = 0.;

printf("netto= ");scanf("%g",&netto);

brutto = netto * ( 1 + MWST / 100);

printf("brutto= %g",brutto);}

arith sqrt.c

#include <stdio.h>#include <math.h>

void main(){float x = 0.;

printf("x= ");scanf("%g",&x);

if (x >= 0) {x = sqrt(x);printf("sqrt(x)= %g\n",x);

}else {printf("x < 0\n");

}}

39.1.2. Kontrollstrukuren

Vergleichsoperatoren

Logische Operatoren

Auswertungsreihenfolge

Zunachst wird der NICHT-Operator, dann der UND- und zuletzt der ODER-Operator ausgewertet. Bei einerKombination ist demnach auf diese Reihenfolge zu achten und mit entsprechender Klammerung eine falscheVerarbeitung zu vermeiden.

288

Page 289: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

39.1. Grundelemente

Kurzschreibweisen

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

289

Page 290: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

39. Sprache C

290

Page 291: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

40. Sprache Smalltalk

erste Erlauterungen zum Thema

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

Eine ordentliche Entwicklungsumgebung steht unterwww.exept.dezum Download bereit.

Ubungen

1.

2.

3.

Zusammenfassung

Smalltalk ist eine vollstandig objektorientierte Programmiersprache, die viel Spaß an der Entwicklungsarbeitvermittelt. Neben kleinen Projekten fur den Hausgebrauch eignet sie sich vorallem auch fur große Projekteim professionellen Umfeld. Von Web-Applikation bis hinzu Client-Server Anwendungen ist alles drin.

291

Page 292: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

40. Sprache Smalltalk

292

Page 293: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

41. Skriptsprache PHP

41.1. Entwicklungsumgebungen

41.1.1. Maguma Enterprise Environment und Maguma Studio Desktop

Fur anspruchsvolle Entwickler eignet sich dieses Entwicklungswerkzeug der Firma Maguma. Die Produktewerden detailliert im Internet unterwww.maguma.comvorgestellt. Einen Einblick in die Grundfunktiona-lit aten bietet Maguma Studio Light, das kostenlos zum Download bereit steht. Allerdings lauft diese Soft-ware leider nur unter Windows, wahrend die Enterprise Edition serverseitig auf Linux, clientseitig aber auchwieder auf Windows setzt.

41.1.2. Datenubergabe in Formularen

Damit die einfache unkomplizierte Datenubergabe von einem Formular an das anschließend laufende PHPSkript klappt, muss in der Datei/etc/php.ini die Variable ”registerglobals” auf on gesetzt werden. An-schließend lasst man den Webserver durch ein ”rcapache reload” seine Konfiguration neu einlesen.

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

293

Page 294: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

41. Skriptsprache PHP

294

Page 295: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

42. LaTeX

Dieses Kapitel soll eine komplette Einfuhrung in LATEX geben. Das fur dieses Buch notwendige LATEXWissenfindet sich im AnhangE ab Seite319.

Lernziele

In diesem Kapitel lernen Sie,

• grundlegende LATEXBefehle anzuwenden,

• und die Umwandelung von LATEXQuellen in PDF vorzunehmen.

42.1. Kommentare

So wie Sie den Quellcode aller Programmiersprachen kommentieren, um die Lesbarkeit zu bewahren, sosollten Sie auch Kommentare in den LATEXCode einarbeiten. Diese werden durch fuhrende %-Zeichen ein-geleitet.

%Kommentar

42.2. Gliederung

Grundsatzlich braucht man sich unter LATEX uber die Formatierung des Textes keine Gedanken zu machen.Viel wichtiger ist die richtige Gliederung mit Hilfe der folgenden Befehle.

%neuer Band innerhalb einer Buchreihe.\part{Band I - Linux und LaTeX}

%neues Kapitel, Gliederungstiefe x.\chapter{LaTeX - Dokumentklassen}

%neuer Oberpunkt, Gliederungstiefe x.x.\section{Dokumentklasse scrbook}

%neuer Unterpunkt, Gliederungstiefe x.x.x.\subsection{Besondere Anweisungen}

%neuer Punkt, Gliederungstiefe x.x.x.x.\subsubsection{Part}

295

Page 296: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

42. LaTeX

42.3. Formatierung

Sie konnen auf einfache Art und Weise die Formatierung bestimmter Gliederungspunkteubernehmen. Da-zu erganzen Sie den entsprechenden LATEXBefehl durch einen *. Der nachfolgende Text gehort nicht zurGliederung und tauch auch nicht im Inhaltsverzeichnis auf.

\subsection*{Text}

Kurze Satze oder einzelne Worter konnen wie an der Konsole formatiert werden, indem man Sie wie folgtbehandelt.

\verb|wort|

Diese Anweisung benutzt man einfach im fortlaufenden Text. Das Ergebnis dieserFormatierung kannsich sehen lassen.

42.4. Spezielle Abschnitte

42.4.1. Stichpunktlisten

Stichpunktartige Aufzahlungen konnen in einer gemeinsamen Liste wie folgt formatiert werden.

\begin{itemize}\item Stichpunkte und\item Gedankengange\end{itemize}

42.4.2. Quellcode

Wenn Sie langere Texte, z.B. Quellcode oder Ausgaben von Programmen, genauso abbilden wollen, wie Siein der Konsole erscheinen, dann benutzen Sie den Bereich verbatim.

mkdir /pfad/codebasis

42.5. Pakete

42.5.1. Hyperref

Dieses Paket enthalt etliche Makros

\definecolor{webgreen}{rgb}{0,.5,0}\textcolor{webgreen}{Grun!}\colorbox{webgreen}{Grun!}\fcolor{blue}{yellow}{Box!}

296

Page 297: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

42.6. Querverweise

42.6. Querverweise

Damit Querverweiseuberhaupt moglich werden, mussen zuerst sogenannte Labels, deren Name dokument-weit eindeutig ist, gesetzt werden.

\label{name}

Anschließend kann man sich mit bestimmten Anweisungen auf diese Textstelle beziehen.

\hypertarget{name}{text}\ref{name}\pageref{name}

42.7. Stichwortverzeichnis

Ein Stichwortverzeichnis kann mit Eintragen folgendermaßen gefullt werden.

\index{Stichwort}

Ubungen

1.

2.

3.

Zusammenfassung

Zusammengefasste Inhalte des vorangegangenen Kapitels.

297

Page 298: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

42. LaTeX

298

Page 299: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Teil VI.

Anhang

299

Page 300: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter
Page 301: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

A. Glossar

Verschiedene Grundbegriffe, die im Zusammenhang mit Linux immer wieder auftauchen, sollen an dieserStelle geklart werden.

Kernel Genau genommen bezeichnet der Begriff Linux nur den Kernel. Dieser ist der innerste Teil einesBetriebssystems mit ganz elementaren Funktionen, wie Speicher- und Prozessverwaltung und Steue-rung der Hardware.

Bei den Versionsnummern des Kernels wird zwischen Anwender-Kernel, bei dem die zweite Zif-fer gerade ist, und Entwickler-Kernel, zweite Ziffer ist ungerade, unterschieden. Im Normalfall wirdman einen ausgereiften und erfahrungsgemaß stabilen Kernel, dem teils nicht stabil laufenden undunzureichend getesteten Kernel, vorziehen. Nur wenn man an der Kernelentwicklung arbeitet oderauf Funktionen angewiesen ist, die im letzten stabilen Kernel noch nicht umgesetzt wurden, kommtdie Verwendung einer ungeraden Versionsnummer in Frage. Da die Entwicklung unter Linux rasantverlauft, gibt es wochentlich mindestens eine neue Kernelversion. Die Verbesserungen betreffen aberzumeist nur die Anpassung des Systems an neue Hardware, die Korrektur von zugegebenermaßenselten auftretenden Fehlern oder die Optimierung einer Funktion.

Distributionen Das Angebot, an fur Linux verfugbarer Software, wird immer unuberschaubarer. Zudemwachsen die im Internet angebotenen Archive rasant, so dass sich das Herunterladen als zunehmendunpraktikabel gestaltet. Deshalb gibt es sogenannte Distributoren, die aus der großen Anzahl an furLinux verfugbaren Anwendungen auswahlen und dann ein Programmpaket schnuren, das auf CDsbzw. DVDs gebrannt und verkauft wird. Beim Preis handelt es sich jedoch nicht um Lizenzkostenfur die Software, sondern in erster Linie um eine Aufwandsentschadigung. Bedenken Sie, dass zueiner ordentlichen Distribution mehrere CDs und ein Handbuch gehoren. Außerdem muss der Vertrieborganisiert werden. Den Unterschied zwischen einzelnen Distributionen macht jedoch nicht nur dasgeschnurte Softwarepaket aus. Jede Distribution bringt auch eine eigene Konfigurationssoftware mitsich, die fur die Installation und Administration des Systems zustandig ist.

SuSE: Der deutsche Distributor und europaische Marktfuhrer SuSE zeichnet sich besonders durchseine riesige Softwarekollektion (sieben CDs), das dickste Handbuch und seine komfortable In-stallationsprozedur aus. Deutschsprachige Linuxein- und UmsteigerInnen finden sich mit SuSEgut zurecht.

Abbildung A.1.:SuSE Logo

RedHat: RedHat Inc. ist in den USA der Marktfuhrer im Bereich der Linux-Distributionen und istbekannt fur seine einfache Installation, sein ausfuhrliches Handbuch und seine einfache Bedie-nung. Die Zusammenstellung der Softwarepakete ist gelungen und ermoglicht den Einsatz alsServer, wie auch als Workstation.

301

Page 302: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

A. Glossar

Abbildung A.2.:RedHat Logo

Mandrake: Mandrake ist eine verspielte, franzosische Distribution, die in gleichem Maße benutzer-freundlich ist, wie SuSE und RedHat.

Abbildung A.3.:Mandrake Logo

Debian: Debian ist ein nichtkommerzielles Konkurrenzprodukt zu RedHat und gilt als das Projektfur Freaks.

Abbildung A.4.:Debian Logo

Slackware: Die Slackware gehort zu denaltesten Linux-Distributionen. Die Zusammenstellung derPakete ist mit Bedacht gemacht und umfaßt alles, was ein stabiles Linux braucht. Slackware istdie Wahl jener, die sich schon langer mit dem Betriebssystem beschaftigen und entsprechendErfahrungen mitbringen.

United Linux: United Linux ist eine Initiative der Linux Distributoren SuSE, Connectiva, Turbo Li-nux und SCO.

YaST - Yet another Setup Tool Das Konfigurationswerkzeug von SuSE heißt von jeher YaST. Mittlerweilehat YaST2 die Vorgangerversion YaST1 vollstandig abgelost.

GPL - General Public License Die meisten Softwarelizenzen sind daraufhin entworfen worden, Ihnen dieFreiheit zu nehmen, die Software weiterzugeben und zu verandern. Im Gegensatz dazu soll Ihnen dieGNU General Public License eben diese Freiheit garantieren. Sie soll sicherstellen, daß die Softwarefur alle Benutzer frei ist. Diese Lizenz gilt fur den Großteil der von der Free Software Foundationherausgegebenen Software und fur alle anderen Programme, deren Autoren ihr Werk dieser Lizenzunterstellt haben. Die Bezeichnung ”freie” Software bezieht sich auf Freiheit, nicht auf den Preis.Die Lizenz garantiert Ihnen die Freiheit, Kopien freier Software zu verbreiten (und etwas fur diesenService zu berechnen), die Moglichkeit, die Software im Quelltext zu erhalten oder den Quelltext aufWunsch zu bekommen. Sie durfen die Softwareandern oder Teile davon in neuen freien Program-men verwenden. Um diese Rechte zu schutzen, mussen wir Einschrankungen machen, die es jedemverbieten, die besagten Rechte zu verweigern. Daraus folgen bestimmte Verantwortlichkeiten fur denDistributor, wenn dieser Kopien der Software verbreitet oder verandert. Beispielsweise mussen denEmpfangern alle Rechte gewahrt werden, die der Distributor selbst hat. Er muss sicherstellen, daßauch die Anwender den Quelltext erhalten bzw. erhalten konnen. Zudem muss er ihnen diese Be-dingungen zeigen, damit sie ihre Rechte kennen. Um die Autoren zu schutzen, soll daruberhinaus

302

Page 303: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Abbildung A.5.:Slackware Logo

Abbildung A.6.:SCO Logo

sichergestellt werden, dass jeder erfahrt, daß fur diese freie Software keinerlei Garantie besteht. Wenndie Software von jemand anderem modifiziert und weitergegeben wird, mussen die Empfanger erfah-ren, daß sie nicht das Original erhalten haben, damit von anderen verursachte Probleme nicht den Rufdes ursprunglichen Autors schadigen. Schließlich und endlich ist jedes freie Programm permanentdurch Software-Patente bedroht. Es soll die Gefahr ausgeschlossen werden, dass Distributoren einesfreien Programms individuell Patente lizensieren - mit dem Ergebnis, daß das Programm proprietarwurde. Um dies zu verhindern, wird klargestellt, daß jedes Patent entweder fur freie Benutzung durchjedermann lizenziert werden muß oderuberhaupt nicht lizenziert werden darf.

An dieser Stelle ware eine saubereUbersetzung der GPL sinnvoll, die durch Erlauterungen erganztwerden konnte. Außerdem gibt es eine eigene Lizenz fur Bucher und Dokumentation, die eigentlichdie Grundlage fur das Linux Handbuch legen sollte.

303

Page 304: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

A. Glossar

Abbildung A.7.:Conectiva Logo

Abbildung A.8.:Turbo Linux Logo

Abbildung A.9.:United Linux Logo

304

Page 305: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B. Kommandoreferenz

Es ist wenig sinnvoll Kommandos mit samtlichen Optionen und Parametern zu pauken. Auch erfahreneSystemadministratoren verwenden bei alltaglichen Kommandos die eingebaute Hilfe oder gar die Manual-Pages. Oft wird man hier aber mit Informationen regelrecht erschlagen. Eine gute Kommandoreferenz mitsinnvollen Beispielen leistet deshalb wertvolle Dienste. Aufgrund der gesteigerten Zweckmaßigkeit sind dieeinzelnen Kommandos im folgenden nach Kategorien geordnet.

Lernziele

In diesem Kapitel lernen Sie Kommandos kennen, die

• der Dateiverwaltung dienen,

• zur Bearbeitung von Texten verwendet werden konnen,

• die Komprimierung und Archivierung von Dateien durchfuhren,

• zur Prozessverwaltung notwendig sind,

• fur die Verwaltung von Benutzern und Gruppen benutzt werden,

• bei der Administration des Dateisystems nutzlich sind,

• den Bildschirm und das Terminal betreffen,

• die Online-Hilfe bereitstellen

• vieles andere mehr konnen.

B.1. Kommandos zur Dateiverwaltung

cat dateien

Dieser Befehl zeigt den Inhalt der angegebenen Textdatei auf dem Bildschirm an. Bei langeren Texten solltenSie statt cat die Kommandos more oder less verwenden. Daruberhinaus wird cat haufig dazu verwendet,mehrere Dateien zu einer großeren Datei zusammenzusetzen. Dazu muss die Standardausgabe mit ¿ in eineDatei umgeleitet werden.

Beispiel:

cat datei*.txt > datei.txt

Dieser Befehl setzt die Dateien datei1.txt, datei2.txt usw. zu einer Gesamtdatei datei.txt zusammen.

305

Page 306: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B. Kommandoreferenz

cd [verzeichnis]

Dieses Kommando wechselt in das angegebene Verzeichnis. Ohne Angabe eines Verzeichnisnamens wech-selt cd in das Homeverzeichnis des Benutzers.

cp [-optionen] quelle ziel

Der Befehl cp dient zum Kopieren von Dateien. Mit der Option -R werden auch die Unterverzeichnisse unddie darin enthaltenen Dateien kopiert.

Beispiel:

cp -R /home/mucke /home/backup

Das Homeverzeichnis des Benutzers mucke wird nach/home/backup gesichert.

ln [optionen] quelle [ziel]

Das Kommando ln stellt feste oder symbolische Links zu Dateien und Verzeichnissen her. Die Option -derzeugt einen festen Link fur ein Verzeichnis. Sollten Sie symbolische Verlinkungen erstellen wollen, gebenSie die Option -s an.

Beispiel:

ln -s datei.txt info

Der Befehl erzeugt einen symbolischen Link info auf die bereits vorhandene Datei datei.txt.

ls [-optionen] [pfad]

Dieser Befehl zeigt eine Liste aller Dateien und Verzeichnisse an und entspricht im Wesentlichen demKommando dir. Wenn ls ohne weitere Parameter oder Optionen verwendet wird, liefert das Kommando einemehrspaltige, nach Dateinamen sortierte Tabelle, in der alle Dateien, Links und Verzeichnisse im aktuellenVerzeichnis angezeigt werden. Die Option -a bewirkt, das auch versteckte Dateien und Verzeichnisse an-gezeigt werden. Mit -l werden zusatzlich zum Dateinamen weitere Informationen, wie die Dateigroße, dieZugriffsrechte usw., gelistet. Zur Anzeige jeder Datei wird eine eigene Zeile verwendet.

mkdir verzeichnis

Das Kommando erstellt ein neues Verzeichnis.

mv quelle ziel

Der Befehl verschiebt Dateien von der angegebenen Quelle zum gewunschten Ziel. Dabei konnen einzelneDateien auch umbenannt werden. Somit entspricht mv im Wesentlichen der Funktion von cp, wenn nachdem Kopiervorgang die Quelldateien geloscht werden.

rm [optionen] dateien

Das Kommando loscht die angegebenen Dateien. Verzeichnisse werden nur mit der Option -r geloscht.Beispiel:

rm -r /home/mucke/archiv/*

Dieser Befehl loscht alle Dateien und Unterverzeichnisse im angegebenen Verzeichnis.

306

Page 307: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B.1. Kommandos zur Dateiverwaltung

rmdir [optionen] verzeichnis

Dieser Befehl loscht das angegebene Verzeichnis, wobei rmdir nur ausgefuhrt werden kann, wenn das Ver-zeichnis leer ist.

B.1.1. Befehle zur Dateisuche

find [pfadangabe] [suchoptionen]

Dieses Kommando hilft bei der Suche nach Dateien, die irgendwo im Verzeichnisbaum liegen. Dabei konnenverschiedene Suchkriterien bei der Suche berucksichtigt werden. Es besteht sogar die Moglichkeit, auf alleDateien, die diese Bedingung erfullen, mit einem weiteren Programm wie grep zusatzliche Selektionskrite-rien anzuwenden. Somit kann man Dateien mit einer bestimmten Dateiendung ausfindig machen, die zudemeinen gesuchten Textstring enthalten.

Beispiele:

find

liefert eine Liste aller Dateien im aktuellen Verzeichnis und in allen Unterverzeichnissen.

find -name ?.e*?

findet alle Dateien im aktuellen Verzeichnis und dessen Unterverzeichnissen, die mit .e beginnen.

find /home -group users

findet alle Dateien in den Unterverzeichnissen von /home, die der Gruppe users angehoren.

locate muster

Fur die schnelle Suche nach Dateien ist der Befehl locate gedacht. Er durchsucht die Datenbank locatedbnach Dateien, in denen das angegebene Muster im vollstandigen Dateinamen vorkommt. Mit updatedb musszuvor jedoch die Datenbank, die in/var/lib abgelegt wird, erstellt werden.

Beispiel:

locate ?*s?mb*?

Dieser Befehl findet alle Dateien in deren Dateinamen das Wort samba vorkommt.

whereis datei

Das Kommando durchsuchtubliche Pfade nach dem angegebenen Dateinamen. Es ist in diesem Sinne zwarweniger grundlich als find, dafur aber um einiges schneller.

which kommando

Dieser Befehl durchsucht alle in der Variable PATH angegebenen Pfade nach dem angegebenen Kommando.Als Antwort wird der vollstandige Name des Kommandos zuruckgeliefert, das ausgefuhrt worden ware,wenn man es ohne Pfadinformationen aufgerufen hatte. Dies ist dann sinnvoll, wenn von einem Programmmehrere Versionen in unterschiedlichen Verzeichnissen existieren.

307

Page 308: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B. Kommandoreferenz

B.2. Bearbeitung von Texten

cat dateien

Vergleichen Sie die Angaben zu diesem Befehl im Abschnitt ”Kommandos zur Dateiverwaltung”.

grep [optionen] suchmuster datei

Dieses Kommando durchsucht die angegebene Textdatei nach einem Suchmuster. Je nach Einstellung derOptionen zeigt das Kommando anschließend die gefundenen Textpassagen an oder gibt einfach nur an, inwie vielen Zeilen das Suchmuster gefunden wurde. Dabei kann grep beispielsweise mit find kombiniertwerden, um alle Dateien, die bestimmten Bedingungen entsprechen, nach Texten zu durchsuchen.

Beispiel:

grep -i zeile ./datei*

Dieser Befehl durchsucht alle Dateien im aktuellen Verzeichnis, deren Namen mit datei beginnen, nach demInhalt zeile, wobei die Groß- und Kleinschreibung ignoriert wird.

grep -c Zeile datei

Dieses Kommando findet alle Dateien im aktuellen Verzeichnis, deren Name mit datei beginnt, sucht indiesen nach dem Textstring Zeile und zahlt wie oft dieser vorkommt.

less [optionen] datei

Dieses Kommando zeigt die angegebene Textdatei seitenweise an. Es wird haufig als Filter verwendet, umbeispielsweise sehr lange Inhaltsverzeichnisse seitenweise zu listen. Es werden wahrend der Anzeige sogarverschiedene Tastenkombinationen unterstutzt. Mit den Cursortasten bewegen Sie sich zeilenweise durchdie Datei, wahrend es mit der Leertaste seitenweise vorwarts geht. Mit b kommen Sie wiederum seitenweisenach oben. Zur Eingabe eines Suchtextes arbeiten Sie mit /suchtext und mit q verlassen Sie less wieder.

Beispiel:

less /etc/services

zeigt die Datei services an, in der die Dienstnamen den Portnummern zugeordnet werden.

ls -al — less

zeigt den Inhalt des aktuellen Verzeichnisses seitenweise an.

more datei

Auch dieser Befehl zeigt den Inhalt einer Textdatei an. Die Bedienung deckt sich mit less.

B.3. Komprimierung und Archivierung von Dateien

gzip [optionen] datei

Dieses Programm packt bzw. entpackt die angegebene Datei. Komprimierten Dateien wird automatisch dieKennung .gz angehangt. Leider eignet sich gzip nur zur Komprimierung einzelner Dateien, so dass erst mittar samtliche Verzeichnisse und Dateien zusammengefasst werden mussen. Bei Angabe der Option -d wird

308

Page 309: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B.4. Prozessverwaltung

die angegebene Datei entpackt, andernfalls gepackt. Wenn Sie die Option -r verwenden, werden auch alleUnterverzeichnisse gepackt bzw. entpackt.

Beispiel:

gzip *.tex

komprimiert alle *.tex Dateien des aktuellen Verzeichnisses. Das Ergebnis sind lauter *.tex.gz Dateien.

gunzip datei

Dieser Befehl dekomprimiert die angegebene Datei und entfernt dabei automatisch die Kennung .gz imDateinamen. Der Befehl ist ein Link auf gzip, wobei automatisch die Option -d aktiviert ist.

tar aktion [optionen] dateien

Dieses Kommando vereint mehrere Dateien oder ganze Verzeichnisse in einem sogenannten Archiv bzw.extrahiert aus diesem Archiv wieder ihre Bestandteile. Wenn Sie ein Archiv in einer Datei anlegen mochten,mussen Sie die Option -f datei angeben. Da tar je nach Angabe der Optionen die zu archivierenden Dateienmit gzip komprimiert, ist es in seiner Funktion mit einem Packer vergleichbar. Die typische Kennung furArchivdateien ist .tar. Ist das Archiv zudem komprimiert, lauten die Kennungen zumeist .tar.gz.

Beispiel:

tar -czf datei.tar.gz datei*

legt wegen der Option -c ein Archiv an, das alle Dateien des aktuellen Verzeichnisses, deren Name mit dateibeginnt, enthalt. Das aufgrund von -z mit gzip gepackte Archiv heißtdatei.tar.gz.

tar -xzf datei.tar.gz -C ./archiv

entpackt wegen -x das Archiv datei.tar.gz in das Verzeichnis./archiv.

B.4. Prozessverwaltung

bg [prozess]

Dieser Befehl setzt einen unterbrochenen Prozess im Hintergrund fort. Wenn keine Prozessnummer angege-ben wird, gilt bg fur den zuletzt mit Strg + Z unterbrochenen Prozess. Andernfalls muss der Prozess durchseinen Namen oder durch die bash-interne Jobnummer angegeben werden.

fg [prozess]

Dieses Kommando setzt einen Prozess im Vordergrund fort. Wenn kein Prozess angegeben wird, gilt fg furden zuletzt unterbrochenen bzw. zuletzt im Hintergrund gestarteten Prozess. Andernfalls muss der Prozessdurch seinen Namen oder durch die bash-interne Jobnummer angegeben werden.

halt [optionen]

Dieser Befehl beendet alle laufenden Prozesse. Linux fahrt in den Runlevel 0 und reagiert nicht mehr aufEingaben. Das System kann jetzt durchgestartet und ausgeschalten werden.

309

Page 310: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B. Kommandoreferenz

kill [-s signal] prozessid

An den durch die eindeutige ProzessID angegebenen Prozess versendet kill das jeweilige Signal. Mit kill -lkonnen Sie sich samtliche Signale und deren Nummer ausgeben lassen.

Beispiel:

kill -9 1435

beendet sofort den durch die ProzessID angegebenen Prozess. Dieser kann nicht einmal mehr Aufraumar-beiten vornehmen.

kill -15 1743

sendet dem Prozess das Signal temporare Dateien zu loschen und sich dann zu beenden.

killall [-signal] prozessname

Dieser Befehl funktioniert wie kill jedoch wird jetzt der Prozessname angegeben. Sollte kein Signal verein-bart werden, wird SIGTERM an den Prozessubergeben. Sind mehrere Prozesse mit gleichem Namen aktiv,werden alle beendet.

ps [optionen]

Dieses Kommando zeigt eine Liste aller laufenden Prozesse an. Das Kommando wird haufig im Zusam-menhang mit kill verwendet, weil es neben anderen Informationen auch die eindeutige ProzessID ausgibt.Die Option -a zeigt auch die Prozesse anderer Benutzer an. Mit -l werden zusatzliche Informationen, wieSpeicherbedarf und Prioritat, gelistet.Ahnlich ausfuhrlich ist die Ausgabe mit -u, die beispielsweise denBenutzernamen zu jedem Prozess angibt. Wollen Sie auch Prozesse sehen, denen kein Terminal zugeordnetist, so verwenden Sie die Option -x.

pstree [optionen] [pid]

Dieser Befehl gibt einen Baum mit allen Prozessen auf dem Bildschirm aus. Der Baum macht deutlich,welcher Prozess von welchem anderen Prozess gestartet wurde.

reboot [optionen]

Dieser Befehl beendet alle laufenden Prozesse und startet den Rechner anschließend neu. Wenn sich derRechner im Runlevel 1 bis 5 befindet, wird dazu shutdown ausgefuhrt.

shutdown [optionen] zeitpunkt [nachricht]

Dieses Kommando kann ausgefuhrt werden, um Linux zu beenden. Zuvor werden alle anderen Benutzerinformiert, dass das System in Kurze abgeschaltet wird. Wahrend dieser Zeit werden keine neuen Loginsmehr zugelassen. Anschließend werden alle Prozesse gewarnt, dass sie gleich gestoppt werden.

Beispiel:

shutdown -h -t 10 now

fahrt das System sofort herunter, lasst den Prozessen jedoch zehn Sekunden Zeit abschließende Arbeitenvorzunehmen. Der Rechner bleibt nach dem Herunterfahren des Betriebssystems stehen.

310

Page 311: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B.5. Verwaltung von Benutzern und Gruppen

shutdown -r -t 120 23:00 Achtung!!!

fahrt das System um 23 Uhr Systemzeit herunter, gibt den laufenden Prozessen jedoch zwei Minuten Zeitsich ordentlich zu beenden. Zudem wird eine Warnmeldung an alle Benutzer herausgegeben. Die Option -rbewirkt, dass das System nur durchgestartet wird.

top [q]

Dieses Programm zeigt alle funf Sekunden eine Liste mit allen laufenden Prozessen an, wobei diese nachder Rechenzeit geordnet werden. Wenn beim Aufruf die Option q mit angegeben wird, aktualisiert top dieListe standig und beansprucht die gesamte freie Rechenzeit. Taste q beendet das Programm.

B.5. Verwaltung von Benutzern und Gruppen

chsh [user]

Mit diesem Befehl kann die Default-Shell, die automatisch nach dem Einloggen aufgerufen wird, verandertwerden. Zur Auswahl stehen die in der Datei/etc/shells eingetragenen Shells. Das Kommando verandertdas entsprechende Feld in der Datei/etc/passwd und tragt dort die neue Shell ein.

groups

Dieser Befehl zeigt eine Liste aller Gruppen an, denen der aktuelle Benutzer angehort.

id

Informationenuber den aktuellen Benutzer.

passwd [username]

Ohne Parameter ermoglicht es dieses Kommando, das Passwort des aktuellen Benutzers zuandern. Da-zu mussen Sie zunachst das alte und dann zweimal das neue Passwort angeben. DieAnderungen werdenverschlusselt in die Datei /etc/shadow eingetragen.

B.6. Administration des Dateisystems

dd [optionen]

Mit diesem Kommando kann man Daten byteweise von einem Medium auf das andereubertragen. Auf dieseWeise lassen sich beispielsweise Image-Dateien auf eine Bootdisketteubertragen.

Beispiel:

dd if=/boot/vmlinuz of=/dev/fd0

kopiert den Kernel vmlinuz, der als inputfile angegeben ist, direkt auf das Device fd0, das fur das Disket-tenlaufwerk steht. Auf diese Weise lassen sich Backups ganzer Laufwerke erstellen, dadd die Daten binar(also sehr hardwarenah)ubertragt. Dies ermoglicht es dem Programm, auch ganze Partitionen mit beliebigenDateisystemen zu kopieren. Beispielshalber:

dd if=/dev/hda1 of=/dev/hdc1

311

Page 312: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B. Kommandoreferenz

Hier wurde die komplette 1. Partition auf der Primary/Master-Festplatte auf die erste Partition der derSecondary/Master-Festplatte geschrieben. Das ganze funktioniert auch mit Dateien als Zielen, was einenFestplattenbackup sehr vereinfacht. . . Bei ext2-Systemen konnen Dateien hochstens 2GB groß werden ...

Auch zur Bearbeitung der Bootsetoren oder des MBR eignet sichdd hervorragend:

dd if=/dev/hda of=˜/bootsektor bs=512 count=1

dd if=˜/partitionstabelle of=/dev/hdc bs=64 skip=446 count=1

Das erste Beispiel liest den MBR der Primary/Master-Festplatte in die Datei˜/bootsektor. Im zweitenBeispiel wird die Partitionstabelle der Secondary/Master-Festplatte aus der Datei˜/partitionstabelleneu geschrieben.

df

Es wird eine kurze Tabelle mit Informationenuber die derzeit gemounteten Dateisysteme ausgegeben. Mitdem zusatzlichen Parameter-h wird die Statistik statt mit Kilobyteangaben mit geeigneten Großeneinheitenangezeigt.

fdformat [-n] ger atedatei

Dieser Befehl fuhrt eine Low-Level-Formatierung einer Diskette durch. Auf diese kann anschließend mit ddein Bootkernel geschrieben werden. Die Option -n verhindert eine anschließendeUberprufung der Disketteauf Fehler.

Beispiel:

fdformat /dev/fd0 > /dev/null &

fuhrt die Formatierung einer Diskette in Laufwerk A im Hintergrund durch und schreibt die Ausgabe desKommandos ins Nirvana.

fdisk [optionen] [device]

Dieses Programm dient der Partitionierung von Festplatten.

fsck [optionen] [device]

Dieses Kommandouberpruft die Konsistenz des Dateisystems und fuhrt gegebenenfalls Reparaturen durch.

mkfifo datei

Dieser Befehl richtet eine FIFO-Datei ein, die prinzipiell wie Pipes funktionieren und den Datenaustauschzwischen zwei Programmen ermoglichen.

Beispiel:

mkfifo fifols -l > fifo &more < fifo

richtet zunachst eine Datei namens fifo ein. Anschließend wird die Ausgabe von ls hierrein geschrieben,damit sie von more wiederum ausgelesen werden kann.

312

Page 313: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B.7. Bildschirm und Terminal

mount [optionen] device mountpoint

Dieses Kommando bindet das Dateisystem eines Datentragers in das Linux-Dateisystem ein. Geben Sie kei-ne Parameter an, versucht mount die fehlenden Angaben aus der Datei /etc/fstab zu erschließen. Andernfallsmussten Sie das Dateisystem, den Zugriffstyp, die Geratedatei und den Mountpoint bestimmen.

umount

B.7. Bildschirm und Terminal

Reset

Clear

loscht den Inhalt der Textkonsole

B.8. Online-Hilfe

Apropos

Info

Man

whatis

Kurze Beschreibung des angegebenen Programms.

B.9. Sonstiges

Alias

Date

gibt die Systemzeit aus

Expr

free

Das Kommando free zeigt die Ausnutzung des Arbeits- und Auslagerungsspeichers an. Allerdings ist dessenAusgabe irrefuhrend, da der Kernel stets unbenutzten Arbeitsspeicher als Cache verwendet und so kaumfreier Speicher zugelassen wird. Erst in der zweiten Zeile sind die Angaben von Cachebereichen bereinigt.

linux:˜ # freetotal used free shared buffers cached

Mem: 126548 123564 2984 0 12424 53160-/+ buffers/cache: 57980 68568Swap: 530136 21536 508600linux:˜ #

313

Page 314: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

B. Kommandoreferenz

hostname

gibt den Rechnernamen zuruck

logname

Gibt den Loginnamen zuruck.

logout

Beendet den aktuellen Login.

lpr

Printenv Gibt verschiedene Umgebungsvariablen zuruck.

B.9.1. pwd

Zeigt das aktuelle Verzeichnis

set

Zeigt alle gesetzten Umgebungsvariablen und deren Wert.

tty

Gibt den Devicenamen des Terminals zuruck.

alias / unalias

Vereinbart einen Aliasnamen fur ein Kommando.

Uname

who

Liste aller eingelogten Benutzer.

finger

Ausfuhrliche Liste aller Benutzer und Details zu einzelnen Benutzern

write ¡username¿ [ttyname]

Schickt Nachricht an den genannten Benutzer auf dem ggf. angegebenen Terminal. Kann aber in der Regelnur von root ordentlich verwendet werden, da dieser Schreibberechtigung auf samtliche Terminals besitzt.

314

Page 315: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

C. Netzwerkplan

C.1. Namenskonvention

Domainname: euSubdomain: de, fr, it, enHostnamen:de: berlin, dresden, leipzigfr: paris, lyonit: rom, florenz, venedig, florenzen: london, belfast

315

Page 316: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

C. Netzwerkplan

316

Page 317: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

D. Serverhardware

Die folgende Auflistung soll als Checkliste bei der Anschaffung eines auf die eigenen Bedurfnisse ange-passten Servers dienen. Da sich allerdings keine allgemeingultigen Festlegungen treffen lassen, sind dieangefuhrtenUberlegungen und Komponenten als Vorschlag zu verstehen.

Lernziele

In diesem Kapitel lernen Sie,

• welcheUberlegungen vor der Konzeption anzustellen sind,

• welche Bauteilgruppen und Komponenten unterschieden werden konnen,

• wie eine beispielhafte Konfiguration aussehen konnte.

D.1. Voruberlegungen

• Einsatzzweck des Servers (Dienste, Anzahl der Benutzer, Beachtung zukunftiger Entwicklungen)?

• Budgetrahmen fur das Projekt?

• Ausgewogenheit / Abstimmung der Komponenten bezuglich des Einsatzzwecks?

• Ausfallsicherheit / Redundanz?

• Einsatzumgebung (Aufstellung, Integration ins Netz)?

• Backup-Strategie / Backup-Server?

• Erweiterbarkeit / Einsatzdauer?

D.2. Bauteilgruppen und Komponenten

D.2.1. Gehause und Netzteil

• Platzangebot insbesondere fur Laufwerke (z.B. ATX-Tower, 19” Serverracks)

• Stromverbrauch (z.B. leistungsstarke Markennetzteile mit sauberen Ausgangsspannungen)

• Redundanz (z.B. mehrere Netzteile mit intelligenter Steuerelektronik)

• Erweiterbarkeit

• Raumangebot, wegen Hitzeentwicklung, weitere Lufter, Larmdammung

317

Page 318: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

D. Serverhardware

D.2.2. Mainboard Prozessor Kuhlung

• Single- / Multiprozessorsystem

• Preis- / Leistungsverhaltnis

• Sicherstellung der moderaten Hitzeentwicklung

• Leistungsfahigkeit des I/O Systems (Speicherzugriff, Plattencontroller, Taktung der Bussysteme) (z.B.SCSI / IDE, Chipsatze)

D.2.3. Arbeitsspeicher

• Menge

• Modul (Hersteller, Speichertakt, SPD-EEPROM, CAS-Latency)

D.2.4. Weitere Komponenten

• Netzwerkkarte mit Boot-ROM und Full-Duplex-Fahigkeit

• Verkabelung (z.B. CAT5 CAT7)

• ISDN (aktive Karte)

• unproblematische Grafikkarte

D.2.5. Plattenbus Controller Laufwerke

• Flexibilitat

• Geschwindigkeit (Umdrehungszahl, Cache, Zugriffszeit)

• Preis

• Hitzeentwicklung / Gerauschentwicklung

• Redundanz / Ausfallsicherheit (z.B. RAID)

• Backup-Strategie (Bander, Bandaufbewahrung, Sicherungsintervalle)

• andere Laufwerke (Diskettenlaufwerk, CD- DVD-ROM

D.2.6. Peripherie

• Tastatur, Maus (Unterstutzung durch das OS)

D.2.7. USV

• Leistungsstarke,Uberbruckungszeit

• Anbindung an den Server / Unterstutzung durch das Betriebssystem

318

Page 319: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E. Template fur LATEXDateien

Mit Hilfe des folgenden Kapitels soll eine zunehmende Standardisierung aller LATEXDateien des Linuxhand-buchs eingeleitet werden. Daruber hinaus erleichtern die angefuhrten Beispiele den Einstieg in LATEXBei derUberarbeitung einzelner Kapitel ist der jeweilige Autor angehalten, den beschriebenen Vorgaben zu folgen.

Um LATEXDateien, insbesondere das Linuxhandbuch, unter SuSE 8.1 in PDF bzw. PS zuubersetzen,mussen die Paketete_latex undmake nachinstalliert werden. Als brauchbarer Editor kann der KTexMakerverwendet werden, der im Paketkile enthalten ist.

E.1. Dateikopf

Im Dateikopf werden allgemeine Informationen zur jeweiligen LATEXDatei in Kommentarform abgelegt.Dazu gehoren Informationen zum Status des jeweiligen Kapitels, die verwendete Distribution und ein fort-laufend zu fuhrendes Log, in dem insbesondere großereAnderungen anzugeben sind.

%Entwurf von Tobias Mucke%Korrekturlesung von Michael Petter%Kontext: Distribution SuSE 8.1%Log:%Timestamp Name Anderungen und Begrundung%07.11.2002 Tobias Mucke Standardisierung der Stichworteintrage%04.11.2002 Tobias Mucke Erganzungen bezuglich neuer Latex-Tags

E.2. Kapiteluberschrift

Im Allgemeinen entspricht eine LATEXDatei einem Kapitel mit eigenerUberschrift. Damit das Kapitel vonanderen Textstellen aus referenziert werden kann, wird noch eine Textmarke gesetzt. Diese besteht aus dembenutzten LATEXBefehl und der Kapiteluberschrift (vgl. hierzu AbschnittE.9auf Seite322). Durch die kon-sequente Einhaltung dieser Vorgaben ist es ohne Weiteres moglich auf andere Kapitel zu verweisen.Da das im Anhang befindliche Stichwortverzeichnis das Inhaltsverzeichnis abbilden soll, wird gleich einentsprechender Indexeintrag an dieser Stelle gesetzt. Dieser kann, muss aber nicht, mit der Kapiteluber-schrift ubereinstimmen. Auch ist es moglich mehrere Stichworter vorzusehen.

\chapter{Kapiteluberschrift}\label{chapter:Kapiteluberschrift}\index{Kapitel}\index{Kapiteluberschrift}

319

Page 320: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E. Template fur LATEXDateien

E.3. Einleitung

Bevor in das Thema richtig eingestiegen wird, soll eine kurzweilige Einleitung zur Lekture des nachfolgen-den Kapitels anregen. Hier konnen aber auch erste Erlauterungen zum spater besprochenen Thema ange-bracht werden.

erste Erlauterungen zum Thema

E.4. Lernziele

Durch Nennung der Lernziele wird bereits zu Beginn ein grober Einblick in die Inhalte des Kapitels moglich.An dieser Stelle ist unbedingt die vereinbarte Form zu wahren. Insbesondere ist auf die Zeichensetzung zuachten!

\section*{Lernziele}In diesem Kapitel lernen Sie,\begin{itemize}\item erstes Lernziel,\item zweites Lernziel,\item drittes Lernziel.\end{itemize}

Das Ganze sieht dann wie folgt aus.

Lernziele

In diesem Kapitel lernen Sie,

• erstes Lernziel,

• zweites Lernziel,

• drittes Lernziel.

E.5. Gliederungspunkte

Erst jetzt folgt der Einstieg in das Thema. Bei der Formatierung mit LATEX liegt der Augenmerk besondersauf der Struktur, weniger auf der Formatierung des Textes. Auch an dieser Stelle gilt es, die konsequenteAufnahme der Gliederungspunkte in das Stichwortverzeichnis zu beachten. Wie das folgende Beispiel zeigt,konnen damit sogar Hierarchiestufen abgebildet werden. Zudem ist auf die zu verwendenden Textmarkenzu achten.

\section{Oberpunkt}\label{section:Oberpunkt}\index{Thema!Oberpunkt}\index{Oberpunkt}

Gleiches gilt auch fur weitere Unterpunkte.

320

Page 321: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E.6. Stichworteintrage

\subsection{Unterpunkt}\label{subsection:Unterpunkt}\index{Oberpunkt!Unterpunkt}\index{Unterpunkt}

Weiter untergeordnete Punkte, die allerdings aufgrund der unschonen Gliederungstiefe nur in begrundetenAusnahmefallen verwendet werden sollten, richten sich ebenfalls nach diesen Vorgaben.

\subsubsection{Punkt}\label{subsubsection:Punkt}\index{Unterpunkt!Punkt}\index{Punkt}

E.6. Stichworteintr age

Wie bereits angedeutet, soll das Stichwortverzeichnis ein alphabetisch geordnetes Abbild des Inhaltsver-zeichnisses sein. Damit aber noch nicht genug. Zusatzlich konnen nach eigenem Ermessen der AutorenStichworter eingefugt werden.

\index{Stichwort}\index{Kategorie!Stichwort}

Fur die angefuhrte Kategorie, die grundsatzlich vom Autor vergeben wird, gibt es bereits einige Standard-eintrage, die im passenden Einzelfall verwendet werden konnen.

• Dateisysteme

• Editoren

• Hardware

• Kernel

• Kommandos

• Konfigurationsdateien

• Konfigurationstools

• Netzwerk

• Software

So sollte beispielsweise bei jeder Konfigurationsdatei der folgende Eintrag erganzt werden.

\index{Konfigurationsdatei!/pfadangabe/datei.conf}

Dadurch durfte schließlich ein umfangreiches Stichwortverzeichnis entstehen, dass kaum noch Wunscheoffen lasst.

321

Page 322: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E. Template fur LATEXDateien

E.7. Tabellen

Nach ein paar Versuchen gibt es jetzt endlich eine brauchbare Tabelle, die sich ganz gut ins Linuxhandbucheinfugt. Wie das Ganze aussieht, sieht man in TabelleE.1auf Seite322.

\begin{table}[htbp]\begin{center}\begin{tabular*}{0.95\textwidth}{p{0.3\textwidth}p{0.6\textwidth}}\hline\textbf{erste Spalte} & \textbf{zweite Spalte} \\\hline1. & Zeile \\2. & Zeile \\3. & Zeile \\\hline\end{tabular*}\caption{Tabellenbeschriftung}\label{table:Tabellenbeschriftung}\end{center}\end{table}

erste Spalte zweite Spalte1. Zeile2. Zeile3. Zeile

Tabelle E.1.:Tabellenbeschriftung

E.8. Abbildungen

Auch bei den Abbildungen gibt es bisher kaumUberlegungen zur einfachen und ansehnlichen Verarbeitung.Allerdings gibt es bereits einige gute Beispiele in Dokumentationen, die in der Arbeit entstanden sind.

\begin{figure}[htbp]\centering\includegraphics[width=\textwidth]{filename.eps}\caption{Bildunterschrift}\label{figure:Bildunterschrift}\end{figure}

E.9. Referenzen und Textmarken

Die Verwendung von Textmarken wurde bisher an Gliederungspunkten festgemacht. Diese werden jedochauch fur Abbildungen und Tabellen vergeben. Allerdings mussen deutsche Sonderzeichen vermieden unddurch die gangigen Buchstabenkombinationen ersetzt werden. Demnach wird ”a” zu ”ae” usw.

322

Page 323: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E.10. Verlinkungen ins Internet

\label{table:Tabellenname}\label{figure:Abbildung}

Bei einer konsequenten Einfuhrung dieser Textmarken, kann an anderer Stelle im Dokument ohne Weiteresauf andere Kapitel, Oberpunkte, Unterpunkte, Tabellen und Abbildungen wie folgt verwiesen werden.

Kapitel \ref{chapter:Kapiteluberschrift} auf Seite \pageref{chapter:Kapiteluberschrift}Oberpunkt \ref{section:Oberpunkt} auf Seite \pageref{section:Oberpunkt}Tabelle \ref{table:Tabellenname} auf Seite \pageref{table:Tabellenname}Abbildung \ref{figure:Abbildung} auf Seite \pageref{figure:Abbildung}

Zur Anschaung soll der Verweis auf das KapitelE.9auf Seite322dienen.

E.10. Verlinkungen ins Internet

Damit URLs als Links umgesetzt werden

die aktuelle Version des Linuxhandbuchs kann unter\href{http://www.linuxdoc.org}{www.linuxdoc.org} bezogen werden.

Im fortlaufenden Text, sieht das dann so aus. Die aktuelle Version des Linuxhandbuchs kann unterwww.linuxdoc.orgbezogen werden.

E.11. Aufz ahlungen

Bei vielen Gelegenheiten bieten sich Aufzahlungen geradezu an.

\begin{itemize}\item erster Stichpunkt\item zweiter Stichpunkt\item dritter Stichpunkt\end{itemize}

Im Dokument stellt sich das dann so dar.

• erster Stichpunkt

• zweiter Stichpunkt

• dritter Stichpunkt

E.12. Beschreibungen

Nicht immer will man in Stichwortlisten Einzelheiten aneinander reihen. Gerade wenn die Erlauterungenmehrzeilig werden, bietet sich folgendes an.

\begin{description}\item[1.] erster Arbeitsschritt\item[2.] zweite Anweisung\item[3.] abschließende Ausfuhrungen\end{description}

323

Page 324: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E. Template fur LATEXDateien

Auch hier wieder ein Beispiel zur Veranschaulichung.

1. erster Arbeitsschritt

2. zweite Anweisung

3. abschließende Ausfuhrungen

E.13. Textformatierungen

Aber auch in LATEX geht es nicht nur um die Struktur eines Dokuments. Deshalb hier noch die bisher ver-wendeten Formatierungen fur Text.Anhand eines professionell verlegten Buches, sollten zu einem spateren Zeitpunkt fur die unterschiedlichenZwecke eingene Formatierungen eingefugt werden. Vorab reichen jedoch die hier beschriebenen aus.

E.13.1. Consolfont

Manchmal soll ein Text so wie in jeder normalen Konsole aussehen. Um das zu erreichen, gibt es zweiMoglichkeiten. Fur kurze Textstrings, beispielsweise ein einzelnes Kommando, das sich in den Gesamttexteinfugen soll, verwendet man folgendes.

\verb|kommando -option parameter|

Fur langere Konfigurationsdateien, Quelltexte und Skripte mussen die nachfolgenden Tags verwendet wer-den.\begin{verbatim}

## beispielhafte Konfigurationsdatei#LOG_DIR=/var/log...

\end{verbatim}

E.13.2. Kursivschrift

Die Kursivschrift kann folgendermaßen gesetzt werden.

normaler fortlaufender Text kann so \textit{kursiv} formatiert werden

Derkursive Textist auch ziemlich angenehm zu lesen.

E.13.3. Gliederungsformate

Die Formatierung der einzelnen Gliederungspunkte kann auch auf beliebigen Text angewendet werden,ohne dass dieser mit durchnummeriert und im Inhaltsverzeichnis aufgenommen wird. Zu den aufgefuhrtenTextformaten gehort auch der Zeilenabstand und die Absatzformatierungen.

\section*{großer fetter Text}\subsection*{normaler fetter Text}\subsubsection*{kleiner fetter Text}

Zur besseren Anschauung, das Ganze jetzt nochmal als Vorschau.

324

Page 325: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E.14. Fussnoten

großer, fetter Text

normaler, fetter Text

kleiner, fetter Text

E.14. Fussnoten

Fussnoten wurden zwar bisher selten verwendet, konnen aber auf sehr einfache Art und Weise eingefugtwerden.

Linux und die SuSE\footnote{SuSE steht fur Software- und Systemenwicklung} AG.

Auch dieses Beispiel soll nicht unverdeutlicht bleiben (vgl. unten). Linux und die SuSE1 AG.

E.15. Ubungen

Ubungen sollten immer am Ende eines Kapitels, kurz vor der Zusammenfassung, stehen.

\section*{Ubungen}\begin{description}\item[1.]\item[2.]\item[3.]\end{description}

E.16. Zusammenfassung

Am Ende jedes Kapitels folgt eine kurze Zusammenfassung.

\section*{Zusammenfassung}Zusammengefasste Inhalte des vorangegangenen Kapitels.

Wie das im echten Dokument aussieht, ist nicht mehr allzu schwer zu erraten.

Zusammenfassung

Aufgrund dieses Anhangs sollte es moglich sein, große Teile des Linuxhandbuchs zu standardisieren. Eineinheitliches Layout und die Qualitatsicherung des Inhalts- und Stichwortverzeichnisses stehen dabei imVordergrund. Zu guter Letzt kann die folgende Vorlage als Grundlage fur neue Kapitel dienen.

%Entwurf von%Korrekturlesung von%Kontext: Distribution SuSE 8.1%Log:%Timestamp Name Anderungen und Begrundung%

1SuSE steht fur Software- und Systemenwicklung

325

Page 326: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E. Template fur LATEXDateien

\chapter{Kapiteluberschrift}\label{chapter:Kapiteluberschrift}\index{Kapitel}\index{Kapiteluberschrift}

erste Erlauterungen zum Thema

\section*{Lernziele}In diesem Kapitel lernen Sie,\begin{itemize}\item erstes Lernziel,\item zweites Lernziel,\item drittes Lernziel.\end{itemize}

\section{Oberpunkt}\label{section:Oberpunkt}\index{Thema!Oberpunkt}\index{Oberpunkt}

\subsection{Unterpunkt}\label{subsection:Unterpunkt}\index{Oberpunkt!Unterpunkt}\index{Unterpunkt}

\begin{itemize}\item erster Stichpunkt\item zweiter Stichpunkt\item dritter Stichpunkt\end{itemize}

\begin{figure}[htbp]\centering\includegraphics[width=\textwidth]{filename.eps}\caption{Bildunterschrift}\label{figure:Bildunterschrift}\end{figure}

\subsection{Unterpunkt}\label{subsection:Unterpunkt}\index{Oberpunkt!Unterpunkt}\index{Unterpunkt}

\begin{description}\item[1.] erster Arbeitsschritt\item[2.] zweite Anweisung\item[3.] abschließende Ausfuhrungen

326

Page 327: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E.16. Zusammenfassung

\end{description}

\section{Oberpunkt}\label{section:Oberpunkt}\index{Thema!Oberpunkt}\index{Oberpunkt}

\begin{table}[htbp]\begin{center}\begin{tabular*}{0.95\textwidth}{p{0.3\textwidth}p{0.6\textwidth}}\hline\textbf{erste Spalte} & \textbf{zweite Spalte} \\\hline1. & Zeile \\2. & Zeile \\3. & Zeile \\\hline\end{tabular*}\caption{Tabellenbeschriftung}\label{table:Tabellenbeschriftung}\end{center}\end{table}

\section*{Ubungen}\begin{description}\item[1.]\item[2.]\item[3.]\end{description}

\section*{Zusammenfassung}Zusammengefasste Inhalte des vorangegangenen Kapitels.

327

Page 328: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

E. Template fur LATEXDateien

328

Page 329: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

F. Sourceforge

Es folgt eine kurze Einleitung in die Zusammenarbeit mit Sourceforge.

F.1. Umgebungsvariablen

Das Environment der verwendeten Shell muss entsprechend angepasst werden.

export CVS_RSH=ssh

F.2. Checkout

Zunachst mussen die jeweiligen Sourcen aus dem CVS ausgecheckt werden. Dazu braucht man in der Regeleinen Benutzer. Im folgenden Beispiel wird das Projekt linuxhandbuch vom Benutzer mucke in das aktuelleVerzeichnis heruntergeladen.

cvs -z3 -d:ext:[email protected]:/cvsroot/linuxhandbuch co linuxhandbuch

F.3. Ubernahme von Anderungen auf dem CVS-Server

Wahrend man an den Quellen auf dem lokalen System arbeitet, konnen ja am CVS-ServerAnderungenvorgenommen worden sein. Ein Abgleichen dieserAnderungen funktioniert wie folgt.

cvs -z3 update

F.4. Anderungen einstellen

Wenn manAnderungen am ausgecheckten Projekt vorgenommen hat, futtert man diese mit folgendem Be-fehl wieder in das CVS ein.

cvs -z3 commit

F.5. Hinzufugen von weiteren Dateien

Um neue Dateien einzustellen, benotigt man folgenden Befehl.

cvs add myfile.tex

F.6. Upload einer neuer Version

Um ein Dokument bei Sourceforge als Release zu verbreiten muss man es per anonymous ftp auf upload.sourceforge.netladen...

329

Page 330: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

F. Sourceforge

330

Page 331: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

G. Literaturverzeichnis

[1] Michael Kofler:Linux Installation, Konfiguration, Anwendung, 5. Auflage, Addison-Wesley, ISBN 3-8273-1658-8. Dieses Buch eignet sich fur Einsteiger, die sich einenUberblick verschaffen und dabeidistributionsunabhangig bleiben wollen. Dabei wird nicht bloß auf die Anwenderseite eingegangen,sondern auch ein Blick hinter die Kulissen gewahrt. Das gut aufbereitete Hintergrundwissen vermitteltganz nebenbei ein Gesamtverstandnis fur das System.

[2] Helmut Herold:Linux Unix Grundlagen, Kommandos und Konzepte, 4. Auflage, Addison-Wesley,ISBN 3-8273-1435-6. Dieses Buch liefert ein gutes Basiswissen fur Anfanger und Fortgeschritte-ne im Bereich Unix bzw. Linux und ist fur jene interessant, die ihr Wissenuber diese Betriebssystemevertiefen mochten. Dabei liegt der Schwerpunkt auf der Kommandozeile und nicht im X-Window-System.

[3] Michael Kofler:MySQL Einfuhrung, Programmierung, Referenz, Addison-Wesley, ISBN 3-8273-1762-2. Dieses Buch fuhrt in die freie Datenbank MySQL ein, wirft aber auch einen Blick auf die Kom-bination mit dem Webserver Apache und der Skriptsprache PHP. Das praxisorientierte Buch gehtausfuhrlich auf den Entwurf relationaler Datenbanksysteme, die Abfragesprache SQL, das Sicher-heitssystem von MySQL und Benutzeroberflachen zur Administration ein. Eine Einfuhrung in dieProgrammiersprache PHP rundet das Ganze ab.

[4] Olaf Kirch: Linux Network Administrator’s Guide, O’Reilly, ISBN 1-56592-087-2. Dieses englisch-sprachige Buch, das auch auf deutsch erhaltlich ist, gibt eine umfassende Einfuhrung in die Protokoll-familie TCP/IP und beschreibt die Konfiguration des Netzwerks. Thematisiert werden auch verschie-denste Dienste, wie zum Beispiel DNS, NIS und NFS.

[5] Helmut Herold, Jorg Arndt:C-Programmierung unter Linux, SuSE Press, Erscheinungsdatum: 1. Marz2002, 1. Auflage, ISBN: 3935922086, 1085 Seiten. Dieses Buch beschreibt die Programmierspra-che C anhand vieler anschaulicher Beispiele, die ausfuhrlich mit Programmcode vorgestellt werden.Die Autoren begnugen sich jedoch nicht allein mit der Vorstellung der einzelnen Sprachelemente,sondern vermitteln auch Einblicke in wichtige Grundlagen der Informatik. Daruber hinaus werdenzu den einzelnen C-Konstruktionen effektive Programmiertechniken aus der Praxis und typische An-wendungsgebiete der Programmiersprache C im Detail vorgestellt. Zu den wichtigsten Themen findensich in dem Buch zudem vielfaltige Tipps sowie Hinweise zur Umgehung von Stolpersteinen.

[6] Service Fachvlg., Wien:Computer Lexikon Fachworterbuch. Ausgabe 2002. Deutsch - Englisch / Eng-lisch - Deutsch, Microsoft Press, Erscheinungsdatum: 2001, ISBN: 3860638270, 938 Seiten. Die-ses Nachschlagewerk erklart die wichtigsten Begriffe, mit der Sie in der EDV immer wieder kon-froniertiert werden. Die einzelnen Beitrage sind sachlich-kurz und informativ. Dabei wird nicht nurauf Begrifflichkeiten der Microsoftwelt eingegangen. Zusatzlich zu den rund 9000 Stichwortern fin-den noch ein umfassendes Englisch-Deutsch-Fachworterbuch, eine Liste der Top-Level-Domains so-wie eine Auffuhrung der wichtigsten Zeichensatze und Umrechnungstabellen zwischen Dezimal-,Hexadezimal-, Oktal- und Binarsystemen Platz.

331

Page 332: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

G. Literaturverzeichnis

[7] Dirk Ammelburger:Go to PHP 4, Addison-Wesley, Erscheinungsdatum: 2002, ISBN: 3827317592, 591Seiten. Dieses Buch leistet in den ersten Kapiteln eine fundierte Einfuhrung in die Skriptsprache PHP,geht spater aber zu konkreten Anwendungsfallen, wie Sessionbehandlung, Datenbankzugriff usw.,uber und bereitet diese Themen sehr gut auf. Daruber hinaus kann es aufgrund der umfangreichenReferenz auch als Nachschlagewerk verwendet werden.

[8] Andrew S. Tanenbaum:Moderne Betriebssysteme, Addison-Wesley, Erscheinungsdatum: 2002, 2. Auf-lage, ISBN: 3827370191. Dieses Standardwerk zur Konzepten und Grundlagen von Betriebssystemenist in einem lebhaften und leicht verstandlichen Stil geschrieben. Der Schwerpunkt liegt auf traditio-nellen Single Processor-Systemen. Zahlreiche Abbildungen und viele, auch große Beispiele erleich-tern das Verstehen der vorgestellten Konzepte und Theorien. ZumUben des Stoffes gibt es 450 zumTeil neue oder aktualisierteUbungsaufgaben

[9] Linus Torvalds, David Diamond:Just for Fun. Wie ein Freak die Computerwelt revolutionierte, Han-ser Fachbuch, Erscheinungsdatum: Juli 2001, ISBN: 3446216847. In diesem Buch meldet sich derLinux-Erfinder Linus Torvalds selbst zu Wort und veroffentlich die Geschichte des freien Betriebs-systems Linux, die gleichzeitig auch seine eigene Biografie ist. Torvalds vermittelt neben Details undAnekdoten aus seinem Leben vor allem ein Lebensgefuhl. Exemplarisch zeigt er, was sich aus derBegeisterung fur eine Sache entwickeln kann. Ruhm, Ehre, Geld und Erfolg tragen dabei wenig zureigenen Befriedigung bei. Das ist ungewohnt, irgendwie gut und macht einfach nur Spaß. Wie Linux.Ein revolutionares Buch von einem Finnen ohne Revolutionsanspruch. Lesenswert und spektakular.

[10] SuSE Anwenderhandbuch und SuSE Administrationshandbuch

332

Page 333: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Abbildungsverzeichnis

11.1. Beispiel fur eine Partitionstabelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9911.2. Bootprozess grafisch veranschaulicht. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

17.1. Prozesszustande. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160

18.1. Bildunterschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171

A.1. SuSE Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301A.2. RedHat Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302A.3. Mandrake Logo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302A.4. Debian Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302A.5. Slackware Logo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303A.6. SCO Logo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303A.7. Conectiva Logo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304A.8. Turbo Linux Logo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304A.9. United Linux Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304

333

Page 334: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Abbildungsverzeichnis

334

Page 335: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Tabellenverzeichnis

4.1. Tastenkombinationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

5.1. Manual Pages - Bedienung mit der Tastatur. . . . . . . . . . . . . . . . . . . . . . . . . . 465.2. Info Pages - Bedienung mit der Tastatur. . . . . . . . . . . . . . . . . . . . . . . . . . . .46

7.1. Verschiedene Dateibetrachter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .577.2. vi - Bedienung mit der Tastatur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .587.3. Emacs - gebrauchliche Tastaturkommandos. . . . . . . . . . . . . . . . . . . . . . . . . . 597.4. Emacs - Ersatz fur die Pfeiltasten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .597.5. Hilfe unter Emacs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .607.6. mc - Fensteroptionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .617.7. mc - Andere Optionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .627.8. Bash Tastaturfunktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .657.9. Ausgabeumleitung mit der Bash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .667.10. Mehrere Kommandos gleichzeitig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .677.11. Jokerzeichen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .687.12. Bausteine von Regularen Ausdrucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . .697.13. Multiplikatorbausteine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

8.1. Standardverzeichnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72

9.1. Dateitypen wie in ls -l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769.2. Pfadangaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .769.3. Arten von Geratedateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .779.4. Rechte wie in ls -l angezeigt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .799.5. Benutzerabkurzungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809.6. Dateitypen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809.7. Symboldarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .809.8. Oktalzahldarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .819.9. Vergleich von Soft- und Hardlinks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .839.10. Dateisysteme - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .869.11. Umount - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .869.12. fstab - die Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87

11.1. Struktur eines Eintrags in der Partitionstabelle. . . . . . . . . . . . . . . . . . . . . . . . . 9811.2. lilo - Wo hin damit?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

16.1. Einstellungen in der /etc/passwd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14416.2. Felder in der /etc/shadow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14516.3. Parameter von useradd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146

335

Page 336: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Tabellenverzeichnis

16.4. /etc/group aufgeschlusselt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14716.5. groupadd Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14816.6. passwd Ausgabe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14816.7. passwd Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14916.8. lpr - Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15116.9. lpc - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15216.10.lpq - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15316.11.lprm - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15316.12.fsck Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15516.13.crontab - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156

17.1. Prozess-Adressraum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16417.2. Prozessstatus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16617.3. ps - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16617.4. at - Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168

18.1. Netzwerk - Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17318.2. /etc/host.conf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17518.3. Datenbanken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17618.4. Wo soll gesucht werden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17618.5. Startup - Skripts imUberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17718.6. Fehler im Netzwerk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178

20.1. Prozessinformationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19420.2. Kerneldaten in /proc - Teil 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19620.3. Kerneldaten in /proc - Teil 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19720.4. IDE Controller in /proc/ide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19820.5. IDE Laufwerke in /proc/ide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19820.6. Netzwerk in /proc/net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19920.7. Serielle Schittstellen in /proc/tty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199

27.1. Datei /etc/exports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232

28.1. Optionen im Makefile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241

29.1. Samba - Globale Einstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24629.2. Verzeichnisfreigaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24729.3. Druckerfreigaben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24829.4. PDC mit Samba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249

38.1. Tastenkombinationen fur Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28238.2. einige nutzliche Befehle fur Emacs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283

E.1. Tabellenbeschriftung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322

336

Page 337: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

802.11b,131

Administrationcron,156Logdateien,157

ALSA, 132alsaconf,132

Antialiasing,54Apache,261

Beispielumgebung,261Softwareinstallation,261

APM, 129

Bash/etc/bash.bashrc,64/etc/profile,64/.bashrc,64/.profile,64

bash,63Ausgabeumleitung,65Prozesse,66

Benutzerverwaltunggroupadd,147passwd,148useradd,146

Beowulf,203Betriebssysteme

Aufgaben des Betriebssystems,29Betriebssystem - Geschichte,28Betriebssysteme imUberblick,28Einsatzgebiete und Zukunft von Linux,29

Binary-Treiber,117BIOS,97Bootkonzept,97

init-Skripten,102LILO, 103Runlevel,101Systemstart,100

Bootprogramm,98Bootvorgang

BIOS,97

CMOS,98Grundlagen,97Init, 100Kernel,100LILO, 99MBR, 98

CAusdrucke,286Datentypen,286Grundelemente,285Operatoren,286

cardctl,127eject,127insert,127scheme,126status,127

Cluster,203Computing,203Grundbegriffe,203, 204High availability,204Load balancing,204

CMOS,98Codafs,201

Eigenschaften,201Einbindung in den Kernel,202

Compact Flash Cards,129Concurrent Version System,251configure,92Cron,156CVS,251

Einrichtung des Repositories,252Funktionstest,253Gruppenverwaltung,251Installation der Softwarepakete,251Konfiguration des Inetd,252Passwortverwaltung,252Portkonfiguration,252Vorbereitung,251

cvs,273checkout,275

337

Page 338: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

ci, 276co,275commit,276CVSROOT,275diff, 276im Netzwerk,274import,275init, 274update,276

Dateien anzeigen,57Dateimanager,60Dateisystem

fdisk, 154fsck,154fstab,83, 86Links, 82mount,83, 85mtab,88Typen,84unmount,86

DateisystemeCodafs,201Devfs,200Reiserfs,201

Dateitypen,75dd,311Devfs,200DHCP,223

Client,224DHCP-Client

Konfiguration,224Funktionsweise,223Server,225

Dokumentation,225Installation,225Integration System V,229Konfiguration,226Protokolldatei,228

DNS,221Dokumentation,45

FAQs,46Frequently Asked Questions,46HOWTOs,47Info-Pages,46KDE-Hilfe, 48Kernel,47LDP, 47

Linux Documentation Project,47Manual-Pages,45Quellen im Internet,48Software-Pakete,48

Domain Name System,221Drucker

drucken,150Installation,149installieren,149Verwaltung,149

Dynamic Host Configuration Protocol,223

Editorenemacs,58mc,60vi, 58

Einleitung,19Uberblick,20Anmerkungen,19Arbeitsgliederung,21Autoren,19Kontakt,21Lizenzmodell,21

emacs,281.el, 283Befehle,282Einrichten,283Tastenkombinationen,282

Enlightenment,52Erste Schritte,41

Konsole,44Linux beenden,41Linux starten,41Login, 41Maus,42Shutdown,42Systemeinstellungen,44Tastatur,42Uhrzeit,44X Window System,43

fdisk, 154FHS,71Filesysteme

Codafs,201Devfs,200Reiserfs,201

fstab,86

338

Page 339: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

FTP,263Beispielumgebung,263Softwareinstallation,263

ftp, 181

gdm,52Geratedateien,112Glossar,301Gnome,52gpart,99Grafikkarten,132

Nvidia, 132OpenGL,132XServer,132

grafischer Boot,104grub,99Grundwissen,27

Betriebssysteme,27Linux - Merkmale,29Personal Computer,27

Hardware,121Arbeitsspeicher,121Festplatten,121Hotplug,122Netzwerkkarten,130PCMCIA, 124

Hardware Erkennung,125hdparm,129Heartbeat,207HighLevel-Treiber,117Hotplug,122

Firewire,124Kernel,122Konfiguration,123Logdateien,123Netzwerk,124PCI,124PCMCIA, 124Shellskripte,122USB,123

hotplugPCMCIA, 127

ifconfigInformationen abrufen,130Netzwerkkarte einrichten,131

ifup, 131Init, 100

Installation,33Boot- und Installationsmedien,34Installationsschritte und Einstellmoglichkei-

ten,36Systemanforderungen,33Vorbereitungen,35

Installationsschritte und -einstellungenInstallationsvorgang,38Kernel und Module,36Systemboot,36YaST2,36

InstallationsvorgangBenutzer und Passworter,39weitere Hardwarekomponenten,39

Internetdienste,267iwconfig,131

Java,278Installation,279

KDE, 52Kernel,100

Aufgaben,111Grundlagen,111Initial Ramdisk,115Installation,113, 115Kompilierung,113, 114Konfiguration,113Konzeption,112modularisiert,112Module,116monolithisch,112Quellcode,113Systemtest,116Versionsnummern,112

Kernel und Kernelmodule,111Kernelmodule

Automatismen,117depmod,117Drittanbieter,118insmod,117lsmod,117modprobe,117rmmod,117Selbstverwaltung,117

Kommmandosulimit, 69

Konfigurationsdatei

339

Page 340: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

crontab,156Konfigurationsdateien, boot/grub/menu.lst99,emacs283

/etc/X11/XF86Config,132/etc/bash.bashrc,64/etc/login.defs,141/etc/nscd.conf,141/etc/pcmcia/network.opts,128/etc/profile,64/.bashrc,64/.profile,64/.xinitrc, 51/.xsession,52host.conf,174HOSTNAME,174hosts,174ifcfg, 131modules.conf,118networks,174nscd.conf,174nsswitch.conf,174passwd,144resolv.conf,174shadow,145sysconfig/network,131sysconfig/network/wireless,131

LaTeX,295, 319Ubungen,325Abbildungen,322Aufzahlungen,323Beschreibungen,323Dateikopf,319Einleitung,320Formatierung,296Fussnoten,325Gliederung,295Gliederungspunkte,320Hyperref,296Internet,323Kapiteluberschrift,319Kommentare,295Lernziele,320Pakete,296Quellcode,296Querverweise,297Referenzen,322Spezielle Abschnitte,296Stichpunktlisten,296

Stichworteintrage,321Stichwortverzeichnis,297Tabellen,322Template,319Textformatierungen,324

Consolfont,324Gliederungsformate,324Kursivschrift,324

Textmarken,322Verlinkungen,323Zusammenfassung,325

LILO, 99Andere Betriebssysteme,104deinstallieren,104in NT-Bootloader integrieren,104

Linux - MerkmaleDokumentation,30Entwicklungsumgebung,31OpenSource,30Plattformvielfalt,31Sicherheit,31

Linux starten und beenden,41Logdateien,157LowLevel-Treiber,116LSB, 71LVM

Abgrenzung von RAID Systemen,137Administration,138Dateisysteme,138Einsatzgebiete,136Funktion und Begriffe,135Grundlagen,135Konfiguration,137Logical Volume,138Physical Volumes,137Verwaltung und Beschrankungen,136Volume Group,138Vorgehensweise,137

LVM - Logical Volume Manager,135

make,92bzImage,115clean,115config,114dep,115menuconfig,114modules,115modulesinstall,115

340

Page 341: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

xconfig,114make install,92Makefiles,277manuell

Netzwerkkarte einrichten,131Routingtabelle einrichten,175

Mausfunktionen,43MBR, 98mtab,88

Network Time Protocol,217Netzwerk,171

Befehle,175cvs,274Dienste,181ftp, 181Grundbegriffe,172Grundkonfiguration,172Konfigurationsdateien,174nslookup,176ping,177traceroute,177VNC, 257

NFS,231/etc/exports,232Client,233

NIS, 237Clients,241Installation,238Master-Server,239Slave-Server,241

nohup,167NTP,217

offentliche Zeitserver,217Allgemeines,217Client,218Server,218

Konfiguration,218Zeitanpassung,219

Oberpunkt,195Unterpunkt,195

Open OfficeSchriften,55

OpenGL,132

Partitionstabelle,98PCMCIA, 124, 126

16Bit, 126

32Bit, 126CardBus,126Dokumentation,125External PCMCIA Manager,127Hardware,124hotplug,127Kernel PCMCIA Manager,127Kommandos,125Konfiguration,125network.opts,128PC Card,126Software,125

Personal ComputerSchichtenmodell des Computers,27

PHP,293Datenubergabe in Formularen,293Entwicklungsumgebungen,293Maguma Enterprise Environment,293Maguma Studio Desktop,293

Powermanagement,129Procfs,193

Prozessinformationen,194Profile,126Programmierung

cvs,273Makefile,277

Prozessebeenden,167Definition,159zeitgesteuert,168Zustande,160

regexp,68Regulare Ausdrucke,68

grep,68Syntax,68

regular expressions,68Reiserfs,201Remote login,179route

einrichten,175Groundlagen,175route.conf,175

Routingtabelle,175RPM,107RPMs,91

Schriftarten,53

341

Page 342: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

SCPM,126Shellprogrammierung,185

Funktionen,190Parser,189Zeichenkettenzerlegung,189

SkriptsprachenPHP,293

SMB, 243Benutzerverwaltung,248Client,250Drucker-Freigaben,248Globale Einstellungen,245Konfiguration,244PDC,248SWAT, 244Verzeichnis-Freigaben,245

Softwareentpacken,91

Softwareinstallation,91Kompilierte Pakete,91Quellcode Pakete,92RPMs,91TAR.GZs,91

Soundkarten,132Sourcecode

configure,92make,92make install,92

Splashscreen,104Sprache Smalltalk,291ssh,179

Gefahren,180Konfigurationsdateien,180Passphrases,180scp,179

Syntax,179slogin,179

Syntax,179ssh-keygen,180Syntax,179

Standards,71FHS,71LSB, 71TDS,71

Star OfficeSchriften,55

TAR.GZs,91

Tastenkombinationen,42bash,64

TDS,71Thema

Oberpunkt,195Truetype,53

Unterpunkt,195

Versionsverwaltung,273VNC, 257

Client,258Server,257

Webmin,143Windowmanager,49, 52Wireless LAN,131WLAN, 131

X, 49Architektur,50Enlightenment,52Gnome,52KDE, 52

X im Netzwerk,53X-Anwendungen,49X-Client, 49X-Server,49X-Window-System,49

Enlightenment,52Gnome,52KDE, 52VNC, 53X-Forwarding,53

xconsole,51xdm,51XF86Config,132XServer,132

YaST2Konfiguration des Systemstarts,38Partitionierung,37Software,38Sprachauswahl,36Systemanalyse,37Tastatur und Maus,37Zeitzone,38

Zugriffsrechte,79

342

Page 343: Linux - Handbuch und Projektdokumentationip-klaeden.selfhost.eu/webseiten/linuxbuch/linuxhandbuch-0-5-1.pdf · Linux - Handbuch und Projektdokumentation - Tobias Mucke Michael Petter

Index

chgrp,81chown,81

343