archlinux und mehr

164
Arch Linux Die Grundinstallation und mehr Farid Mésbahi

Upload: dkr79

Post on 02-Aug-2015

554 views

Category:

Documents


1 download

DESCRIPTION

Ein paar Informationen über ArchLinux.

TRANSCRIPT

Page 1: Archlinux Und Mehr

Arch Linux

Die Grundinstallation und mehr

Farid Mésbahi

Page 2: Archlinux Und Mehr

Arch Linux: Die Grundinstallation und mehrFarid Mésbahi

Version 1.0

Veröffentlicht 03.07.2011Copyright © 2008, 2009, 2010, 2011 Farid Mésbahi

Zusammenfassung

Eine Sammlung eigener Notizen rund um Arch Linux und anderen Themen.

Das Buch ist unter der Creative Commons-Lizenz BY-NC-ND[http://creativecommons.org/licenses/by-nc-nd/3.0/de/] gestellt, davon ausgenommen sind die Codebeispiele, dieunter der Creative Commons-Lizenz BY [http://creativecommons.org/licenses/by/3.0/de/] stehen.

Page 3: Archlinux Und Mehr
Page 4: Archlinux Und Mehr

WidmungFür meine Frau Andrée.

i

Page 5: Archlinux Und Mehr

InhaltsverzeichnisVorwort ............................................................................................................ viiI. Einleitung ....................................................................................................... 1

1. Der Internetzugang ................................................................................ 32. Für welche Rechnertypen ist Arch Linux geeignet? .................................. 43. Fingerarbeit ........................................................................................... 54. Aufbau .................................................................................................. 65. Dialog ................................................................................................... 76. Eltern haften für Ihre Kinder .................................................................... 8

II. Arch Linux ..................................................................................................... 97. Die Grundinstallation von Arch Linux ..................................................... 11

7.1. Das Installationsmedium ............................................................ 117.2. Der erste Bootvorgang ............................................................... 117.3. Das Setup ................................................................................. 13

7.3.1. Willkommen ................................................................... 137.3.2. Das Setup-Hauptmenü ................................................... 14

7.4. Ergänzungen zur Grundinstallation von Arch Linux ...................... 337.4.1. Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk) 337.4.2. Der Einsatz von grub2 .................................................... 36

8. Die Arch Linux-Administration ............................................................... 398.1. Die deutsche Lokalisierung mit UTF-8 Unterstützung ................... 398.2. Die Kernel-Module .................................................................... 418.3. Das Netzwerk ........................................................................... 42

8.3.1. Ein einfaches Netzwerkkonzept ....................................... 428.3.2. Die Netzwerkkonfiguration .............................................. 43

8.4. Die Dienste ............................................................................... 478.5. Die Benutzerverwaltung ............................................................. 488.6. Der Paketverwalter Pacman ....................................................... 49

8.6.1. Pacman konfigurieren ..................................................... 508.6.2. Mit Pacman arbeiten ....................................................... 53

8.7. Der Bootloader grub2 ................................................................ 558.7.1. Voraussetzungen für grub2 ............................................. 558.7.2. Die Installation von grub2 ................................................ 558.7.3. Die Konfiguration von grub2 ............................................ 56

8.8. Die Systemzeit .......................................................................... 648.8.1. Setzen der Uhrzeit mit dem Befehl date ........................... 648.8.2. Setzen der Uhrzeit mit dem Befehl ntpdate ....................... 65

8.9. Der Umgang mit Festplatten ...................................................... 658.9.1. Festplatten mit GUID Partitionstabellen (GPT) .................. 658.9.2. Der Einsatz von Dateisystemen ....................................... 698.9.3. Das Arbeiten mit UUIDs .................................................. 70

III. Anwendungsbereiche .................................................................................. 739. Der eigene Arbeitsplatzrechner ............................................................. 75

9.1. X.org ........................................................................................ 759.1.1. Die Installation von X.org ................................................ 759.1.2. Die Konfiguration der X.org-Umgebung ............................ 789.1.3. Stapellauf ...................................................................... 81

9.2. Die Desktop-Umgebung ............................................................. 829.2.1. Die Gnome-Installation ................................................... 829.2.2. Die KDE-Installation ....................................................... 839.2.3. Die Xfce-Installation ........................................................ 84

9.3. Starten der Desktop-Umgebungen ............................................. 859.3.1. startx ............................................................................. 869.3.2. Login-Manager ............................................................... 87

10. Ein einfacher Dateiserver .................................................................... 9110.1. Die Serverausstattung ............................................................. 91

10.1.1. Eine Festplatte im System ............................................. 91

ii

Page 6: Archlinux Und Mehr

10.1.2. Mehrere Festplatten im System ..................................... 9210.2. Die notwendigen und hilfreichen Softwarepakete ....................... 95

IV. Dienstprogramme ....................................................................................... 9711. Iptables ............................................................................................. 98

11.1. Die Installation von Iptables ..................................................... 9911.2. Firewall für einen Arbeitsplatzrechner ....................................... 9911.3. Firewall für einen Server .........................................................10111.4. Kurze Zusammenfassung .......................................................10311.5. Regeln speichern und prüfen ..................................................104

11.5.1. Dateiarbeit ..................................................................10411.5.2. Skript ausführen ..........................................................10411.5.3. Ketten prüfen ..............................................................10511.5.4. Finale Arbeit ................................................................105

11.6. Logbuch führen ......................................................................10611.6.1. Anpassen der Iptables-Konfiguration für Ulogd ..............106

11.7. Iptables als Dienst ..................................................................10812. Samba .............................................................................................109

12.1. Ein Beispiel - Die Agentur "Alpenglas" .....................................10912.2. Die Installation von Samba ......................................................10912.3. Die Konfiguration von Samba ..................................................11012.4. Die Vorbereitungen .................................................................11412.5. Die Samba-Benutzerverwaltung ..............................................11812.6. Der Samba-Stapellauf ............................................................11812.7. Der Zugriff auf die Samba-Freigaben .......................................119

12.7.1. Unter Apple Mac OS X .................................................11912.7.2. Unter Linux (Gnome) ...................................................12112.7.3. Unter Linux (Shell) .......................................................12312.7.4. Unter Windows ............................................................127

12.8. Der Nachschliff .......................................................................12813. SSH (Secure-Shell) ...........................................................................129

13.1. Die Installation von SSH .........................................................12913.2. Die Vorbereitungen auf dem Zielrechner (Server) .....................130

13.2.1. Die Konfiguration des SSH-Dienstes .............................13013.2.2. Den Systemzugriff erlauben .........................................13213.2.3. Vorbereiten einer Firewall ............................................13313.2.4. Der richtige Benutzer ...................................................133

13.3. Die Vorbereitungen auf dem Arbeitsplatzrechner (Client) ..........13313.3.1. Die Konfiguration des SSH-Clients ................................13313.3.2. Der Schlüsselbund ......................................................134

13.4. Zusammenfassung und Ergänzungen ......................................13513.4.1. Kopieren des öffentlichen Schlüssels per Datenträger(USB-Speicherstick) ................................................................13613.4.2. Kopieren des öffentlichen Schlüssels per Secure Copy (SCP)...............................................................................................13713.4.3. Die Eigentumsverhältnisse ...........................................139

13.5. Der Verbindungsaufbau ..........................................................13914. Ulogd ...............................................................................................141

14.1. Die Installation von Ulogd .......................................................14114.2. Ulogd und Iptables .................................................................14114.3. Ulogd als Dienst .....................................................................141

V. Programme und Werkzeuge ........................................................................14215. Der Editor Nano ................................................................................144

A. Kurzreferenz - Linux-Befehle .......................................................................145A.1. Befehle ...........................................................................................145

B. Kurzreferenz - Berechtigungen bei Verzeichnissen und Dateien ....................148B.1. Der oktale Weg ................................................................................148

B.1.1. Von Objekten, Kategorien und Attributen ................................148B.1.2. Weitere Steuer-Attribute ........................................................149B.1.3. Über Dateien ........................................................................150B.1.4. Die Werkzeuge .....................................................................150

Literaturverzeichnis .........................................................................................152

Arch Linux

iii

Page 7: Archlinux Und Mehr

Stichwortverzeichnis .......................................................................................153

Arch Linux

iv

Page 8: Archlinux Und Mehr

Abbildungsverzeichnis7.1. Bootvorgang ............................................................................................. 127.2. Erste Eingabeaufforderung ........................................................................ 127.3. Willkommen .............................................................................................. 147.4. Hauptmenü ............................................................................................... 147.5. Installationsquelle ...................................................................................... 157.6. Netz-Installation ........................................................................................ 167.7. TCP/IP-Adressen ...................................................................................... 177.8. Server ...................................................................................................... 187.9. Partitionsbeispiel ....................................................................................... 207.10. Richtige Festplatte auswählen .................................................................. 217.11. cfdisk ...................................................................................................... 237.12. Zugriffsmethode ...................................................................................... 247.13. Dateisystem und Einhängepunkt 1 ........................................................... 257.14. Dateisystem und Einhängepunkt 2 ........................................................... 257.15. Dateisystem und Einhängepunkt 3 ........................................................... 267.16. Dateisystem und Einhängepunkt 4 ........................................................... 267.17. Software-Pakete auswählen ..................................................................... 277.18. Auswahl der Softwarepakete .................................................................... 287.19. System-Konfiguration .............................................................................. 297.20. Bootloader Grub ...................................................................................... 307.21. Grub-Konfiguration .................................................................................. 317.22. Grub und der MBR .................................................................................. 327.23. Partitionsbeispiel für grub2 ....................................................................... 348.1. Netzwerkkonzept ....................................................................................... 428.2. Partitionsschema mit einer BIOS-Boot-Partition ........................................... 578.3. grub2 Boot-Menü mit Hintergrundbild ......................................................... 618.4. gdisk - Kommandoliste .............................................................................. 678.5. gdisk - Partitionen ..................................................................................... 698.6. UUIDs von Partitionen ............................................................................... 719.1. Window-Manager twm ............................................................................... 819.2. Gnome ..................................................................................................... 829.3. KDE ......................................................................................................... 839.4. Xfce ......................................................................................................... 8410.1. Serverpartitions-Beispiel 1 ....................................................................... 9110.2. Serverpartitions-Beispiel 2 ....................................................................... 9211.1. iptables ................................................................................................... 9811.2. Firewall-Skriptdatei .................................................................................10411.3. Iptables Ausgabe ...................................................................................10512.1. Samba-Symbiose ...................................................................................11412.2. List (/mnt) ..............................................................................................11512.3. List (/mnt/fbase) .....................................................................................11612.4. Mac OS X - Finder ..................................................................................11912.5. Mac OS X - Mit dem Server verbinden .....................................................12012.6. Gnome - Dialog 1 ...................................................................................12112.7. Gnome - Dialog 2 ...................................................................................12212.8. Shell - Mount-Vorbereitung .....................................................................12312.9. Shell - Mount-Ergebnis ...........................................................................12512.10. Gesetzte Attribute (Beispiel) ..................................................................12513.1. dmesg Ausgabe .....................................................................................136B.1. Berechtigung - Verzeichnis/Datei ..............................................................148B.2. Berechtigungsdarstellung .........................................................................150

v

Page 9: Archlinux Und Mehr

Tabellenverzeichnis7.1. Übersichtstabelle - Dateisysteme und Einhängepunkte ................................ 277.2. Übersichtstabelle - Partition, Einhängepunkte und Dateisysteme .................. 358.1. Gruppen-Übersicht .................................................................................... 488.2. Kleine Parameter-Übersicht zu Pacman ...................................................... 538.3. Grub2-Farbtabelle ..................................................................................... 598.4. Grub2-Grafikformate .................................................................................. 608.5. Dateisystem-Übersicht ............................................................................... 7010.1. fstab Aufbau ............................................................................................ 9412.1. Samba-Freigaben-Parameter ..................................................................11312.2. Kleine pdbedit-Übersicht .........................................................................11812.3. Mount - Parameter .................................................................................12413.1. SSH-Verzeichnis ....................................................................................135

vi

Page 10: Archlinux Und Mehr

VorwortWarum ich gerade Arch Linux benutze ist einfach zu sagen. Es war Zufall. Ich suchteeinfach eine Linux-Distribution, die für meine Belange eine Installation zur Verfügung stellt,wo ich von Vornherein Einfluß habe. Ein Linux von grundauf aufbauen zu können,allerdings aus Zeitgründen nicht gleich von ganz unten starten zu müssen. Keineballastbehafteten vorinstallierten Prozesse, keine vorinstallierte grafische Oberfläche.Einfach ein schnelles Basissystem, welches ich selbst erweitern kann. Und einfach solltees sein.

Der hier vorliegende Inhalt zu Arch Linux, also zur Grundinstallation und weiterenMöglichkeiten entsammte aus einer Schulungs-Dokumentation von mir, die nun quasi einTeil von diesem Buch geworden ist. Viele kleine ergänzende Notizen habe ich im Laufe derJahre hier einfach mal zusammen getragen, um den Einstieg zu erleichtern aber auch deneinen oder anderen Anwendungsfall zu beschreiben. Und damals hätte ich mir eine solcheDokumentation gewünscht.

Also viel Spaß ...

vii

Page 11: Archlinux Und Mehr

Teil I. Einleitung

Page 12: Archlinux Und Mehr

Inhaltsverzeichnis1. Der Internetzugang ........................................................................................ 32. Für welche Rechnertypen ist Arch Linux geeignet? .......................................... 43. Fingerarbeit ................................................................................................... 54. Aufbau .......................................................................................................... 65. Dialog ........................................................................................................... 76. Eltern haften für Ihre Kinder ............................................................................ 8

2

Page 13: Archlinux Und Mehr

Kapitel 1. Der InternetzugangIm Zeitalter der Kommunikation ist ein Internetzugang kaum noch weg zudenken. Auch für die beschriebenen Beispiele werden oftmals ganzeSoftwarepakete herunter geladen. In weiteren Kapiteln wird kurz derNetzwerkbetrieb beschrieben, bei dem sich mehrere Personen zu Hause oder ineinem kleinen Büro einen Internetzugang teilen. Daher kann ich eine schnelleAnbindung zum Internet (z.B. per DSL oder Kabel) nur empfehlen. Achten Siebitte auch darauf, dass Sie bei großen Paketen auch mal leicht einenVolumentarif sprengen könnten, denn für die eine oder andere Vorgehensweisewerden gleich mehrere Megabytes verschlungen. Planen Sie daher auch ein,wieviele Personen den Zugang zum Internet nutzen und wie groß das Volumensein könnte. Eine Flatrate ist dann oftmals sehr zu empfehlen.

3

Page 14: Archlinux Und Mehr

Kapitel 2. Für welcheRechnertypen ist Arch Linuxgeeignet?

Arch Linux ist für i686 CPUs optimiert, also etwa erst lauffähig ab Pentium Provon Intel und entsprechenden Alternativen. Das bedeutet wiederum einenGeschwindigkeitsvorteil gegenüber gängigen Linux-Distributionen, dessenSoftwarepakete auch für ältere CPU-Generationen kompiliert wurden. Aktuellwerden also Installations-CDs für i686 und x86 mit 64 Bit Unterstützung zurVerfügung gestellt.

4

Page 15: Archlinux Und Mehr

Kapitel 3. FingerarbeitFür die Installation gibt es eine Installationsroutine. Für weitere Konfigurationenam System selbst und für viele Softwarepakete gibt es keineKonfigurationsprogramme. Hier muss dann der klassische Weg genommenwerden: Mit einem Editor die entsprechende Konfigurationsdatei zu öffnen, umbestimmte Parameter zu setzen. Man-Pages, die zu Programmen gehörendeHilfe in Textform, geben das notwendige Wissen weiter. Dies soll keineAbschreckung sein, sondern eine Ermutigung. Denn ich selbst habe auf diesenWeg viel gelernt. Also nur Mut.

5

Page 16: Archlinux Und Mehr

Kapitel 4. AufbauDer Aufbau dieses Buches ist Modular gestaltet, um schnell das Eine oderAndere zum Nachschlagen wieder zu finden. Das Auflisten oder Zitieren allerParameter zu bestimmten Programmen ist nicht mein Ziel. Eher verfolge icheinen praktischen Bezug, um die notwendigen EInstellungen besser zuverstehen. Ich habe mal irgendo wo den Satz gehört: "Im Wort Begreifen stecktdas Greifen", also einen praktischen Bezug zu etwas haben, um dasTheoretische zu verstehen.

Bedingt durch eine feste Seitenbreite dieses Buches in Papierform, sind macheKonfigurationszeilen mit einem Zeilenumbruch gekennzeichnet. Erscheint alsoam Ende einer Zeile ein "==>" so muss in der Praxis die Folge-Zeile einfachdahinter gesetzt werden.

Beispiel:

Aus: Hallo Welt, das ==>==>ist ein Beispiel.

Wird: Hallo Welt, das ist ein Beispiel.

6

Page 17: Archlinux Und Mehr

Kapitel 5. DialogAuch ich bin nicht vor Fehlern gefeit. Einige Lösungen können zu Diskussionenführen, warum gerade dieser oder jener Weg favorisiert wurde. Oder ich habeweitere Fragen bei Ihnen angestoßen. Tragen Sie mir einfach Ihr Anliegen perMail (mes/ät/schreibdichte/punkt/de) zu. Haben Sie bitte Verständnis, dass ichFragen außerhalb dieser Zusammenstellung nicht beantworten kann. Hier dientdas Internet als große Hilfestellung in Form von Foren (http://www.archlinux.deoder http://www.archlinux.org), Newsgroups und dergleichen.

7

Page 18: Archlinux Und Mehr

Kapitel 6. Eltern haften für IhreKinder

Wer hat nicht schon solch eine Warnung vor Baustellen gesehen? Ich möchtedieses Beispiel als Aufhänger dafür benutzen, dass sämtliche Projekte undBespiele zwar von mir getestet sind, allerdings zum Teil Einfluss auf dasSystem nehmen. Auf die Gefahren und Folgen weise ich hiermit ausdrücklichhin. Und daher gilt:

Warnung

Alles was Sie umsetzen, geschieht auf eigene Gefahr !

8

Page 19: Archlinux Und Mehr

Teil II. Arch Linux

Page 20: Archlinux Und Mehr

Inhaltsverzeichnis7. Die Grundinstallation von Arch Linux ............................................................. 11

7.1. Das Installationsmedium ............................................................ 117.2. Der erste Bootvorgang ............................................................... 117.3. Das Setup ................................................................................. 137.3.1. Willkommen ........................................................................... 137.3.2. Das Setup-Hauptmenü ........................................................... 147.4. Ergänzungen zur Grundinstallation von Arch Linux ...................... 337.4.1. Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk) ....... 337.4.2. Der Einsatz von grub2 ............................................................ 36

8. Die Arch Linux-Administration ....................................................................... 398.1. Die deutsche Lokalisierung mit UTF-8 Unterstützung ................... 398.2. Die Kernel-Module .................................................................... 418.3. Das Netzwerk ........................................................................... 428.3.1. Ein einfaches Netzwerkkonzept ............................................... 428.3.2. Die Netzwerkkonfiguration ...................................................... 438.4. Die Dienste ............................................................................... 478.5. Die Benutzerverwaltung ............................................................. 488.6. Der Paketverwalter Pacman ....................................................... 498.6.1. Pacman konfigurieren ............................................................. 508.6.2. Mit Pacman arbeiten ............................................................... 538.7. Der Bootloader grub2 ................................................................ 558.7.1. Voraussetzungen für grub2 ..................................................... 558.7.2. Die Installation von grub2 ........................................................ 558.7.3. Die Konfiguration von grub2 .................................................... 568.8. Die Systemzeit .......................................................................... 648.8.1. Setzen der Uhrzeit mit dem Befehl date ................................... 648.8.2. Setzen der Uhrzeit mit dem Befehl ntpdate ............................... 658.9. Der Umgang mit Festplatten ...................................................... 658.9.1. Festplatten mit GUID Partitionstabellen (GPT) .......................... 658.9.2. Der Einsatz von Dateisystemen ............................................... 698.9.3. Das Arbeiten mit UUIDs .......................................................... 70

10

Page 21: Archlinux Und Mehr

Kapitel 7. Die Grundinstallationvon Arch Linux

Das Ziel ist eine komplette Neuinstallation des Systems unter Berücksichtigungder physischen Trennung von Betriebssystem, Anwendungsprogrammen sowieden persönlichen Daten. Also der Idealfall ohne das parallele Vorhandenseineines anderen Betriebssystems.

7.1. Das InstallationsmediumAktuelle Installations-Medien können am schnellsten vonhttp://www.archlinux.de oder http://www.archlinux.org als ISO-Image kostenlosherunter geladen werden.

Dabei werden zwei Varianten für die Rechnertypen mit 32 und 64 Bitangeboten, wobei die 32 Bit Version auch auf einem Rechnertyp mit 64 Bitinstalliert werden kann:

• Die Netinstall-Installation ist das kleinste Medium von wenigen MegabytesGröße. Hierbei wird das Installationgerüst zur Verfügung gestellt. Alleweiteren Softwarepakete für ein Grundsystem werden wärend der Installationüber das Internet herunter geladen.

• Die Core-Installation beinhaltet alle Basis-Softwarepakete, die also währendder Installation nicht mehr herunter geladen werden müssen. Als ISO-Imageentsprechend größer. Eine Netinstall-Installation ist aber auch mit dieserVariante möglich.

Anmerkung

Alle ISO-Images können mit einem beliebigen Brennprogramm unterMac OS X, Linux oder Windows gebrannt werden. Zum Zeitpunkt dieserBeschreibung wurde die Version 2010.05 benutzt.

Zusätzlich wird die 32Bit- zusammen mit der 64 Bit-Version von Arch Linux,jeweils als Netinstall- und Core-Installation, als Dual-Medium angeboten. So hatman ein Installationsmedium für beide Rechnerarchitekturen greifbar, dasISO-Image ist aber dafür am größten.

Da hier die Installation mit Hilfe der Core-Installation (32 Bit) beschrieben wird,um auch ohne einer Internet-Verbindung Arch Linux installieren zu können,sollte mindestens dieses Installationsmedium fertig vor liegen.

7.2. Der erste BootvorgangDamit von CD gebootet werden kann, ist es notwendig, dass im BIOS desRechners die Bootreihenfolge stimmt. Oftmals ist das CD/DVD-Laufwerk alsLetztes in der Kette aufgelistet. Beim Versuch zu booten wird evtl. noch einAltsystem von der Festplatte gestartet, anstatt jetzt direkt von der neuen CD zubooten. Bei einer neuen oder leeren Festplatte wird vom BIOS sowieso jedeserdenkliche Boot-Medium abgeklappert. Dennoch sollte, um den erstengeschilderten Fall zu umgehen, das CD/DVD-Laufwerk an erster Stelle im BIOSgesetzt werden.

Nach erfolgreichem Bootvorgang sollte der folgende Startbildschirm erscheinen.

11

Page 22: Archlinux Und Mehr

Abbildung 7.1. Bootvorgang

An dieser Stelle stehen verschiedene Punkte für den Installationsstart, Tools (z.B. einSpeichertest) und weitere Möglichkeiten zur Verfügung. Interessant ist hier der Erste,wobei Im Normalfall allerdings eine Bestätigung mit der Enter-Taste ausreicht, damit derVorgang mit "Boot Arch Linux" fortgesetzt wird. Am Ende der Prozedur mitHardwareerkennung, Laden der entsprechenden Treibermodule u.s.w., sollte eineAufforderung erscheinen, welcher Benutzer angemeldet werden soll. Für eine Installationwird hier root eingegeben und mit Enter bestätigt. Der ersten richtigen Eingabe einesBefehles steht nun nichts mehr im Weg.

Abbildung 7.2. Erste Eingabeaufforderung

Die Grundinstallation von Arch Linux

12

Page 23: Archlinux Und Mehr

7.3. Das SetupDamit die nächsten Eingaben etwas einfacher werden, sollte man vom amerikanischenzum deutschen Tastaturlayout wechseln. Dazu einfach das Programm Keyboardmanager,kurz km in der Eingabeaufforderung eingeben und mit Enter bestätigen:

km

Der darauf folgende Dialog bezieht sich darauf, das entsprechende Tastaturlayout zuwählen. Für ein deutsches Tastaturlayout wird i386/qwertz/de-latin1.map.gz mit denPfeiltasten gewählt und mit OK bestätigt. Der nächste Dialog zur Auswahl einesKonsolenfonts kann mittels Skip übersprungen werden. Nun sollten sämtlicheTastatureingaben, besonders das "z" und "y" richtig dargestellt werden.

Das eigentliche Setup-Programm zum Installieren von Arch Linux wird über die Eingabevon:

/arch/setup

gestartet.

7.3.1. WillkommenAuch hier darf ein Willkommenbildschirm nicht fehlen. Und es werden gleich ein paarHinweise mit geliefert. Ein kleiner aber wichtiger Hinweis von mir, es wird eine Installationbeschrieben ohne eine Parallelanwesenheit wie z.B. von Windows. Im Prinzip wird dieFestplatte gelöscht, falls dies noch nicht der Fall ist.

Warnung

Die Grundinstallation von Arch Linux

13

Page 24: Archlinux Und Mehr

Daher wenn notwendig hier die Installation abbrechen, um wichtige Daten vorherzu sichern.

Abbildung 7.3. Willkommen

Interessant ist die Information über die Bildschirmausgabe. Verschiedene Ausgabenwerden nicht nur im Installationsdialog gezeigt, sondern auf der Konsole Nr. 7ausgegeben. Im Prinzip entgeht Ihnen in der Standardprozedur nichts, detaillierte Angabensind dann über die Tastaturkombination ALT+F7 erreichbar. Der Standardbildschirm istwieder über ALT+F1 vorhanden.

Das Prinzip ist wohl erkannt. Die einzelnen Konsolen (im Standard VC1 bis VC6) sinddurchnummeriert und mit der entsprechenden Tastaturkombination erreichbar. Das ist einganz hilfreicher Punkt, der das spätere Arbeiten mit der Shell unterstützt. Denn hierbeikann die Multitaskingfähigkeit von Linux besser genutzt werden. Wird z.B. in der erstenKonsole ein längerer Prozess gestartet, kann in der Zweiten weiter gearbeitet werden.

7.3.2. Das Setup-HauptmenüDas Hauptmenü gibt eine strukturierte Installation in acht Hauptschritten vor.

Abbildung 7.4. Hauptmenü

Die Grundinstallation von Arch Linux

14

Page 25: Archlinux Und Mehr

7.3.2.1. Die Installationsquelle (1)

Es gibt zwei Wege, die zur Wahl stehen. Der eine Weg geht davon aus, dass sämtlicheSoftware-Pakete vom Datenträger stammen (CD-Installation). Der Andere, dass allenotwendigen Pakete aus dem Internet zum Zeitpunkt der Installtion selbst heruntergeladen werden (Netz-Installation). Beides hat Vor- und Nachteile und die Wahl selbst wirdvermutlich durch die eigene aktuelle Situation bestimmt sein.

Vermutlich sofort erkennbar ist, dass mit der Netz-Installation aktuelle Software-Paketegenutzt werden, als bei der CD-Installation. Da das Alter der Pakete vomVeröffentlichungszeitpunkt der Installations-Images abhängt. Ein weiterer Vorteil ist, dassbestimmte Werkzeuge, die wärend der Installations nicht zur Verfügung stehen, aus demInternet nachgereicht werden können.

Hat man allerdings keinen Internet-Zugang, kommt man an der CD-Variante wohl nichtvorbei. Eine komplette Arch Linux Installation selbst ist aber mit wenigen Handgriffen aufden aktuellen Stand gebracht, auch wenn erst später der Internet-Zugang zur Verfügungsteht. Dies ist nach einer erfolgreichen Grundinstallation von Arch Linux ein Thema undwird später mit berücksichtigt (siehe Kapitel: Die Arch Linux-Administration).

Wurde also der Punkt der Installtionsquelle gewählt, hat man also die Wahl.

Abbildung 7.5. Installationsquelle

Die Grundinstallation von Arch Linux

15

Page 26: Archlinux Und Mehr

7.3.2.1.1. Die CD als Installationsquelle

Dieser Punkt ist schnell erledigt und bedarf keiner weiteren Einstellung. Wurde die Wahlgetroffen, wird sofort nach einer Bestätigung des Hinweises in das Hauptmenü zurückgesprungen.

7.3.2.1.2. Das Internet als Installationsquelle

An dieser Stelle wird schon etwas von der Administration von Arch Linux vorweggenommen, da hier ein kompletter Internet-Zugang Voraussetzung ist. Die folgendenSchritte beziehen sich daher also auf Inhalte, wie sie im Netzwerk-Kapitel insbesonderezum Konzept (siehe Kapitel: Ein einfaches Netzwerkkonzept) beschrieben sind.

Liegen alle Daten (einzusetzende TCP/IP-Adressen für das eigene Netzwerk) vor, beginntder Einstieg mit einem Hinweis zur manuellen Konfiguration der entsprechendenNetzwerkkarte. Wurde dieser Hinweis mit OK quittiert, erscheint ein Untermenü mit denPunkten laut Abbildung:

Abbildung 7.6. Netz-Installation

Die Grundinstallation von Arch Linux

16

Page 27: Archlinux Und Mehr

Die eigentliche Konfiguration beschreibe ich in der vorgegebenen Reihenfolge:

1. Konfigurieren des eigenen Netzwerkes.

Nach Auswahl des Menüpunktes wird das erkannte Netzwerkgerät (in der Regel eth0)für ein kabelgebundenes Netzwerk angezeigt. Wurde diese Meldung mit OK bestätigt,lautet die Wahl DHCP einzusetzen (für die automatische Vergabe von TCP/IP-Adressenvon einem entsprechenden Server im eigenen Netzwerk) oder auch nicht.

Ich beschreibe den Weg bei der Nutzung von festen Adressen, wie es in der Abbildungzum Netzwerkkonzept (siehe Kapitel: Ein einfaches Netzwerkkonzept) dargestellt wird.Entsprechend wird der Einsatz eines DHCP-Servers verneint.

Daraus resultierend wird dirkt in den Folgedialogen nach der eigenen TCP/IP-Adressedes Rechners, der Netmask, der Broadcast-Adresse, die Adresse des Gateways unddes Domain-Name-Servers (DNS) abgefragt. Proxy-Server werden hier im Konzeptnicht genutzt und sollten natürlich bei Bedarf hier mit eingetragen werden. AlsZusammenfassung werden alle Adressen erneut angezeigt, um ggf. Fehler zuerkennen.

Abbildung 7.7. TCP/IP-Adressen

Die Grundinstallation von Arch Linux

17

Page 28: Archlinux Und Mehr

2. Wahl des Servers mit den Software-Paketen.

An dieser Stelle wird der Server ausgewählt, der sämtliche Softwarepakete für ArchLinux bereit stellt. Es sollte ein Server sein, der zumindest aus dem gleichen Landstammt, um ein wenig die Last aller Arch Linux Installateure zu verteilen.

Abbildung 7.8. Server

3. Rücksprung zum Hauptmenü.

Sind alle Einstellungen getätigt, kann nun mit dem nächsten Schritt im Hauptmenübegonnen werden.

7.3.2.2. Einstellen der Uhr (2)

Zu diesem Zeitpunkt wird die Systemzeit eingestellt. Im Dialog erfolgt dies in drei Schritten.

Die Grundinstallation von Arch Linux

18

Page 29: Archlinux Und Mehr

Zuerst über die Region und Zeitzone (1), z.B. mit Europa und Berlin für eine deutscheUmgebung.

Danach das eigentliche Einstellen der Uhrzeit zusammen mit dem Datum (2). Bedingtdurch die alleinige Vorherschaft von Linux (ohne Windows) als Installationsziel, wird alsUhrzeit die UTC (Universal Time, coordinated) ausgewählt. Entweder sieht dievorgegebene Einstellung gut aus, oder nicht. Im Falle einer Nacharbeit kann dies übereinen Zeitserver (NTP) oder manuell erfolgen. Da sich die vorherige Auswahl derInstallations-Quelle auf eine Installations-CD bezog, werden keine Netzwerkparameterabgefragt, die einen Zugang zum Internet ermöglichen und somit auch nicht auf einenZeitserver. Also bleibt in diesem Fall nur die manuelle Bearbeitung übrig.

Abhängigkeiten zwischen Zentraler-Europäischen-Sommer-Zeit (CEST),Zentraler-Europäischen-Zeit (CET, Winterzeit) und der koordinierten Weltzeit (UTC)werden im Kapitel: Die Systemzeit) weiter erläutert. Hier im Einstellungsdialog wird dieaktuelle lokale Zeit eingetragen.

7.3.2.3. Die Festplattenvorbereitung (3)

Ein wichtiger Schritt, denn hier wird die Festplatte nicht nur in Partitionen aufgeteilt,sondern zum Verwalten der eigentlichen Daten im entsprechenden Dateisystem formatiert.Der Dialog zeigt insgesamt vier Einstellungsmöglichkeiten an:

1. Automatische Vorbereitung der Festplatte.

2. Festplatte partitionieren (manuell).

3. Filesystem und Mountpoints festlegen (manuell).

4. Zurücksetzen der letzten Festplatteneinstellungen.

In unserem Fall würde ich das Zepter nicht aus der Hand geben wollen. Denn wir möchtenunter ganz bestimmten Voraussetzungen die Partitionen anlegen. Daher kommt derMenüpunkt eins nicht in Frage. Also betreten wir den nächsten Dialog über den Punktzwei: Festplatte partitionieren.

In der nächsten Übersicht werden alle im System vorhandenen Festplatten und derenKapazität angezeigt.

Anmerkung

Festplatten werden unter Linux mit den Gerätenamen sda für die Erste, sdb fürdie Zweite, sdc für die Dritte u.s.w. eingebunden, und dies unabhängig desControllersystems. Analog bei optischen Laufwerken mit den Gerätenamen sraz.B. für ein DVD-ROM-Laufwerk.

Grundsätzlich kann Linux dank des später beschriebenen Bootloaders Grub von einerbeliebigen Festplatte gebootet werden. Im Normalfall wird hier die erste Festplatte imSystem für das Betriebssystem gewählt. Für eine Partitionierung sollte dann vorweg einePlanung gemacht werden. Dazu ein Beispiel:

Laut des beschriebenen Zieles, ergibt sich folgende Lösung:

Definiert werden insgesamt vier Partitionen. Da maximal vier primäre Partitonen proSystem erlaubt sind, wird dies auch genau ausgeschöpft. Die ersten drei Partitionenwerden nach einigermaßen festen Größen fest gelegt. Die Restgröße der vierten Partitionist laut Partitionsbeispiel nur noch von der Gesamtkapazität der Festplatte abhängig.

1. Auf der ersten Partition soll der Linuxkern zusammen mit dem Bootloader-Teil abgelegt

Die Grundinstallation von Arch Linux

19

Page 30: Archlinux Und Mehr

werden. Beide sind nicht sehr groß, daher kann für diese Partition eine Größe von ca.100 MB reserviert werden (/boot).

2. Die zweite Partition beinhaltet später das gesamte System einschließlich derAnwendungsprogramme. Die Erfahrung hat gezeigt, dass für ein Arbeitsplatzsystemdurchschnittlich 10-20 GB ausreichen. Wem das zu wenig erscheint, der kann nacheigenem Ermessen die Partion definieren (/, Rootverzeichnis oder auchWurzelverzeichnis genannt).

3. Der dritte Bereich ist für die Swap-Partition gedacht. Hierbei handelt es sich um eineErweiterungsmöglichkeit für das System, Daten bei Hauptspeicherengpässenentsprechend auszulagern. Als Richtgröße hat sich das Doppelte des Hauptspeichersetabliert. Sollten also 512 MB RAM als Hauptspeicher im System vorhanden sein, sokann die SWAP-Partition auf ein Gigabyte gesetzt werden. Maximal zwei Gigabytereichen im Normalfall aus. Sollte das System wirklich in die Situation kommen, dieSwap-Partition in solch einer Größe (2 GB) komplett zu nutzen, gibt es eher einenFlaschenhals auf ganz anderer Seite (zu wenig Hauptspeicher im Verhältnis der zunutzenden Programme). Das System verhält sich dann sehr langsam.

4. Die vierte und letzte Partition ist für private Daten zuständig (/home). ImHome-Verzeichnis werden die späteren Benutzer-Verzeichnisse angelegt, in denensepariert alle benutzer- und programmspezifischen Daten abgelegt sind. Die Größeentspricht dem was übrig geblieben ist.

Diese Aufteilung hat den Sinn, wichtige Komponenten von einander zu trennen. Besondersan den eigenen Daten ist es vielleicht besser zu erkennen. Denn würde alles in einerPartition liegen, wären bei einem Systemfehler die eigenen Daten evtl. nicht mehrerreichbar. So bleibt bei einem Defekt oder Systemwechsel die Datenpartition (/home)unberührt. Hat die gesamte Festplatte einen physischen Defekt, stellt die weltbestePartitionierung auch keine Hilfe mehr dar. Da könnte eine zweite oder dritte Festplatte imSystem diesen Umstand aufheben.

Bei Linux/Unix gibt es keine Laufwerksbuchstaben, wie unter Windows. Die spätererstellten Partitionen werden als Verzeichnis sichtbar (bis auf die Swap-Partition, diesewird direkt vom System angesprochen) in den Verzeichnisbaum eingehängt. Dabei ergibtsich eine Struktur mit den für uns wichtigen Verzeichnissen, denen die Partitionenzugewiesen werden.

Abbildung 7.9. Partitionsbeispiel

Die Grundinstallation von Arch Linux

20

Page 31: Archlinux Und Mehr

Anmerkung

Es ist Hilfreich sich eine Notiz zu machen, wie in der Abbildung zu sehen. So kannmit Bleistift und Papier im Vorfeld eine Partitionierung und deren Zuweisung indem Verzeichnisbaum geplant werden.

Im Installationsdialog wird die Festplattenübersicht mit OK bestätigt und im Folgedialog dieerste Festplatte ausgewählt (in unserem Beispiel /dev/sda). Das "/dev/sda" zeigt, dassFestplatten, oder allgemein gesagt sämtliche Geräte als "Systemdatei" imVerzeichnisbaum verwaltet werden. Das Slash (/) ist kein Tippfehler, unter Linux/Unix gibtes kein Backslash (\) wie unter Windows.

Abbildung 7.10. Richtige Festplatte auswählen

Die Grundinstallation von Arch Linux

21

Page 32: Archlinux Und Mehr

Nach der Bestätigung kommt ein Hinweis, dass jetzt das Konfigurationsprogramm cfdiskgestartet wird. Dies ist ein einfach zu bedienendes Programm, um eine Partitionierungvorzunehmen. Mit Hilfe der Pfeiltasten auf der Tastatur, wird im Menübereich navigiert.

Wichtig

Wer z.B. bedingt durch Festplattenkapazitäten jenseits der zwei Terabyte arbeitenmöchte, neue Sektorgrößen mit 4096 Bytes berücksichtigen muss, kommt an denEinsatz von GUID Partitionstabellen (GPT) und entsprechenden Werkzeugen(cfdisk unterstützt keine GPT) nicht vorbei. Hierzu gibt es ein gesondertes Kapitel(siehe Kapitel: Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)), umgenau an dieser Stelle einen anderen Weg der Partitionierung während dieserInstallation einzuschlagen. Aber dann nach getaner Arbeit hier wieder zurück zukommen.

Zu Beginn steht der Balken in der Mitte und zeigt den frei verfügbaren Platz der Festplattean, sofern keine alten Partitionen vorhanden sind. Alte Partitionen werden mit demMenüpunkt Delete gelöscht (wurden vorher Daten gesichert?). Da wir eine neue Partitionanlegen wollen, wird dies über den Menüpunkt New erreicht. Im nächsten Schritt wirdabgefragt, ob eine primäre oder logische Partition angelegt werden soll. Nach unsererPlanung sollen primäre Partitionen angelegt werden, also den Punkt Primär bestätigen.

Anmerkung

Der Linuxkern kann nur von einer primären Partition gebootet werden, dies sollteauf jeden Fall in die Planung mit einbezogen werden. Logische Partitionen werdenin einer erweiterten Partition angelegt. Diese erweiterte Partition ist eineMöglichkeit, um die maximale Anzahl von vier primären Partition zu umgehen.Dabei hat die erweiterte Partition den Stellenwert einer Primären. Werden also dreiprimäre und eine erweiterte Partitionen angelegt, können zusätzlich mehrerelogische Partitionen in der Erweiterten angelegt werden.

Danach wird die Größe in Megabyte (MB) abgefragt. Hier laut Planung den Zahlenwert 100(MB) eintragen. Cfdisk ist in der Lage, den Bereich der Partition auf der Festplatte zubestimmen. Hier bitte den Anfang des freien Bereiches bestätigen.

Der erste Partitionseintrag ist fast fertig. Zur Erinnerung: Dies soll die Boot-Partitionwerden, entsprechend muss dies deklariert werden. Dazu gibt es den Menüpunkt Bootablemit dem die neue Partition ein Bootflag erhält. Was jetzt noch fehlt, ist das Format dieserPartition. Dazu den Menüpunkt Type wählen. Es erscheint eine Tabelle mit den zur

Die Grundinstallation von Arch Linux

22

Page 33: Archlinux Und Mehr

Verfügung stehenden Formaten. Für uns wichtig sind die Formate 83 für Linux und 82 fürdie Swap-Partition.

Nun die Schritte:

1. Neue Partition anlegen [New].

2. Größe in MB angeben.

3. Partitionstyp beschreiben (Primary/Logical)

4. Schreibposition der Partiton (Beginning)

sooft wiederholen, bis alle notwendigen Partitionen definiert wurden. Zum Schluss werdendie Eingaben mit dem Punkt Write finalisiert. Das Schöne bei cfdisk ist, dass Partitionenangelegt, definiert und wieder gelöscht werden können, bis alles stimmt. Erst mit Writewerden die Partitionen nach einer Abfrage, die mit dem ausgeschriebenen Wort "yes"bestätigt wird, geschrieben. Anschließend sollte das Ergebnis, bis auf die vierte Partition(da größenabhängig) in etwa wie in der nächsten Abbildung aussehen. In dieser Übersichtist auch gut zu erkennen, dass hier die Partitionen von eins bis vier durch nummeriert sindund den entsprechenden Namen (Erste Spalte: sda1 bis sda4) besitzen.

Abbildung 7.11. cfdisk

Mit Quit wird cfdisk verlassen. Danach den Installationsdialog mit Done beenden. Nunsollte man sich wieder im Vormenü befinden, wo es mit dem Punkt 3 Manually Configureblock devices, filesystems and mountpoints weiter geht.

7.3.2.3.1. Zuweisen der Dateisysteme und Mountpunkte

Ziel der nächsten Aktion ist, die zuvor erstellten Partitionen dem späteren Linux-Systembekannt zu machen. Also welche Partition wie eingesetzt und ggf. imSystem(-Verzeichnis-)baum eingehängt wird (Mountpoint). Dazu sind die Notizen, aus demPartitionsbeispiel sehr hilfreich. Denn in den Folgedialogen werden genau diesePartitionen abgefragt, um das entsprechende Dateisystem und deren Einhängepunkt im

Die Grundinstallation von Arch Linux

23

Page 34: Archlinux Und Mehr

System zu bestimmen.

Der erste Dialog für die Zugriffsmethode der Partitionen, hat auf das spätere Systemeinfluss.

Abbildung 7.12. Zugriffsmethode

Im vorherigen Verlauf, habe ich mich auf den klassischen Zugriff der Festplatten undPartitionen über die Gerätenamen (/dev/sda, /dev/sdb u.s.w.) bezogen. Das bleibtauch so. Es gibt aber Situationen, wo eine konkrete Eindeutigkeit notwendig wird. Hierzudienen die UUIDs (Universally Unique Identifier, z.B.UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816), die einen eindeutigen Zugriff auf jedePartition erlaubt. Der Umgang mit UUIDs ist ein Thema für sich und wird daher im KapitelDas Arbeiten mit UUIDs näher beschrieben. Das Benutzen von UUIDs kann auf jeden Fallim Nachhinein erfolgen.

Label, also eine Bezeichung im Klartext für jede Partition, ist im Vergleich zu den anderenTechniken weit aus schwächer, was die sichere Eindeutigkeit betrifft und ist daher hiernicht zu empfehlen. Denn ein Label kann mehrfach mit der gleichen Bezeichnungvergeben sein.

Nun zusammenfassend zielt dieser Dialog darauf ab, welches Verfahren (Gerätenamen,Label oder UUID) zur Ansteuerung der Partitionen in den späteren Konfigurationsdateiengenutzt werden soll. Da jede Methode für sich, direkten Einfluss auf dieParameterschreibweise in den Systemdateien hat.

Wie schon geschrieben, verfolge ich hier weiterhin den Weg über die Gerätenamen.

Die Auswahl des Dateisystems und des Einhängepunktes erfolgt für jede einzelnaufgelistete Partition. Daher beschreibe ich exemplarisch einen Lauf und zeige am Endedas gesamte Ergebnis. Im ersten Dialog kommt eine Benachrichtigung, dass bestehendePartitionen vorhanden sind (klar, haben wir ja auch zuvor angelegt) und man sichvergewissern sollte, ob diese auch eingesetzt werden dürfen. Sind keine Zweifelvorhanden, wird dieser Dialog mit Yes bestätigt.

1. Nun laut Planung gibt es vier Partitionen, die hier auch aufgelistet sind.

Die Grundinstallation von Arch Linux

24

Page 35: Archlinux Und Mehr

Abbildung 7.13. Dateisystem und Einhängepunkt 1

Die noch nicht zugeordnete Partition wird dann einfach ausgewählt.

2. Es folgt dann eine Abfrage, welches Dateisystem aus der Liste für diese Partitioneingesetzt werden soll..

Abbildung 7.14. Dateisystem und Einhängepunkt 2

Die gängingsten Dateisysteme für eine Linux-Installation sind wohl das Second- undThird-Extended-Filesystem (Ext2 und Ext3) bzw. das Fourth-Extended-Filesystem(Ext4) und Reiser3. Dies sind nicht alle und auch nicht die Aktuellsten. Sie sindjedoch erprobt und im Notfall leicht zu erreichen. Ich beziehe mich hier nur auf dasExt2 und Ext4.

3. Im letzten Schritt wird nach dem Einhängepunkt im Verzeichnisbaum gefragt.

Die Grundinstallation von Arch Linux

25

Page 36: Archlinux Und Mehr

Abbildung 7.15. Dateisystem und Einhängepunkt 3

Die wichtigsten und auch für unsere Zwecke notwendigsten Einhängepunkte sindschon vorbereitet. Individuell kann aber der Einhängepunkt mit der Option Custombestimmt werden. Nach der Auswahl des richtigen Ortes, erscheint eine kleineAbfrage nach weiteren Parametern für den Formatierungsprozess. Diese kann aberfür unsere Zwecke leer gelassen werden. Ebenso habe ich auf die Vergabe vonLabeln verzichtet.

Zusammenfassend ergibt sich nach diesen Zuordnungsläufen folgende Übersicht.

Abbildung 7.16. Dateisystem und Einhängepunkt 4

Die folgende Tabelle zeigt etwas übersichtlicher die Partitionierung samt Dateisystemen

Die Grundinstallation von Arch Linux

26

Page 37: Archlinux Und Mehr

und Einhängepunkte.

Tabelle 7.1. Übersichtstabelle - Dateisysteme und Einhängepunkte

Partition Einhängepunkt Dateisystem Information

/dev/sda1 /boot ext2 Diese Partition ist fürden Linux-Kern undTeile des Bootloadersgedacht.

/dev/sda2 / ext4 Für diesen Fall, istdas DateisystemExt3 zu wählen, daes eine Erweiterung(Journaling) zumExt2 besitzt und imArbeitsbetrieb eineweitere Sicherheit mitbringt.

/dev/sda3 Swap Swap Auslagerungspartitionmit eigenemDateisystem.

/dev/sda4 /home ext4 Die letzte Partitionwird nun für unserHome-Verzeichnisbenötigt. Dort werdenspäter das oder dieverschiedenenBenutzerverzeichnis(se)angelegt.

Zur Bestätigung der vorherigen Schritte wird dieser Installationspunkt mit OK verlassen.Anschließend folgt automatisch die Formatierungsprozedur wie definiert. Diese wird zumSchluss mit einem hoffentlich positivem Hinweis beendet.

Es wurden nun alle notwendigen Schritte zum Vorbereiten der Festplatte vorgenommen.Im Installationsmenü wird mit Punkt 5 zurück zum Hauptmenü gesprungen, damit mit demnächsten Schritt begonnen werden kann.

7.3.2.4. Softwarepakete selektieren (4)

Im nächsten Schritt werden die notwendigen Softwarepakete zu einer Grundinstallationgewählt.

Abbildung 7.17. Software-Pakete auswählen

Die Grundinstallation von Arch Linux

27

Page 38: Archlinux Und Mehr

Wurde der Menüpunkt Select Packages bestätigt, folgt ein Hinweis, dass die Installationder Software in Gruppen erfolgt. Keine Angst es sind nur zwei, die Basis-Gruppe mit derwichtigen Grundausstattung für das spätere Linux-System (ganz wichtig) und dieEntwicklungsbasis-Gruppe mit den Werkzeugen zur Programmerstellung (z.B. die GnuCompiler Collection).

Abbildung 7.18. Auswahl der Softwarepakete

Insgesamt erfolgt die Paketauswahl in zwei Schritten:

1. Auswahl (mit der Leer-Taste) der entsprechenden Software-Pakete (base-devel isthierbei noch zu empfehlen).

2. Und die folgende Bestätigung der zu den Paketen gehörenden Software.

Die Grundinstallation von Arch Linux

28

Page 39: Archlinux Und Mehr

Ein Feintuning ist zwar in der Programm-übersicht der einzelnen Pakete möglich, also dasselektive Herausstreichen und Hinzufügen von Programmen. Das im Moment geschnürtePaketangebot kann aber ohne Weiteres so übernommen werden.

7.3.2.5. Installieren der Softwarepakete (5)

Das Installieren der zuvor gewählten Softwarepakete ist nun kein großer Schritt mehr.Nach Bestätigen des Hinweises, erfolgt die Installation von der CD. Danach geht es zumHauptmenü zurück.

7.3.2.6. Systemkonfiguration (6)

Die Systemkonfiguration ist einer der wichtigsten Punkte, der extra in einem separatenAdministrationskapitel beschrieben ist. Daher werden während dieser Installation nur dienotwendigsten Elemente behandelt.

Zur Auswahl des passenden Text-Editors, zum Bearbeiten der unterschiedlichenKonfigurationsdateien, kann ich die Vorgabe "Nano" empfehlen. Fals dies der ersteKontakt mit dem Editor Nano ist, reicht ein Blick in das Kapitel "Der Editor Nano", um diewichtigsten Tastaturkombinationen zum Speichern und Beenden kennen zu lernen.

Für die spätere Bearbeitung der einzelnen Konfigurationsdateien nach dem erstenNeustart, ist zumindest an dieser Stelle das Bearbeiten der Datei rc.conf hilfreich. Dennzu Beginn der Installation half der Keyboardmanager (km), um die entsprechende Tastaturmit Länderkennung auszuwählen. Und damit das Suchen bestimmter Zeichen auf einemvoreingestellten amerikanischen Tastaturlayout nicht ganz zur Verzweiflung führt, nehmeich hier schon ein wenig Bezug zur (deutschen) Lokalisierung.

Also die Datei /etc/rc.conf aus dem Dialog auswählen, wie folgt die Parameter setzenbzw. vergleichen und anschließend speichern:

# --------------------------------------------------------------# LOCALIZATION# --------------------------------------------------------------.LOCALE="de_DE.utf8"...KEYMAP="de-latin1".

Danach wird die Konfiguration mit dem Vergeben des Root-Kennwortes (Set the rootpassword) fortgesetzt.

Abbildung 7.19. System-Konfiguration

Die Grundinstallation von Arch Linux

29

Page 40: Archlinux Und Mehr

Der User root ist der wichtigste User in einem Linux/Unix System. Er besitzt sämtlicheBerechtigungen. Damit nicht jeder sich gleich als root anmelden kann, sollte ein nichtleicht zu erratendes Kennwort gewählt und im entsprechenden Dialog eingetragen werden.

Im Zusammenhang mit den restlichen Konfigurationsdateien möchte ich auf das Kapitel"Arch Linux-Administration" hinweisen. Dort beschreibe ich im einzelnen die wichtigstenKonfigurations-Dateien. Es kann also hier das restliche Konfigurieren mit dem Punkt Donegestoppt werden, um dies später nach dem ersten Booten Schritt für Schritt zuvervollständigen.

Mit der letzten Aktion, mit dem Menüpunkt OK den Konfigurations-Dialog zu verlassen,folgt der Eintritt in die automatische Systemkonfiguration. Zusammen mit derVorkonfiguration der Dateien rc.conf (u.a. notwendig für die Ländereinstellung desSystems, wie weiter oben schon erfahren) und mkinitcpio.conf (für die Konfigurtaionder RAM-Disk mit den notwendigen Treibermodulen für den Systemstart) mittels desHardwareerkennungsprogramms hwdetect, wird so die Arch Linux-Umgebung geschaffen.

Wurde die Konfiguration beendet, wird automatisch in des Hauptmenü zurück gesprungen.

7.3.2.7. Der Bootloader (7)

Sehr praktisch, vielleicht nicht gleich logisch bei einem einzigen Betriebssystem, ist einBootloader. Dieser kann (wenn vorhanden) verschiedene Betriebssysteme zu Beginn desRechnerstarts zur Wahl anbieten. Auch bei einer einzelnen Linux-Installation ist diessinnvoll, um z.B. mehrere Linux-Kerne (Fallback-Kernel!) verwalten zu können.

Wird dessen Installation mit Hilfe des Menüpunktes Install Bootloader aus dem Hauptmenügestartet, werden zwei Punkte angeboten. Entweder wird Grub als Bootloader genommenoder es liegt einem frei, einen anderen zu installieren.

Abbildung 7.20. Bootloader Grub

Die Grundinstallation von Arch Linux

30

Page 41: Archlinux Und Mehr

Grub ist wohl der bekannteste Bootloader für Linux, daher wird dieser auch von meinerSeite empfohlen und hier weiter beschrieben. Wer aber schon direkt grub2, den Nachfolgervon grub, einsetzen möchte oder sogar muss, sollte an dieser Stelle die Installation mitdem Punkt None abbrechen. Da grub2 noch nicht in der Installationsroutine berücksichtigtwird, gibt es ein ergänzendes Kapitel, um die Installation entsprechend manuellabzuschließen (siehe Kapitel: Der Einsatz von grub2).

Nach der Bestätigung, dass grub installiert werden soll, wird dessen Konfiguration mit Hilfedes Editors nano zur Bestätigung geöffnet. Die Angaben in dieser Datei beruhen auf derHardware-Erkennung des vorherigen Kapitels.

Abbildung 7.21. Grub-Konfiguration

Hier sollten die Angaben mit den eigenen Notizen zur Partitionierung verglichen werden.Besonders die Einträge wie in der Abbildung. Exemplarisch habe ich den ersten Blockgenommen, der später nach Starten des Rechners unter grub als Menüoption mit demTitel "Arch Linux" zur Verfügung gestellt wird.

Die Grundinstallation von Arch Linux

31

Page 42: Archlinux Und Mehr

# (0) Arch Linuxtitle Arch Linuxroot (hd0,0)kernel /vmlinuz26 root=/dev/sda2 vga=775 roinitrd /kernel26.img

Diese Zeile dient nur als Infotext, wird also nicht von Grub ausgewertet.Der Titel später im Menü.Hier wird die Festplatte und Partition beschrieben, wo der Linuxkern zu finden ist. Danach der exemplarischen Installation von der ersten Festplatte (0) und Partition (0)alles beschrieben wurde, stimmen hier die Einträge (hd0,0). Der Zählstartpunkt isthierbei nicht beginnend bei Eins, sondern bei Null.Der Linux-Kern-Dateiname (vmlinuz26) und die Partition die dem Root-Verzeichniszugeordnet ist; hier mit dem Eintrag root=/dev/sda2. Zusätzlich wird derFramebuffer-Parameter (vga) eingesetzt, um gleich die Auflösung laut derangegebenen Tabelle zum verwendeten Monitor auf 1280x1024 Bildpunkte bei 256Farben zu setzen.Da der Linux-Kern modular vorgegeben wird, befinden sich durch die Installation(Hardwareerkennung) ermittelten Treiber als Modul in einer RAM-Disk (kernel26.img).Beim Startvorgang werden die notwendigen Treibermodule von dieser RAM-Diskgeladen.

Stimmt soweit alles, kann der Editor nano wieder beendet werden. Mussten Änderungenvorgenommen werden, so speichern Sie diese bitte vorher ab.

Nach dieser kleinen Exkursion verlangt die Installation den Ort, in dem derMaster-Boot-Record (MBR) geschrieben werden soll. In diesem Bereich wird der Ladeteilvon grub geschrieben, da der MBR automatisch durch das PC-System bei einem Neustartgelesen und somit auch grub geladen wird. Hier wird nicht von einer vorher angelegtenPartition ausgegangen, sondern von der Festplatte selbst. Daher sollte der erste undidentische Eintrag zu dieser Installationsbeschreibung (/dev/sda) gewählt werden.

Abbildung 7.22. Grub und der MBR

Wurde der MBR erfolgreich geschrieben, wird dies von einer Information angezeigt.

7.3.2.8. Installation beenden (8)

Die Grundinstallation von Arch Linux

32

Page 43: Archlinux Und Mehr

Ja, es ist so gut wie alles fertig. Und sind keine Probleme zu erwarten, sollte der ersteBootvorgang positiv verlaufen. Vorher allerdings muss das Installationsmenü mit ExitInstall verlassen werden. Durch die Eingabe von reboot wird ein Neustart initiiert.

reboot

Danach sollte automatisch der Rechner neu starten und grub sich melden; vorausgesetztdie Installations-CD wurde vorher aus dem optischen Laufwerk heraus genommen.

Nach einigen Sekunden wird der erste Eintrag "Arch Linux" von grub ausgewählt, oder eswird mit ENTER der Abbruchen des Countdowns herbei geführt. Was dann abläuft sindverschiedene Initialisierungsprozesse, bis Linux auf die Eingabe des Benutzernamens unddessen Kennwort wartet.

Bitte melden Sie sich als root gefolgt mit dem Kennwort, das Sie während der Installationvergeben haben an.

Anschließend sollten Sie mit der Administration von Arch Linux (Kapitel: ArchLinux-Administration) weiter machen, um die Grundinstallation abzuschließen. Hierzufolgen Sie bitte den Konfigurationsschritten:

1. Einstellen der entsprechenden Sprachumgebung (Lokalisierung) des Systems (Kapitel:Die deutsche Lokalisierung mit UTF-8 Unterstützung).

2. Wichtige Kernel-Module abgleichen (Kapitel: Die Kernel-Module).

3. Das Netzwerk einrichten (Kapitel: Das Netzwerk).

4. Überprüfen, ob die Standard-Dienste eingerichtet sind (Kapitel: Die Dienste).

5. Einen Benutzer für die tägliche Arbeit einrichten (Kapitel: Die Benutzerverwaltung).

6. Das System auf den aktuellen Softwarestand bringen (Kapitel: Der PaketverwalterPacman).

7.4. Ergänzungen zur Grundinstallation vonArch Linux

Verschiedene Aspekte haben sich in der Zwischenzeit "eingeschlichen". Da ist zum einender Einsatz von Festplatten größer zwei Terabyte, mit einer Sektorgröße von 4096 Byte zunennen. Und damit gleich verbunden die Nutzung von grub2.

Beide Faktoren mit entsprechenden Werkzeugen, werden so nicht direkt aus demInstallationsprogramm heraus unterstützt. Einiges mehr an Handarbeit ist daher währendder Installation notwendig, um auch diese Bereiche abzudecken.

Die folgenden Kapitel sind daher nur Ergänzungen zum "normalen" Installationsablauf, lautKapitel "Die Grundinstallation von Arch Linux".

7.4.1. Die Festplattenvorbereitung mit Hilfe von GPTfdisk (gdisk)

Im Kapitel "Die Festplattenvorbereitung" wird cfdisk eingesetzt, um Partitioneneinzurichten. Cfdisk selbst kann aber nicht mit GUID Partitionstabellen (GPT) umgehen,die zwar nicht nur für Festplatten größer zwei Terabyte gedacht sind, aber ab solch einerGröße notwendig werden. Das leicht zu bedienende Programm hierzu lautet gdisk. Dieses

Die Grundinstallation von Arch Linux

33

Page 44: Archlinux Und Mehr

ist leider noch nicht auf den Installationsmedien berücksicht und muss daher nachträglichwährend der Installationsprozedur nachinstalliert werden.

Kommt man also an dem Punkt in der Installation, wo die Partitionen manuell eingerichtetwerden sollen, sind folgende Schritte zu berücksichtigen, um mit gdisk arbeiten zu können:

1. Eine Netzwerkumgebung einrichten.

Wichtig ist zu erwähnen, dass jetzt ebenfalls eine generelle Installation aus dem Netzerfolgen muss, um nicht nur die Software-Pakete entsprechend während derInstallation herunter zu laden, sondern um im eigentlichen Sinn dieNetzwerkumgebung eingerichtet zu haben, welche die Voraussetzung bildet, gdiskmanuell herunter zu laden und installieren zu können.

Sollte dies noch nicht berücksichtigt sein, ist es am einfachsten den aktuellen Prozessabzubrechen, um über das Hauptmenü die Netz-Installation (siehe Kapitel: DieInstallationsquelle) einzurichten. Danach wird dann das Installationsprogrammbeendet.

2. Den Datenbankbestand aktualisieren.

Nach dem Beenden des Installationsprogramms steht das Prompt für die nächstenEingaben bereit. Notwendig ist nun das Herunterladen und Installieren von gdisk. Dazum Zeitpunkt keine Datenbankbestände über alle zur Verfügung stehendenSoftware-Pakete vorhanden sind, muss dies mit:

pacman -Sy

nachgeholt werden. Etwaige Aktualisierungsmeldungen zu pacman können zumZeitpunkt vernachlässigt werden.

3. Berücksichtigen eines angepassten Partitionsbeispiels.

Bevor es zur Installation von gdisk geht, wird das Partitionsbeispiel um eine Partitionfür grub2 ergänzt, wenn ein normales BIOS (keine EFI-Umgebung) im PC die Arbeitverrichtet.

Abbildung 7.23. Partitionsbeispiel für grub2

Die Grundinstallation von Arch Linux

34

Page 45: Archlinux Und Mehr

4. Einrichten der Partitionen.

Jetzt ist es Zeit gdisk zu installieren. Zusätzliche Informationen zu GPT und die Arbeit(einschließlich die Installation) mit gdisk sind ab dem Kapitel "Festplatten mit GUIDPartitionstabellen (GPT)" nachzuschlagen. Zusammenfassend gibt die folgendeTabelle alle Informationen wieder, die für Partitionen, Größen, Typ und späterenGebrauch laut dem neuen Partitionsbeispiel notwendig sind.

Tabelle 7.2. Übersichtstabelle - Partition, Einhängepunkte undDateisysteme

Partition Einhängepunkt Partitionstyp(gdisk)

Größe /Dateisystem

Information

/dev/sda1 kein ef02 Ein Megabyte /kein

Diese Partitionist für grub2. EinEinbinden in dasSystem ist nichtnotwendig.Diese Partitionwird bei derInstallation vongrub2berücksichtigt.

/dev/sda2 /boot 0700 100 Megabyte /ext2

Diese Partitionist für denLinux-Kern undTeile desBootloadersgedacht.

/dev/sda3 /root 0700 ca. 10 bis 20Gigabyte / ext4

Für diesen Fall,ist das

Die Grundinstallation von Arch Linux

35

Page 46: Archlinux Und Mehr

DateisystemExt4 zu wählen,da es eineErweiterung(Journaling) zumExt2 besitzt undim Arbeitsbetriebeine weitereSicherheit mitbringt.

/dev/sda4 kein 8200 DoppelterArbeitsspeicherals Größe(Richtwert) /EigenesDateisystem

Auslagerungspartitionmit eigenemDateisystem.

/dev/sda5 /home 0700 Die restlich zurVerfügungstehendeFestplatten-Kapazität/ ext4

Die letztePartition wird fürdasHome-Verzeichnisbenötigt. Dortwerden späterdas oder dieverschiedenenBenutzerverzeichnis(se)angelegt.

5. Fortführung der Installation.

Wurden alle Partitionen angelegt, kann das Installationsprogramm erneut gestartetwerden, um an der Stelle weiter zu machen, wo es zuletzt abgebrochen wurde.

Denn jetzt geht es weiter mit dem Erstellen der Dateisysteme und Definieren derEinhängepunkte (Kapitel: Zuweisen der Dateisysteme und Mountpunkte). Bitteberücksichtigen Sie hierbei auch das geänderte Partitionsschema mit derÜbersichtstabelle aus dem Punkt vier. Ist dies erfolgt, werden ganz normal alleweiteren Schritte umgesetzt.

Anmerkung

Ein erneutes Beginnen im Installationsprogramm ab dem Punkt Zuweisen derInstallationsquelle ist leider vorher erneut notwendig, da beim Verlassen derInstallationsumgebung alle Einstellungen vergessen werden.

7.4.2. Der Einsatz von grub2Grub wird nicht mehr weiter entwickelt. Hinzu kommen weitere Anforderungen, die grubnicht unterstützt. Um z.B. die Unterstützung von GUID Partitionstabellen (GPT) zuerhalten, ist grub2 aus meiner Sicht die beste Alternative.

Wichtig hierbei ist, dass eine Partition bei der Nutzung von GPT berücksichtigt wird, wie esim Kapitel "Die Festplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)" beschrieben ist.

Grub2 während der Grundinstallation von Arch Linux zu installieren, ist mit Handarbeitverbunden, da dieser Bootloader noch nicht in der Installationsroutine von Arch Linuxberücksichtigt ist. Der Zeitpunkt grub2 während der Installation manuell zu installieren,kann genau bestimmt werden. Nämlich zum Zeitpunkt, wo grub installiert werden soll

Die Grundinstallation von Arch Linux

36

Page 47: Archlinux Und Mehr

(siehe Kapitel: Der Bootloader), wird der entsprechende Dialog für die Wahl für grubverneint und die Installation beendet. Im Prinzip wurde schon alles für eine Arch LinuxGrundinstallation installiert, nur der letzte Schritt hier nun einen Bootloader (grub2) zuinstallieren fehlt.

Folgende Schritte sind notwendig, um die Grundinstallation von Arch Linux mit grub2 zubeenden:

1. Eine Netzwerkumgebung einrichten.

Wie im Fall der manuellen Installation von gdisk (siehe Kapitel: DieFestplattenvorbereitung mit Hilfe von GPT fdisk (gdisk)), ist eine konfigurierteNetzwerkumgebung mit Zugang zum Internet notwendig. Bevor also dasInstallationsprogramm verlassen wird, sollte eine Netz-Installation (siehe Kapitel: DieInstallationsquelle) definiert sein, falls noch nicht geschehen, um über diesen Weg dieNetzwerkumgebung zu definieren.

2. Wechseln der Installationsinstanz (chroot).

Durch das Booten vom Installationsmedium (z.B. von einer CD), wird dieInstallationsinstanz im Speicher platziert. Das heißt, das ein gesamtes Arch Linux dortvorgehalten wird, um über die Installationsprogramme ein Arch Linux auf dieZiellaufwerke zu installieren. Hierzu werden wärend der Installationsschritteeingerichtete Festplatten und Partitionen unter /mnt gemountet, um dort hin allenotwendigen Dateien und Verzeichnisse zu bringen.

Ein sofortiges manuelles Installieren von grub2, würde also nicht die neue eigeneInstallation berücksichtigen, sondern die Arch Linux Instanz, die sich für dieInstallation im Speicher befindet. Damit nun die neue Installation berücksichtigtwerden kann, gibt es ein Werkzeug mit dem Nanem chroot, welches ein Wechseln derInstanzen während eines aktiven laufenden Linux-Systems erlaubt. Um den"Absprung" vorzubereiten sind folgende Schritte notwendig:

1. Das Umlenken wichtiger System- und Prozess-Umgebungen zurVerzeichnisstruktur der Zielinstanz:

mount -t proc proc /mnt/proc/

mount -t sysfs sysfs /mnt/sys/

und

mount -o bind /dev/ /mnt/dev/

2. Jetzt das eigentliche Wechseln in die Zielinstanz:

chroot /mnt/ /bin/bash

3. Den Datenbestand aktualisieren.

Da die neue Instanz keine Software-Paketbestände kennt, müssen diese mit demPaketmanager pacman zuerst nachgereicht werden:

pacman -Sy

Die Grundinstallation von Arch Linux

37

Page 48: Archlinux Und Mehr

4. Das Installieren und Konfigurieren von grub2.

Hierzu gibt es ein gesondertes Kapitel (siehe: Der Bootloader grub2). Bitteberücksichtigen Sie hierbei im ersten Schritt die Installation und dieGrundkonfiguration von grub2, um sicher zu gehen, dass der erste Start soweitfunktioniert.

5. Das Verlassen der Instanz (chroot) und Neustart.

Die Installationsinstanz wird einfach mit dem Befehl exit verlassen. Somit sollten Siesich wieder auf der Ebene der Installations-CD-Instanz befinden. Ein Neustart wird mitdem Befehl reboot durchgeführt, um nun endgültig die Grundinstallation von ArchLinux abzuschließen. Bitte berücksichtigen Sie aber noch die Tips zur Administrationvon Arch Linux, die im letzten Kapitel der Grundinstallion aufgelistet sind (sieheKapitel: Installation beenden).

Die Grundinstallation von Arch Linux

38

Page 49: Archlinux Und Mehr

Kapitel 8. Die ArchLinux-Administration

Die gesamte Administration von Arch Linux bezieht sich eigentlich auf wenigeDateien, die mit dem Editor nano (siehe Kapitel "Der Editor Nano") oder einemanderen Lieblings-Editor (z.B. vi) bearbeitet werden. Hinzu kommt derPaketmanager pacman von Arch Linux, mit dessen Hilfe nicht nurSoftwarepakete installiert werden, sondern auch das gesamte System auf demaktuellen Stand gebracht wird.

Die Konfigurationsdateien, die wärend der Installation evtl. nicht angetastetwurden, werden in den folgenden Kapiteln mit einbezogen.

Anmerkung

Bitte bedenken Sie, dass Sie hierbei als root angemeldet seinmüssen, oder Alternativen (sudo oder su) einsetzen, um überhaupt dieentsprechende Berechtigung zu erhalten systemwichtige Dateien zuverändern.

8.1. Die deutsche Lokalisierung mitUTF-8 Unterstützung

Linux unterstützt so gut wie alle Weltsprachen. Wer möchte kann zur englischenSprachumgebung die Deutsche hinzufügen und sämtliche Meldungen vonProgrammen entsprechend umstellen.

Zentral hierzu wird die Datei /etc/rc.conf bearbeitet. Diese wird noch öftersfür verschiedene andere Belange genutzt; aber dazu später mehr. Also zumBearbeiten folgende Eingabe tätigen:

nano /etc/rc.conf

Die Datei ist in vier Blöcken aufgeteilt und dokumentiert, wovon der Erste für dieLokalisierung des Linuxsystems wichtig ist.

## /etc/rc.conf - Main Configuration for Arch Linux#

##-----------------------------------------------------------------# LOCALIZATION#-----------------------------------------------------------------## LOCALE: available languages can be listed with the'locale -a'# command

# HARDWARECLOCK: set to "UTC" or "localtime", any othervalue will# result in the hardware clock being left untouched (usefulfor# virtualization)# TIMEZONE: timezones are found in /usr/share/zoneinfo

39

Page 50: Archlinux Und Mehr

# KEYMAP: keymaps are found in /usr/share/kbd/keymaps# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed# for non-US)# CONSOLEMAP: found in /usr/share/kbd/consoletrans# USECOLOR: use ANSI color sequences in startup messages#LOCALE="de_DE.UTF-8"HARDWARECLOCK="UTC"TIMEZONE="Europe/Berlin"KEYMAP="de-latin1"CONSOLEFONT="lat9w-16"CONSOLEMAP=USECOLOR="yes"

Vielleicht steht hier noch die US-Einstellung, daher den Eintrag für die deutscheUmgebung entsprechend übernehmen. Neben den Parametern für einelandesspezifische Kennung (de_DE), wird mit dem gleichen Eintrag auf eineUTF-8-Zeichenkodierung bezogen.Die Interpretation der Hardware-Uhr wird über zwei Parameter gesteuert. Entwedermit "localtime" oder "UTC" (Universal Time, coordinated). Linux/Unix-Systeme ohneeine Parallelinstallation von Windows verwenden UTC. Ist Windows parallel auf demRechner installiert, sollte man "localtime" als Parameter benutzen, da Windows nichtmit einer UTC-Umgebung arbeitet. Mehr zum Thema wird im Kapitel "Die Systemzeit"beschrieben.Die Zeitzone ist hier sehr wichtig, wenn der unter Punkt zwei beschriebene Fall zu"UTC" verwendet wird. Für deutsche Einsatzorte bietet sich der Wert "Europe/Berlin"an.Das Tastaturlayout wird mit "de-latin1" oder "de-latin1-nodeadkeys" (für eineSonderbehandlung der Eingabe von Sonderzeichen z.B. für das "á") eingerichtet.Um Darstellungsprobleme bei einer UTF8-Zeichenkodierung im Konsolenbereich zuumgehen, kann ich einen entsprechenden Konsolenzeichensatz (lat9w-16)empfehlen.Eine "Consolemap" wird benötigt, wenn eine bestimmte Zeichensatz-Unterstützungnach UTF-8 (z.B. 8859-1_to_uni) übersetzt werden soll. Da die meisten Programmeheute UTF-8 unterstützen, ist eine entsprechende Umwandlung nicht notwendig.ANSI-Farbausgaben in der Konsole werden hier mit einem einfachen "yes" zumParamter USECOLOR unterstützt.

Mit der Variable "Locale" in der Konfigurationsdatei rc.conf, werden systemweitbestimmte Umgebungsvariablen für die entsprechende Sprachumgebung, ergänzt um diejeweilige Zeichenkodierung für das System und Anwendungsprogramme gesetzt (inunserem Fall mit "de_DE.UTF-8"). Eine dieser Umgebungsvariablen lautet z.B.LC_MESSAGES, sie bestimmt die Ausgabesprache für Programme. Vorausgesetzt dasProgramm wertet diese (Locale-)Variable aus.

Neben der Bestimmung der entsprechenden "Locale" in den Umgebungsvariablen, mussin der Regel für die entsprechende Sprache die Locale-Datenumgebung auch fürSystembibliotheken (glibc) generiert werden. Dies erfolgt mit der Datei locale.gen imVerzeichnis /etc. Sie wird mit:

nano /etc/locale.gen

bearbeitet, um das Generieren der "Locale" vorzubereiten. Dazu einfach dasRautensymbols (#) vor der entsprechenden (Sprach-)Zeile entfernen.

.

.#de_CH.UTF-8 UTF-8#de_CH ISO-8859-1de_DE.UTF-8 UTF-8de_DE ISO-8859-1de_DE@euro ISO-8859-15

Die Arch Linux-Administration

40

Page 51: Archlinux Und Mehr

#de_LU.UTF-8 UTF-8#de_LU ISO-8859-1..

Anschließend wird das Generieren mit dem Befehl:

locale-gen

gestartet. Eine Übersicht der zur Verfügung stehenden Datenumgebungen für Locale undeine gleichzeitige Überprüfung, ob alles erfolgreich angelegt wurde, wird mit:

locale -a

ausgegeben. Ob die Umgebungsvariablen nun ebenfalls gesetzt sind, wird einfach mit derEingabe:

locale

angezeigt. Ein Neustart des Systems ist jetzt notwendig, damit alle Änderungen wirksamwerden. Dazu folgende Eingabe:

reboot

8.2. Die Kernel-ModuleArch Linux ist so ausgerichtet, dass es keinen monolithischen Linux-Kernel gibt, in demwie sonst üblich genau passend zum System alle notwendigen Treibermodule enthaltensein müssen. Vielmehr liegen sämtliche Treiber als externe Module vor und werden,abhängig der Hardwareumgebung, geladen. Für die Modulverwaltung ist der Abschnitt"Hardware" in der Datei rc.conf zuständig:

Anmerkung

Der folgende Ausschnitt aus der Datei rc.conf zeigt eine Momentaufnahme(m)eines Systems und wird mit großer Wahrscheinlichkeit bei Ihnen andersaussehen. Das hängt damit zusammen, dass wärend der Arch Linux-Installationdie Datei rc.conf abhängig von der Hardwareumgebung generiert wurde. DieModulverwaltung unter "Hardware" braucht in der Regel nicht verändert zuwerden.

nano /etc/rc.conf

# ----------------------------------------------------------------# HARDWARE# ----------------------------------------------------------------## MOD_AUTOLOAD: Allow autoloading of modules at boot and when# needed# MOD_BLACKLIST: Prevent udev from loading these modules# MODULES: Modules to load at boot-up. Prefix with a ! to# blacklist.## NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the# MODULES array.#MOD_AUTOLOAD="yes"#MOD_BLACKLIST=() #deprecated

Die Arch Linux-Administration

41

Page 52: Archlinux Und Mehr

MODULES=()

# Scan for LVM volume groups at startup, required if you use LVMUSELVM="no"

Hier ist ein "yes" notwendig, damit wärend der Bootphase das Hardware-Scannenaktiviert wird.Das Nutzen von MOD_BLACKLIST wurde abgekündigt. Um bestimmte Module nichtzu laden, reicht als Vorzeichen zum Modulnamen in MODULES ein "!".Wichtige Option, um während der Startphase des Linux-Systems die Treiber-Module(in den runden Klammern) anzugeben, die ggf. durch die automatischeHardwareerkennung nicht ermittelt werden. Klassischer Fall wäre ein wichtiger undnotwendiger Treiber für einen (neuen) Festplatten-Controller.Mit dieser Variable und der Wertzuweisung "yes" oder "no" wird fest gelegt, ob der"Logical Volume Manager" mit entsprechenden Festplatten/Partitions-Gruppengenutzt werden soll.

8.3. Das NetzwerkEin wichtiger Punkt - nicht nur für ein Linux-System.

8.3.1. Ein einfaches NetzwerkkonzeptHierbei verfolge ich das Konzept einen Internetzugang für mehrere Anwender zu Hause, ineinem kleinen Büro oder einer Agentur zur Verfügung zu stellen.

Abbildung 8.1. Netzwerkkonzept

Als Protokoll-Duo werden TCP (Transmission Control Protocol) und IP (Internet Protokoll)zusammen als TCP/IP für die netzweite Kommunikation eingesetzt. Beide sorgen dafür,

Die Arch Linux-Administration

42

Page 53: Archlinux Und Mehr

dass Datenpakete zwischen identifizierbaren Rechnern mit einer eindeutigen IP-Adresseunabhängig vom Betriebssystem ausgetauscht werden. Für den Einsatz eines (privaten)Netzwerkes stehen - laut einer internationalen Definition - folgende IP-Adressbereiche freizur Verfügung, um genau jedem Rechner in einem (privaten) Netzwerk eine eigeneIP-Adresse zu vergeben, ohne dass es zu einer Kollision mit dem Internet kommt:

1. 192.168.0.0 bis 192.168.255.255 (Class C Netz)

2. 172.16.0.0 bis 172.31.255.255 (Class B Netz)

3. 10.0.0.0–10.255.255.255 (Class A Netz)

Etabliert hat sich der Bereich zwischen 192.168.0.0 und 192.168.255.255 (Class CNetz). Wichtig hierbei ist, dass man sich auf die ersten drei Werte (Oktetts) der späterenIP-Adresse einigt, um jedem Rechner (egal ob Workstation, Server und Router) eineeindeutige IP-Adresse aus dem entstandenen Verbund (z.B. 192.168.1.x) zu geben, sonstfunktioniert die Kommunikation unter allen Rechnern nicht bzw. dann ist weiterer Aufwandnotwendig. Die IP-Adressen mit .0 und .255 in der letzten Wertigkeit spielen eineSonderrolle und sind vom System reserviert. Somit sind maximal 254 Rechneruntereinander erreichbar. Zwecks einer besseren Übersicht, kann ich eine Gruppierung derIP-Adressen empfehlen (wie in der Abbildung zu sehen), um z.B. Router und Server vonnormalen Arbeitsplatzrechnern zu trennen.

Auf DHCP (Dynamic Host Configuration Protocol), also den Dienst für die dynamischeVergabe von sich wechselnden IP-Adressen aus einem bestimmten IP-Adressraum, würdeich bei diesem Konzept für vier Rechner komplett verzichten. Besonders bei Server solltevon einer Eindeutigkeit ausgegangen werden, was auf jeden Fall das Finden von Fehlernerleichtert. Bei mehreren Rechnern lohnt sich dann evtl. schon eine kleine Dokumentation.Ein Schaubild, wie bei der Abbildung zum Netzwerk-Konzept veranschaulicht dieThematik.

Ein einfacher Router (heute von einigen Internet-Providern als kostenlose Beigabe, in derRegel mit einem eingebauten Switch für den Anschluss für vier Rechner per Kabel),verwaltet einen Internetzugang dynamisch bei Bedarf über ein internes oder externesModem (z.B. per xDSL- oder Kabelanschluss). Hierbei wird der Datenverkehr zwischenzwei unterschiedlichen Netzwerken, dem eigenen (privaten) LAN (Local Area Network) unddem WAN (Wide Area Network) geroutet. Der Router stellt daher ein Gateway(Verbindungstor) zwischen beiden "Netzwelten" her.

Anmerkung

Es ist schon aus sicherheitstechnischen Gründen sinnvoll, schon bei nur einemRechner einen Router einzusetzen. Aus der Sicht des Internets ist der Partner derRouter und nicht der oder die Rechner hinter dem Selbigen. Zusätzlich existiert inden meisten Fällen als erweiterte Funktion in den Routern eine Firewall. Somitwerden einfache Angriffsversuche aus dem Internet zum internen Netzwerkblockiert.

Zusätzlich Als Tip kann ich eine IP-Adresse für den Router empfehlen, die von derWerkseinstellung abweicht, um etwaige Angriffe von Innen (z.B. per Mail,Stichwort Trojaner) zu erschweren.

8.3.2. Die NetzwerkkonfigurationBei Arch Linux erfolgt die Netzwerkkonfiguration über wenige Dateien; vorausgesetzt derNetzwerkadapter wurde erfolgreich im System eingebunden. Mit dem Befehl:

ifconfig

Die Arch Linux-Administration

43

Page 54: Archlinux Und Mehr

wird eine Übersicht der vorhandenen Adapter ausgegeben. Für die erste Netzwerkkarteeth0, für die Zweite eth1 und so weiter. Auf jeden Fall sollte das sogenannteLoopback-Interface als lokaler Netzwerkadapter mit der Bezeichnung lo aufgelistet sein,dass für die programm- und systeminterne, netzwerkprotokollbasierende Kommunikationnotwendig ist.

Die IP-Adressenzuordnung zu den Adaptern erfolgt mit Hilfe der Datei rc.conf imAbschnitt "Networking", die nun entsprechend des Beispielkonzeptes bearbeitet wird.

nano /etc/rc.conf

# ---------------------------------------------------------------# NETWORKING# ---------------------------------------------------------------## HOSTNAME: Hostname of machine. Should also be put in /etc/hostsHOSTNAME="fasolt"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available# interfaces.## Interfaces to start at boot-up (in this order)# Declare each interface then list in INTERFACES# - prefix an entry in INTERFACES with ! to disable it# - no hyphens in your interface names - Bash doesn't like it## DHCP: Set your interface to "dhcp" (eth0="dhcp")# Wireless: See network profiles below#

#Static IP examplelo="lo 127.0.0.1"eth0="eth0 192.168.1.120 netmask 255.255.255.0 broadcast ==>

==>192.168.1.255"INTERFACES=(lo eth0)

# Routes to start at boot-up (in this order)# Declare each route then list in ROUTES# - prefix an entry in ROUTES with a ! to disable it#gateway="default gw 192.168.1.10"ROUTES=(gateway)

# Enable these network profiles at boot-up. These are only# useful# if you happen to need multiple network configurations# (ie, laptop users)# - set to 'menu' to present a menu during boot-up# (dialog package required)# - prefix an entry with a ! to disable it## Network profiles are found in /etc/network.d## This now requires the netcfg package#NETWORKS=(main)

Der Hostname entspricht dem Rechnernamen. Ich halte mich hierbei mal an dieNibelungensage und deren Protagonisten. Daher fällt die Wahl für diesenLinux-Rechner auf fasolt (ein kräftiger Riese).In dieser Zeile erhält der lokale Adapter lo die entsprechende Standard-IP-Adresse(127.0.0.1).Für den Adapter eth0 wird die IP-Adresse 192.168.1.120 wie im Beispiel-Konzeptvergeben. Die Netmask kann zur Unterteilung der IP-Adressen in Teilnetze (Subnets)dienen, um Datenvolumen (und damit den entsprechenden Datenpakettransport)innerhalb großer Netzwerke kontrolliert verwalten zu können. Bei einem Class C Netz,

Die Arch Linux-Administration

44

Page 55: Archlinux Und Mehr

wie hier im Einsatz, ist daher als Netmask 255.255.255.0 zu benutzen. Somit wirddie schon erwähnte Anzahl von maximal 254 Rechnern in diesem Netzwerkangesprochen. Die Broadcast-Adresse ist eine der reservierten Adressen mit demWert 255 als letztes Oktett. Da alle Rechner im Verbund somit die gleiche IP-Adresseerhalten, sind sie für einen Broadcast (Rundruf, nach dem Motto "ich bin da wernoch") erreichbar. Zusammen mit den ersten drei Oktetts aus dem Verbund, ergibtsich dann als Broadcast-Adresse die 192.168.1.255. So wie in diesem Fall voneth0, können nach gleichem Schema weitere vorhandene Netzwerkadapter (z.B.eth1) konfiguriert werden. Sollen keine statischen IP-Adressen benutzt, sondern derDienst DHCP (ist oft als Serverdienst bei Routern vorhanden) in Anspruch genommenwerden, ist zum entsprechenden Netzwerkadapter in Anführungsstriche dieAbkürzung "DHCP" zu setzen.An dieser Stelle wird definiert, welche Netzwerk-Adapter während der Bootphaseberücksichtigt werden sollen, und zwar in der Reihenfolge wie angegeben.Als voreingestelltes Gateway kommt die IP-Adresse zum Einsatz, die dem Routervergeben wurde.Die unter Punkt 5 gemachten Angaben, werden hier für das Routing gesetzt. Vor derVariable "gateway" ist zu Beginn als Vorzeichen ein Ausrufezeichen gestellt. Diesesmuss entfernt werden, wenn die Einstellungen aktiviert werden sollen.

Anmerkung

Ab ca. mitte Juni 2011 gibt es eine Änderung in der Datei rc.config selbst.Hiervon betroffen ist auch die Netzwerkkonfiguration, was sich damit bemerkbarmacht, dass nach der Grundinstallation mit der Version 2010.05, die obereUmgebung noch Gültigkeit besitzt, aber nach einem System-Update mit pacmannicht mehr; jeder Bootvorgang erhält einen Hinweis zur Netzwerkumgebung, dassdiese Form der Konfiguration abgesagt ist. Die eigentlichen Zusammenhänge wieoben beschrieben bleiben zwar gleich, nur die Zuweisung hat sich geändert. ZurOrientierung folgende neue Formatierung:

#-----------------------------------------------------------------------# NETWORKING#-----------------------------------------------------------------------## HOSTNAME: Hostname of machine. Should also be put in/etc/hosts#HOSTNAME="fasolt"

# Use 'ip addr' or 'ls /sys/class/net/' to see all availableinterfaces.## Wired network setup# - interface: name of device (required)# - address: IP address (leave blank for DHCP)# - netmask: subnet mask (ignored for DHCP)# - gateway: default route (ignored for DHCP)## Static IP example# interface=eth0# address=192.168.0.2# netmask=255.255.255.0# gateway=192.168.0.1## DHCP example# interface=eth0# address=# netmask=# gateway=

interface=eth0address=192.168.1.120netmask=255.255.255.0

Die Arch Linux-Administration

45

Page 56: Archlinux Und Mehr

gateway=192.168.1.10

# Setting this to "yes" will skip network shutdown.# This is required if your root device is on NFS.NETWORK_PERSIST="no"

# Enable these netcfg profiles at boot-up. These are usefulif you happen to# need more advanced network features than the simple networkservice# supports, such as multiple network configurations (ie,laptop users)# - set to 'menu' to present a menu during boot-up (dialogpackage required)# - prefix an entry with a ! to disable it## Network profiles are found in /etc/network.d## This requires the netcfg package##NETWORKS=(main)

Als nächstes wird die Namensauflösung (z.B. für www.archlinux.de) unterstützt. Also dasÜbersetzen von Klartextnamen in die entsprechende IP-Adresse. Die Steuerung dazuerfolgt mit Hilfe der Datei resolv.conf:

nano /etc/resolv.conf

## /etc/resolv.conf#

#serch <yourdomain.tld>#nameserver <ip>

domain nibelungen.localsearch nibelungen.localnameserver 192.168.1.10

# End of file

Das eigene LAN bekommt einen übergeordneten eigenen Namen, der als Domäne(Domain) bezeichnet wird. Diese Domäne beinhaltet alle Rechner, die über dieNetmask zusammen gefasst werden. In unserem Beispiel also maximal 254 Rechner.Zusammen mit dem Domänennamen aus (1), wird ein unvollständiger Rechnernameentsprechend zur Namensauflösung um den Domänennamen zur Suche ergänzt. Ausder Anfrage z.B. an den Rechner sieglinde wird dann sieglinde.nibelungen.localgebildet. Die Suche wird dann auf die eigene Domäne eingeschränkt, was evtl. dieAntwortzeit verkürzt, wenn dieser Rechner nicht gefunden wird.Der Internetprovider betreut in der Regel einen oder mehrere Domain-Name-Server(DNS), um Klartextnamen in notwendige IP-Adressen zu übersetzen. In unseremKonzept erhält der Router bei der automatischen Einwahl vom Internet-Provider allenotwendigen IP-Adressen zurück. Neben der für die eigene eindeutige Erreichbarkeitaus dem Internet, auch die des oder der DNS. Somit wird als Eintrag die IP-Adressedes Routers gewählt, der die Anfragen vom eigenen Rechner entsprechend weiterreicht.

Anmerkung

Die Bearbeitung der Datei resolv.conf ist nur bei der Verwendung vonstatischen IP-Adressen notwendig. Bei der Nutzung von DHCP brauchen keineÄnderungen vorgenommen werden.

Die Arch Linux-Administration

46

Page 57: Archlinux Und Mehr

Die letzte der zu bearbeitenden Dateien ist hosts. Sie muss nicht zwingend geändertwerden und es macht auch keinen Sinn, wenn keine statischen IP-Adressen für dieRechner genutzt werden. Die Datei hosts stellt quasi einen eigenen Namen-Service aufdem eigenen Rechner her, um Klartextnamen in IP-Adressen zu übersetzen. Als Beispielum zu prüfen ob der Mac Rechner (laut Netzwerk-Konzept) im Netz erreichbar ist,bräuchten Sie lediglich

ping fafner

als Kommando einzugeben. Das Betriebssystem schaut als erstes in die Datei hosts, umdie entsprechende IP-Adresse zu ermitteln. Danach würde der Befehl ping Datenpaketean den Rechner mit der IP-Adresse 192.168.1.110 senden und auf die Antwort warten.

Das Format der Datei ist selbsterklärend. Im Prinzip handelt es sich um eine Tabelle,beginnend mit der eigentlichen IP-Adresse, der Domäne und dem Hostnamen als Spalten.Als Domainnamen habe ich mich wieder an dem "Ring der Nibelungen" orientiert, analogzur Datei resolv.conf um dem LAN einen übergeordneten Namen zu vergeben.

Wird die Datei zum ersten mal geöffnet, befindet sich dort der erste Eintrag zumLoopback-Interface (lo). Analog sind die Einträge laut Netzwerk-Konzept hinzugefügt.

nano /etc/hosts

## /etc/hosts: static lookup table for host names#

#<ip-adress> <hostname.domain.org> <hostname>127.0.0.1 localhost.nibelungen.local localhost192.168.1.110 fafner.nibelungen.local fafner192.168.1.120 fasolt.nibelungen.local fasolt192.168.1.130 hagen.nibelungen.local hagen

192.168.1.20 wotan.nibelungen.local wotan# End of file

8.4. Die DiensteMit Dienste (oder auch Daemons genannt) sind Programme gemeint, die nicht unbedingtim Vordergrund mit einer Benutzeroberfläche arbeiten, sondern im Hintergrund tätig sind.Die Wichtigsten für ein Linuxsystem, z.B. zum Protokollieren der Systemergeignisse oderder zeitlichen Steuerung von Aktivitäten, werden schon wärend der Arch Linux-Installationberücksichtigt. Zu finden sind diese namentlich in der Konfigurations-Datei rc.conf in derRubrik Daemons:

nano /etc/rc.conf

## ----------------------------------------------------------------# DAEMONS# ----------------------------------------------------------------## Daemons to start at boot-up (in this order)# - prefix a daemon with a ! to disable it# - prefix a daemon with a @ to start it up in the background#DAEMONS=(syslog-ng network netfs crond)

Alle Dienste, die während der Startphase geladen werden sollen, werden nacheinander in

Die Arch Linux-Administration

47

Page 58: Archlinux Und Mehr

den runden Klammern durch ein Leerzeichen getrennt aufgelistet.

Wie in der Kurzbeschreibung zu lesen, wird ein Dienst deaktiviert, in dem einAusrufezeichen vor dem Namen gesetzt wird. Ein Löschen des Namens hätte den gleichenEffekt, nur wäre für eine spätere Reaktivierung die genaue Schreibweise notwendig, diedann vielleicht nicht mehr vorliegt. Das Ad-Zeichen vor dem Namen bewirkt bei jedemProgramm ein Starten im Hintergrund.

8.5. Die BenutzerverwaltungLinux/Unix ist ein Mehr-Benutzersystem. Den wichtigsten User (root) haben Sie schonwährend der Installation angelegt. Da dieser die absolute Macht über das gesamte Systemhat, sollte er nicht für die alltägliche Arbeit genutzt werden.

Ein neuer Benutzer für die tägliche Arbeit wird mit dem Befehl useradd dem Linux-Systemwie folgt hinzu gefügt:

useradd -m -G users,wheel,audio,video,optical,games,storage,power-s /bin/bash neuerBenutzer

Der Parameter "-m" bewirkt, dass ein Heimatverzeichnis unter /home mit dementsprechenden Benutzernamen angelegt wird. Mit "-G" (bitte Groß- und Kleinschreibungbeachten) wird der Benutzer den entsprechenden Gruppen zugeordnet. Linux/Unixverwaltet Berechtigungen einzelner Benutzer der Einfachheit halber übergeordent mittelsGruppen. Hinter jeder Gruppe liegen Berechtigungen für bestimmte Gegebenheiten, in derRegel die Zugriffsberechtigung für eine bestimmte Hard- und Software und/oder eineradministrativen Tätigkeit.

Tabelle 8.1. Gruppen-Übersicht

Gruppe Kurzbeschreibung

users Standard-Gruppe für jeden Benutzer.

wheel Erweiterte Berechtigung, um zusubstituieren (su), also sich als ein andererBenutzer (einschließlich als root) mit Hilfedes jeweiligen Kennwortesauszugeben/anzumelden. Oder den Befehlsudo für das Auführen von Programmen mitder Hoheit von root zu benutzen.

audio Eine Soundunterstützung erhalten.

video Erweiterte Grafikeigenschaften (2D/3D)nutzen.

optical Zugriff auf optische Laufwerke wie CD/DVDerhalten.

games Spiele benutzen.

storage Zugriff auf Laufwerke wie (externe)Festplatten, USB-Sticks u.s.w.

power Notwendig, um später in einerDesktop-Umgebung als normaler Benutzerden Rechner herunter fahren oder neustarten zu dürfen.

Weitere Gruppen werden dem System ggf. mit dem Installieren von bestimmtenProgrammen hinzugefügt. Funktioniert z.B. eine bestimmte Gegebenheit nicht, sollte

Die Arch Linux-Administration

48

Page 59: Archlinux Und Mehr

überprüft werden, ob der Benutzer der entsprechenden Gruppe zugeordnet wurde.

Das kann auf verschiedenen Wegen funktionieren. Entweder wird der Befehl:

groups

eingebenen, wenn der Benutzer gerade angemeldet ist. Oder die Datei /etc/group wirdgeöffnet, unabhängig davon ob der Benutzer gearde angemeldet ist oder nicht, um sicheine Übersicht zu verschaffen.

Das nachträgliche Hinzufügen eines Benutzers zu einer Gruppe erfolgt mit:

gpasswd -a Benutzer Gruppe

Entfernt wird ein Benutzer aus einer Gruppe mit:

gpasswd -d Benutzer Gruppe

Eine völlig neue Gruppe für eigene Bedürfnisse zu erstellen erledigt der Befehl:

groupadd neueGruppe

Im nächsten Teil übernimmt der Parameter "-s" die Zuordnung einer Shell zum neuenBenutzer, daher folgt dem Parameter das entsprechende Shell-Programm. Sehr weitverbreitet und eigentlich Standard ist die Bourne-Again-Shell, kurz bash. Daher alsFolgeparameter "/bin/bash". Sobald sich der Benutzer am System anmeldet, wird dieseentsprechend geladen.

Und zuguter Letzt der eigentlich neue Benutzername.

Wurde der neue Benutzer erfolgreich angelegt, sollte sofort ein Kennwort vergebenwerden. Hierzu dient der Befehl:

passwd Benutzer

Sämtliche hier beschriebenen administrative Aktionen sind dem root vorbehalten, auchdas Löschen von Benutzern mit:

userdel -r Benutzer

8.6. Der Paketverwalter PacmanUnter Arch Linux arbeitet Pacman quasi als Schweizer Messer, was die Verwaltung derSoftwarepakete betrifft. Softwarepakete werden mit Pacman gesucht, herunter geladen,installiert und bei Bedarf wieder gelöscht. Mit einem Handgriff kann das gesamte ArchLinux-System auf den aktuellen Stand gebracht werden. Bei jeder Installation einesSoftwarepaketes werden Abhängigkeiten berücksichtigt und entsprechend zur Installationvorgeschlagen.

Die Installationspakete werden in Ablagen (Repositories) verwaltet, dabei verhält es sichein wenig wie bei Aschenputtel. Die absolut notwendigen Softwarepakte für ein ArchLinux-Grundsystem befinden sich in der Ablage "Core". Weitere, aktuelle und stabilePakete (z.B. Samba) in der Ablage "Extra". Daneben gibt es noch als Ablage "Unstable"mit Softwarepaketen, die noch in der Erprobung sind. Diese genannten Ablagen werdenvon den Arch Linux-Entwicklern betreut. Zusätzlich gibt es noch einen "Community"Bereich, mit einer Vielzahl von weiteren Paketen, die von als vertrauenswürdigeingestuften Anwendern gepflegt werden.

Die Arch Linux-Administration

49

Page 60: Archlinux Und Mehr

Alle Softwarepakete sind kompiliert und liegen entsprechend den Ablagen sortiert alsArchivdateien auf (gespiegelte) FTP-Servern auf der ganzen Welt bereit. Welche Softwarenun zur Verfügung steht, wird mit Pacman lokal geklärt. Dazu existiert auf dem eigenenRechner eine Datenbank.

Natürlich können Softwarepakete aus anderen Quellen direkt kompiliert und eingesetztwerden. Sofern diese noch nicht vom Arch Linux-Team zur Verfügung gestellt sind, könnenInstallationspakete nach einer APS-Vorgabe (Arch Packaging Standard) selber erstellt undals AUR (Arch Linux User-Community Repository), also der Community-Ablage für andereBenutzer zur Verfügung gestellt werden.

8.6.1. Pacman konfigurierenKonfiguriert wird pacman mit der Datei pacman.conf:

nano /etc/pacman.conf

## /etc/pacman.conf## See the pacman manpage for option directives

## GENERAL OPTIONS#[options]# The following paths are commented out with their default values# listed.# If you wish to use different paths, uncomment and update the# paths.

#RootDir = /#DBPath = /var/lib/pacman/#CacheDir = /var/cache/pacman/pkg/#LogFile = /var/log/pacman.logHoldPkg = pacman glibc

# If upgrades are available for these packages they will be asked# for first

SyncFirst = pacman#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u#XferCommand = /usr/bin/curl -C - %u > %o#CleanMethod = KeepInstalledArchitecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members# of IgnoreGroup

#IgnorePkg =#IgnoreGroup =

NoUpgrade = /etc/rc.conf#NoExtract =

# Misc options (all disabled by default)#UseSyslog#ShowSize#UseDelta#TotalDownload

## REPOSITORIES# - can be defined here or included from another file# - pacman will search repositories in the order defined here# - local/custom mirrors can be added here or in separate

Die Arch Linux-Administration

50

Page 61: Archlinux Und Mehr

# files# - repositories listed first will take precedence when# packages have identical names, regardless of version number## - URLs will have $repo replaced by the name of the current# repo## Repository entries are of the format:# [repo-name]# Server = ServerName# Include = IncludePath## The header [repo-name] is crucial - it must be present and# uncommented to enable the repo.#

# The testing repositories are disabled by default. To enable,# uncomment the repo name header and Include lines. You can add# preferred servers immediately after the header, and they will# be used before the default mirrors.

#[testing]# Add your preferred servers here, they will be used first#Include = /etc/pacman.d/mirrorlist

[core]# Add your preferred servers here, they will be used firstInclude = /etc/pacman.d/mirrorlist

[extra]# Add your preferred servers here, they will be used firstInclude = /etc/pacman.d/mirrorlist

[community]# Add your preferred servers here, they will be used firstInclude = /etc/pacman.d/mirrorlist

# An example of a custom package repository. See the pacman# manpage for tips on creating your own repositories.

#[custom]#Server = file:///home/custompkgs

Die Konfigurationsdatei wird in zwei Bereiche aufgeteilt. Die Hauptoptionen (GeneralOptions) und die Ablageoptionen (Repositories). In den Hauptoptionen wird u.a.beschrieben, welche Dateien (z.B. durch ein komplettes System-Update) nichtaktualisiert (NoUpgrade) werden sollen. Sehr gut zu zeigen an der Zeile, wo die Dateirc.conf ausgeschlossen wird, denn in dieser Datei sind einige schwer erarbeiteteKonfigurationen enthalten, die nicht überschrieben werden sollten.Pacman besitzt einen eigenen FTP-Client, um die Softwarepakete herunter zu laden.Wer allerdings nicht auf wget verzichten möchte, muss dies über die Variable"XFerCommand" steuern: einfach das Rautensymbol vor der vorgeschriebenen Zeileentfernen und schon wird wget eingebunden.In der Beschreibung zu pacman habe ich über die Verwaltung der Softwarepaketegeschrieben. Sämtliche (gespiegelte) Server zu einer Ablage (Core, Extra u.s.w.)werden aktuell in einer Datei lokal aufgelistet. Diese Datei mit dem Namenmirrorlist befindet sich im Verzeichnis /etc/pacman.d und sollte so angepasstwerden, dass die zur Verfügung stehenden Server am besten zu erreichen sind. Dazuwerden entweder die Serverpositionen in der Datei gelöscht oder mit demRautensymbol (#) auskommentiert.

nano /etc/pacman.d/mirrorlist

## $repo: Arch Linux @REPO@ repository#

Die Arch Linux-Administration

51

Page 62: Archlinux Und Mehr

# United States#Server = ftp://ftp.archlinux.org/$repo/os/i686#Server =ftp://ftp.nethat.com/pub/linux/archlinux/$repo/os/i686#Server =ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/i686#Server = ftp://mirrors.unixheads.org/archlinux/$repo/os/i686#Server =ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/==>

==>archlinux/$repo/os/i686#Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/i686#Server =http://mirrors.easynews.com/linux/archlinux/$repo/os/i686#Server = ftp://ftp.ibiblio.org/pub/linux/distributions/==>

==>archlinux/$repo/os/i686#Server = http://holmes.umflint.edu/archlinux/$repo/os/i686

# South America# - Brazil#Server = http://archlinux.c3sl.ufpr.br/$repo/os/i686#Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/i686

# Europe# - Austria#Server =ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/i686# - Belgium#Server =ftp://ftp.belnet.be/mirror/archlinux.org/$repo/os/i686# - Czech Republic#Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/i686# - Estonia#Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/i686# - Finland#Server = ftp://ftp.sixnix.net/pub/archlinux/$repo/os/i686# - France#Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/i686#Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/i686#Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/==>

==>archlinux/$repo/os/i686#Server = http://mir.archlinux.fr/$repo/os/i686#Server =ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/i686# - GermanyServer =ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/==>

==>distributions/archlinux/$repo/os/i686Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/==>

==>$repo/os/i686Server =ftp://ftp.uni-bayreuth.de/pub/linux/archlinux/$repo/==>

==>os/i686Server = ftp://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/i686Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/i686Server = ftp://ftp.archlinuxppc.org/i686/$repo/os/i686# - Great Britain#Server =http://www.mirrorservice.org/sites/ftp.archlinux.org/==>

==>$repo/os/i686# - Greece#Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/i686# - Hungary#Server =ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/==>

==>$repo/os/i686# - Ireland#Server =ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/==>

Die Arch Linux-Administration

52

Page 63: Archlinux Und Mehr

==>os/i686# - Italy#Server =ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/i686# - Netherlands#Server = ftp://ftp.nluug.nl/pub/metalab/distributions/==>

==>archlinux/$repo/os/i686#Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/==>

==>$repo/os/i686# - Poland#Server = ftp://ftp.icm.edu.pl/pub/Linux/sunsite/==>

==>distributions/archlinux/$repo/os/i686#Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/i686# - Portugal#Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/i686# - Romania#Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/==>

==>$repo/os/i686# - Russia#Server = ftp://archlinux.org.ru/pub/archlinux/$repo/os/i686#Server = ftp://mirror.yandex.ru/archlinux/$repo/os/i686#Server = http://archlinux.freeside.ru/$repo/os/i686# - Sweden#Server =ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/i686#Server = ftp://ftp.gigabit.nu/$repo/os/i686# - Switzerland#Server = ftp://archlinux.puzzle.ch/$repo/os/i686# - Turkey#Server = http://server.elsistech.com/archlinux/$repo/os/i686# - Ukraine#Server = ftp://hell.org.ua/archlinux/$repo/os/i686#Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/==>

==>$repo/os/i686

# Asia# - Israel#Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/i686

# Australia#Server = ftp://mirror.pacific.net.au/linux/archlinux/==>

==>$repo/os/i686#Server =ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/i686

Alle nicht kommentierten Server werden von pacman von oben nach unten gelesen,wenn der Vorherige nicht erreichbar ist.

8.6.2. Mit Pacman arbeitenPacman wird von einer Vielzahl von Parametern gesteuert. Die Wichtigsten sind hier ineiner Tabelle zusammen gefasst:

Tabelle 8.2. Kleine Parameter-Übersicht zu Pacman

Parameter Kurzbeschreibung

-Sy Aktualisieren der lokalen Datenbank.

-Ss Nach einer Software suchen.

-S Ein bestimmtes Softwarepaket mit ggf.notwendigen abhängigen Paketeninstallieren.

-Su Ein Update der schon installierten

Die Arch Linux-Administration

53

Page 64: Archlinux Und Mehr

Softwarepakete vornehmen.

-R Ein bestimmtes Softwarepaket entfernen.

-Rs Ein Bestimmtes Softwarepaket zusammenmit abhängigen Paketen entfernen. Dabeiwerden die Abhängigkeiten deinstalliert, dienicht durch andere Softwarepakete benutztwerden.

-Scc Löschen der herunter geladenenPaket-Archive, welche im Verzeichnis/var/cache/pacman/pkg liegen.

Hier einige Beispiele:

1. Systemupdate:

Die Parameter sind kombinierbar. Um also in einem Schritt nicht nur die lokaleSoftwarepaketdatenbank zu aktualisieren, sondern gleich das ganze System mit allenschon installierten Paketen, reicht folgende Eingabe:

pacman -Syu

Anmerkung

Dies ist besonders nach einer neuen Installation von Arch Linux zu empfehlen,wenn die Installation z.B. über eine CD vorgenommen wurde. Da zwischen demVeröffentlichen der Installationsmedien und des Installationszeitpunktes Monatevergehen können, sind evtl. die Software-Pakete auf dem Datenträgerentsprechend alt.

2. Softwarepaket-Installation:

Der Serverdienst samba soll installiert werden, also erst einmal schauen, ob dieser zurVerfügung gestellt wird:

pacman -Ss samba

Was ist passiert? Die Suche in der lokalen Datenbank hat verschiedene Ergebnisseausgegeben. Abhängig vom Ablageort (in diesem Fall "extra" und "community"), wurdenicht nur das zu samba passende Paket angezeigt (samba 3.3.1-1), sondern aucheinige andere Pakete, die für andere Zwecke in Bezug zu samba stehen und vielleichtinteressant sind. In diesem Beispiel ist nur das eigentliche Paket notwendig, daherfolgende Eingabe:

pacman -S samba

Pacman löst dann die Abhängikeiten auf und stellt die für samba notwendigenSoftwarepakete vor (sofern sie noch nicht installiert sind). Wird die Abfrage mit Jbestätigt, werden die Pakete vom Server herunter geladen und installiert.

Anmerkung

In diesem Beispiel war es sehr einfach, da eindeutig. Unter Umständen werdenverschiedene Versionen, bzw. Varianten zu einem Softwarepaket zur Verfügunggestellt. Dann ist eine genaue Angabe des Paketnamens , unter Umständen mitdem gesamten Ablagepfad notwendig:

pacman -S extra/samba 3.3.1-1

Die Arch Linux-Administration

54

Page 65: Archlinux Und Mehr

Um weitere Parameter für andere Funktionen zu pacman zu benutzen, weise ich auf dieMan-Page (also die Linux/Unix interne Beschreibung) zu pacman hin:

man pacman

Anmerkung

Auch pacman selbst wird weiter entwickelt. Daher ist es in einigen Fällennotwendig, dass die bestehenden Datenbanken ebenfalls angepasst werdenmüssen. Sollte also nach einer Aktualisierung von pacman selbst, bei demanschließenden Versuch ein Programm zu installieren, die Prozedur mit einenFehler quittiert werden, reicht i.d.R. das Anpassen der Datenbanken selbst mit:

pacman-db-upgrade

aus.

8.7. Der Bootloader grub2Der Bootloader grub wurde ja schon während der Installation von Arch Linux kurzbehandelt. Da grub aber nicht mehr weiter entwickelt wird, liegt der Schwerpunkt desEntwickler-Teams nun auf grub2.

Auch wenn sich grub2 noch im Beta-Stadium befindet, kann dieser Bootloader schoneingesetzt werden. Insbesondere dann, wenn bestimmte Funktionen benötigen werden,die bei grub fehlen. Wie z.B. die Unterstützung von GUID Partitionstabellen (GPT) (sieheKapitel: Festplatten mit GUID Partitionstabellen (GPT)).

8.7.1. Voraussetzungen für grub2Die Voraussetzungen sind die gleichen, wie für grub auch, sofern keine GUIDPartitionstabelle (GPT) eingesetzt wird. Ist dies der Fall, muss eine eigene Partition in derGröße von ca. einen Megabyte für grub2 vorgesehen werden. Allerdings nur dann, wennein normales BIOS im PC vorhanden ist und keine EFI-Umgebung. Die offiziellen Quellensprechen hier von einer BIOS-Boot-Partition. Wird diese Partition während derGrundinstallation von Arch Linux mit berücksichtigt, kann dies sehr einfach in das eigenePartitionsschema mit eingeflochten werden (siehe Kapitel: Die Festplattenvorbereitung mitHilfe von GPT fdisk (gdisk)).

Grub2 unter einer EFI-Umgebung konnte ich noch nicht testen, um hierzu genaueErgebnisse zu beschreiben.

Die BIOS-Boot-Partition im Nachhinein zu berücksichtigen wird etwas steiniger, davermutlich erst Platz geschaffen werden muss, um noch eine zusätzliche Partition fürgrub2 erstellen zu können.

Hierfür wird vermutlich gparted helfen, welches neben dem Erstellen von Partitionen auchdas Verschieben, Verkleinern und das Vergrößern versteht. Zwei Projekte zu gparted habeich im Kapitel "GPT fdisk - kurz gdisk" erwähnt, wo ich auch das Arbeiten mit gdiskbeschreibe.

In beiden Fällen, also während einer Grundinstallation von Arch Linux oder erst später, istdarauf zu achten, dass der Partitionstyp "ef02" (bei gdisk) gewählt wird, damit grub2 beimeigentlichen installieren diese Partition identifizieren kann.

8.7.2. Die Installation von grub2

Die Arch Linux-Administration

55

Page 66: Archlinux Und Mehr

Anmerkung

Bevor grub2 installiert wird, ist es auf jeden Fall sicherer sich vorher eine Kopie derbisherigen Konfiguration von grub zu erstellen, damit im Falle eines Falles daraufzurück gegriffen werden kann.

Die Installation von grub2 erfolgt als erstes mit:

pacman -S grub2

Um danach den Bootloader selbst, z.B. auf die erste Festplatte im System zu installieren:

grub-install /dev/sda

8.7.3. Die Konfiguration von grub2Obwohl die Konfigurationsdatei grub.cfg im Verzeichnis /boot/grub/ manuellbearbeitet werden kann, wird ein anderer Weg zur Konfiguration dieser Datei empfohlen.Vielmehr gibt es nun Skript- und eine Konfigurations-Datei, die die verschiedenenSysteminterna berücksichtigen, um "intelligent" eine Konfigurationsdatei zu erstellen.

Der Einfluss auf diese Skripte ist eigentlich sehr flexibel, allerdings kommt man nicht drumherum, auch mal manuell direkt in die Konfiguration einzugreifen. Auch wenn es nur dieNeugier ist, die einem dazu verleitet ;-)

Die folgenden Kapitel beschreiben eigentlich, wie ich mich Schritt für Schritt an dieKonfiguration heran gewagt habe, um so die neue Arbeitsweise von grub2 kennen zulernen.

8.7.3.1. Die Grundkonfiguration

Mit der Installation selbst, wird eine schon funktionierende Konfigurationsdatei erstellt.Anhand dieser Datei, werden die ersten Gegebenheiten gezeigt:

nano /boot/grub/grub.cfg

# Config file for GRUB2 - The GNU GRand Unified Bootloader# /boot/grub/grub.cfg

# DEVICE Name CONVERSIONS## Linux Grub# -------------------------# /dev/fd0 (fd0)# /dev/sda (hd0)# /dev/sdb2 (hd1,2)# /dev/sda3 (hd0,3)#

# Timeout for menuset timeout=5

# Set default boot entry as Entry 0set default=0

# (0) Arch Linuxmenuentry "Arch Linux" {set root=(hd0,1)linux /vmlinuz26 root=/dev/sda1 roinitrd /kernel26.img}

Die Arch Linux-Administration

56

Page 67: Archlinux Und Mehr

## (1) Windows#menuentry "Windows" {#set root=(0,3)#chainloader +1#}

Direkt im ersten Menüblock, welcher später beim Starten des Rechners alsvoreingestellter Menüpunkt zu sehen ist, wird definiert, an welcher Stelle derLinux-Kern zu finden ist (die eigene Partition für den Linux-Kern, die später unter/boot eingehangen wird). Dabei wird bei der ersten Festplatte ab Null hoch gezähltund bei der ersten Partition ab eins. Laut diesem Eintrag, würde sich dann derLinux-Kern auf der ersten Festplatte, der ersten Partition (hd0,1) befinden.

Nimmt man sich aber das Partitionsschema der Grundinstallation von Arch Linux alsBeispiel vor Augen, und dann noch unter der Berücksichtung einerBIOS-Boot-Partition (Stichwort: GUID Partitionstabelle (GPT)):

Abbildung 8.2. Partitionsschema mit einer BIOS-Boot-Partition

Dann verschiebt sich das ganze Konstrukt um eine Partition. Die Festplatte bleibtgleich, nur die Partition hat sich geändert. Das Ergebnis wäre dann:

.

.set root=(hd0,2)..

Analog zum Punkt 1, verschiebt sich ebenfalls die Partitionsreihenfolge für dieZuordnung des Root-Verzeichnisses (root=/dev/sda1), zusammen mit derBezeichnung des Linux-Kern-Dateinamens (vmlinuz26):

.

Die Arch Linux-Administration

57

Page 68: Archlinux Und Mehr

.linux /vmlinuz26 root=/dev/sda3 ro..

Sind also alle Laufwerke und Partitionen richtig berücksichtigt, kann im Prinzip mit dieserGrundkonfiguration Arch Linux gebootet werden.

8.7.3.2. Die erweiterte Konfiguration (Auflösung)

Wurde die Grundkonfiguration noch manuell direkt im Editor geändert, wird hier der ersteEinfluss auf die Auflösung von grub2 selbst (grafische Konsole) und "unabhängig" derShell, über die erweiterten Funktionen von grub2 vorgenommen.

Es wird also nicht mehr die eigentliche Konfigurationsdatei grub.cfg direkt bearbeitet,sondern die hierfür vorgesehenen Dateien zusammen mit dem Gebrauch bestimmterProgramme, die als Ergebnis eine neue Grub-Konfiguration bauen.

Um nun allgemein die Auflösung zu verändern, wie es damals unter grub mit demParameter vga (z.B. vga=792) erfolgte, wird die Datei grub im Verzeichnis/etc/default/ bearbeitet. Diese Datei ist generell wichtig, da mit ihr nicht nur dasAussehen von grub2 verändert wird.

Anmerkung

Zur Sicherheit kann ich empfehlen, eine Kopie der bestehenden Datei grub.cfgzu machen, da diese vermutlich schon prima funktioniert.

nano /etc/default/grub

.

.# The resolution used on graphical terminal# note that you can use only modes which your graphic card supportsvia VBE# you can see them in real GRUB with the command 'vbeinfo'GRUB_GFXMODE=1024x768x24

# Uncomment to allow the kernel use the same resolution used bygrubGRUB_GFXPAYLOAD_LINUX=keep..GRUB_CMDLINE_LINUX_DEFAULT="quiet"..

Dieser Parameter setzt die Auflösung und die Farbtiefe für das grafische Terminal vongrub2. Also die Umgebung, die nach Starten des Rechners geladen wird. Ich denke,dass hier das Prinzip nachvollziehbar ist. Sollte es Darstellungsprobleme geben, oderes wird nicht die gewählte Auflösung angezeigt, reicht es in der Regel aus, dieFarbtiefe zu entfernen und nur die Auflösung anzugeben(GRUB_GFXMODE=1024x768).An dieser Stelle wird eine Auflösung dem Kernel übergeben, also wie die spätereShell auszusehen hat. Der Wert "keep" sagt aus, dass hier die Einstellung vomParameter "GRUB_GFXMODE" übernommen wird. Wer eine andere Auflösungwünscht, kann hier unabhängig eine Andere wählen.Sollte der Parameter "GRUB_GFXPAYLOAD_LINUX" nicht vom System unterstütztwerden, können alternativ mit dem Parameter "GRUB_CMDLINE_LINUX_DEFAULT"Übergabewerte dem Linux-Kern übergeben werden (vga), wie es mit grub schonpraktiziert wurde (als Beispiel: GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=792",

Die Arch Linux-Administration

58

Page 69: Archlinux Und Mehr

um die Auflösung auf 1024x768 Bildpunkte zu setzen).

Sind alle Einstellungen vorgenommen worden, muss jetzt die Datei grub.cfg generiertwerden. Dies erfolgt mit dem Programm grub-mkconfig:

grub-mkconfig -o /boot/grub/grub.cfg

Es wird also eine neue Konfiguration generiert und das Ergebnis in die allgemein gültigegrub2-Konfigurationsdatei geschrieben. Das heißt, mit jeder Änderung der"Umgebungsdateien" für grub2, muss dass Programm grub-mkconfig gestartet werden, umdie Änderung entsprechend in die eigentliche Konfigurtaionsdatei(/boot/grub/grub.cfg) einfließen zu lassen.

8.7.3.3. Menüfarben und Hintergrundbilder

Lag der Schwerpunkt im vorherigen Kapitel auf die Darstellungsauflösung, imZusammenspiel mit den grub2-Umgebungsdateien, wird nun über den gleichen WegEinfluss auf die Menüfarben und den Hintergrund genommen:

nano /etc/default/grub

.

.# Uncomment to enable Hidden Menu, and optionally hide the timeoutcount#GRUB_HIDDEN_TIMEOUT=5#GRUB_HIDDEN_TIMEOUT_QUIET=true..# Uncomment and set to the desired menu colors. Used by normal andwallpaper# modes only. Entries specified as foreground/background.GRUB_COLOR_NORMAL="light-blue/black"GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background ora gfxthemeGRUB_BACKGROUND="/path/to/wallpaper"#GRUB_THEME="/path/to/gfxtheme"..

Soll nach dem Rechnerstart überhaupt kein Menü angezeigt werden, hilft hierzu derParameter "GRUB_HIDDEN_TIMEOUT" mit der Dauer in Sekunden, wann dann nachAblauf der Zeit gebootet werden soll. Der Parameter"GRUB_HIDDEN_TIMEOUT_QUIET" mit der Zuweisung "true/false" ermöglichtzudem die Anzeige des gesetzten Countdowns (true).

Ist ein unsichtbares Menü gesetzt, hat dies ebenfalls Einfluss auf eine vorhandeneHintergrundgrafik, sie wird ebenfalls nicht mit angezeigt. Menü und evtl. vorhandeneHintergrundgrafik sind mit der ESC-Taste erreichbar.Mit dem Parameter "GRUB_COLOR_NORMAL" wird die Schrift- undSchrifthintergrundfarbe definiert.

Desweiteren wird über "GRUB_COLOR_HIGHLIGHT" die Farbgebung gesetzt, umeinen ausgewählten Menüpunkt hervorzuheben. Folgende Tabelle zeigt für beideParameter die zur Auswahl stehenden Farben.

Tabelle 8.3. Grub2-Farbtabelle

Farbe

Die Arch Linux-Administration

59

Page 70: Archlinux Und Mehr

black

blue

brown

cyan

dark-grey

green

light-blue

light-cyan

light-green

light-grey

light-magenta

light-red

magenta

red

white

yellow

Für einen Bildschirmhintergrund (Wallpaper) bietet sich der Parameter"GRUB_BACKGROUND" an. Hierbei wird der komplette Pfad samt Dateiname derGrafik angegeben. Die nächste Tabelle zeigt die unterstützten Grafikformate.

Tabelle 8.4. Grub2-Grafikformate

Grafikformate

PNG

JPG

JPEG

TGA

Die Grafik sollte sich an die gesetzte Auflösung mit Hilfe des Parameters"GRUB_GFXMODE" (z.B. 1024x768x24) orientieren.

Das folgende Beispiel verdeutlicht die oben aufgeführten Zusammenhänge.

1. Geplant ist ein Menü zusammen mit einer Hintergrundgrafik. Daher werden dieParameter "GRUB_HIDDEN_TIMEOUT" und "GRUB_HIDDEN_TIMEOUT_QUIET"kommentiert, das Menü soll sofort erscheinen.

.

.# Uncomment to enable Hidden Menu, and optionally hide thetimeout count#GRUB_HIDDEN_TIMEOUT=5#GRUB_HIDDEN_TIMEOUT_QUIET=true..

2. Da das Hintergrundbild einen grauen Hintergrund hat, werden die Schriftfarben mit denParametern "GRUB_COLOR_NORMAL" und "GRUB_COLOR_HIGHLIGHT" wie folgtbelegt.

.

Die Arch Linux-Administration

60

Page 71: Archlinux Und Mehr

.# Uncomment and set to the desired menu colors. Used by normaland wallpaper# modes only. Entries specified as foreground/background.GRUB_COLOR_NORMAL="white/black"GRUB_COLOR_HIGHLIGHT="black/black"..

Bedingt durch den Einsatz einer Hintergrundgrafik im Zusammenspiel mit meinemTestsystem, wird der Text-Hintergrund (black) nicht berücksichtigt. Die Textfarbe istweiß, der selektierte Menüpunkttext wird schwarz dargestellt.

3. Was jetzt fehlt, ist die Hintergrundgrafik. Der Ort der Datei ist eigentlich egal. In meinemBeispiel habe ich diese Datei (al_1024_768.png) im Verzeichnis wallpaper imgrub2-Verzeichnis abgelegt.

.

.# Uncomment one of them for the gfx desired, a image backgroundor a gfxthemeGRUB_BACKGROUND="/boot/grub/wallpaper/al_1024_768.png"#GRUB_THEME="/path/to/gfxtheme"..

4. Zum Abschluss muss jetzt die Konfigurationsdatei mit:

grub-mkconfig -o /boot/grub/grub.cfg

generiert werden. Das Beispiel sollte dann nach einem Neustart wie folgt aussehen.

Abbildung 8.3. grub2 Boot-Menü mit Hintergrundbild

Die Arch Linux-Administration

61

Page 72: Archlinux Und Mehr

8.7.3.4. Eigene Menüeinträge

Wurde in den vorherigen Kapiteln Schritt für Schritt das Aussehen verändert, und dieMenüeinträge ohne eigenen Einfluss über die Skripte erstellt, sind manchmal eigeneMenüeinträge z.B. für bestimmte Einflüsse in das Bootverhalten von Arch Linux notwendig.

Die Skripte, die die eigene Arch Linux Umgebung ermitteln, befinden sich im Verzeichnis/etc/grub.d. Für eigene Menüeinträge ist die Datei 40_custom vorgesehen. Um jetztkonforme Einträge zu erhalten, ohne jetzt selbst alle wichtigen Daten zu ermitteln, bedientman sich am einfachsten der schon vorhandenen grub2-Konfigurationsdatei als Vorlageund fügt deren Inhalt an die existierenden Datei 40_custom an. Danach werden alle nichtbenötigten Passagen entfernt, bis nur noch die eigenen Menüeinträge vorliegen. ImFolgenden die Einzelschritte:

1. Anfügen der bestehenden grub2-Konfigurationsdatei an die Datei 40_custom:

cat /boot/grub/grub.cfg >> /etc/grub.d/40_custom

2. Anpassen der Datei bis nur noch die eigenen Einträge vorhanden sind. DieBoot-Menüeinträge werden durch das Skript 10_linux erstellt und in dergrub2-Konfigurationsdatei entsprechend ausgewiesen. Somit sollten die Menüeinträgeschnell zu finden sein, um daraus sein eigenen Menüeintrag zu erstellen:

nano /etc/grub.d/40_custom

#!/bin/shexec tail -n +3 $0# This file provides an easy way to add custom menu entries.Simply type the

Die Arch Linux-Administration

62

Page 73: Archlinux Und Mehr

# menu entries you want to add after this comment. Be carefulnot to change# the 'exec tail' line above.## DO NOT EDIT THIS FILE## It is automatically generated by grub-mkconfig usingtemplates# from /etc/grub.d and settings from /etc/default/grub#

### BEGIN /etc/grub.d/40_custom ###menuentry 'Arch Linux (Shell)' --class archlinux --classgnu-linux --class gnu --class os {load_videoset gfxpayload=keepinsmod part_gptinsmod ext2set root='(hd0,gpt2)'search --no-floppy --fs-uuid --set=root0918dec5-f69c-4237-a282-ce36716335a4echo 'Loading Linux vmlinuz26 ...'linux /vmlinuz26root=/dev/disk/by-uuid/dd07a651-18bf-4d38-b9de-987297bdadc4 ro3echo 'Loading initial ramdisk ...'initrd /kernel26.img}### END /etc/grub.d/40_custom ###

An diese Stelle wurde der kopierte Eintrag um die eigene Bezeichnung "ArchLinux (Shell)" des Menüeintrages geändert, der auch später im grub2-Menü zusehen ist.Hier in diesem Beispiel gibt es eine kleine Ergänzung zur Bekanntmachung,welche Partition die Root-Partition ist. Nämlich der zu nutzende Runlevel (3) fürden Init-Prozess. Dieser Einträg hat an dieser Stelle eine höhere Priorität, als diegetroffene Definition in der Datei inittab, um so ggf. grafische Login-Managerzu umgehen (siehe Kapitel: Login-Manager - Finialisierung).

8.7.3.5. Zusammenfassung

Zusammenfassend sind folgende Zusammenhänge gültig:

• Die eigentliche Konfigurationsdatei für grub2 lautet grub.cfg und liegt im Verzeichnis/boot/grub. Sie sollte nicht direkt bearbeitet werden, weil mit jeder Aktion mit:

grub-mkconfig -o /boot/grub/grub.cfg

diese ohne Rückfragen überschrieben wird.

• Für eine übergeordnete Konfiguration dient die Datei grub im Verzeichnis/etc/default. Alle hier vorhandenen Parameter haben Einfluss auf die gesamteKonfiguration. Einschließlich etwaige Parameter für Menüeinträge.

• Ist der Wunsch vorhanden individuelle Menüeinträge zu definieren, bedient man sich derSteuerung über Skripte im Verzeichnis /etc/grub.d, die im eigentlichen Sinn diegrub2-Konfigurationsinhalte bestimmen und alle Parameter aus der Datei grubberücksichtigen.

Für eigene Zwecke, um z.B. das Bootverhalten mit bestimmte Menüeinträge zu

Die Arch Linux-Administration

63

Page 74: Archlinux Und Mehr

beeinflussen, die auch nicht durch die allgemeinen Konfigurationsmitteln überschriebenwerden, steht die Datei 40_custom zur Verfügung.

Anmerkung

Damit spätere Aktualisierungen von grub2 die Skriptdatei 40_custom nichtüberschreiben, ist es hilfreich diese vom Update-Lauf auszuklammern. Diesgeschieht am einfachsten, indem man in der pacman-Konfiguration/etc/pacman.conf den kompletten Pfad samt Datei (/etc/grub.d/40_custom)dem Parameter "NoUpgrade" zuweist.

8.8. Die SystemzeitDie Zeit in einem System wird eigentlich kaum wahr genommen. Spielt sie während derInstallation eher eine kleinere Rolle, ist ihre Abhängigkeit bei verschiedenenServer-Diensten (z.B. bei Mail-Servern, um wichtige Zeitstempel zu setzen) um so größer.

Unter Linux selbst wird zudem zwischen der Systemzeit (für die Verwendung in dergesamten Linux-Umgebung) und der Hardware-Uhr im PC (BIOS) unterschieden. Mitjedem Boot-Vorgang von Linux, wird die Systemzeit mit der PC-Uhr abgeglichen, umausschließlich mit ihr zu arbeiten.

Linux/Unix-Systeme ohne eine Parallelinstallation von Windows verwenden UTC, also diekoordinierte Weltzeit, die auch als Greenwich Mean Time bekannt ist und quasi denzeitlichen Nullpunkt der Weltzeit darstellt. Bei Verwendung von UTC, muss die Uhrzeit desRechners (BIOS) auf die von Greenwich gestellt werden. Für Deutschland abhängig vonWinterzeit (Zentraler-Europäischen-Zeit, CET) -1 oder Sommerzeit(Zentraler-Europäischen-Sommer-Zeit, CEST) -2 Stunden von der aktuellen Uhrzeit.

Die Uhrzeit z.B. für Dateien und Verzeichnisse wird dann nach UTC gespeichert unddynamisch mit Hilfe der angegebenen Zeitzone (+1 oder +2 Stunden) errechnet undangezeigt. Die Zeitzone zusammen mit der Interpretation der Hardware-Uhr selbst, wird inder Konfigurationsdatei rc.conf behandelt und im Kapitel "Die deutsche Lokalisierung mitUTF-8 Unterstützung" beschrieben.

8.8.1. Setzen der Uhrzeit mit dem Befehl dateMit dem Befehl date wird die Systemzeit (einschließlich der BIOS-Uhr vom PC) gesetzt.Wird laut Konfiguration auf UTC gebaut, reicht es aus, die aktuelle Uhrzeit als Vorlageohne Abzug von Sommerzeit- oder Winterzeit-Stunden zu nutzen. Automatisch wird danndie Systemzeit und die PC-Uhr nach UTC (also abzüglich der Sommer- oderWinterzeit-Stunden) gespeichert. Die Parameter-Kettenelemente zum Befehl date, um dieUhrzeit und das Datum in einem Schritt zu stellen lauten wie folgt: MM=Monat, DD=Tag,hh=Stunde, mm=Minute und YYYY=Jahr. Und das alles zusammen gesetzt in genau dieseReihenfolge (MMDDhhmmYYYY), würde als Beispiel mit:

date 122320002010

das Datum auf den 23.12.2010 und die Uhrzeit auf 20:00 Uhr stellen. Die Eingabe vondate ohne die Angabe von Parametern gibt die Systemzeit aus; laut dem vorherigenBeispiel:

Do 23. Dez 20:00:00 CET 2010

Mit der Eingabe von:

date -u

Die Arch Linux-Administration

64

Page 75: Archlinux Und Mehr

wird wiederum die tatsächliche (BIOS) Uhrzeit nach UTC zusammen mit dem Datumangezeigt:

Do 23. Dez 19:00:00 CET 2010

8.8.2. Setzen der Uhrzeit mit dem Befehl ntpdateUm sehr genau die Uhrzeit zu stellen, kann die Hilfe eines Zeitservers in Anspruchnehmen. Hierbei wird mit Hilfe des Befehls ntpdate auf einen Zeitserver über das NetworkTime Protocol (NTP) zugegriffen, der dann fast atomgenau die Uhrzeit und das Datumzurück gibt.

Dabei reicht es völlig aus, eine einzelne Adresse eines bestimmten Zeitservers dem Befehlntpdate als Parameter mit zu geben, oder die Adresse eines sogenannten NTP-Pools. DerNTP-Pool bildet hierbei einen Zusammenschluss von verschiedenen Zeitservern, umautomatisch die Zugriffslast von tausenden von Zeitsuchenden zu verteilen. Auf derNTP-Pool-Projektseite (http://www.pool.ntp.org) besteht die Möglichkeit, für seine Regiondie passende Pool-Adresse zu ermitteln. Die Eingabe von:

ntpdate 0.de.pool.ntp.org

würde auf einen Zeitserver-Pool aus Deutschland zugreifen, um die genauen Zeitdaten zuermitteln.

Voraussetzung ist allerdings, dass auch ntpdate installiert ist.

Anmerkung

Das NTP ist evtl. bei der Konfiguration einer Firewall (Kapitel: iptables) zuberücksichtigen, damit auch der Zeitserver erreichbar ist.

8.8.2.1. Die Installation von ntpdate

Das Programm ntpdate ist im Paket ntp enthalten. Hierzu gehört auch der Dienst ntpd, umu.a. einen eigenen Zeitserver zur Verfügung zu stellen.

Installiert wird das Paket mit:

pacman -S ntp

8.9. Der Umgang mit FestplattenDie Kapitelüberschrift hört sich jetzt vielleicht etwas seltsam an. Wird dies ja explizietschon irgend wie automatisch mit in der Grundinstallation von Arch Linux behandelt undauch beim Aufbau eines einfachen Datei-Servers kommt man an das Thema nicht vorbei.

In den nächsten Kapiteln habe ich aber verschiedene Themen zusammen getragen, die sonicht direkt wärend einer Grundinstallation von Arch Linux erkennbar sind, aber imNormalbetrieb oder bei weiteren Ergänzungen nützlich sind.

8.9.1. Festplatten mit GUID Partitionstabellen (GPT)Beim Apple Mac schon normaler Altag, bei Windows noch ein wenig steinig und mit Linuxnatürlich ebenfalls möglich, ist der Einsatz der GUID Partitionstabellen (GPT). Ich bin aufdas Thema gekommen, da ich an die Grenzen der klassischen Master-Boot-Record (MBR)und zugehörigen Partitionstabellen bei Festplatten größer zwei Terabyte gestoßen bin.Denn genau dieser Fall (MBR) erlaubt es Festplatten bis maximal zwei Terabyte zuverwalten. Alles darüber hinaus muss mit einer Alternative organisiert werden und die heißt

Die Arch Linux-Administration

65

Page 76: Archlinux Und Mehr

für mich GPT als Standard.

Dieser Umstieg hat aber auch zwei Seiten.

• Obwohl GPT BIOS-kompatibel sind, also mit aktuellen PCs genutzt werden können, gibtes evtl. Probleme Datenträger mit GPT als Boot-Laufwerk zu nutzen. Insbesondere fürWindows werden hier die Voraussetzungen nach oben geschraubt. Wird doch ein 64-BitWindows (Vista, 7 oder die Server-Varianten) mit einer Hardware unter der Leitung einerEFI-Umgebung (Kein Standard-BIOS) vorausgesetzt. Worauf ich hinaus möchte ist,dass ein eventueller Parallbetrieb mit Windows im Zusammenspiel mit GPT dann genaugeplant sein sollte. Windows unterstützt aber von Haus aus auch als 32 Bit Variante mitGPT versehene Festplatten, um zumindest mit ihnen als Datenträger arbeiten zukönnen.

Ja und der Bootloader grub kommt völlig ins Schleudern, da er GPT nicht unterstützt,sofern Festplatten mit GPT zum Einsatz kommen, von denen auch gebootet werden soll.Hier gilt es dann ebenfalls direkt auf grub2 umzusteigen, was ebenfalls mit einigenSteinchen auf dem Weg versehen ist, da grub2 noch nicht als Bootloader wärend derGrundinstallation von Arch Linux angeboten wird. Hierbei gilt es dann einigeSonderschritte einzuplannen, die ich gesondert in einem separaten Kapitel alsErgänzung (siehe Kapitel: Ergänzungen zur Grundinstallation von Arch Linux)beschreibe.

• GPT können also mit Festplatten jenseits der Zwei-Terabyte-Grenze (einschließlich mit4096 Byte große Sektoren) umgehen und sind somit schon einmal zukunftssicher. Dasheißt natürlich nicht, dass kleinere Festplatten-Kapazitäten von den Vorteilenausgeschlossen sind. Dann wird das Sonderspiel mit klassischen primären underweiterten Partitionen Dank der Struktur von GPT aufgehoben, es können maximal 128primäre Partitionen pro Festplatte angelegt werden. Und die gesamte GPT-Struktur istauf der Festplatte gespiegelt (primäre und sekundäre GPT), was das Rekonstruierenvon fehlerhaften Einträgen erleichtert. Die Standard-Dateisysteme (z.B. ext2, ext3,ext4 u.s.w.) werden weiterhin unterstützt.

Anmerkung

Einen Artikel zum Thema GUID Partitionstabellen, mit mehr technischenHintergründen, kann man bei Wikipedia[http://de.wikipedia.org/wiki/GUID_Partition_Table] finden.

8.9.1.1. GPT fdisk - kurz gdisk

Aktuell gibt es wenige Werkzeuge, die zum Erstellen von GUID Partitionstabellen (GPT)geeignet sind. Da wäre parted zu nennen, das auch mit auf den Installations-Medien vonArch Linux zu finden ist. Natürlich kann auch die grafische Variante von parted eingesetztwerden, die z.B. auf zwei unabhängige Projekte (Parted Magic [http://partedmagic.com]und Gnome Partition Editor [http://www.gparted.org/]) mit Bootmedien zu finden ist.

Parted funktioniert prima, ist aber aus meiner Sicht ein wenig zu sperrig in der Bedienung.Daher habe ich mich auf GPT fdisk (gdisk) verstanden. Nicht nur, dass es von derBedienung her sehr an fdisk erinnert und daher für viele Anwender nicht fremd sein wird.Es hat aus meiner Sicht den Vorteil, dass auch im Nachhinein Festplatten mit gdiskkonvertiert werden können. Die Konvertierung selbst geschieht mit der Übernahme derbestehenden Daten. Generell muss ich aber erwähnen, dass dies mit Vorsicht zu genießenist, denn in einen von drei Fällen ging dies bei mir schief.

Anmerkung

Daher hier ein Hinweis von mir, Vorsicht walten zu lassen. Denn jeder Eingriff indie Partitionsstruktur löscht Daten, daher eigene Daten vorher sichern bevor etwas

Die Arch Linux-Administration

66

Page 77: Archlinux Und Mehr

verloren geht.

Fdisk oder cfdisk, bestimmt aus der Grundinstallation von Arch Linux bekannt, könnennicht mit GPT umgehen. Auch wird gdisk (noch) nicht auf den Arch LinuxInstallationsmedien berücksichtigt, sofern man direkt wärend einer Arch LinuxGrundinstallation mit gfdisk arbeiten möchte. Dann kommt man nicht an derNetinstall-Variante von Arch Linux vorbei, weil gdisk wärend der Installation aus dem Netznachgereicht werden muss.

8.9.1.2. Die Installation von gdisk

Die Installation von gdisk erfolgt mit:

pacman -S gdisk

8.9.1.3. Das Arbeiten mit gdisk

Das Anlegen der GUID Partitionstabellen (GPT) mit gdisk geschieht mit der Übergabe desentsprechenden Gerätenamens der Festplatte, z.B. mit:

gdisk /dev/sda

Gleich zu Beginn wird automatisch auf vorhandene Partitionstabellen hin geprüft. Wird einMaster-Boot-Record (MBR) einschließlich vorhandener Partitionen gefunden, kann sofortmit der Eingabe von w ein Konvertierungsvorgang gestartet werden (Hinweise hierzu sindim Kapitel GPT fdisk - kurz gdisk aufgeführt).

Eine Übersicht der unterstützten Tastatur-Kommandos erfolgt u.a. mit der Eingabe des ?.

Abbildung 8.4. gdisk - Kommandoliste

Die Arch Linux-Administration

67

Page 78: Archlinux Und Mehr

Im Prinzip ist das Erstellen der GPT zusammen mit den Partitionen mit wenigenKommandos erledigt. Alle Vorgänge können komplett durchgeführt werden, ohne soforteinen Einfluss auf die Festplatte zu nehmen. Erst durch den finalen Abschluss mit derEingabe des Kommandos w, werden alle Vorgänge auf den Datenträger geschrieben.

Im Folgenden erstelle ich als Beispiel eine GPT zusammen mit vier primären Partitionen,unter der Berücksichtigung des Sektor-Alignments für Festplatten, die intern mit 4096Bytes pro Sektor arbeiten:

1. Als erstes wird eine leere GPT mit dem Eingabe-Kommando o erstellt.

2. Für eine Übersicht der erstellten GPT gilt das Kommando p.

Besonders interessant ist der Hinweis, dass das Sektor-Alignment ab dem Sektor2048 erfolgt. Dies ist der Standardwert von gdisk. Wer einen anderen Wert bevorzugt,muss dazu in das Experten-Menü mit dem Kommando x springen, um dort denAlignment-Wert mit dem Kommando l zu ändern.

Ich habe gute Erfahrungen mit diesem Wert (2048) gesammelt, zumal dieFestplattenhersteller ebenfalls diesen Wert bevorzugen. Daher nehme ich keineÄnderung vor.

3. Die folgenden Schritte wiederholen sich enstprechend der Anzahl der zu erstellendenPartitionen. In meinem Beispiel also vier mal. Vorschlagswerte von gdisk sind einfachmit der Enter-Taste zu übernehmen.

1. Eine neue Partition wird mit dem Kommando n erstellt.

Die fortlaufende Partitionsnummer wird automatisch von gdisk vorgeschlagen.

2. Dann wird nach dem Start-Sektor gefragt. Am Anfang wird zwar der Start-Sektormit 34 vorgegeben, eine Plausibilitätsprüfung zum definierten Sektor-Alignment(2048) wird aber erst nach einer Bestätigung mit der Enter-Taste automatischberücksichtigt. Der eingegebene Start-Wert wird dann laut Alignment-Definitiongeändert. Natürlich kann auch direkt der Wert mit 2048 eingegeben werden.

Ansonsten kann ich mit jeder nächsten Partition empfehlen, den Vorschlagswertvon gdisk zu übernehmen.

3. Der End-Sektor braucht nicht in der Sektor-Größe eingegeben zu werden. ZumGlück funktioniert die Eingabe eines Wertes zusammen mit der Einheit in Kilobyte(k), Megabyte (m), Gigabyte (g), Terabyte (t) oder Petabyte (p). Zu beachten ist,dass vor dem Wert zusammen mit der Einheit ein Pluszeichen vorangestellt wird,um gdisk mitzuteilen, dass die angegebene Größe angefügt werden soll. Hier alsBeispiel +2g, um eine zwei Gigabyte große Partition zu erstellen.

Um bei der letzten Partition, den restlichen zur Verfügung stehenden Platz derFestplatte in Anspruch nehmen zu können, reicht die einfache Übernahme desVorschlagwertes.

4. Zur bestimmung des Partitionstyps, wird hier ebenfalls ein Vorschlag unterbreitet.Gängig sind die Werte 0700 (Linux) und 8200 (Linux Swap). Für eineBIOS-Boot-Partition (siehe Kapitel: Der Bootloader grub2) der Wert ef02. EineListe weiterer Typen wird mit dem Kommando l an dieser Stelle ausgegeben.

4. Sind alle Partitionen angelegt, kann ich einen erneuten Überblick mit dem Kommando

Die Arch Linux-Administration

68

Page 79: Archlinux Und Mehr

p empfehlen.

Abbildung 8.5. gdisk - Partitionen

Sollte sich ein Fehler eingeschlichen haben, kann die entsprechende Partition mit demKommando d wieder gelöscht werden. Um allerdings bei Größenänderungen keineLücken zu hinterlassen, sollten erst alle Folgepartitionen einschließlich der betroffenenPartition gelöscht werden, um dann wieder nahtlos von vorne zu beginnen.

5. Das finale Schreiben der gewünschten Struktur, erfolgt mit dem Kommando w.

6. Mit dem Kommando q wird gdisk verlassen.

Anmerkung

Bedingt durch den Generationswechsel der Festplatten mit 4096 Bytes pro Sektor,setzen einige Hersteller auf einen Kompatibilitätsmodus, um Programme weiterhin512 Bytes vorzugaukeln. Obwohl intern mit 4096 Bytes gearbeitet wird. Daherzeigt gdisk in diesem Fall ebenfalls 512 Bytes pro Sektor in der Übersicht mit demKommando p an.

8.9.2. Der Einsatz von DateisystemenWurden die Partitionen mit cfdisk, fdisk oder gdisk angelegt, ist es wichtig diese mit demgewünschten Dateisystem zu formatieren. Es werden einige Dateisysteme angeboten,aber wie ich es schon zur Grundinstallation erwähnt habe, sind die Second- undThird-Extended-Filesysteme (Ext2 und Ext3) bzw. das Fourth-Extended-Filesystem(Ext4) die Gebräuchslichsten.

Eine Formatierung erfolgt ausschließlich im nicht eingehangenen Zustand (Beispiel:

Die Arch Linux-Administration

69

Page 80: Archlinux Und Mehr

umount /dev/sdb1). Die folgende Tabelle zeigt einige Beipiele auf, wobei die eingesetztenParameter untereinander funktionieren:

Tabelle 8.5. Dateisystem-Übersicht

Befehl Kurzbeschreibung

mkfs.ext2 -c /dev/sda1 Formatiert die erste Partition des erstenLaufwerkes mit dem ext2 Dateisystem. DerParameter -c aktiviert die vorherige Prüfungdes Datenträgers auf schlechteDatenblöcke.

mkfs.ext3 /dev/sda1 Formatiert die erste Partition des erstenLaufwerkes mit dem ext3 Dateisystem undbindet die Nutzung eines Journales gleichmit ein.

mkfs.ext4 /dev/sda1 Formatiert die erste Partition des erstenLaufwerkes mit der Weiterentwicklung vonext3, dem ext4 Dateisystem und bindetdie Nutzung eines Journales gleich mit ein.

mkfs.ext4 -T largefile4 /dev/sda1 Formatiert die erste Partition des erstenLaufwerkes mit dem ext4 Dateisystem.Obwohl mkfs.ext(3/4) schon abhängig derPartitionsgröße optimiert an denEinstellungen schraubt, erzwingt derParameter -T zusammen mit der Angabe"largefile4" eine Optimierung zu Gunstenvon überwiegend großen Dateien (vierMegabyte), die sich später auf demDatenträger befinden werden. Die Angabe"largefile" zum Parameter -T, gehtdurchschnittlich von einen Megabyte großenDateien aus.

Anmerkung

Werden die Laufwerke später in der fstab-Datei berücksichtigt, ist ebenfalls daraufzu achten, das entsprechende Dateisystem mit anzugeben (siehe Kapitel: UUIDsin der Datei fstab zur Veranschauung).

8.9.3. Das Arbeiten mit UUIDsUniversally Unique Identifier kurz UUID ist ein Standard, um eine Eindeutigkeit inverschiedenen Bereichen herzustellen. Insbesondere bei der Zuordnung von Festplattenund Partitionen ist der Einsatz einfach nachvollziehbar.

Sind z.B. im System zwei Festplatten-Controller unterschiedlicher Typen und/oderHersteller im Betrieb, kann vor und wärend des Bootvorganges nicht bestimmt werden,welcher Treiber zum passenden Controller zuerst geladen werden soll.

Der Effekt ist, dass wärend einer Installation /dev/sda1 als Gerätenamen zwar zurgerade gewählten Partition gehört, dann aber beim nächsten Booten der Festplatte amanderen Controller zugewiesen wird, und das Ganze im zufälligen Wechsel mit jedemneuen Bootvorgang. Hierbei würde Linux im unglücklichsten Fall nicht mehr dieSystempartition finden können und den Boot-Vorgang mit einem Fehler quittieren. Manmüsste also in diesem konkreten Beispiel so oft erneut booten, bis dieHardware-Erkennung die ursprüngliche Controller-Reihenfolge und somit das Laden des

Die Arch Linux-Administration

70

Page 81: Archlinux Und Mehr

passenden Treibers trifft.

Mit Hilfe der UUIDs bekommt jede Partition einmalig eine eindeutige unabhängigetechnische Identifikation errechnet (z.B.UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816). Diese Identität ist einmalig vergebenund hilft genau bei Problemen, wie ich es beim Beispiel mit den unterschiedlichenFestplatten-Controllern selber erfahren habe.

Die UUIDs zu Partitionen lassen sich mit dem Befehl blkid ausgeben:

blkid

Analog zum Installationbeispiel aus der Arch Linux Grundinstallation, zeigt die folgendeAbbildung, was genau der Befehl ausgibt.

Abbildung 8.6. UUIDs von Partitionen

Sehr schön zu sehen ist die Gegenüberstellung von Geräteschreibweise und passenderUUID. Wie geschrieben, sind UUIDs einmalig. Alle hier gezeigten Beispiele, dürfen sichalso nicht mit Ihren eigenen Ausgaben wiederholen.

Der Einsatz der UUIDs sollte entsprechend konsequent in allen Konfigurations-Dateienvorgenommen werden, wo geziehlt auf Partitionen einfluss genommen wird. Damit dieArbeit nicht ganz so umständlich wird, also vorher das Abschreiben der UUIDs auf einenZettel notwendig ist, kann die Ausgabe von blkid anstelle auf dem Bildschirm auch direktan die jeweilge Ziel-Datei "angefügt" werden.

Z.B. mit:

blkid >> /etc/fstab

wird die Ausgabe an die Datei fstab angefügt. Man braucht also nur noch im Editor dieUUIDs zu kopieren und an passender Stelle einzufügen.

8.9.3.1. UUIDs in der Datei fstab

Die Datei fstab ist in der Hinsicht wichtig, da mit ihr während der Boot-Phase alleLaufwerke und Partitionen in das System eingebunden werden. Für den Vergleich,zwischen der Geräte- und UUID-Schreibweise, habe ich im folgenden Beispiel die "alten"Einträge stehen gelassen, aber dafür auskommentiert.

## /etc/fstab: static file system information## <file system> <dir> <type> <options> <dump> <pass>none /dev/pts devpts defaults 0 0none /dev/shm tmpfs defaults 0 0

/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 0 0/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0

#/dev/sda1 /boot ext2 defaults 0 1UUID=20a01a55-0c58-4a14-a5eb-d7bb3b3d9894 /boot ext2 defaults 0 1

Die Arch Linux-Administration

71

Page 82: Archlinux Und Mehr

#/dev/sda2 / ext3 defaults 0 1UUID=26376b5f-3af8-472e-99fb-e85887694026 / ext4 defaults 0 1

#/dev/sda3 swap swap defaults 0 0UUID=d3f95e73-ec00-4b1d-9f99-3e6a618cfa7f swap swap defaults 0 0

#/dev/sda4 /home ext3 defaults 0 1UUID=fdb9d5b4-0414-4358-987c-aec1d6ea00dd / ext4 defaults 0 1

8.9.3.2. UUIDs in der Konfiguration von grub und grub2

Der Bootloader grub selbst kann ebenfalls mit UUIDs umgehen. In der folgendenKonfiguationsdatei menu.lst von grub, ist der Einsatz gut zu erkennen. Wie imvorherigen Kapitel lasse ich beide Schreibweisen stehen, kommentiere aber dieGeräteschreibweise aus.

# (0) Archlinuxtitle Archlinuxroot (hd0,0)#kernel /vmlinuz26 root=/dev/sda2 vga=775 rokernel /vmlinuz26 root=/dev/disk/by-uuid/==>

==>26376b5f-3af8-472e-99fb-e85887694026 vga=775 roinitrd /kernel26.img

Bei grub2 wird automatisch die Unterstützung von UUIDs mit berücksichtigt. Eine manuelleAnpassung ist nur in Ausnahmefällen notwendig.

Die Arch Linux-Administration

72

Page 83: Archlinux Und Mehr

Teil III. Anwendungsbereiche

Page 84: Archlinux Und Mehr

Inhaltsverzeichnis9. Der eigene Arbeitsplatzrechner ..................................................................... 75

9.1. X.org ........................................................................................ 759.1.1. Die Installation von X.org ........................................................ 759.1.2. Die Konfiguration der X.org-Umgebung .................................... 789.1.3. Stapellauf .............................................................................. 819.2. Die Desktop-Umgebung ............................................................. 829.2.1. Die Gnome-Installation ........................................................... 829.2.2. Die KDE-Installation ............................................................... 839.2.3. Die Xfce-Installation ................................................................ 849.3. Starten der Desktop-Umgebungen ............................................. 859.3.1. startx ..................................................................................... 869.3.2. Login-Manager ....................................................................... 87

10. Ein einfacher Dateiserver ............................................................................ 9110.1. Die Serverausstattung ............................................................. 9110.1.1. Eine Festplatte im System ..................................................... 9110.1.2. Mehrere Festplatten im System ............................................. 9210.2. Die notwendigen und hilfreichen Softwarepakete ....................... 95

74

Page 85: Archlinux Und Mehr

Kapitel 9. Der eigeneArbeitsplatzrechner

Ist die Installation von Arch Linux abgeschlossen, stehen nun verschiedeneWege frei zur Verfügung. Einerseits weiter zu machen, um evtl. einen Datei-,Web- oder Mail-Server auf Shell-Ebene zu bauen oder für dieses Kapitel wichtigfür die tägliche Arbeit lieber mit einer grafischen Desktop-Umgebung zuarbeiten.

Arch Linux stellt keine Vorgaben auf. Es liegt einem völlig frei, ob späterGnome, KDE oder eine andere Desktop-Umgebung Einsatz findet.

In den folgenden Kapiteln möchte ich beschreiben, welche Bausteine notwendigsind, um ein grafisches Fensterwerk für den eigenen Arbeitsplatzrechneraufzubauen. Dabei ist es Hilfreich die Kapitel in der Reihenfolge zuberücksichtigen, wie sie hier zur Verfügung stehen.

9.1. X.orgAktuell als Quasistandard, bildet das X-Window-System (XWS) der X.orgFoundation die Grundlage für eine grafische Benutzeroberfläche. Wer noch niedirekt mit dem XWS zu tun hatte, und nun die Installation von Arch Linux hintersich gebracht hat, wird vermutlich direkt das Bild von Gnome, KDE oder eineranderen Benutzeroberfläche vor Augen haben. Das aber eine Schicht darunter,ein sogenanntes X-Window-System seine Arbeit verrichtet, um genau für diesegrafischen Benutzeroberflächen die Grundlage zu bilden, fällt in der Regel unterden Tisch. Nicht nur zum Verständnis, auch aus technischer Sicht ist esnotwendig, erst mit der Installation und Konfiguration des XWS zu beginnen.

Anmerkung

Für die spätere Konfiguration, beziehe ich mich auf eine Umgebung, diesich ausschließlich auf frei und "offen" zur Verfügung stehendenGrafiktreibern bezieht, um eine optimale Integration in dasLinux-System zu gewährleisten. Von vielen Herstellern werden"geschlossene" Treiber zur Verfügung gestellt, die zwar ein Optimumder Grafikleistleistung zeigen (insbesondere bei der 3D-Leistung), abernicht immer eine weitere Kompatibilität in anderen Bereichenunterstützen.

Für den Großteil der verschiedenen Installationen sollte man sich als rootangemeldet haben, um die notwendigen Berechtigungen zu erhalten.

9.1.1. Die Installation von X.orgDas gesamte Projekt ist Modular aufgebaut und besitzt übergeordnet eineVersionsnummer in der Form wie z.B. X11R7.6 . Zu den Modulen gehören füreine Standardinstallation der X.org-Server kurz X-Server, welcher für den Dialogmit dem Linux-Kern, aber auch für den direkten Zugriff auf die Grafikkartezuständig ist. Daneben gibt es einen Window-Manager, der in Zusammenarbeitmit dem X-Server die eigentlichen späteren Fenster "zeichnet" und verwaltet.Aber auch die freien Grafikkartentreiber, Zusatzprogramme und Zeichenfontssind Bestandteil des gesamten Pakets. Eine Übersicht verschafft die Tabelleunter: http://wiki.x.org/wiki/Releases/ModuleVersions.

9.1.1.1. Die Installation des X-Servers

75

Page 86: Archlinux Und Mehr

Der wohl wichtigste Teil der Umgebung ist der X-Server selbst. Die Installation desselbenzusammen mit Initialisierungswerkzeugen und einfachen Programmen erfolgt mit:

pacman -S xorg-server

pacman -S xorg-server-utils

pacman -S xorg-xinit

pacman -S xorg-utils

pacman -S xorg-twm

pacman -S xorg-xclock

pacman -S xterm

9.1.1.2. Der Grafikkartentreiber

Der zweite wichtige Teil ist die Wahl des richtigen Treibers für die verwendete Grafikkarte.Wenn man sich nicht sicher ist, welche Grafikkarte verbaut wurde, reicht in der Regel dieAusgabe der Geräte am PCI-Bus mit Hilfe des Befehls lspci:

lspci

Als Beispiel die Ausgabe wie: "VGA compatible controller: nVidia Corporation ION VGA(rev b1)", gibt den Hersteller und Typ des eingesetzten Grafikprozessors wieder.Mittlerweile bieten sich mehr oder weniger zwei drei Hersteller ein Kopf an Kopf Rennen,mit entsprechend großen Verbreitungsgrad, so dass mit großer Wahrscheinlichkeit eineder folgenden Treiberinstallationen auch für Ihre Umgebung zutreffen wird:

• AMD (ATI) - Für Grafikchips von AMD (früher ATI) gibt es einen passenden Treiber:

pacman -S xf86-video-ati

pacman -S ati-dri

• Intel - Für Grafikkarten mit einer Intel-Umgebung wird der Treiber mit folgender Eingabeinstalliert:

pacman -S xf86-video-intel

pacman -S intel-dri

• nVidia - Auch für nVidia steht ein Open-Source Treiber mit der Bezeichnung "Nouveau"zur Verfügung. Mit folgender Eingabe wird dieser installiert:

pacman -S xf86-video-nouveau

pacman -S nouveau-dri

Der eigene Arbeitsplatzrechner

76

Page 87: Archlinux Und Mehr

• Vesa - Dieser Treiber, zum gleichnamigen Video-Standard, stellt definierteGrundfunktionen bereit, die von vielen (alten) Grafikchips unterstützt werden.

pacman -S xf86-video-vesa

Da einige Grafikchips auch eine 3D-Unterstützung besitzen, wird bei den obenaufgeführten Treibern der passende Mesa-DRI-Treiber gleich mit installiert. Bei Mesahandelt es sich um eine Open-Source OpenGL Implementation zusammen mit der DirectRendering Infrastructure (DRI), als Schnittstellenerweiterung für den X-Server, zur direktenAnsteuerung der Grafikhardware im 3D-Bereich. Daher werden zum Treiber selbst dienotwendigen Bibliotheken ebenfalls benötigt und installiert:

pacman -S libgl

pacman -S mesa

Sollte die Ausgabe von lspci einen anderen Hersteller auflisten, hilft die Liste aller zurVerfügung stehenden Grafiktreibern, um sich den Passenden heraus zu suchen. FolgendeEingabe bereitet die Liste auf:

pacman -Ss xf86-video | less

Ist der passende Treiber gefunden und nach dem gleichen Muster wie bei derAMD/Intel/nVidia-Umgebung installiert:

pacman -S xf86-video-meineGrafikkarte

kann es gleich mit der Suche nach der passenden Mesa/DRI-Erweiterung weiter gehen:

pacman -Ss mesa | less

Sollte kein Name wie z.B. meineGrafikkarte-dri aufgeführt sein, wird entweder noch keinpassender Treiber angeboten oder es fehlt die 3D-Unterstützung bei der eingesetztenGrafikkarte.

Anmerkung

Es ist zu empfehlen, vorher die Grafikkartenumgebung zu installieren, bevor es mitder Konfiguration weiter geht. Denn die automatische Generierung derKonfigurationsdatei für den X-Server bindet die passenden Einträge nur dann ein,wenn vorher die richtigen Treiber installiert wurden.

9.1.1.3. Schriften

Schriften (Fonts) sind wichtig, um auch auf grafischer Ebene ein gewohntes Schriftbild zuerhalten. Für den Standardfall sind folgende Schriften zu installieren:

pacman -S xorg-fonts-75dpi

pacman -S xorg-fonts-100dpi

pacman -S xorg-fonts-type1

Danach für den täglich Einsatz:

Der eigene Arbeitsplatzrechner

77

Page 88: Archlinux Und Mehr

pacman -S ttf-dejavu

pacman -S ttf-inconsolata

pacman -S ttf-liberation

9.1.2. Die Konfiguration der X.org-UmgebungIst die Installation der notwendigen Module aus den vorherigen Kapiteln abgeschlossen,steht der Konfiguration nichts im Wege. Eigentlich wird alles soweit automatisch erkanntund man bräuchte keine Konfigurationsdateien, z.B. für den X-Server zu erstellen. Aberwie so oft, liegt es an einigen Details, um dennoch an einigen Stellen "schrauben" zumüssen. Besonders in diesem Stadium, sollten alle möglichen Voraussetzungen stimmen,bevor es zur finalen Installation der gewünschten grafischen Benutzeroberfläche geht.

9.1.2.1. Notwendige Dienste

Für den späteren Solostart (Stapellauf) des X-Window-Systems (XWS) und späterzusammen mit der Desktop-Umgebung, ist die Hardware-Erkennung und dieSystemintegration wichtig. Aber auch Dialoge zwischen Hard- und Software, müssengesteuert werden.

Im Folgenden werden die notwendigen Dienste beschrieben, die es zu installieren und zukonfigurieren gilt. Für die Einbindung dieser in den Systemstart, mit einem Zusatzeintrag inder Datei rc.conf im Bereich Daemons, ist evtl. ein Blick in die Administration von ArchLinux (siehe Kapitel: Die Dienste) hilfreich.

9.1.2.1.1. Der Dienst D-Bus

Der Dienst D-Bus (dbus) ist für eine standardisierte Kommunikation zwischen erkannterHard- und Software zuständig. Mit der Installation des X-Servers wurde auch gleich D-Busmit installiert. Es fehlt die Einbindung in den Systemstart, der mit einem Zusatzeintrag indie Datei rc.conf im Bereich Daemons erfolgt:

nano /etc/rc.conf

##------------------------------------------------------------------------# DAEMONS#------------------------------------------------------------------------## Daemons to start at boot-up (in this order)# - prefix a daemon with a ! to disable it# - prefix a daemon with a @ to start it up in the background## If something other takes care of your hardware clock (ntpd,dualboot ...)# you should disable 'hwclock' here.#DAEMONS=(hwclock syslog-ng network netfs crond dbus)

9.1.2.1.2. Der Dienst ACPID

Das Advanced-Configuration-and-Power-Interface kurz ACPI, ist für die standardisierteEnergieverwaltung der entsprechenden Hardware zuständig. Einfach installiert wird dieserDienst mit:

Der eigene Arbeitsplatzrechner

78

Page 89: Archlinux Und Mehr

pacman -S acpid

um später beim Systemstart mit der vorherigen Bearbeitung der Datei rc.conf (BereichDaemons):

nano /etc/rc.conf

##------------------------------------------------------------------------# DAEMONS#------------------------------------------------------------------------## Daemons to start at boot-up (in this order)# - prefix a daemon with a ! to disable it# - prefix a daemon with a @ to start it up in the background## If something other takes care of your hardware clock (ntpd,dualboot ...)# you should disable 'hwclock' here.#DAEMONS=(hwclock syslog-ng network netfs crond dbus acpid)

bereit zu stehen.

9.1.2.2. Notwendige Konfigurationsdateien

Die Erkennung der vorhandenen Geräte erfolgt überwiegend automatisch mitUnterstützung des Dienstes udev, welcher beim Starten und im Betrieb angesteckteGeräte erkennt (Hotpluggin) und dem Linux System bekannt gibt. Bei xorg wohl amwichtigsten, gehören dazu die Grafikkarte und die Eingabegeräte, zu denen im einfachstenFall die Tastatur und auch die Maus gehören. Jeder dieser Eingabegeräte unterliegt abereiner bestimmten Annahme. Bei der Tastatur ist es z.B. ein deutsches Tastaturlayout, beider Maus evtl. die Unterstützung von mehr als drei Maustasten u.s.w. .

Um genau diese Annahmen zu erfüllen, sind bestimmte Konfigurationsdateien notwendig.Diese Dateien werden einzeln für sich in das Verzeichnis /etc/X11/xorg.conf.d/geschrieben und besitzen als Suffix ein ".conf". Die Verarbeitung der Dateien durch denX-Server, erfolgt sequenziell auf Basis der Dateinamen. Daher beginnen diese i.d.R. mitZiffern; die Beispiele in den nächsten Kapitel verdeutlichen das Schema.

Damit aber auch die richtigen Einträge gewählt und in die entsprechendenKonfigurationsdateien geschrieben werden, gibt es die Möglichkeit, sich der automatischenErkennung und Erstellung einer Hauptkonfigurationsdatei zu bedienen. Die Eingabe von(achtung großes "X"):

X -configure

erstellt im Verzeichnis /root (die Anmeldung als root ist hier Vorraussetzung) einegesamtheitliche Konfigurationsdatei, mit dem Namen xorg.conf.new . Diese eine Dateiwar früher der Weg, um xorg zu konfigurieren, bis das Projekt sich entschloss, dieAufsplittung vorzunehmen. Nun aber in diesem Fall eine Hilfe, wie in den folgendenKapiteln gezeigt wird.

9.1.2.2.1. Einbinden des Grafikkartentreibers

Wurde erfolgreich die gesamtheitliche Konfigurationsdatei durch die automatischeErkennung (siehe Kapitel: Notwendige Konfigurationsdateien) erstellt, wird diese einfach indas Zielverzeichns mit neuen Namen kopiert:

Der eigene Arbeitsplatzrechner

79

Page 90: Archlinux Und Mehr

cp /root/xorg.conf.new /etx/X11/xorg.conf.d/20-grafikkarte.conf

Anschließend werden alle Einträge, bis auf die Wichtigen für die Grafikkarte, aus dieserDatei gelöscht.

nano /etx/X11/xorg.conf.d/20-grafikkarte.conf

Am Beispiel einer nVidia-Umgebung mit installiertem Nouveau-Treiber, sollte dann dieneue Konfigurationsdatei wie folgt aussehen:

# Grafikkarten-Treiber nouveau fuer eine nVidia-Umgebung

Section "Device"### Avaible Driver options are:-### Values: <i>: integer, <f>: float, <bool>: "True"/"False",### <string>: "String", <freq>: "<f> Hz/kHz/MHz",### <percent>: "<f>%"### [arg]: arg optional#Option "SWcursor" # [<bool>]#Option "HWcursor" # [<bool>]#Option "NoAccel" # [<bool>]#Option "ShadowFB" # [<bool>]#Option "VideoKey" # <i>#Option "WrappedFB" # [<bool>]#Option "GLXVBlank" # [<bool>]#Option "ZaphodHeads" # <string>#Option "PageFlip" # [<bool>]Identifier "Card0"Driver "nouveau"BusID "PCI:3:0:0"

EndSection

Die Anzahl der notwendigen Optionen und möglichen Parameter hängt von dereingesetzen Grafikkarte ab.

9.1.2.2.2. Ein Tastaturlayout für die eigene Lokalisierung

Bei der Tastatur (und weiteren Eingabegeräten) funktioniert der Weg leider nureingeschränkt, die Vorgaben aus der automatisch erstellten Datei xorg.conf.new zuentnehmen (wichtige Optionen können aber übernommen werden). Vielmehr werden nunEingabegeräte in Gruppen (Klassen) zugeordnet, auf die im Einzelnen dann eingegangenwird. Um nun ein deutsches Layout der hoffentlich schon erkannten Tastatur zuzuordnen,wird folgende Datei benötigt:

nano /etx/X11/xorg.conf.d/20-tastatur.conf

# Deutsches Tastaturlayout

Section "InputClass"Identifier "keyboard"MatchIsKeyboard "yes"Option "XkbLayout" "de"#Option "XkbVariant" "nodeadkeys"

EndSection

Das Prinzip ist i.d.R. immer das Gleiche. Als erstes wird Bezug zu einer Eingabeklasse(InputClass) genommen. Um alle Eingabegeräte bis auf die Tastatur ausschließen zukönnen, erfolgt die Identifizierung auf Tastaturen (keyboard) zusammen mit der Klausel"MatchIsKeyboard" mit "yes". Danach werden dann die passenden Optionen, wie indiesem Fall ein deutsches Tastaturlayout gesetzt. Weitere Infos findet man u.a. imUbuntu-Wiki zur Konfiguration der Eingabegeräte mit xorg.conf.d-Dateien (siehe Link:

Der eigene Arbeitsplatzrechner

80

Page 91: Archlinux Und Mehr

Ubuntu-Wiki [http://wiki.ubuntuusers.de/xorg.conf.d]).

9.1.3. StapellaufWurde die Installation (siehe Kapitel: Die Installaion von X.org) von xorg zusammen mitnotwendigen Konfigurationen (siehe Kapitel: Die Konfiguration der X.org-Umgebung)abgeschlossen, steht einem ersten Stapellauf eigentlich nichts mehr im Weg.

Der erste Lauf zeigt eigentlich, ob alles soweit richtig installiert und konfiguriert wurde.Bevor es aber los geht, hilft ein Neustart des Rechners, um sicher zu gehen, dass alle neueingerichteten Dienste auch wirklich gestartet wurden. Auch die Anmeldung als root isthier im ersten Schritt erforderlich.

Die Eingabe von:

startx

initialisiert und startet den X-Server. Alle notwendigen Treiber und Bibliotheken werdenautomatisch gesucht und geladen. Danach wird der minimalistisch wirkendeWindow-Manager twm gestartet, um gleich zwei drei Terminalfenster und ein Fenster miteiner Uhr zu zeigen. Ist dies geglückt, ist man schon über den Berg. Beendet wird derX-Server durch die Eingabe von "exit" im ersten großen Terminal-Fenster.

Abbildung 9.1. Window-Manager twm

Anmerkung

Im Installationskapitel wurde ja schon darauf hingewiesen, dass xorg modularaufgebaut ist. Hinzu kommt die freie Wahl eines Window-Managers, als Verwalterfür die eigentlichen Fenster. Gnome und KDE, um mal zwei der bekanntestengroßen Desktop-Umgebungen zu nennen, nutzen ihre eigenen Window-Manager

Der eigene Arbeitsplatzrechner

81

Page 92: Archlinux Und Mehr

(Metacity und Kwin). Es gibt eine Vielzahl von freien Window-Managern (sieheLink: Window Manager for X [http://wiki.ubuntuusers.de/xorg.conf.d]), die für jedenGeschmack und Notwendigkeit zur Verfügung stehen. Das macht u.a. dieFlexibilität von Linux aus. Der Übergang zur kompletten Desktop-Umgebungerfolgt aus meiner Sicht, wenn zusammen mit dem Window-Manager einkomplettes Paket aus einem einheitlichem Design, Technik (Benutzerschnittstelle)und Anwendungsprogrammen zur Verfügung gestellt werden.

Aber was ist, wenn der Startvorgang abgebrochen wurde. Interessant wird dann dieAusgabe von Fehlern und Warnungen aus dem xorg-Protokoll auszuwerten. Der Gebrauchdes Befehls grep dient genau zu diesem Zweck, um aus Textdateien, die notwendigenInformationen heraus zu schneiden. Fehler werden im xorg-Protokoll pro Zeile mit einem"EE" und Warnungen mit einem "WW" vorangestellt. Die folgende Eingabe nimmt davonGebrauch:

grep -e EE -e WW /var/log/Xorg.0.log

und extrahiert aus der Logbuchdatei die Fehler und Warnungen, um z.B. auf fehlendeKomponenten zur Grafikkarte oder Bibliotheken hinzuweisen.

9.2. Die Desktop-UmgebungEs gibt eine ganze Reihe von Desktop-Umgebungen, die Ihre Vor- und Nachteile haben,was auch stark vom eigenen Geschmack bzw. der Arbeitsweise abhängt. Da derBekanntheitsgrad besonders bei zwei dieser Kandidaten (Gnome und KDE) sehr groß ist,möchte ich diese einschließlich einer evtl. weniger bekannten Umgebung (Xfce) miteinbeziehen. Ich berücksichtige hierbei alle zur Verfügung stehenden Programme(Anwendungen und Werkzeuge) zur jeweiligen Desktop-Umgebung. So kann jeder ersteinmal selbst die Erfahrungen sammeln, was benötigt wird oder nicht.

Anmerkung

Die Parallelinstallation von unterschiedlichen Desktop-Umgebungen funktioniertnur eingeschränkt. Es kann also der Fall sein, dass z.B. Gnome und Xfcezusammen existieren dürfen. Aber eine Koexistenz unterschiedlicher Versioneneiner Desktop-Umgebung, z.B. bei Gnome 2 mit Gnome 3, Probleme bereitet.

Voraussetzung für die Installation ist wie meistens die Anmeldung als root.

9.2.1. Die Gnome-Installation

Abbildung 9.2. Gnome

Der eigene Arbeitsplatzrechner

82

Page 93: Archlinux Und Mehr

Gnome wird mit wenigen Schritten installiert. Hierzu reichen folgende Eingaben. Als erstesfür die Grundumgebung:

pacman -S gnome

Pacman wird hierzu eine Auflistung aller in Gruppen zugeordnete Pakete bekannt geben.Ich kann für den Anfang empfehlen, alle Pakete zu installieren, was auch dieVoreinstellung bei der Abfrage ist. Diese wird einfach mit Enter bestätigt. Danach erfolgtdie Installation der Systemverwaltungswerkzeuge mit:

pacman -S gnome-system-tools

Die Grundausstattung mit den ersten Programmen für Gnome wird mit:

pacman -S gnome-extra

installiert.

9.2.2. Die KDE-Installation

Abbildung 9.3. KDE

Der eigene Arbeitsplatzrechner

83

Page 94: Archlinux Und Mehr

Die Installation von KDE erfolgt ebenfalls einfach, wie bei Gnome. Mit der folgendenInstallationsanweisung wird die gesamte KDE-Umgebung berücksichtigt:

pacman -S kde

gefolgt von der deutschen Lokalisierung:

pacman -S kde-l10n-de

9.2.3. Die Xfce-Installation

Abbildung 9.4. Xfce

Der eigene Arbeitsplatzrechner

84

Page 95: Archlinux Und Mehr

Xfce hat den Ruf, zu den leichtgewichtigen Desktop-Umgebungen zu gehören. Was sichnicht auf einen Programmumfang, sondern eher auf den Resourcen schonenden Umgangmit dem System bezieht, so dass auch ältere PCs auf eine grafische Umgebung nichtverzichten brauchen.

Installiert wird Xfce in wenigen Schritten, unter Berücksichtigung der gesamten Umgebungmit:

pacman -S xfce4

Weitere Extras werden mit:

pacman -S xfce4-goodies

hinzugefügt.

9.3. Starten der Desktop-UmgebungenEs gibt verschiedene Möglichkeiten die Desktop-Umgebung seiner Wahl zu starten. Einmalmit dem Befehl startx, vielleicht schon bekannt durch den Stapellauf der X.org-Umgebung(siehe Kapitel: X.org Stapellauf). Oder mit Hilfe eines Login-Managers.

Beide Varianten werden in den folgenden Kapiteln beschrieben.

Anmerkung

Der Benutzer root sollte am besten garnicht mit einer Destop-Umgebungarbeiten, um die Angriffsfläche so klein wie möglich zu halten. Bedenkt man, dasseine Desktop-Umgebung aus vielen Programm-Modulen besteht, ist es für einenAngreifer am einfachsten, über einen Fehler an root-Rechten zu gelangen, wenndieser gleich schon angemeldet ist.

Der eigene Arbeitsplatzrechner

85

Page 96: Archlinux Und Mehr

9.3.1. startxDie Möglichkeit mit startx den Desktop zu starten, würde ich vorziehen, bevor einLogin-Manager zum Einsatz kommt. Denn so können noch etwaige Fehler erkannt undbeseitigt werden, bevor eine weitere Fehlerquelle (der Login-Manager selbst) dazu kommt.

Für eine startx-Umgebung bedient man sich den voreingestellten Skripten und kopiert sichdiese in sein Benutzerverzeichnis, sofern dies nicht schon beim Anlegen des Benutzerspassiert ist. Voraussetzung ist diesmal die Anmeldung mit seinem Benutzername und nichtals root:

cp /etc/skel/.xinitrc ~

Danach wird diese Datei für seine Desktop-Umgebung angepasst:

nano ~/.xinitrc

#!/bin/sh## ~/.xinitrc## Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; thenfor f in /etc/X11/xinit/xinitrc.d/*; do[ -x "$f" ] && . "$f"

doneunset f

fi

exec ck-launch-session dbus-launch --exit-with-sessiongnome-session# exec ck-launch-session dbus-launch --exit-with-session startkde# exec ck-launch-session dbus-launch --exit-with-session startxfce4# ...or the Window Manager of your choice

Ab diese Stelle, wird das Ausführen der Desktop-Umgebung gesteuert. Hier amBeispiel von Gnome. Im Prinzip sehen die Einträge fast alle gleich aus und steuernvorweg:

• Mit ck-launch-session den Start einer ConsoleKit-Instanz zur Verwaltung vonRechten, für die Ausführung bestimmter Vorgänge (Herunterfahren des Rechners,Einbinden von Laufwerken u.s.w.), die eigentlich nur root vorbehalten sind.Hierbei ist es sinnvoll, das der Benutzer zur Power-Gruppe gehört, damit er imeigentlichen Sinne die Legitimation zum Steuern des PCs erhält (siehe Kapitel: DieBenutzerverwaltung)

• Für den Fall, dass KDE, Gnome oder Xfce keine dbus-Instanz wärend desStartvorgangs eröffnen, sorgt dbus-launch auf jeden Fall dafür.

• Für das sorgfältige Schließen der Session, nachdem die Desktop-Umgebung unddamit der Xserver beendet wurde, sorgt der Eintrag --exit-with-session. So gelangtman nach einer Abmeldung aus dem Desktop wieder zum Shell-Prompt.

Dann wird einfach mit:

startx

der X-Server zusammen mit der Desktop-Umgebung gestartet.

Der eigene Arbeitsplatzrechner

86

Page 97: Archlinux Und Mehr

9.3.2. Login-ManagerDer Login-Manager oder auch Display-Manager genannt, ist der grafische Helfer, sichgleich nach dem Booten von Arch Linux mit seinem Benutzernamen und Kennwortanzumelden. Er regelt danach den Start der Desktop-Umgebung ohne auf Shell-Ebene mitstartx (siehe Kapitel: startx) arbeiten zu müssen.

Es gibt einige Login-Manager. Gnome und KDE bieten ihre eigenen gut integriertenManager (GDM und KDM) an. Daneben gibt es unabhängige Login-Manager, die ebenfallsihren Dienst verrichten (z.B. XDM aus dem X.org-Paket).

9.3.2.1. Der Gnome-Display-Manager (GDM)

Der GDM wird mit:

pacman -S gdm

installiert, sofern dieser noch nicht mit der kompletten Gnome-Installation berücksichtigtwurde.

Ist die Installation beendet, kann nun die Integration des GDM abgeschlossen werden(siehe Kapitel: Die Finalisierung).

9.3.2.2. Der KDE-Display-Manager (KDM)

Dieser Display-Manager (KDM) liegt nicht als eigenständiges Programmpaket zuminstallieren vor, sondern ist Bestandteil eines ganzen Pakets der KDE-Umgebung. Fallsnoch nicht installiert, wird dies einfach mit:

pacman -S kdebase-workspace

nachgeholt.

Abgeschlossen wird die Integration des KDM mit dem Kapitel zur Finaliserung (sieheKapitel: Die Finalisierung).

9.3.2.3. Der X-Display-Manager (XDM)

Auch die X.org-Umgebung bietet einen allgemeinen Login-Manager (XDM) an, der sowohlfür Gnome, KDE, Xfce und andere Desktop-Umgebungen eingesetzt werden kann.Installiert wid dieser mit:

pacman -S xorg-xdm

Damit XDM ermittelt, welche Desktop-Umgebung gestartet werden soll, bedarf es wenigeSchritte:

1. Der XDM erwartet im Benutzerverzeichnis die Datei .xsession . Eigentlich einausführbares Skript, dass wiederum die Konfigurationsdatei .xinitrc auslesen will.Daher wird im ersten Schritt .xsession aus der Skript-Sammlung in das eigeneBenutzerverzeichnis kopiert, falls diese noch nicht vorhanden ist:

cp /etc/skel/.xsession ~

2. Danach wird die Ausführbarkeit des Skriptes gesetzt und zwar nur für den eigentlichenBenutzer:

Der eigene Arbeitsplatzrechner

87

Page 98: Archlinux Und Mehr

chmod 0744 .xsession

3. Hat man die vorherigen Schritte als root erledigt, eine Übersicht erfolgt einfach mit:

ls -lisa /home/benutzername

müssen die Datei-Attribute Eigentümer und Gruppe zum eigentlichen Benutzernamengeändert werden:

chown benutzername /home/benutzername/.xsession

chgrp benutzername /home/benutzername/.xsession

4. Wie unter Schritt eins beschrieben, wird ebenfalls die Datei .xinitrc benötigt. Indieser werden die Befehle und Startparameter für die Desktop-Umgebung hinterlegt.Diese existiert ebenfalls schon für jeden neuen Benutzer als Voreinstellung imVerzeichnis /etc/skel, und im Kapitel startx (siehe Kapitel: startx) wird schonbeschrieben, wie diese für die eigene Umgebung angelegt und angepasst wird, daherist ein Blick in dieses Kapitel für den Abschluss wichtig.

5. Der Rest ist im Kapitel Finalisierung zum Thema Login-Manager (siehe Kapitel: DieFinalisierung) beschrieben.

9.3.2.4. Die Finalisierung

Ist der richtige Login-Manager gewählt und alles soweit eingerichtet, fehlt im Prinzip dieIntegration in den Linux-Boot-Prozess. Somit entfällt später die Anmeldung mit seinemBenutzernamen und Kennwort auf Shell-Ebene; der Login-Manager übernimmt dieseAufgabe auf grafischer Ebene und leitet endsprechend alles Weitere ein.

Es gibt zwei Wege den Login-Manager in den Boot-Prozess zu bringen. Einmal alsDaemon-Prozess selbst, oder aber diesen während der Init-Phase des Linux-Systems zuverankern. Ich selbst sehe mehr Vorteile den Init-Prozess zu verwenden, da ich noch übereinen Eintrag im Grub-Menü die Steuerung habe, den Login-Manager zu umgehen, um sowieder in eine Standard-Shell-Umgebung zu kommen, ohne dass ein Login-Manager mitder ganzen Desktop-Umgebung gestartet wird (aber dazu später mehr).

Ich beziehe mich also im Folgenden auf den Init-Prozess. Der Einfluss erfolgt über eineSteuerdatei mit dem Namen inittab im Verzeichnis /etc. Ein Blick in diese Datei zeigtden Aufbau. Für Änderungen in dieser Datei, ist hier wieder die Anmeldung als rootVoraussetzung:

nano /etc/inittab

## /etc/inittab#

# Runlevels:# 0 Halt# 1(S) Single-user# 2 Not used# 3 Multi-user# 4 Not used# 5 X11# 6 Reboot

Der eigene Arbeitsplatzrechner

88

Page 99: Archlinux Und Mehr

## Only one of the following two lines can be uncommented!# Boot to consoleid:3:initdefault:# Boot to X11# id:5:initdefault:

rc::sysinit:/etc/rc.sysinitrs:S1:wait:/etc/rc.singlerm:2345:wait:/etc/rc.multirh:06:wait:/etc/rc.shutdownsu:S:wait:/sbin/sulogin -p

# -8 options fixes umlauts problem on loginc1:2345:respawn:/sbin/agetty -8 -s 38400 tty1 linuxc2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linuxc3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linuxc4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linuxc5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linuxc6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux

# Serial Virtual Console for KVM and others VMs#s0:2345:respawn:/sbin/agetty -8 -s 9600 ttyS0 linux

# Hypervisor Virtual Console for Xen and KVM#h0:2345:respawn:/sbin/agetty -8 -s 38400 hvc0 linux

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# Example lines for starting a login managerx:5:respawn:/usr/bin/xdm -nodaemon#x:5:respawn:/usr/sbin/gdm -nodaemon#x:5:respawn:/usr/bin/kdm -nodaemon#x:5:respawn:/usr/bin/slim >/dev/null 2>&1

# End of file

Der Init-Prozess ist der erste Prozess, der von einem Linux-System beim Booteninitiiert wird. Was mit dieser Initialisierung angestoßen wird, ist über die Dateiinittab fest gelegt.

Um einen differenzierten Betrieb zu unterstützen, also nicht nur einen einzigen Wegmit einer fest vorgegebenen Liste von zu startenden Diensten zur Verfügung zustellen, werden eher Varianten mit unterschiedlichen Konfigurationen solcher Abläufein sogenannte Runlevel fest gelegt.

Jeder Runlevel hat eine bestimmte Nummer (ID), mit der ein bestimmter Zustand desSystems selbst (z.B. Single- oder Multi-User), aber auch die Abfolge der zubootenden System-Dienste hinterlegt ist.Im Standardfall wird der Runlevel 3 genutzt. Dieser ist auch für später sehr wichtig,wenn es darum geht, über das Boot-Menü von Grub, Einfluss auf das Startverhaltenselbst zu nehmen.Um nun einen Login-Manager in den Init-Vorgang mit einzubinden, wird der Runlevel5 eingesetzt. Bedeutet, dass die Zeile mit dem ID-3-Eintrag kommentiert und mit demID-5-Eintrag auskommentiert wird.Welcher Login-Manager nun zum Einsatz kommt, hängt von der Startzeile zumRunlevel 5 ab. Die vorgefertigten Beispieleinträge sind selbsterklärend. Auch hier alleZeilen bis auf die Wunschzeile mit einem "#" kommentieren.

Im Folgenden der inittab-Auschnitt als Beispielkonfiguration, wenn es darum geht, XDM alsLogin-Manager einzusetzen.

.

.

.## Only one of the following two lines can be uncommented!# Boot to console

Der eigene Arbeitsplatzrechner

89

Page 100: Archlinux Und Mehr

# id:3:initdefault:# Boot to X11id:5:initdefault:...# Example lines for starting a login managerx:5:respawn:/usr/bin/xdm -nodaemon#x:5:respawn:/usr/sbin/gdm -nodaemon#x:5:respawn:/usr/bin/kdm -nodaemon#x:5:respawn:/usr/bin/slim >/dev/null 2>&1...

9.3.2.4.1. Die Hintertür

Login-Manager hin oder her, manchmal möchte oder muss man vielleicht sein Systemwarten. Und das Ganze auch gleich ohne Login-Manager und Desktop-Umgebung.Einfach wieder auf Shell-Ebene schrauben.

Es ist relativ einfach, all das zu umgehen, indem man dem Boot-Vorgang mitteilt, welcherRunlevel genutzt werden soll. Hierzu reicht eine Ergänzung im Menü von Grub2 mit dementsprechend zu berücksichtigen Runlevel (3). Die Beschreibung hierzu ist im Kapitel zuGrub2 (siehe Kapitel: Der Bootloader grub2 - Eigene Menüeinträge) zu finden.

Der eigene Arbeitsplatzrechner

90

Page 101: Archlinux Und Mehr

Kapitel 10. Ein einfacherDateiserver

Ein Dateiserver ist eigentlich ein praktisches Werkzeug, um seine Daten vonseinem Arbeitsplatz (endlich mal) auf ein externes Medium zu sichern oder mitanderen zu teilen. Der Server wird einfach in das vohandene LAN eingebundenund steht dann entweder 24 Stunden oder nur dann zur Verfügung, wennBedarf ist.

Der Kapiteltitel ist eigentlich zweideutig und weist einerseits auf den technischeinfachen Aufbau dieses Servers mit dem von mir gewählten Namen Wotan hin,ohne erweiterte Maßnahmen wie ein RAID-System, weitererAuthentifizierungsserver oder einer grafischen Benutzeroberfläche. Andererseitsist der Softwareaufbau (relativ) einfach nachzuvollziehen.

Alles zusammen betrachtet, habe ich einen Grundaufbau gestaltet, derentsprechend auf die eigenen Bedürfnisse angepasst und erweitert werdenkann. Dann auch mit einem RAID-System und vieles mehr.

10.1. Die ServerausstattungEigentlich fast schon der wichtigste Punkt und gestaltet sich hier in zweiMöglichkeiten. Beide Möglichkeiten fordern allerdings die gleicheVoraussetzung. Ein Server sollte ausschließlich als Server fungieren und nichtnebenbei als Arbeitsplatzrechner. Wie gut dieser ausgestattet sein soll, hängtvon der Anzahl der vielleicht installierten Dienste (Webserver,Mailserver u.s.w.)und späteren Zugriffen ab. Wie schon geschrieben, dient dieser Aufbauausschließlich zur Veranschaulichung eines einfachen Dateiservers und soll alsAnstoß für weitere Möglichkeiten (mit Samba) dienen, um für eigeneBedürfnisse die entsprechende Einrichtung ableiten zu können.

Während meiner Tests, reichte ein einfacher Rechner im Mini-ITX Format miteiner Festplatte in der Größe von 500 GB aus, auf der neben demLinux-Grundsystem und den notwendigen Diensten erst einmal nichts weiterinstalliert war. Bei einem ausgedienten PC mit Platz für mehrere Festplattenoder sogar einem Server-Rack-System, ist dann mehr möglich. Daher diefolgenden zwei Varianten, die einen Großteil der Möglichkeiten abdeckenwerden.

10.1.1. Eine Festplatte im SystemBei dieser Variante verhält es sich wie bei meinem Testsystem. Eine Festplattefür alles, für das Linux-Grundsystem und den Rest der Festplattenkapazität fürdie Freigaben. Wird die Grundinstallation von Arch Linux verfolgt, kann bei derFestplattenvorbereitung folgendes Partitionsbeispiel übernehmen.

Abbildung 10.1. Serverpartitions-Beispiel 1

91

Page 102: Archlinux Und Mehr

Im Prinzip hat sich gegenüber dem Partitionsbeispiel aus der Arch Linux Grundinstallationnicht viel geändert. Wer beides vergleicht wird allerdings feststellen, dass es einen Sprungin der Partitionsnummerierung gegeben hat. Dies beruht auf die Gegebenheit, dassmaximal vier primäre Partitionen erlaubt sind. Um aber mehr wie vier Partitionen anlegenzu können, wurde die erweiterte Partition eingeführt (in diesem Fall die imaginäre/dev/sda4 über die gesamte Restkapazität). In dieser erweiterten Partition können nunbeliebig viele logische Partitionen (soweit die Festplattenkapazität es zulässt) angelegtwerden. Hier für das Beispiel zwei Partitionen: /dev/sda5 für die späterenBenutzervezeichnisse und /dev/sda6 für die Freigaben.

Die Partitionierung selbst, die Formatierung mit dem entsprechenden Dateiformat und dasEinbinden in das System erfolgt während der Archinux-Installation. Ab dem PunktFestplattenvorbereitung sind dann die entsprechenden Angaben zu machen, wobei daraufzu achten ist, dass die logischen Partitionen /dev/sda5 dem Mountpoint /home und/dev/sda6 /mnt/fbase zugewiesen werden.

Die Größenverteilungen sind für die Partitionen eins bis drei soweit vorgegeben. Für diespäteren Benutzerverzeichnisse in /home bzw. für die Freigaben in /mnt/fbase, solltendie Partitionsgrößen nach eigenem Ermessen vergeben werden. Als Dateisystem kann ichext3 empfehlen.

10.1.2. Mehrere Festplatten im SystemEigentlich ein Idealfall. Wird für das Linux-Grundsystem eine kleine Festplatte vergeben,so könnte man für das Home- und das Freigaben-Verzeichnis (/mnt/fbase) jeweils einegroße Festplatte spendieren.

Festplatte zwei und drei hätten jeweils eine primäre Partition über die gesamte Kapazität.Die Bezeichnungen würden dann /dev/sdb1 und /dev/sdc1 lauten.

Abbildung 10.2. Serverpartitions-Beispiel 2

Ein einfacher Dateiserver

92

Page 103: Archlinux Und Mehr

Alles könnte wie gehabt während der Arch Linux-Installation berücksichtigt werden. Ichmöchte allerdings die Schritte beschreiben, wenn eine Grundinstallation schon vorhandenist, also beide Festplatten nachträglich eingebaut wurden. Für die folgenden Schrittesollten Sie sich als root anmelden, um die notwendigen Berechtigungen zu erhaltenwichtige Systemdateien zu bearbeiten.

Anmerkung

Auch wenn dies für die Anwender uninteressant sein könnte, die "nur" eineFestplatte einsetzen. Die folgenden Schritte sind hilfreich, um bei einem Fehler dienotwendigen Schlüsse ziehen zu können, selbstständig eigene Partitionen in dasSystem einzubinden.

1. Prüfen ob die neuen Festplatten während des Bootens vom System auchberücksichtigt werden. Am einfachsten geht dies für die zweite Festplatte mit:

cfdisk /dev/sdb

Würde eine Fehlermeldung erscheinen, dann wurde die Festplatte nicht richtigerkannt. Andererseits kann jetzt schon die Partition mit dem Programm cfdisk angelegtwerden, wie in der Installationsbeschreibung zur Festplattenvorbereitung beschrieben.Dies gilt auch für die dritte Festplatte mit dem Aufruf:

cfdisk /dev/sdc

2. Die neuen Partitionen müssen formatiert werden. Ich setze hierbei auf das ext4Dateisystem. Der folgende Befehl mit entsprechenden Parametern startet dieFormatierung wie folgt:

mkes.ext4 /dev/sdb1

Ein einfacher Dateiserver

93

Page 104: Archlinux Und Mehr

Identisch für die einzige Partition der nächsten neuen Festplatte mit:

mkfs.ext4 /dev/sdc1

3. Das Anlegen des Verzeichnisses /mnt/fbase ist notwendig, damit die dritteFestplatte einen Mountpunkt erhält in der sie hineingehangen werden kann. Für diezweite Festplatte existiert schon der Mountpoint (/home), da wärend derLinux-Installation das Home-Verzeichnis automatisch angelegt wird.

Anmerkung

Bestehende Verzeichnisse, die als Mount-Punkt für Geräte wie Festplatteneingesetzt werden verlieren nicht ihren Inhalt, sofern welcher vorhanden ist.Allerdings kann nach dem Mounten nicht mehr auf diesen zugegriffen werden, weildas Gerät den Inhalt quasi überlagert. Erst das Unmounten des Gerätes selbst gibtden Inhalt wieder frei.

Daher sollte in diesem Fall vor dem Anlegen von Benutzern, insbesondere für denspäteren Einsatz mit Samba, die Festplatten richtig im System verankert sein, dasonst bestehende Benutzerverzeichnisse unter /home nicht mehr zugänglichwären.

Mit dem Befehl mkdir wird nun das Verzeichnis auf der ersten Festplatte angelegt:

mkdir /mnt/fbase

4. Die neuen Festplatten sind nun partitioniert und formatiert. Damit beide nach jedemBootvorgang auch automatisch in das System eingebunden werden, muss hierzu dieverantwortliche Datei fstab bearbeitet werden:

nano /etc/fstab

## /etc/fstab: static file system information## <file system> <dir> <type> <options> <dump> <pass>none /dev/pts devpts defaults 0 0none /dev/shm tmpfs defaults 0 0

/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 00/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816 /boot ext2 defaults 01UUID=86cf40c7-b4a2-4f61-8b44-8c09610b205d / ext4 defaults 0 1UUID=72379917-1a7f-4113-befb-2daf516727a1 swap swap defaults 00

Die Struktur der Datei fstab gleicht einer Tabelle. Die Einträge werden durch einTAB oder Leerzeichen voneinander getrennt.

Tabelle 10.1. fstab Aufbau

Gerät Mount-Punkt Dateiformat Optionen Backup-Programm(dump)

Prüfreihenfolge

/dev/sdb1 /home ext3 defaults 0 2

/dev/sdc1 /mnt/fbase ext3 defaults 0 3

Ein einfacher Dateiserver

94

Page 105: Archlinux Und Mehr

Die Spalten Eins bis Drei sind selbsterklärend. Bei der vierten Spalte könnenverschiedene Parameter gesetzt werden; gut zu erkennen bei den Einträgen deroptischen Laufwerke wie read only (ro) oder jeder Benutzer (user) darf das Gerätbenutzen. Die fünfte Spalte gibt an, ob das Backup-Programm dump bei jedemSystemstart gestartet (1) werden soll oder nicht (0); dump unterstützt nur dasDateisystem ext2, also vorsicht. Wichtig ist u.a. die sechste Spalte, hier wird dieReihenfolge der zu prüfenden Partitionen gesetzt, da in regelmäßigen Abständen eineÜberprüfung wärend des Bootens erfolgt.

Die Angaben laut Tabelle können so übernommen werden. Danach sollte fstab soaussehen:

## /etc/fstab: static file system information## <file system> <dir> <type> <options> <dump> <pass>none /dev/pts devpts defaults 0 0none /dev/shm tmpfs defaults 0 0

/dev/cdrom /media/cdrom auto ro,user,noauto,unhide 00/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0UUID=1d4732ce-b13b-4b14-b2a7-8adcb3c30816 /boot ext2 defaults 01UUID=86cf40c7-b4a2-4f61-8b44-8c09610b205d / ext4 defaults 0 1UUID=72379917-1a7f-4113-befb-2daf516727a1 swap swap defaults 00/dev/sdb1 /home ext4 defaults 0 2/dev/sdc1 /mnt/fbase ext4 defaults 0 3

Ob alles funktioniert kann durch einen Neustart, angestoßen durch die folgendeEingabe, überprüft werden:

reboot

Oder der Befehl:

mount -a

erledigt dies ohne einen Neustart. Hier wird das Einlesen und entsprechendeVerarbeiten der Datei fstab neu initiiert.

10.2. Die notwendigen und hilfreichenSoftwarepakete

Steht die Hardware für den Dateiserver, ist die folgende Liste hilfreich, die notwendigenSoftwarepakete (Dienste) zu installieren:

1. Arch Linux

Von der Grundinstallation gehe ich jetzt einfach mal von aus (Kapitel: Die ArchLinux-Grundinstallation).

2. Samba

Ein einfacher Dateiserver

95

Page 106: Archlinux Und Mehr

Der Datei- und Druckserverdienst. Das wichtigste Element für den Dateiserver. Indiesem Kapitel ist auch das Konzept enthalten, wonach die Festplatten unterbestimmten Kriterien zur Verfügung gestellt werden (Kapitel: Samba).

3. Iptables

Der Selbstschutz, insbesondere als Firewall für den späteren Dateiserver (Kapitel:Iptables).

4. Ulogd

Alles muss protokolliert werden. Als Ergänzung zu iptables ist dieser Dienst sehrhilfreich (Kapitel: Ulogd).

5. SSH

Die Secure-Shell macht es möglich, den Dateiserver der vielleicht im Keller steht,entsprechend ferngesteuert zu warten (Kapitel: SSH).

Für die Nutzung des Dateiservers ist eine lokale Anmeldung mit Benutzernamen undKennwort nicht notwendig. Ist alles entsprechend konfiguriert, werden auch dienotwendigen Dienste beim Bootvorgang mit gestartet. Also den Server einfach nureinschalten. Wird der Server nicht mehr benutzt, sollte ein Herunterfahren eingeleitetwerden. Hierzu bitte als root anmelden, um anschließend mit:

shutdown -h now

das Herunterfahren einzuleiten (siehe Anhang: Kurzreferenz - Linux-Befehle). Dasfunktioniert übrigens auch über eine SSH-Verbindung.

Ein einfacher Dateiserver

96

Page 107: Archlinux Und Mehr

Teil IV. DienstprogrammeDienstprogramme für Linux/Unix gibt es eine Menge. Viele bekannte Dienste verrichtenihre Arbeit vierundzwanzig Stunden und das jeden Tag in der ganzen Welt. Die wohlbekanntesten Vertreter sind der Webserver von Apache, Mailserver, das MySQLDatenbanksystem und samba als universeller Datei- und Druckserver.

Page 108: Archlinux Und Mehr

Kapitel 11. IptablesZum Sinn einer Firewall, brauche ich vermutlich wenig zu schreiben. DieSensibilisierung erfolgte vermutlich schon durch entsprechende Meldungen inden Medien.

Iptables ist ein sehr mächtiger Dienst, mit dem unter Linux äußerst flexible (undkomplexe) Firewallkonfigurationen erstellt werden können. Mit Hilfe derfolgenden Abbildung, möchte ich den Einstieg zur Arbeitsweise von iptableserleichtern.

Abbildung 11.1. iptables

Analysiert werden die Datenpakete auf Protokollebene (und nicht aufAnwendungsebene). Dass heißt, egal welche Anwendung benutzt wird, die überdas Netz kommuniziert, unabhängig ob auf Shell-Ebene oder unter einergrafischen Benutzeroberfläche, alle Datenpakete werden analysiert und nachdefinierten Regeln im einfachsten Fall entweder durch gelassen oder verworfen.Hierzu kooperiert iptables mit den notwendigen Modulen (netfilter) imLinux-Kern.

Alle Regeln werden eigentlich wie Teller "untereinander" gestapelt. Die offizielleQuelle zu iptables spricht hier auch von einer Kette (Chain), wobei dann die„Perlen“ die Regeln darstellen. Ein- wie ausgehende Datenpakete durchlaufendiese Regelstapel. Trifft eine Bedingung der Regel zu, erfolgt erst dann dieentsprechende Verarbeitung.

Wie beschrieben gibt es verschiedene Ketten mit entsprechenden Regeln, vondenen hier zwei von drei - INPUT für eingehende und OUTPUT für ausgehendeDatenpakete - genutzt werden. Der Hintergrund ist, dass die Firewall später dorteingesetzt wird, wo sie explizit auch schützen soll, auf dem Arbeitsplatz oderServer selbst. Eine Standalone-Firewall wo Pakete gefiltert durch geschleust,quasi weiter gereicht werden (Kette FORWARD), um evtl. ein ganzes LAN zu

98

Page 109: Archlinux Und Mehr

schützen, wird hier nicht näher betrachtet.

Im Beispiel laut Abbildung ist auf der linken Seite zu sehen, dass der Browser eineVerbindung zum Webserver aufbauen möchte. Dies geschieht in der Regel über den Port80, welcher auch so als Bedingung für eine erlaubte Verbindung in der Regel definiertwurde. Die Verbindung wird also von iptables erlaubt, die Datenpakete werden durchgelassen; ebenfalls die Antwort, die vom Webserver kommt. Die rechte Seite zeigt, dassein FTP-Programm über den Port 21 ebenfalls eine Verbindung aufbauen möchte. Einepassende Regel mit der entsprechenden Bedingung existiert nicht. Zwar wird die ersteRegel für den Port 80 durchlaufen, diese „fühlt“ sich aber nicht angesprochen, also geht esweiter zur Nächsten. Hier endet allerdings der Weg; quasi als „Endstation“ oder letzteInstanz wurde eine Regel definiert, die jedes ausgehende Datenpaket verwirft. DieVerbindung wird nicht hergestellt.

Iptables bietet neben den statischen Mitteln (Paketfilterung) auch dynamische Werkzeugean. Hierzu werden z.B. die ausgehenden Verbindungen "gemerkt", erlaubt werden dannnur die eintreffenden Datenpakete, die zu einer Verbindung gehören. Treffen Datenpaketeein, die nicht plausibel sind, werden diese einfach (laut Regel) abgelehnt. Solch einWerkzeug wird auch „Stateful Packet Inspection“ (SPI) genannt, da abhängig einesbestimmten Verbindungs-Status entsprechend reagiert wird.

Oft wird in Internet-Routern solch eine SPI-Firewall integriert, wo im einfachsten Fall alleausgehenden Datenpakete ungefiltert erlaubt und nur die Antworten von außen akzeptiertwerden, die abhängig vom Verbindungsstatus gerechtfertigt sind.

In den nächsten Kapiteln möchte ich den Aufbau einer einfachen Firewall mit Hilfe voniptables für einen Arbeitsplatzrechner und für einen Server aufzeigen. Beide Beispielesollten zusammen betrachtet werden, da ich verschiedene Vorgehensweisenverständlicher Weise nicht doppelt beschreiben möchte.

Alles hängt jetzt von iptables ab und sollte spätestens jetzt installiert werden, falls nochnicht geschehen. Voraussetzung für alle weiteren Schritte – und nicht nur für dieInstallation – ist die Anmeldung als root. Alle späteren Konfigurationsdateien sollten auchnur von root ausführbar sein und sich in dessen Heimatverzeichnis befinden.

11.1. Die Installation von IptablesPacman als Paketmanager ist hier wieder gefragt. Mit der Eingabe von:

pacman -S iptables

erfolgt die Installation.

11.2. Firewall für einen ArbeitsplatzrechnerZiel ist es einen Basisschutz zu schaffen. Hierbei werden alle eintreffenden Datenpaketeabgewiesen. Ebenfalls die, die entweder Fehler aufweisen bzw. nicht plausibel sind. Jederneuer ausgehender Datenverkehr wird ungefiltert erlaubt.

Um die Plausibilität zu erhalten, werden die dynamischen Werkzeuge von iptables genutzt.Jeder Status z.B. einer ausgehenden Verbindung wird in einer internen Tabellegespeichert. Passen die eintreffenden Antwortpakte zur selbst initiierten Verbindung, darfweiter unterhalten werden.

Die Regeln werden durch die Eingabe des Befehls iptables, gefolgt von verschiedenenParametern definiert. Sämtliche Eingaben werden daher übersichtlich in ein Shell-Skriptzusammen erfasst.

nano /root/fw_arbeitsplatz.sh

Iptables

99

Page 110: Archlinux Und Mehr

#!/bin/sh## Autor: Farid Mésbahi# Version: 0.2# Datum: 21.08.2006# Letzte Aenderung: 24.11.2007# Beschreibung: Dieses Skript setzt die Firewall-Regeln# für einen Arbeitsplatzrechner

# Laden notwendiger Kernel-Modulemodprobe ip_conntrack_ftp

# Loeschen aller vorhandenen Regeln und selbst# definierten Ketteniptables -Fiptables -X

# Regeln (Policy) zum Verwerfen aller nicht# akzeptierten Paketeiptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

# Regel fuer das Erlauben des internen (INPUT) Verkehresiptables -A INPUT -i lo -j ACCEPT

# Regel zum Verwerfen eingehender nicht konfomer Datenpaketeiptables -A INPUT -p ALL -m state --state INVALID -j DROP

# Regel zum Akzeptieren eingehender Datenpakete aus# selbstinitierten Verbindungeniptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Regel fuer das Erlauben des internen (OUTPUT) Verkehresiptables -A OUTPUT -o lo -j ACCEPT

# Regel zum Akzeptieren neuer ausgehender Verbindungeniptables -A OUTPUT -m state --state NEW -j ACCEPT

# Regel zum Weiterfuehren selbstinitiierter Verbindungeniptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Jedes Shell-Skript fängt mit dieser Zeile an. Ansonsten dienen Zeilen, die einRautensymbol voran gestellt haben zur Dokumentation und werden nicht interpretiert.Es sei denn, dass ein Ausrufezeichen folgt, wie in diesem Fall.Die notwendigen Kernel-Module für iptables werden eigentlich automatisch geladen.Allerdings nicht das Modul für das FTP, um hier dynamisch den Datenverkehr zuregeln. Daher wird hier mit dem Befehl modprobe das notwendige Modul"ip_conntrack_ftp" geladen.Hier werden alle Ketten geleert (-F), mit anderen Worten Regeln gelöscht und alle ggf.selbst erstellten Ketten ebenfalls (-X), um wirklich bei Null zu beginnen.Alle Regeln werden von oben nach unten, nach und nach abgearbeitet. Trifft eineBedingung zu, erfolgt die Aktion. Danach bricht iptables die Arbeit an der betreffendenStelle ab (außer beim Loggen von Ereignissen. Siehe dazu Kapitel "Logbuch führen").Was passiert, wenn keine der Regeln im Durchlauf greifen? Eigentlich garnichts.Daher ist es ratsam eine Grundregel, die Policy (-P) zu definieren. Hier zur Sicherheitfür alle drei Ketten. Für den Fall, das keine Regel greift, werden einfach alleDatenpakete verworfen (DROP).Alle eintreffenden Datenpakete, die über den lokalen Netzwerkadapter (LoopbackInterface) laufen, werden akzeptiert (-j ACCEPT).Hierbei wird der Adapter “lo” explizit für die Kette INPUT mit dem Parameter “-i” (Inputdevice) gebunden. Das diese Regel an die entsprechende Kette angehängt wird,steuert der Parameter “-A”.Die nächste Regel überprüft für alle Protokolle (-p ALL) die eintreffenden Datenpakete(INPUT) auf fehlerhafte oder nicht identifizierbare Strukturen (-m state --state

Iptables

100

Page 111: Archlinux Und Mehr

INVALID). Solche Pakete werden sofort verworfen (-j DROP).An dieser Stelle werden eintreffende Pakete (INPUT) nur dann akzeptiert (-jACCEPT), wenn sie zu einer bestehenden Verbindung gehören (-m state --stateESTABLISHED) und ggf. in einer bestimmten Beziehung zu dieser stehen (-m state--state RELATED). Der letztere Fall kommt dann zum Einsatz, wenn z.B. derFTP-Dialog zwischen Arbeitsplatz und Server neben der ersten Kontaktaufnahmeweitere Strecken auf ganz andere Ports aufbaut, die dann durch das Argument„RELATED“ identifiziert und zugeordnet werden. Damit dies funktioniert, muß nochdas entsprechende Kernel-Modul geladen sein (siehe Punkt 2).Die Schwester-Regel zum Punkt 5, mit der gleichen Bindung zum lokalenNetzwerkadapter, allerdings für ausgehende Datenpakete (-o lo).Hier dürfen erst einmal nur „neue“ (-m state --state NEW) ausgehende (OUTPUT)Verbindungen ungefiltert aufgebaut (-j ACCEPT) werden. Im direkten Verhältnis stehteigentlich die Regel in Punkt 7.Der weitere Dialog nach Außen (OUTPUT) kann nur dann weiter geführt werden (-jACCEPT), wenn analog zu Punkt 7 die Voraussetzungen auf eine zu identifizierendeund ggf. in einer bestimmten Beziehung stehende Verbindung (-m state --stateESTABLISHED,RELATED) stimmen.

Zum Verständnis, wie wichtig diese Regel ist. Es wurde bis jetzt nur der „neue“Verbindungsaufbau nach Außen akzeptiert (Punkt 9). Soll jetzt im Dialog, nach derersten eingehenden Antwort (Punkt 7) wieder geantwortet werden, würde iptablesohne diese Regel es hierbei belassen und durch die Policy (OUPUT) die Datenpaketeverwerfen.

Falls Sie das Skript soweit geschrieben haben, speichern Sie dieses bitte ab.

Eigentlich kann es mit dem Kapitel „Regeln speichern und prüfen“ weiter gehen. Allerdingssind einige Aspekte aus der Serverkonfiguration für einen Arbeitsplatzrechner nichtuninteressant, was im Kapitel „Kurze Zusammenfassung“ näher betrachtet wird.

11.3. Firewall für einen ServerDer Basisschutz für einen Server wird etwas straffer definiert. Der Zugriff auf den Serversoll nur auf die Dienste erlaubt werden, die auch zur Verfügung stehen. Genauso soll derausgehende Verkehr kontrolliert gefiltert werden. Das notwendige Skript ist wie folgtaufgebaut:

nano /root/fw_server.sh

#!/bin/sh## Autor: Farid Mésbahi# Version: 0.5# Datum: 21.08.2006# Letzte Aenderung: 15.12.2010# Beschreibung: Dieses Skript setzt die Firewall-Regeln für# einen Server

# Laden notwendiger Kernel-Modulemodprobe ip_conntrack_ftp

# Loeschen aller vorhandenen Regeln und selbst# definierten Ketteniptables -Fiptables -X

# Regeln (Policy) zum Verwerfen aller nicht# akzeptierten Paketeiptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

Iptables

101

Page 112: Archlinux Und Mehr

# Regel fuer das Erlauben des internen (INPUT) Verkehresiptables -A INPUT -i lo -j ACCEPT

# Regel zum Verwerfen eingehender nicht# konfomer Datenpaketeiptables -A INPUT -i eth0 -p ALL -m state --state ==>

==>INVALID -j DROP

# Regel für neue Verbindungen die wirklich als# solche entsprecheniptables -A INPUT -i eth0 -p tcp ! --syn -m state ==>

==>--state NEW -j DROP

# Regel zum Erlauben neuer (INPUT) Verbindungen (Samba)iptables -A INPUT -i eth0 -p tcp -m multiport ==>

==>--dport 137,138,139,445,901 -m state --state NEW ==>==>-j ACCEPT

# Regel zum Erlauben neuer (INPUT) Verbindungen (SSH)iptables -A INPUT -i eth0 -p tcp --dport 22 -m state ==>

==>--state NEW -m hashlimit --hashlimit 1/m ==>==>--hashlimit-burst 1 --hashlimit-mode srcip ==>==>--hashlimit-name ssh -j ACCEPT

# Regel zum Erlauben von max. einer Ping-Anfrage pro Min.iptables -A INPUT -i eth0 -p icmp --icmp-type ==>

==>echo-request -m state --state NEW ==>==>-m hashlimit --hashlimit 1/m ==>==>--hashlimit-burst 1 --hashlimit-mode srcip ==>==>--hashlimit-name ping -j ACCEPT

# Regel zum Akzeptieren eingehender Datenpakete bei# bestehenden Verbindungeniptables -A INPUT -i eth0 -m state --state ==>

==> ESTABLISHED,RELATED -j ACCEPT

# Regel fuer das Erlauben des internen (OUTPUT) Verkehresiptables -A OUTPUT -o lo -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT)# Verbindungen - DNSiptables -A OUTPUT -o eth0 -p tcp --dport 53 ==>

==>-m state --state NEW -j ACCEPTiptables -A OUTPUT -o eth0 -p udp --dport 53 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT)# Verbindungen - HTTPiptables -A OUTPUT -o eth0 -p tcp --dport 80 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT)# Verbindungen - FTPiptables -A OUTPUT -o eth0 -p tcp --dport 21 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT)# Verbindungen - NTPiptables -A OUTPUT -o eth0 -p udp --dport 123 ==>

==>-m state --state NEW -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --dport 123 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Weiterfuehren aufgebauter Verbindungeniptables -A OUTPUT -o eth0 -m state --state

==>ESTABLISHED,RELATED -j ACCEPT

Im Grundaufbau ist das Skript zum Schutz eines Arbeitsplatzrechners identisch. Daher

Iptables

102

Page 113: Archlinux Und Mehr

beziehen sich die Erläuterungen auf neue Regeln und Aspekte.

Der erste Unterschied ist hier zu sehen. Diese Regel fängt die Pakete ab, die nichtkonform zum Aufbau einer neuen Verbindung sind (! --syn -m state --state NEW).Beim normalen Verbindungsaufbau, beginnt ein Dreiwege-Handshake, wobei beimInitiieren der Verbindung (erster Weg) das SYN-Flag gesetzt sein muss. Mit dieserAbfrage nimmt man also Stellung zu einem von insgesamt sechs verschiedenenSteuerungs-Flags des TCP (-p TCP). Ist dieses Flag nicht gesetzt (! --syn), handelt essich um keinen einwandfreien Aufbauversuch und die Pakete werden verworfen (-jDROP).Neue (-m state --state NEW) eingehende Verbindungen sind erlaubt (-j ACCEPT),sofern sie sich "nur" auf einen der Zielports (--dport 137,138,139,445,901 für Sambaoder --dport 22 für SSH) beziehen. Wer den Zugriff noch weiter einschränken möchte,kann dies auf Basis der Quell-IP-Adresse, also die Adresse vom Dienstbenutzererledigen. Die Konfiguration für den eingeschränkten Zugriff von nur einem Rechnerzum SSH-Dienst aus, würde dann so aussehen:

iptables -A INPUT -i eth0 -s 192.168.1.110 -p tcp ==>==>--dport 22 -m state --state NEW -j ACCEPT

Das klappt in diesem Fall nur dann, wenn im LAN feste TCP/IP-Adressen genutztwerden und sich nicht jedes mal durch die dynamische Vergabe (DHCP) aus einemAdressen-Pool heraus ändern. Die Quelladresse hier (-s 192.168.1.110) orientiert sichan dem Netzwerkkonzept zu Beginn des Netzwerk-Kapitels und dient hier alsBeispiel.

Bei der SSH-Verbindung gibt es noch eine weitere Vorsichtsmaßnahme. Mit denParametern "-m hashlimit --hashlimit 1/m" wird der Zugriff pro Quelle(--hashlimit-mode srcip) auf ein mal pro Minute limitiert. Der Paramter"--hashlimit-burst" mit dem Wert "1" dient als Schwellwert, also wann genau das Limitgreifen soll. Der Standardwert liegt bei fünf und würde hierbei ensprechendeVerbindungen erlauben, was keinen Sinn macht. Daher ist der Schwellwert auf einsgesetzt, um wirklich nur einen Zugriff pro Minute zu gewähren. Der nächsteParameter (--hashlimit-name ssh) dient der internen Registrierung mit einem freiwählbaren Namen.Ping-Anfragen (Echo Request) sind ein wichtiges Werkzeug, um z.B. zu erfahren, obein Rechner (Server) überhaupt noch auf Netzanfragen antwortet. Ein Anwender dervor seinem Arbeitsplatz sitzt, würde sich rechtzeitig melden, wenn etwas nichtfunktioniert. Das hier eingesetzte "Internet Control Message Protocol" (-p icmp)arbeitet nicht mit Ports wie bei TCP, sondern mit definierten Nachrichten-Typen. Einerdavon ist der genannte Echo Request, der hier laut Regel ausschließlich akzeptiertwird (--icmp-type echo-request). Dieser Typ ist der Einzige, der vom Protokoll für denVersender mit einem "Echo Reply" beantwortet wird. Diese Antwort wird vomPing-Befehl analysiert (z.B. Antwortzeit) und ausgegeben.

Wie unter Punkt 2 wird der Zugriff limitiert. Und zwar ebenfalls auf eine Anfrage proMinute.Die nächsten fünf Regeln kontrollieren neue ausgehende Verbindungungen, gezieltauf bestimmte notwendige Dienste (DNS 53, HTTP 80, FTP 21 und NTP 123).

11.4. Kurze ZusammenfassungWenn beide Skripte verglichen werden, fällt vermutlich sofort die konsequente Filterungder Datenpakete bei der Serverkonfiguration auf. Und zwar in beiden Richtungen, egal obneue Verbindungen zum oder vom Server gehen. Das hat sicherheitstechnischeHintergründe, um eingehend die Angriffsfläche so klein wie möglich zu halten, was hierschon durch die begrenzte Installation auf nur notwendigen Dienste unterstützt wird.

In beiden Skripten wird das Kernel-Modul "ip_conntrack_ftp" nach geladen. Diesfunktioniert nur für den Moment, wo das Skript ausgeführt wird und bis der Rechner neu

Iptables

103

Page 114: Archlinux Und Mehr

startet. Damit mit jedem Rechnerstart das Modul geladen wird, sollte es namentlich in derDatei rc.conf unter zu ladende Module eingebunden werden. Wie dies funktioniert, stehtim Kapitel "Kernel-Module".

Wer möchte, kann das Arbeitsplatzrechnerskript ebenfalls so (ohne, dass es sich jetztnegativ ließt) konservativ gestalten, dass ausgehende Verbindungen nur zu bestimmtenDiensten möglich werden. Vermutlich brauchen Sie dazu weit mehr Regeln. Hierzu kanndie Seite unter http://www.iana.org/assignments/port-numbers weiter helfen, um dienotwendigen Ports z.B. für den Mail- oder HBCI Server in Erfahrung zu bringen. Alleszusammen, ob statisch Filtern, dynamisch Filtern oder alles zusammen, gehört zu einerFirewall-Strategie. Daher sollte das Für und Wider vorher abgewogen werden, bevor es andas passende Skript geht.

11.5. Regeln speichern und prüfenDie nächsten Beschreibungen beziehen sich zur Veranschaulichung auf das Skript für denArbeitsplatzrechner und sind entsprechend identisch zur Serverkonfiguration.

11.5.1. DateiarbeitEs sollte nun überprüft werden, ob:

1. Aus Sicherheitsgründen die Berechtigungen nur für den Benutzer und die Gruppe rootgesetzt sind. Wenn nicht, kann dies mit den Eingaben:

chown root fw_arbeitsplatz.sh

und

chgrp root fw_arbeitsplatz.sh

erfolgen.

2. Das Skript nur für den Benutzer root ausführbar ist. Auch hier hilft die Eingabe:

chmod 0700 fw_arbeitsplatz.sh

Ist alles erfolgt sollte das Ergebnis so aussehen.

Abbildung 11.2. Firewall-Skriptdatei

11.5.2. Skript ausführen

Iptables

104

Page 115: Archlinux Und Mehr

Gestartet wird das Skript mit:

./fw_arbeitsplatz.sh

Werden eventuell Fehler aufgezeigt, gibt iptables zur besseren Diagnose gleich dieZeilennummer der betreffenden Stelle in der Skriptdatei mit an. Bitte achten Sie auf Groß-und Kleinschreibung, hier schleichen sich am schnellsten die Fehler ein.

11.5.3. Ketten prüfenAlle mit Regeln gefüllten Ketten werden von oben nach unten durchlaufen, so wie sie imSkript eingetragen sind. Mit der Eingabe von:

iptables –vnL

listet iptables diese auf. Hier kann sehr gut verglichen werden, in welcher Reihenfolge dieRegeln gesetzt sind.

Zum Vergleich, wie z.B. die Kette INPUT laut Skript gefüllt wird:

iptables -P INPUT DROPiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -p ALL -m state --state INVALID -j DROPiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Und wie die Ausgabe von „iptables –vnL“ dies anzeigt:

Abbildung 11.3. Iptables Ausgabe

Die Policy wird nicht mit aufgeführt. Allerdings alle Regeln in der Reihenfolge, wie sie imSkript gesetzt sind. Also hat das Skript funktioniert.

11.5.4. Finale ArbeitBevor jetzt endgültig iptables als Dienst zum automatischen Laden bei jedem Bootvorgangeingebunden wird, ist die Eingabe:

/etc/rc.d/iptables save

notwendig. Hiermit werden alle Regeln endgültig für den Dauerbetrieb in die Datei/etc/iptables/iptables.rules gespeichert. Würde dieser Schritt ausgelassenwerden, hätten alle Regeln eine Lebenszeit bis zum nächsten Neustart.

Um verschiedene Regeln und Funktionen zu testen (Fehleranalyse), kann ich folgendes

Iptables

105

Page 116: Archlinux Und Mehr

Vorgehen empfehlen:

1. Änderungen am Konfigurationsskript vornehmen.

2. Iptables stoppen:

/etc/rc.d/iptables stop

3. Konfigurationsskript ausführen.

./fw_arbeitsplatz.sh

4. Konfiguration auf Iptables-Ebene speichern:

/etc/rc.d/iptables save

5. Und Iptables wieder starten:

/etc/rc.d/iptables start

11.6. Logbuch führenWenn Iptables arbeitet, bekommt man in der Regel nichts davon mit. Meistens nur dann,wenn etwas nicht funktioniert. Für Diagnosezwecke oder wer mehr erfahren möchte,warum im laufenden Betrieb z.B. Datenpakete verworfen werden, kann dieLogbuchfunktionen von Iptables einsetzen. Der vorinstallierte Logdienst syslog-ng unterArch Linux, wird schon für fast alle Systemereignisse genutzt. Ich hatte allerdings keineguten Erfahrungen in Verbindung mit Iptables sammeln können.

Als Ergänzung zu Syslog-ng bietet sich Ulogd für Iptables an; die Installation wird imKapitel Ulogd beschrieben.

11.6.1. Anpassen der Iptables-Konfiguration für UlogdDie Anpassung ist relativ einfach. Im Prinzip wird die Iptables-Regel, die protokolliertwerden soll, im Skript kopiert und dahingehend geändert, dass die Komandos Akzeptieren(-j ACCEPT) und Verwerfen (-j DOP) gegen "-j ULOG" ausgetauscht werden. Dasangepasste Serverskript veranschaulicht dies:

nano /root/fw_server_ulogd.sh

#!/bin/sh## Autor: Farid Mésbahi# Version: 0.5# Datum: 21.08.2006# Letzte Aenderung: 15.12.2010# Beschreibung: Dieses Skript setzt die Firewall-Regeln für# einen Server mit Logbuch-Funktion

# Laden notwendiger Kernel-Modulemodprobe ip_conntrack_ftp

# Loeschen aller vorhandenen Regeln und selbst# definierten Ketteniptables -Fiptables -X

Iptables

106

Page 117: Archlinux Und Mehr

# Regeln (Policy) zum Verwerfen aller nicht# akzeptierten Paketeiptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

# Regel fuer das Erlauben des internen (INPUT) Verkehresiptables -A INPUT -i lo -j ACCEPT

# Regel zum Verwerfen eingehender nicht# konfomer Datenpaketeiptables -A INPUT -i eth0 -p ALL -m state --state ==>

==>INVALID -j ULOG --ulog-prefix "Input (INVALID Packet): "iptables -A INPUT -i eth0 -p ALL -m state --state ==>

==>INVALID -j DROP

# Regel für neue Verbindungen die wirklich als# solche entsprecheniptables -A INPUT -i eth0 -p tcp ! --syn -m state ==>

==>--state NEW -j ULOG --ulog-prefix "Input ==>==>(SYN CORRUPTION): "

iptables -A INPUT -i eth0 -p tcp ! --syn -m state ==>==>--state NEW -j DROP

# Regel zum Erlauben neuer (INPUT) Verbindungen - Sambaiptables -A INPUT -i eth0 -p tcp -m multiport ==>

==>--dport 137,138,139,445,901 -m state ==>==>--state NEW -j ACCEPT

# Regel zum Erlauben neuer (INPUT) Verbindungen - SSHiptables -A INPUT -i eth0 -p tcp --dport 22 -m ==>

==>state --state NEW -m hashlimit --hashlimit 1/m ==>==>--hashlimit-mode srcip --hashlimit-name ssh -j ACCEPT

# Regel zum Erlauben von Ping-Anfragen, sofern diese# nicht überhand nehmeniptables -A INPUT -i eth0 -p icmp --icmp-type ==>

==>echo-request -m state --state NEW ==>==>-m hashlimit --hashlimit 1/m ==>==>--hashlimit-burst 1 --hashlimit-mode srcip ==>==>--hashlimit-name ping -j ACCEPT

# Regel zum Akzeptieren eingehender Datenpakete# bei bestehenden Verbindungeniptables -A INPUT -i eth0 -m state --state ==>

==>ESTABLISHED,RELATED -j ACCEPT

# Regel zum Verwwerfen von Broadcast-Datenaketeniptables -A INPUT -i eth0 -d 192.168.1.255 -p ALL -j DROP

# Regel zum Protokollieren eingehender Datenpakete,# die in letzter Instanz durch die (INPUT) Policy# verworfen werdeniptables -A INPUT -i eth0 -j ULOG ==>

==>--ulog-prefix "Input (Others): "

# Regel fuer das Erlauben des internen (OUTPUT) Verkehresiptables -A OUTPUT -o lo -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT) Verbindungen - DNSiptables -A OUTPUT -o eth0 -p tcp --dport 53 ==>

==>-m state --state NEW -j ACCEPTiptables -A OUTPUT -o eth0 -p udp --dport 53 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT) Verbindungen - HTTPiptables -A OUTPUT -o eth0 -p tcp --dport 80 ==>

==>-m state --state NEW -j ACCEPT

Iptables

107

Page 118: Archlinux Und Mehr

# Regel zum Akzeptieren neuer (OUTPUT) Verbindungen - FTPiptables -A OUTPUT -o eth0 -p tcp --dport 21 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Akzeptieren neuer (OUTPUT) Verbindungen - NTPiptables -A OUTPUT -o eth0 -p udp --dport 123 ==>

==>-m state --state NEW -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --dport 123 ==>

==>-m state --state NEW -j ACCEPT

# Regel zum Weiterfuehren aufgebauter Verbindungeniptables -A OUTPUT -o eth0 -m state --state ==>

==>ESTABLISHED,RELATED -j ACCEPT

# Regel zum Protokollieren eingehender Datenpakete,# die in letzter Instanz durch die (OUTPUT) Policy# verworfen werdeniptables -A OUTPUT -o eth0 -j ULOG ==>

==>--ulog-prefix "Output (Others): "

Wie beschrieben, habe ich die Zeile kopiert, voran gestellt und am Ende alles gegen"ULOG" getauscht. Damit sich später der Logbucheintrag besser erklärt, wird "ULOG"um einen passenden Präfix z.B. ein kleiner Hinweis (--ulog-prefix "Input (INVALIDPacket): ") ergänzt. Am Anfang jedes Logbucheintrages wird genau dieser Text danneingetragen.

Die Kopie der Regel erfüllt den Zweck, dass genau zum gewünschten Zeitpunkt erstder Protokolleintrag erfolgt und danach die "eigentliche" Regel ihre Arbeit erledigt.Das bedeutet, dass Iptables beim Logbuchführen hier mit Hilfe von Ulogd denProzess nicht abbricht, wie es normaler Weise geschieht.Analog zum Punkt 1 erfolgt hier ein Eintrag, allerdings mit einem anderen Präfixtext,da ja ein anderer Fall mit geschrieben werden soll.An dieser Stelle werden alle Broadcast-Datenpakete, also die "Rundrufe" dereinzelnen Rechner im LAN, fallen gelassen, um das Protokoll nicht mit unwichtigenMeldungen zu fluten.Interessant sind die Datenpakete, die durch die Input-Policy, also die letzte Instanz,verworfen werden. Daher wird die Regel zum Protokollieren an das Ende der Kettehinzugefügt.Die gleiche Regel wie im Punkt 3, wird hier allerdings für die Output-Policyeingebunden.

11.7. Iptables als DienstUm nun Iptables als Dienst einzubinden, ist nur der Eintrag von "iptables" selbst direkt"hinter" dem Netzwerkdienst network in der Datei rc.conf notwendig (siehe Kapitel:Dienste).

Iptables

108

Page 119: Archlinux Und Mehr

Kapitel 12. SambaSamba ist wohl der bekannteste Datei- und Druckserver, umFestplattenkapazitäten bzw. Drucker in einem Netzwerk für eine bestimmteAnzahl von Anwendern unabhängig des Betriebssystems (sofern dieses dasentsprechende SMB/CIFS-Protokoll unterstützt) zur Verfügung zu stellen. DaSamba ein sehr mächtiger Dienst, mit einer Vielzahl von Funktionen ist, will ichhier an Hand eines Beispiels die Konfiguration und die Funktionalitäten zeigen.

12.1. Ein Beispiel - Die Agentur"Alpenglas"

Es handelt sich hierbei um eine fiktive Agentur mit drei Anwendern mit denNamen Ida, Emmelie und Marco. Die Anwenderinnen Emmelie und Ida habendarüber hinaus die Funktion als Administrator den Server zu warten. Zusätzlichist in der Agentur ein Streaming-Client als Gerät im Einsatz, welches über dasNetzwerk ebenfalls auf Inhalte zugreifen soll, die auf dem Server liegen um z.B.für Kunden Ergebnisse per Video-Beamer zu präsentieren. Da das Gerät unterden gleichen technischen Bedingungen auf dem Server zugreift, wie einAnwender auch, wird als Benutzername Erika vergeben. Der Dateiserver wirdsomit für alle drei Mitarbeiter und dem Streaming-Client in einer bestimmtenKonfiguration erreichbar sein. Dabei lehne ich mich an das Netzwerkkonzept(siehe Kapitel: Das Netzwerk) an und stelle folgende Voraussetzungen auf:

1. Zugriff auf dem Server von drei Anwendern und einem Streaming-Client.

2. Erreichbar mindestens unter Mac OS X, Linux und Windows.

3. Folgende Freigaben mit entsprechender Zugriffsberechtigung sollen zurVerfügung gestellt werden:

a. Jeder Benutzer hat seine eigene Freigabe, nach seinem Benutzernamenbenannt auf das nur er/sie lesend und schreibend Zugriff hat. Hier könnenz.B. regelmäßige Sicherungen abgelegt werden, die nur für den Anwendervon Interesse sind.

b. Eine Projekt-Freigabe mit der Bezeichnung "Transfer" soll für jeden derdrei Anwender erreichbar sein. Hier werden z.B. Projektdaten strukturiertabgelegt und ausgetauscht. Entsprechend lauten die Berechtigungen:Lesen und Schreiben.

c. Eine Quellen-Freigabe mit dem Namen "Source" soll als Hilfe für dieAdministratoren dienen, um über das Netz auf Programme zugreifen zukönnen, die auf den Arbeitsplatzrechnern zu installieren sind. Der Zugrifferfolgt ausschließlich von den Administratoren, entsprechend haben auchnur sie die vollen Berechtigungen wie Lesen und Schreiben.

d. Eine Medien-Freigabe mit dem Namen "Media" dient für alle Anwenderund dem Streaming-Client als Quelle für Präsentationen, Audioinhaltenund Dokumentationen. Alle Anwender erhalten die Berechtigung "nurlesend" darauf zugreifen zu können. Das Ablegen und Verwalten derInhalte erfolgt nur durch die Administratoren.

12.2. Die Installation von Samba

109

Page 120: Archlinux Und Mehr

Die Installation erfolgt mit dem Paketmanager pacman, der im Kapitel ArchLinux-Administration beschrieben wird. Entsprechend einfach ist das Installieren mit:

pacman -S samba

Danach sollte ein neues Verzeichnis mit dem Namen samba unter /etc eingerichtetworden sein.

12.3. Die Konfiguration von SambaDiese steckt in der Datei smb.conf im Verzeichnis /etc/samba. Als Vorlage wird dieDatei smb.conf.default genutzt, die sicherheitshalber vorher kopiert wird:

cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Folgender Inhalt zeigt für das Beispiel die notwendige Konfiguration. Bitte löschen Siesämtliche Einträge aus Ihrer Konfigurationsdatei, die nichts mit der unteren Konfigurationzu tun haben, um ein Fehlverhalten von Samba zu vermeiden:

nano /etc/samba/smb.conf

## smb.conf## Autor: Farid Mésbahi# Version: 0.4# Datum: 21.08.2006# Letzte Aenderung: 01.12.2009# Beschreibung: Konfiguration fuer einen einfachen Dateiserver

# Globale Einstellungen für Samba[global]workgroup = kreativgruppeserver string = wotan

security = userencrypt passwords = yes

hosts allow = 127.0.0.1 192.168.1.110 192.168.1.120 ==>==>192.168.1.130 192.168.1.210

#hosts deny = 192.168.1.10

log file = /var/log/samba/%m.logmax log size = 1000log level = 2

interfaces = lo eth0bind interfaces only = yes

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

wins support = yes

wins proxy = nodns proxy = no

unix extensions = no

invalid users = root bin sys uucp daemon adm sync ==>==>shutdown halt mail news operator

#Benutzerverwaltung für Samba bis zur Version 3.4.0#smb passwd file = /etc/samba/private/smbpasswd

Samba

110

Page 121: Archlinux Und Mehr

#passdb backend = smbpasswd

#Benutzerverwaltung für Samba ab der Version 3.4.0passdb backend = tdbsam

# Verzeichnisfreigaben[homes]comment = Eigenes Laufwerkpublic = noprintable = nobrowseable = noread only = nowritable = yes

[media]comment = Medien-Laufwerkpath = /mnt/fbase/mediavalid users = @kreativpublic = noprintable = nobrowsable = yesread only = yeswritable = nowrite list = emmelie idaforce group = kreativcreate mask = 0640directory mask = 0750

[source]comment = Programm-Laufwerkpath = /mnt/fbase/sourcevalid users = emmelie ida marcopublic = noprintable = nobrowsable = yesread only = yeswritable = nowrite list = emmelie idaforce group = kreativcreate mask = 0640directory mask = 0750

[transfer]comment = Projekt-Laufwerkpath = /mnt/fbase/transfervalid users = emmelie ida marcopublic = noprintable = nobrowsable = yesreadonly = yeswritable = nowrite list = emmelie ida marcoforce group = kreativcreate mask = 0660directory mask = 0770

Hier beginnen die übergeordneten globalen Einstellungen für die gesamteKonfiguration. Manche Einstellungen können allerdings individuell z.B. in denFreigaben überschrieben werden.Unter Windows wird die Arbeitsgruppe als Netzwerkunterteilung eingesetzt und alsStandard mit "Arbeitsgruppe" benannt. In diesem Fall lautet die Gruppe"kreativgruppe" und sollte in den Netzwerkeinstellungen von Windows berücksichtigtwerden (workgroup = kreativgruppe).Der Dateiserver soll mit Namen "wotan" heißen (server string = wotan).Hier wird die Art der Autentifizierung eingestellt. In diesem Fall durch Samba selbst,auf Benutzerebene (mit Kennwort) ohne einen separaten Dienst (security = user), mitverschlüsselter Kennwortverwaltung (encrypt passwords = yes).

Samba

111

Page 122: Archlinux Und Mehr

Nur bestimmte Rechner sollen Zugang zum Server erhalten, daher dieZugriffstbestimmungen auf Rechnerebene durch Angabe der entsprechendenIP-Adressen (hosts allow = 127.0.0.1 192.168.1.110 192.168.1.120 192.168.1.130192.168.1.210).Das Gegenstück zum Punkt fünf ist die Angabe der Rechner, deren Zugriff auf jedenFall verweigert werden soll (hosts deny = 192.168.1.10).

Anmerkung

In dieser Konfiguration ist die "hosts deny" Option ausgeklammert. Wenn beideOptionen gleichzeitig genutzt werden, besteht nach meinen Erfahrungen dieGefahr, dass trotzdem ein Rechner durch diese Zugriffssteuerung schlüpfen kann,der weder in der Liste von "hosts allow" noch in "hosts deny" steht. Daher ist esam sichersten, nur eine Optionsart zu benutzen.Ein Logbuch über die Vorgänge soll pro Rechner angelegt werden (log file =/var/log/samba/%m.log). Dazu wird die maximale Dateigröße in Kilobyte (max log size= 1000) und Detailierungsgrad der Logbucheinträge bestimmt (Log level = 2).In einem Rechner können mehrere Netzwerk-Schnittstellen zur Verfügung stehen.Welche für die Kommunikation bestimmt sind (interfaces = lo eth0) und entsprechendan Samba gebunden werden (bind interfaces only = yes), wird an dieser Stelledefiniert. Samba wird dann dazu gezwungen nur auf die IP-Adressen zu "hören", diehinter den Netzwerknamen (lo und eth0) stehen.Für den Netzwerkverkehr können bestehende Datenpuffer vergrößert werden, umeinen Geschwindigkeitsvorteil zu erhalten (socket options = TCP_NODELAYSO_RCVBUF=8192 SO_SNDBUF=8192).Samba stellt auch sehr einfach einen WINS-Service zur Verfügung. Als lokalerNamen-Server, wo sich alle (Windows-) Rechner registrieren. Der WINS-Dienst gibtdann bei direkter Anfrage Auskunft wer im Netz ist. Im privaten Umfeld wird vielleichtder Server nicht immer 24 Stunden am Tag laufen, daher also nicht immer denService bereit stellen können. Wird dieser eingesetzt, sollte nur ein WINS-Server imLAN eingesetzt werden, um Probleme auszuschließen. Ich habe ihn mal mit aktiviert,da er so kein Brot frisst (wins support = yes). Unter Windows wird dann in denNetzwerkeinstellungen als WINS-Server die IP-Adresse vom Samba-Servereingetragen.Auch Proxy-Funktionalitäten stellt Samba bereit, die hier allerdings nicht benötigtwerden (wins proxy = no) (dns proxy = no).Die "Unix Extensions" sind Erweiterungen im Protokoll, um z.B. eine bessereUnterstützung bei Links zu Dateien zu ermöglichen. Ich habe eher die Erfahrunggemacht, dass diese Erweiterungen auch zu Problemen beim Setzen derBerechtigungsattribute führen können. Daher habe ich die "Unix Extensions"ausgeschaltet.Unter Punkt fünf und sechs werden auf Rechnerebene, mit der entsprechendenIP-Adresse, die Zugriffserlaubnis geregelt. An dieser Stelle geschieht dies (zusätzlich)auf Benutzerebene (invalid users = root bin sys uucp daemon adm sync shutdownhalt mail news operator). Dabei handelt es sich nicht nur um personenbezogeneAnwender, sondern auch um Dienste selbst, die durch einen Fehler und einerentsprechenden Attacke "zweckentfremdet" werden könnten.Ab der Version 3.4.0 von Samba hat das Entwickler-Team die Benutzerverwaltung ineiner einfach strukturierten Datenbank (TDB =Trivial Database) übergeben und diesals Standardvorgabe fest gelegt.

Somit ist die Verwaltung der Benutzer samt Kennwörtern in der ursprünglichenFassung mittels der Datei smbpasswd hinfällig geworden. Wer dennoch mit derherkömmlichen Methode (smbpasswd) arbeiten möchte, kann die Arbeit mit demEintrag "passdb backend = smbpasswd" erzwingen. Wer also in dieser Form (smbpasswd file = /etc/samba/private/smbpasswd) die Konfiguration vornimmt, sollteebenfalls später darauf achten, dass nur "root" als Eigentümer lesend und schreibendauf diese Datei Zugriff hat.

Ob die Entwickler in Zukunft die Nutzung der Datei smbpasswd noch unterstützenwerden, steht in den Sternen. Ich möchte den neuen Weg so früh wie möglicheinschlagen, daher sind die "alten" Parameter auskommentiert und die Neuen parallel

Samba

112

Page 123: Archlinux Und Mehr

zur Voreinstellung (ab Version 3.4.0) mit "passdb backend = tdbsam" eingebunden.

Der Umstieg mit Übernahme der bestehenden Daten ist ohne Probleme möglich undwird u.a. im Kapitel "Die Samba-Benutzerverwaltung" beschrieben.Hier beginnen die Freigaben. Jede Freigabe beginnt mit dem Eigennamen in eckigenKlammern, der für den Anwender später als Freigabenamen sichtbar ist. [homes]besitzt hier eine Sonderstellung, dieser wird von Samba besonders interpretiert undveranlasst eine eigene Verarbeitung der Benutzerverzeichnisse. Daher ist eineAngabe des Pfades der entsprechenden Freigabe nicht notwendig. Vielmehr wird derBenutzername des gerade angemeldeten Anwenders interpretiert und dessenHeimatverzeichnis automatisch zugeordnet.

Da sich für die anderen Freigaben die Parameter mehr oder weniger wiederholen,sind die Notwendigen in der folgenden Tabelle aufgelistet:

Tabelle 12.1. Samba-Freigaben-Parameter

Parameter Beschreibung Bemerkung

comment Ein Kommentar für denAnwender erleichtert dieDefinition der Freigabe. Wirdallerdings nicht von jedemDateibrowser angezeigt.

path Der genaue Pfad desVerzeichnises, welches freigegeben werden soll.

valid users Angabe der berechtigtenBenutzer.

Benutzername oder Gruppe(angeführt durch einAt-Zeichen).

public = no Mitteilung, dass dieentsprechende Freigabenicht öffentlich, z.B. durcheinen Gastzugang erreichbarist.

printable = no Hierbei handelt es sich nichtum eine Druckerfreigabe.

browsable = yes/no Soll die Freigabe sichtbarsein oder nicht? EinigeBetriebssysteme halten sichallerdings nicht an demParameter und zeigentrotzdem die Freigabe an,falls auf "no" gesetzt wurde.

read only = yes/no Darf nur gelesen werden?

writable = yes/no Dürfen Dateien undVerzeichnisse angelegtwerden?

write list Welcher Benutzer oderwelche Gruppe darf Dateienund/oder Verzeichnisseanlegen.

Identisch zum Parameter"valid users". Hebt für dieangegebenen Benutzerund/oder Gruppen denSchreibschutz durch denParameter "writable" auf.

force group Gibt vor, welche Gruppebeim Anlegen einer Dateioder eines Verzeichnissesvergeben wird.

Samba

113

Page 124: Archlinux Und Mehr

create mask Erzwingt dieBerechtigungsattribute beiAnlegen neuer Dateien.

directory mask Erzwingt dieBerechtigungsattribute beiAnlegen neuerVerzeichnisse.

Getestet wird die Konfiguration am besten mit dem Befehl testparm. Dieser liest die Dateismb.conf aus und gibt nach einer Prüfung einen Bericht aus. Hier können im erstenSchritt eventuelle Tippfehler in der Konfigurations erkannt und beseitigt werden.

12.4. Die VorbereitungenSamba setzt auf Linux auf. Das heißt, egal welche Freigaben sie in der Konfigurationdefinieren, es müssen die entsprechenden Freigaben auf Linux-Ebene vorhanden sein.Würden Sie z.B. ein Verzeichnis einem Benutzer unter Samba zum Lesen frei geben, esallerdings unter Linux vernachlässigen, wird der Zugang verweigert.

Abbildung 12.1. Samba-Symbiose

Anmerkung

Bei der Berechtigungsvergabe werden die meisten Fehler gemacht. Daherempfehle ich mit dem Aufbau der Verzeichnisse - für die späteren Freigaben - zubeginnen. Mit den entsprechenden Berechtigungen auf Linux-Ebene solltegroßzügig begonnen werden, um anschließend darauf die Samba-Freigaben"konservativer" nach eigener Planung zu montieren. Hierdurch vereinfacht sich dieFehlerdiagnose. Erste Fehler sind dann eher bei der Samba-Konfiguration

Samba

114

Page 125: Archlinux Und Mehr

einzugrenzen. Läuft die Samba-Installation wie man es sich wünscht, können imzweiten Schritt die Freigaben auf Linux-Ebene weiter eingeschränkt werden.

Die folgenden Schritte beziehen sich zusammen auf die Serverausstattung laut Kapitel"Ein einfacher Dateiserver" bzw. auf das Beipielkonzept "Die Agentur Alpenglas" zu Beginndes Samba-Kapitels.

1. Die späteren Verzeichnisse (Freigaben) sind unter fbase anzulegen. DiesesVerzeichnis (/mnt/fbase) sollte schon existieren, da während derAusstattungsvorbereitungen hierhin die Partition gemountet wurde. Eine Prüfung solltefolgendes Ergebnis zeigen:

ls /mnt

Abbildung 12.2. List (/mnt)

Anmerkung

Für eine bessere Übersicht der Zugriffsbestimmungen für Verzeichnisse undDateien kann ich zum Befehl list weitere Parameter empfehlen, die weitere Detailswie in der Abbildung zu sehen sichtbar machen (siehe Anhang A). Mehr zumThema Berechtigungen ist im Anhang B zu finden.

Um das Ergebnis auf einen anderen Weg vergleichen zu können, gibt es den Weg:

a. Sprung in das Verzeichnis mit dem Befehl cd (Change Directory):

cd /mnt

um anschließend mit:

ls -lisa

sich den Inhalt anzeigen zu lassen.

b. Oder der Verzeichnispfad wird dem Befehl list mit übergeben, dessen Inhaltangezeigt werden soll:

ls -lisa /mnt

Um nun die Freigabe-Verzeichnisse anzulegen, wird in das Verzeichnis fbasegewechselt:

Samba

115

Page 126: Archlinux Und Mehr

cd /mnt/fbase

Nun werden die Verzeichnisse erstellt, die später unter Samba für die Anwender freigegeben werden. Hierzu dienen die folgenden Eingaben:

mkdir media

mkdir source

mkdir transfer

Alle drei neuen Verzeichnisse besitzen die Standardberechtigung für den Eigentümer,die Gruppe und für jeden anderen Benutzer. Um im ersten Schritt Fehler bei derKonfiguration zu vermeiden, werden auf Linux-Ebene die Berechtigungen recht"locker" definiert. Jedes der drei neuen Verzeichnisse soll für jeden Benutzeruneingeschränkte Berechtigungen erhalten. Also in das Verzeichnis überhaupt zuwechseln, Inhalte einzusehen und neue Objekte anlegen zu dürfen. Somit gestaltetsich die feinere Zugriffssteuerung ausschließlich auf die darüber liegendeSamba-Ebene.

Mit folgenden Eingaben werden die Zugriffsberechtigungen der drei Verzeichnisse für"jeden" gelockert.

Chmod 757 media

Chmod 757 source

Chmod 757 transfer

Abbildung 12.3. List (/mnt/fbase)

2. Nachdem die Verzeichnisse angelegt wurden, wird nun mit der Benutzerverwaltungweiter gemacht. Samba kennt verschiedene Wege für eine Benutzerverwaltung, oblokal auf dem Rechner selbst, wo Samba installiert ist oder über eine Verwaltung aufausgelagerten Maschinen mit entsprechenden Diensten.

Der einfachste Weg ist die lokale Benutzerverwaltung. Hierzu muss unter Linux derBenutzer angelegt sein (für die Linux-Ebene) und identisch für Samba (dieSamba-Ebene). Mit der Samba-Installation werden neben den Diensten auch einigeWerkzeuge installiert. Unter anderem auch, um für Samba Benutzer anzulegen.Hierbei sollte der Benutzernamen und das Kennwort auf beiden Ebenen(Linux/Samba) identisch sein (nicht gemeint ist: Benutzername = Kennwort).

Samba

116

Page 127: Archlinux Und Mehr

Damit für Samba ebenfalls die Benutzer angelegt werden können, sollten Sieüberprüfen, ob das Verzeichnis private unter /etc/samba existiert. Denn dortwerden verschlüsselt die Samba-Benutzerdaten in einer einfachen Datenbankabgelegt. Existiert dieses Verzeichnis nicht, muss es dort nachträglich mit:

mkdir /etc/samba/private

angelegt werden. Bitte achten Sie auch darauf, dass ausschließlich der Eigentümer"root" den Zugriff besitzt und als Gruppe ebenfalls "root" gesetzt ist. Wenn nicht,sollten Sie die entsprechenden Änderungen vornehmen.

Würde das Verzeichnis nicht existieren, erhalten Sie eine Fehlermeldung bei demVersuch einen Samba-Benutzer zu erstellen. Weitere Infos zum Anlegen undVerwalten von Benutzern unter Linux ist im Kapitel "Die Benutzerverwaltung"beschrieben. Für das Beispielkonzept werden dann folgende Benutzer für Linux undSamba angelegt. Zuvor allerdings wird eine neue Gruppe zur einfacheren Verwaltungerzeugt, in der später die Benutzer zugeordnet werden:

groupadd kreativ

Nun die Benutzer. Die Befehle useradd und passwd sind jeweils für das Anlegen desBenutzers und die Zuweisung eines Kennwortes unter Linux zuständig. Mit Hilfe vonpdbedit geschieht dies in einem Rutsch im Dialog für Samba:

useradd -m -G users,wheel,kreativ,optical,storage -s /bin/bashemmelie

passwd emmelie

pdbedit -a -u emmelie

useradd -m -G users,wheel,kreativ,optical,storage -s /bin/bashida

passwd ida

pdbedit -a -u ida

useradd -m -G users,kreativ marco

passwd marco

pdbedit -a -u marco

useradd -m -G users,kreativ erika

passwd erika

pdbedit -a -u erika

Wie bestimmt erkannt, sieht das Anlegen der Benutzer für Marco und Erika anders

Samba

117

Page 128: Archlinux Und Mehr

aus, als bei den Anderen. Das liegt damit zusammen, da Marco und Erika reineSamba-Freigaben aus der "Ferne" nutzen und sich nicht direkt an den Serveranmelden werden. Dem zufolge benötigen solche Benutzer auch keineShell-Zuweisung bzw. eine eingeschränkte Gruppenzuordnung; hier in unseremBeispiel nur die Gruppen, die später für die Samba-Freigaben notwendig sind.Emmelie und Ida haben darüber hinaus administrative Aufgaben und werden sichauch direkt an den Server anmelden. Daher wurde eine Shell-Zuweisung mitentsprechenden Gruppenzugehörigkeiten definiert.

12.5. Die Samba-BenutzerverwaltungWie im vorherigem Kapitel beschrieben, ist die Voraussetzung für Samba analog einenLinux-Benutzer zu haben. Das ist der Grund, warum einerseits für Linux mit dem Befehluseradd und mit pdbedit für Samba der selbe Benutzer angelegt werden muss. EineSynchronisation, ausgehend von pdbedit, um beim Anlegen eines Samba-Benutzers auchsofort einen Linux-Benutzer zu haben gibt es nicht.

Der Befehl pdbedit selbst ist vermutlich erst mit der Version 3.4.0 von Samba berühmtgeworden, da das Samba-Entwicklerteam die einfache Benutzerverwaltung mit Hilfe derDatei smbpasswd zurück gestellt hat. Und für gleiche Zwecke zur einfach strukturiertenDatenbank (TDB =Trivial Database) übergegangen ist, die nun auch die Voreinstellung ist.Folgende pdbedit-Funktionen, neben dem Anlegen neuer Benutzer, sind wohl dieGebräuchlichsten:

Tabelle 12.2. Kleine pdbedit-Übersicht

Parameter Beschreibung

pdbedit -a -u Benutzername Anlegen eines neuen Benutzers mitAbfragen des Kennwortes.

pdbedit -a -u Benutzername -f "ManfredMusterman"

Anlegen eines neuen Benutzers, mitBenutzernamen und kompletten Namen.

pdbedit -x -u Benutzername Löschen eines Benutzers.

pdbedit -i smbpasswd -e tdbsam Importieren der "alten" Benutzerdaten (ausder Datei smbpasswd) in die neueDatenbankform.

pdbedit -L -v Übersicht aller vorliegenden Benutzer in derDatenbank.

12.6. Der Samba-StapellaufSind alle Punkte aus den vorherigen Kapiteln bedacht, kann jetzt der erste Start beginnen.Als Benutzer "root" angemeldet, wird jetzt direkt der Samba-Dienst unter Arch Linuxgestartet:

/etc/rc.d/samba start

Haben Sie vielleicht noch Änderungen an der Konfigurationsdatei zu machen, sollten Sievorher den Dienst stoppen:

/etc/rc.d/samba stop

Samba

118

Page 129: Archlinux Und Mehr

und nach der Bearbeitung neu starten. Samba liest zwar in regelmäßigen Abständen dieKonfiguration erneut ein, Änderungen werden aber am sichersten und schnellsten überdiesen Weg registriert.

Um sich nun eine Übersicht ausgeben zu lassen, wie Samba konfiguriert wurde und sichnun gegenüber den Benutzern präsentiert, wird mit folgender Eingabe am Serverangezeigt:

smbclient -U% -L localhost

12.7. Der Zugriff auf die Samba-FreigabenDer Zugriff ist im Allgemeinen unter den verschiedenen Betriebssystemen rechtunkompliziert. Im Samba-Beipiel selbst ist allerdings ein Streaming-Gerät mit aufgeführt.Hier sollte auf jeden Fall bedacht sein, dass solch ein Gerät Samba-Freigaben (SMB/CIFS)verwalten kann. Wie dann der Zugriff konfiguriert wird, hängt vom jeweiligen Hersteller desGerätes ab.

Im Allgemeinen wird der Pfad zur Freigabe mit dem entsprechenden Namen in denjeweiligen Einstellungsdialogen eingetragen. Laut Beispiel sind das:

• Benutzername (z.B. marco oder emmelie)

• media

• source

• transfer

Beim Versuch die Freigabe mit dem System zu verlinken, wird dann nach Benutzernameund Kennwort gefragt.

Grundvoraussetzung ist hierbei eine funktionierende Netzwerkkonfiguration, wie sie z.B. imKapitel "Das Netzwerk" beschrieben ist. Das beschriebene Konzept gilt hierbei nicht nur fürArch Linux, sondern quasi für fast alle Betriebssysteme, die per TCP/IP im Verbundkommunizieren.

Wie nun der Zugang unter Mac OS X, Windows und Linux funktioniert, zeigen diefolgenden Kapitel.

12.7.1. Unter Apple Mac OS XUnter Mac OS X ist der Zugang zu Freigaben sehr einfach. Hierzu wird der Findergestartet und über das Menü Gehe zu → Mit Server verbinden die Verbindung hergestellt.

Abbildung 12.4. Mac OS X - Finder

Samba

119

Page 130: Archlinux Und Mehr

Im Folgedialog wird nach der Wunschfreigabe verlangt. Der komplette Pfad zurentsprechenden Freigabe (z.B.:smb://192.168.1.20/transfer) ist hier eine Voraussetzung.Mit dem Schalter Pluszeichen können die Adressen als Vorlage unter "Bevorzugte Server"abgelegt werden.

Abbildung 12.5. Mac OS X - Mit dem Server verbinden

Samba

120

Page 131: Archlinux Und Mehr

Da unter Samba der Zugriff auf Benutzername mit Kennwort konfiguriert ist, werden dieZugangsdaten im nächsten Dialog abgefragt. Danach wird die Verbindung, beierfolgreicher Authentifizierung, als Netzwerklaufwerk im Finder angezeigt.

12.7.2. Unter Linux (Gnome)Exemplarisch für alle anderen grafischen Benutzeroberflächen für Linux ist die Verbindungzu den Freigaben unter Gnome beschrieben. Im Prinzip sind es immer die gleichen Wege;als erstes wird der passende Dialog zum Verbinden eines Servers geöffnet. Bei Gnomeüber Orte → Verbindung zu Server.

Abbildung 12.6. Gnome - Dialog 1

Samba

121

Page 132: Archlinux Und Mehr

Um anschließend die Verbindungsdaten einzugeben.

Abbildung 12.7. Gnome - Dialog 2

Samba

122

Page 133: Archlinux Und Mehr

Wichtig ist zu Beginn den "Dienste-Typ" per Pulldownmenü auf die "Windows-Freigabe" zustellen. Anschließend reicht es aus die IP-Adresse des Servers, den Namen der Freigabeund den Benutzernamen in die entsprechenden Felder einzutragen.

Nach Bestätigung mit dem Schalter Verbinden, kommt die Authentifizierung. Ist dasrichtige Kennwort eingetragen, bindet Gnome die Freigabe ein.

12.7.3. Unter Linux (Shell)Manchmal ist es notwendig, auch unter einer Shell die Freigaben im System zu verlinken(mounten). Entweder um eben schnell etwas zu sichern oder insbesondere dann, wennbestimmte Programme oder Skripte mit den Netzwerkverbindungen - innerhalb einergrafischen Benutzeroberfläche hergestellt - nichts anfangen können. Also die Freigabenüberhaupt nicht erreichen, weil sie im Verzeichnisbaum des Systems erwartet aber nichtintegriert wurden.

Dabei gibt es verschiedene Möglichkeiten dieses zu bewerkstelligen. Für alleMöglichkeiten gilt als Vorbereitung Samba zu installieren, um alle notwendigen Module undProgramme zu erhalten (siehe Kapitel: Die Installation von Samba). MancheHilfsprogramme untersuchen das Samba-Verzeichnis nach einer vorhandenenSamba-Konfigurationsdatei, die ohne Inhalt mit:

nano /etc/samba/smb.conf

angelegt wird. Sonst würde die Arbeit dieser Hilfsprogramme verweigert werden. Alsnächstes gilt es den Mountpunkt zu bestimmen, wo später die Freigaben mit verlinktwerden. Als root angemeldet, wird zu erst mit:

mkdir /mnt/ds_wotan

ein übergeordnetes Verzeichnis angelegt. Hier als Beispiel mit dem Namen desDateiservers, da evtl. im Netzverbund nicht nur ein Server vorhanden ist. Darunter werdendann Verzeichnisse mit den Namen angelegt, die analog als Freigabe vom Dateiserver zurVerfügung gestellt werden:

mkdir /mnt/ds_wotan/transfer

mkdir /mnt/ds_wotan/media

mkdir /mnt/ds_wotan/source

Da alle neuen Verzeichnisse vom root angelegt wurden, sind diese somit nur für ihnzugänglich. Damit der Standardbenutzer ebenfalls auf die Verzeichnisse zugreifen kann,müssen als erstes die Gruppe und die Zugriffsattribute zum übergeordnetem Verzeichnisgeändert werden:

chgrp users /mnt/ds_wotan

chmod 0750 /mnt/ds_wotan

Hiermit ist der Zugriff zwar vom root und vom Standardbenutzer möglich, aber dasVerwalten ist weiterhin nur dem root vorbehalten.

Das Ergebnis sollte dann wie in der nächsten Abbildung aussehen.

Samba

123

Page 134: Archlinux Und Mehr

Abbildung 12.8. Shell - Mount-Vorbereitung

Im Folgenden werden zwei Methoden zum Verbinden der Freigaben beschrieben:

1. Bei der ersten Methode wird mit dem Standardbefehl mount gearbeitet. Das Resultat istschnell vorhanden und hat hierbei allerdings einen Haken. Das Mounten ist in der Regelnur dem Benutzer root gestattet. Möchte ein Standardbenutzer ebenfalls Freigabenmounten, so muss er entweder die Möglichkeit haben sich als root zu substituieren(Befehl su) oder der Befehl sudo steht zur Verfügung, bzw. die systemweiteBerechtigung vom Befehl mount wird angepasst, so dass z.B. die Gruppe users, in deralle Standardbenutzer enthalten sind, mount nutzen dürfen.

Die letztere Alternative würde ich aus Sicherheitsgründen ausschließen. Also bleibennur noch su und sudo für Standardbenutzer übrig. In beiden Fällen wird allerdings nachdem root-Kennwort gefragt, was ggf. wiederum zu Komplikationen führen kann, wenndieses für Standardbenutzer aus Sicherheitsbestimmungen nicht bekannt sein darf.

Generell darf der Zugriff auf eine Freigabe mit einem anderen Benutzernamen, als zumgerade aktuell Genutzen erfolgen. Was stimmen muss, ist der Benutzername inVerbindung mit dem Kennwort, so wie es auf Serverseite eingerichtet wurde. Eine lokalePrüfung durch das Linux-System erfolgt nicht. Also als root angemeldet wird mit:

mount -t cifs //192.168.1.20/transfer /mnt/ds_wotan/transfer - ousername=emmelie,password=richtigeskennwort,file_mode=0660,dir_mode=0770,uid=emmelie,gid=users

die Freigabe im Verzeichnisbaum eingebunden. Meldet sich root vom System ab (keinNeustart des Systems) und der Standardbenutzer kommt zum Zuge, sind dieVerbindungen noch vorhanden. Gegenüber Samba gilt immer noch der vorherserverseitig angemeldete Benutzer mit entsprechender Authentifizierung.

Was funktioniert wie:

Tabelle 12.3. Mount - Parameter

Parameter Beschreibung

-t cifs Hiermit wird das Dateisystem angegeben.

//192.168.1.20/transfer Die komplette Adresse samtFreigabenamen.

/mnt/ds_wotan/transfer Einhängepunkt im Verzeichnisbaum.

Samba

124

Page 135: Archlinux Und Mehr

-o Die Angabe von Optionen, diehintereinander durch ein Komma getrenntangegeben werden.

username=emmelie,password=richtigeskennwortEntsprechende Authentifizierung gegenüberdem Samba-Server.

file_mode=0660,dir_mode=0770 Berechtigungsattribute für Dateien(file_mode) und Verzeichnisse (dir_mode)für den lokalen Einhängepunkt.

uid=emmelie,gid=users Benutzer (uid) und Gruppe (gid), dieebenfalls für den lokalen Einhängepunktgesetzt weden.

Die nächste Abbildung zeigt das Ergebnis.

Abbildung 12.9. Shell - Mount-Ergebnis

Interessant ist jetzt, dass eine Bearbeitung wie zuvor für das übergeordnete Verzeichnisds_wotan mit den Befehlen chgrp und chmod nicht notwendig war. Sondern dies mitHilfe der entsprechenden Parametern geschah.

Bei den Berechtigungsattributen zählt allerdings das, was als Ergebnis bei derVerknüpfung mit einem logischen "UND" bei beiden Attributen-Seiten (Lokal / Server)resultiert. Daher kann es z.B. nicht möglich sein, sich lokal mehr Berechtigungen zugeben, als auf dem Server definiert wurde. Die Parameter file_mode und dir_modekönnen so auf alle Freigaben laut Beispiel genutzt werden.

Abbildung 12.10. Gesetzte Attribute (Beispiel)

Samba

125

Page 136: Archlinux Und Mehr

Für neue Dateien oder Verzeichnisse werden Gruppen- bzw. Benutzernamen mitZugriffsrechten auf Serverseite so gesetzt, wie es in der Samba-Konfiguration definiertwurde.

Alle manuell hergestellten Verbindungen halten solange, bis der Rechner neu gestartetwird.

2. Gegenüber dem manuellen Weg, ist vielleicht ein automatisches Verbinden derFreigaben mit jedem Rechnerstart gewünscht. Hier hilft die Datei fstab weiter. EinEintrag pro Freigabe wird diese dann mit jedem Rechnerstart verbinden. Exemplarischund angelehnt an Punkt 1, wird dazu folgende Zeile in die Datei fstab hinzugefügt:

nano /etc/fstab

.

.

//192.168.1.20/transfer /mnt/ds_wotan/transfer cifs users, ==>==>username=emmelie,password=richtigeskennwort, ==>==>file_mode=0660,dir_mode=0770,uid=emmelie,gid=users 0 0

Der Zusatz des Gruppennamens users in den Optionen, gibt jedem Standardbenutzerdie Möglichkeit, nachträglich diese Freigabe mit:

mount /mnt/ds_wotan/transfer

zu verbinden, falls zum Zeitpunkt des Rechnerstarts der Dateiserver ausgeschaltet war.Möchte man von vornherein nur die Möglichkeit schaffen, als Standardbenutzer dieFreigabe zu mounten, allerdings nicht schon beim Rechnerstart, hilft zusätzlich derParameter noauto weiter:

.

Samba

126

Page 137: Archlinux Und Mehr

.

//192.168.1.20/transfer /mnt/ds_wotan/transfer cifs users, ==>==>noauto,username=emmelie,password=richtigeskennwort, ==>==>file_mode=0660,dir_mode=0770,uid=emmelie,gid=users 0 0

Insgesamt gibt es allerdings zwei Seiten der Medaille. Einerseits wurde die Klippeumschifft, dass ausschließlich root (Punkt 1) innerhalb einer Shell, Freigaben mit demlokalen System verbinden kann. Die andere Seite zeigt allerdings, dass für die hierbeschriebene Lösung nur von einem Standardbenutzer neben root ausgegangen wird.Gibt es mehrere Benutzer auf ein und demselben System, so wird denen automatischdie Verbindung unter der einen fest definierten Benutzervorgabe (mit entsprechendenBerechtigungen) auf dem Tablett serviert.

In beiden Varianten werden die Zugangsdaten in Klartext, für Jeden sichtbar benutzt.Etwas sicherer werden Benutzernamen und Kennwort in eine Textdatei(Credentials-Datei) geschrieben und im Benutzerverzeichnis gespeichert.

nano /home/emmelie/.cifslogin

username=emmeliepassword=richtigeskennwort

Anschließend sollten sicherheitshalber die Zugriffsattribute Lesen und Schreiben nur fürden Eigentümer mit:

chmod 0600 /home/emmelie/.cifslogin

entsprechend der Zugriff auf root:

chown root /home/emmelie/.cifslogin

eingeschränkt werden:

Die Parameter username und password sind dann durch den Eintrag"credentials=/home/emmelie/.cifslogin" auszutauschen. Für die erste Variante ergibtdies:

mount -t cifs //192.168.1.20/transfer /mnt/ds_wotan/transfer - ocredentials=/home/emmelie/.cifslogin,file_mode=0660,dir_mode=0770,uid=emmelie,gid=users

Analog für den Weg über die Datei fstab:

.

.

//192.168.1.20/transfer /mnt/ds_wotan/transfer cifs users, ==>==>credentials=/home/emmelie/.cifslogin,file_mode=0660, ==>==>dir_mode=0770,uid=emmelie,gid=users 0 0

12.7.4. Unter WindowsBei Windows wird am einfachsten der Windows-Explorer zum Verbinden der Freigabeneingesetzt. Mit den Menüpunkten Extras → Netzlaufwerk verbinden wird im Folgedialogder Pfad zur Freigabe eingetragen.

Samba

127

Page 138: Archlinux Und Mehr

Windows schlägt in der Regel den letzten freien Buchstaben aus dem Laufwerks-Alphabetvor. Dieser kann aber über das Pulldown-Menü Laufwerk geändert werden. Verbindungen,die beim nächten Start automatisch zugeordnet werden sollen, sind über die CheckboxVerbindung bei Anmeldung wiederherstellen zu speichen. Hier sollte dann aber der Serverzur Verfügung stehen, sonst wird der Versuch mit einer Fehlermeldung quittiert.

Auch hier gilt die gleiche Authentifizierungs-Prozedur, die Abfrage nach Benutzername unddem Kennwort. Die Freigabe ist dann nach der Anmeldung als Laufwerk imWindows-Explorer sichtbar.

12.8. Der NachschliffKlappt alles, kann nun der Samba-Dienst in die Datei rc.conf als solcher mit derBezeichnung "samba" eingetragen werden (siehe Kapitel: Dienste), damit mit jedemRechnerstart Samba direkt mit gestartet wird.

Samba

128

Page 139: Archlinux Und Mehr

Kapitel 13. SSH (Secure-Shell)Mit der SSH besteht u.a. die Möglichkeit, sich im verschlüsselten Dialog voneinem Arbeitsplatz (Client) aus auf einen vernetzten Zielrechner (Server)anzumelden. Diese Verbindung kann dann z.B. für Pflegearbeiten amZielrechner über den eigenen Bildschirm her halten. Aber auch ein komplettverschlüsselter Tunnel, quasi als "gesicherte" Datenstrecke zwischen Client unddem Server wird von SSH unterstützt. Dabei ist in allen Fällen dieKommunikation nicht nur auf das lokale Netzwerk begrenzt, sondern ebenfallsüber das Internet möglich. In dieser Beschreibung beziehe ich mich allerdingsnur auf den direkten Zugriff auf den Zielrechner (ohne Tunnel).

Die SSH ist eigentlich kein einzelnes Programm, sondern eine Sammlung vonWerkzeugen, um entsprechende Verbindungen herstellen und Vorbereitungentreffen zu können. Vielleicht schon aus dem ersten Absatz zu erkennenmindestens einen Dienst (sshd), der die Verbindungsanfrage entgegen nimmtund ein Initialprogramm (ssh), welches die Verbindung aufbauen möchte.

SSH bietet zwei Protokollversionen an (SSHv1 und SSHv2), die sich nicht nur inden Einsatz von Prüfsummen für die eigentlichen Datenübertragungunterscheiden, sondern auch bei den Möglichkeiten und Abläufen sichgegenüber dem Server-Dienst zu vermitteln, bis die eigentliche Verbindungsteht. Da SSHv1 einen Fehler besitzt, der dazu ausgenutzt werden kann, aufdem Server-Rechner fremden Code zu starten, beziehen sich die späterenKonfigurationen auf den Einsatz von SSHv2, kombiniert mit den symmetrischenund asymmetrischen Verschlüsselungsmethoden, evtl. bekannt durch dasProgramm GnuPG.

Das Generieren von sogenannten Schlüsselpaaren (öffentlicher und privaterSchlüssel) ist also zusätzlich notwendig. Das Verschlüsseln der eigentlichenInformationen erfolgt symmetrisch mit vorher zwischen Client (Arbeitsplatz) undServer (Zielrechner) ausgehandelten Verschlüsselungsverfahren undentsprechendem Sitzungsschlüssel (symmetrischer Schlüssel).

Um nicht in die Situation zu kommen, mich bei den Bezeichnungen Client,Server, Arbeitsplatz und Zielrechner zu verrenken, schränke ich mich imFolgenden auf die Namen Arbeitplatzrechner und Zielrechner ein. Denn auchwenn die offiziellen Quellen vom SSH-Server und Client sprechen, kann derTrugschluss entstehen, dass es nur eine Verbindung zwischen einemphysischen Großrechner und einem kleinen Arbeitsplatzrechner geben darf.SSH bietet sich hervorragend an, einen Dialog auch zwischen zweiArbeitzplatzrechnern herzustellen. Wenn z.B. jemand direkte Hilfe am Rechnerbenötigt und auf der anderen Seite der Welt gerade die Hilfe sitzt.

Für ein besseres Verständnis der gesamten Abläufe und Konfigurationen,orientiere ich mich an dem Netzwerkkonzept (Kapitel: Das Netzwerk)zusammen mit dem Beispiel aus dem Samba-Kapitel, wo die Mitarbeiterin Idader Agentur "Alpenglas" ebenfalls Administratorin für den Dateiserver Wotan istund diesen nun über die SSH von ihrem Arbeitsplatz aus warten möchte. Diegenannten Benutzernamen und IP-Adressen sind entsprechend der eigenenUmgebung anzupassen.

13.1. Die Installation von SSHFür die Installation wird die Open-Source-Version von SSH eingesetzt. DieInstallation erfolgt entsprechend mit:

pacman -S openssh

129

Page 140: Archlinux Und Mehr

Und zwar auf beiden Seiten, auf dem Arbeitsplatzrechner und Zielrechner. Vorausgesetztauf dem Arbeitsplatzrechner wird ebenfalls Arch Linux eingesetzt. Nach der Installationsollte sich dann ein Verzeichnis mit dem Namen ssh unter /etc und verschiedeneKonfigurationsdateien befinden.

13.2. Die Vorbereitungen auf dem Zielrechner(Server)

Für beide Teilnehmer (Arbeitsplatzrechner und Zielrechner) sind diverse Vorbereitungennotwendig. Die folgenden Kapitel betrachten daher die Vorarbeit sehr fokußiert. Im Kapitel"Zusammenfassung und Ergänzungen" werden dann Tätigkeiten ergänzend für beideSeiten dargestellt.

Wie immer, wird hier die Anmeldung als root vorausgesetzt, damit auch die Berechtigungvorhanden ist, entsprechende Änderungen vornehmen zu dürfen.

13.2.1. Die Konfiguration des SSH-DienstesDie Konfiguration des SSH-Dienstes (sshd) auf dem Zielrechner ist wohl mit amwichtigsten, da dieser dem Arbeitsplatzrechner verschiedene Vorgaben unterbreitet,nachdem dieser die Verbindung initiiert hat. Die Standardvorgaben in derKonfigurationsdatei sind eigentlich gut gewählt, sind in der Regel aber auskommentiert.Für eine Eindeutigkeit, welche Parameter nun wirklich genommen werden, habe ich dieentsprechenden Parameter "frei gelegt"; beziehe mich aber in der Beschreibung auf dieWichtigsten.

nano /etc/ssh/sshd_config

## Autor: Farid Mésbahi# Version: 0.3# Datum: 21.08.2006# Letzte Aenderung: 01.12.2009# Beschreibung: Konfiguration fuer den SSH-Dienst

Port 22AddressFamily anyListenAddress 192.168.1.20

Protocol 2

HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_dsa_key

SyslogFacility AUTHLogLevel INFO

LoginGraceTime 1mPermitRootLogin noStrictModes yesMaxAuthTries 3MaxSessions 2AllowUsers emmelie ida#AllowGroups Beispielgruppe

DenyUsers root#DenyGroups Beispielgruppe

RSAAuthentication yesPubkeyAuthentication yes

HostbasedAuthentication no

SSH (Secure-Shell)

130

Page 141: Archlinux Und Mehr

IgnoreUserKnownHosts noIgnoreRhosts yes

PasswordAuthentication no#PermitEmptyPasswords noChallengeResponseAuthentication no

KerberosAuthentication no#KerberosOrLocalPasswd yes#KerberosTicketCleanup yes#KerberosGetAFSToken no

GSSAPIAuthentication no#GSSAPICleanupCredentials yes

UsePAM yes

AllowAgentForwarding yesAllowTcpForwarding yesGatewayPorts noX11Forwarding no#X11DisplayOffset 10#X11UseLocalhost yesPrintMotd yesPrintLastLog yesTCPKeepAlive yesUseLogin noUsePrivilegeSeparation yesPermitUserEnvironment noCompression delayedClientAliveInterval 0ClientAliveCountMax 3UseDNS yesPidFile /var/run/sshd.pidMaxStartups 3PermitTunnel noChrootDirectory none

Banner none

Subsystem sftp /usr/lib/ssh/sftp-server

Ciphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc,==>==>blowfish-cbc,cast128-cbc,arcfour256,==>==>arcfour128,arcfour,aes256-ctr,aes192-ctr,==>==>aes128-ctr

# List of available MAC (message authentication code)# algorithmsMACs hmac-md5,hmac-sha1,[email protected],==>

==>hmac-ripemd160

Ganz wichtig, hier wird der Port definiert, auf dem der SSH-Dienst hört.

Anmerkung

Falls über das Internet SSH eingesetzt werden soll, wird empfohlen denStandardport 22 auf einen anderen frei erfundenen Wert zu ändern, um hierAngriffe gleich zu erschweren. Diese Änderung muss in derArbeitsplatzkonfiguration berücksichtigt werden.Hier der Eintrag der Adresse, auf die der Dienst gebunden werden soll.Festlegung welche Protokollversion genutzt wird. Bitte hier kein Rücksprung zumProtokoll 1 mit dem Parameterwert "2,1" unterstützen. Wird vom Client das Protokoll"1" verlangt, wird durch die serverseitige Eindeutigkeit mit der Vorgabe mit nur "2" dieVerbindung abgebrochen.Mit diesem Parameter wird bestimmt, nach welcher Zeit die Verbindung abgebrochenwerden soll, sofern eine Authentifizierung gegenüber dem SSH-Server nicht erfolgen

SSH (Secure-Shell)

131

Page 142: Archlinux Und Mehr

konnte.An dieser Stelle wird per Vorgabe das Anmelden vom root erlaubt. Ich bin nicht derMeinung, dass root sich direkt anmelden sollte, sondern nur über den Weg einesStandardanwenders mit entsprechender Berechtigung zu Substituieren (su). Also sicherst im zweiten Schritt als root auszugeben. Aus Sicherheitssicht muss für einenEindringling demnach das Kennwort des Standardbenutzers und vom root bekanntsein, um wirklich den vollen Zugriff zu erhalten. Daher ein klares "No".Um nur bestimmten Benutzern den Zugriff zu erlauben, wird mit diesem Parameter,gefolgt von den entsprechenden Benutzernamen, diesen die Erlaubnis erteilt.Grundvoraussetzung ist, dass diese Benutzer ebenfalls ein Konto auf demZielrechner haben. Um gleich ganzen Gruppen die Erlaubnis zu erteilen, bedient mansich dem Parameter AllowGroups. Das Gegenstück lautet DenyUsers undDenyGroups, um entsprechend den Zugang zu verwehren. Als Beispiel habe ich diesin diesem Fall mit dem Benutzer root erledigt. Eigentlich überflüssig, da dies jaschon etwas höher mit dem Parameter PermitRootLogin erfolgte.Diese Option aktiviert das Benutzen von Schlüsselpaaren (RSA/DSA), die wohlsicherste Methode für die Authentifizierung zwischen Arbeitsplatzrechner undZielrechner.Aus Sicherheitsgründen wird die einfache Authentifizierung mittels Benutzername undKennwort ausgeschaltet.Als Subsystem wird ein SFTP-Server mit angeboten und auch hier gestartet, umsicher auf das eigene Benutzerverzeichnis zugreifen zu können; ein SFTP-Programmwird vorausgesetzt.SSH unterstützt verschiedene symmetrische Verschlüsselungs-Algorithmen, die hierder Reihe nach priorisiert und so dem Client vorgeschlagen werden.

13.2.2. Den Systemzugriff erlaubenZusätzlich zu den eigenen sshd-Einstellungen, werden die Systemdateien hosts.allowund hosts.deny genau in dieser Reihenfolge auf dem Zielrechner ausgewertet, um denZugriff von außen zu steuern. Der Aufbau der beiden Dateien ist relativ einfach, wobei hierdie Strategie verfolgt wird, grundsätzlich alles zu verbieten, um selektiv dem einen oderanderen Dienst (in diesem Fall sshd) die Erlaubnis zu erteilen. Demnach sollte die Dateihosts.deny wie folgt aussehen:

nano /etc/hosts.deny

## hosts.deny#

ALL: ALL: DENY

# End of file

Entsprechend sieht dann der Aufbau der Datei hosts.allow aus:

nano /etc/hosts.allow

## hosts.allow#

# Einschraenken des Zugriffes auf bestimmte IP-Adressensshd: 192.168.1.110/255.255.255.0, ==>

==>192.168.1.120/255.255.255.0: ALLOW

# Einschraenken des Zugriffes auf die IP-Adressen# von 192.168.1.1 bis 192.168.1.254

# sshd: 192.168.1.0/255.255.255.0: ALLOW

SSH (Secure-Shell)

132

Page 143: Archlinux Und Mehr

# Keine Einschraenkung von IP-Adressen, um# auch aus dem Internet erreichbar zu sein

# sshd: ALL: ALLOW

# End of file

Die Einträge sind dreigeteilt und jeweils durch einen Doppelpunkt getrennt. Im ersten Teilsteht der Dienstname, im Zweiten der Rechnername oder IP-Adressen bzw.IP-Adressbereiche und zuletzt das Kommando.

13.2.3. Vorbereiten einer FirewallSollte der Zielrechner (hoffentlich) durch eine Firewall geschützt sein, so sollte dergenutzte Port laut sshd-Konfiguration für eintreffende Verbindungen frei gegeben werden.Ein Beispiel ist im Firewall-Kapitel zu Iptables (siehe Kapitel: Firewall für einen Server) zusehen, wo hierbei auf den Standardport 22 ausgegangen wird.

13.2.4. Der richtige BenutzerDer spätere Zugriff vom Arbeitsplatzrechner aus, erfolgt mit einem auf dem Zielrechnereingerichteten Benutzer. Aus Sicherheitsgründen ist laut sshd-Konfiguration der Zugriff vonroot nicht erlaubt. Es sollte also ein Standardbenutzer angelegt sein, der nicht umbedingtmit dem gleichen Benutzernamen des Arbeitsplatzrechners übereinstimmen muss, aber ersollte für Notfälle die Berechtigung besitzen, sich als root zu substituieren (su).

Aus dem Arch Linux-Administrationskapitel (siehe Kapitel: Die Benutzerverwaltung)entliehen, wird ein Standardbenutzer (laut Beispiel für Ida) mit entsprechenderGruppenzugehörigkeit angelegt und auch ein Benutzerkennwort vergeben (falls noch nichtgeschehen):

useradd -m -G users,wheel,optical,storage -s /bin/bash ida

Um weitere Schritte zu berücksichtigen, ist es notwendig, dass im Benutzerverzeichnis einSSH-Verzeichnis existiert, wo später der öffentliche Schlüssel des Arbeitsplatzbenutzerskopiert wird:

mkdir /home/ida/.ssh

13.3. Die Vorbereitungen auf demArbeitsplatzrechner (Client)13.3.1. Die Konfiguration des SSH-Clients

Die hier beschriebene Arbeitsplatzkonfiguration bezieht sich auf Arch Linux und giltwahrscheinlich auch für andere Linux/Unix-Systeme (einschließlich Mac OS X). DerSpeicherort für die eigene Konfigurationsdatei, sofern dieser noch nicht existiert, muss aufdem Rechner angelegt werden, der später auf dem Zielrechner zugreifen will. Das heißt,dass für alle hier beschriebenen Folgeschritte die lokale Anmeldung amArbeitsplatzrechner, unter dem eigenen Benutzernamen (es sollte nicht root sein)notwendig ist.

?SSH prüft im Benutzerverzeichnis (Arbeitsplatzrechner) beim Verbindungsaufbau nach,ob dort eine Konfiguration vorliegt. Diese hat auch eine höhere Priorität gegenüber derallgemeinen installierten Konfiguration (/etc/ssh/ssh_config). Existiert also kein

SSH (Secure-Shell)

133

Page 144: Archlinux Und Mehr

SSH-Verzeichnis im eigenen Benutzerverzeichnis, so sollte dieses angelegt werden.Dieses Verzeichnis wird später ebenfalls für die Ablage der eigenen Schlüssel undweiteren Dateien benötigt:

?mkdir ~/.ssh

Die eigene Konfigurationsdatei lautet config:

nano ~/.ssh/config

### Autor : Farid Mésbahi# Version: 0.2# Datum : 21.08.2006# Letzte Aenderung: 08.01.2009# Beschreibung: Konfiguration fuer den SSH-Client

Host *Port 22Protocol 2ForwardAgent noForwardX11 noRhostsRSAAuthentication noRSAAuthentication no

PubkeyAuthentication yesPasswordAuthentication no

HostbasedAuthentication noGSSAPIAuthentication noGSSAPIDelegateCredentials noBatchMode noCheckHostIP yesAddressFamily anyConnectTimeout 0StrictHostKeyChecking ask# IdentityFile ~/.ssh/identityIdentityFile ~/.ssh/id_rsaIdentityFile ~/.ssh/id_dsa# Cipher 3desCiphers aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc,blowfish-cbc, ==>

==>cast128-cbc,arcfour256,arcfour128,arcfour,aes256-ctr, ==>==>aes192-ctr,aes128-ctr

MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160EscapeChar ~Tunnel noTunnelDevice any:anyPermitLocalCommand noHashKnownHosts yes

Sollte der Zielrechner auf einen anderen Port hören, sollte dieser hier eingetragenwerdenNur die Unterstützung von SSHv2 wird gefordert.Im Dialog mit dem Zielrechner, wird auf dem Arbeitsplatzrechner der öffentlicheSchlüssel des Zielrechners mit einer lokalen Liste aus der Datei~/.ssh/known_hosts verglichen. Befindet sich der öffentliche Schlüssel nicht indieser Liste, wird der Dialog sofort abgebrochen. Mit der Option "ask" wird derBenutzer allerdings vorher gefragt, ob nicht der Schlüssel aufgenommen und somitder Zielrechner mit seiner (IP-)Adresse legitimiert werden soll.

13.3.2. Der Schlüsselbund?Ein eigener Schlüsselbund, bestehend aus dem öffentlichen und privaten Schlüssel,

SSH (Secure-Shell)

134

Page 145: Archlinux Und Mehr

muss generiert werden. Ab dem Protokoll SSHv2 werden zwei Verschlüsselungsverfahren,nach RSA und DSA unterstützt. Exemplarisch beschreibe ich das Generieren des eigenenSchlüsselpaares nach RSA, weil die Schlüssellänge nicht wie bei DSA auf 1024 Bitbeschränkt ist:

ssh-keygen -b 2048 -t rsa

Nach der Ausführung, wird der Pfad zum Speichern der Dateien abgefragt. Hier sollte dergleiche Ort angegeben sein, wo evtl. schon die Konfigurationsdatei für SSH gespeichertwurde. Der private Schlüssel ist der Wichtigste von beiden und wird daher noch mit einemKennwort (Passphrase) abgesichert. Danach sollten sich nun im Benutzerverzeichniss desAnwenders (auf dem Arbeitsplatzrechner) folgende Dateien befinden:

Tabelle 13.1. SSH-Verzeichnis

Dateiname Beschreibung

config Eigene SSH-Benutzer-Konfiguration.

id_rsa Privater Schlüssel.

id_rsa.pub Öffentlicher Schlüssel.

13.4. Zusammenfassung und ErgänzungenIn den vorherigen Kapiteln, wurden die Vorbereitungen sowohl für den Zielrechner als auchfür den Arbeitplatzrechner betrachtet. Weitere Schritte sind allerdings noch notwendig.Zusammengefasst wurde bis jetzt folgendes erledigt:

am Arbeitsplatzrechner unter Arch Linux:

1. Installation von Open-SSH.

2. Konfiguration des SSH-Clients (eigene Konfiguration).

3. Generieren des Schlüsselbundes.

Die Arbeiten auf dem Zielrechner:

1. Installation von Open-SSH und Konfiguration des SSH-Dienstes.

2. Allgemeinen Systemzugriff erlauben (host.deny und host.allow).

3. Vorbereiten der lokalen Firewall (Port 22).

4. Anlegen eines Benutzers (Ida).

Was bis jetzt ganz außer Acht gelassen wurde, ist das Kopieren des Schlüssels. DieProblematik die nun besteht ist, wie kommt der öffentliche Schlüssel auf den Zielrechner.Kurz zum Verständnis, der öffentliche Schlüssel wird jedem "Gesprächspartner" gegeben,in diesem Fall dem SSH-Dienst auf dem Zielrechner, um Informationen für denSchlüsselinhaber (Ida) zu verschlüsseln. Der Schlüsselinhaber ist dann in der Lage, nurmit seinem privaten Schlüssel diese Information wieder zu entschlüsseln.

Im Prinzip stehen wenige Möglichkeiten zur Verfügung wie z.B.:

SSH (Secure-Shell)

135

Page 146: Archlinux Und Mehr

• Über eine bestehende Netzwerkverbindung, einen Dateiserverdienst wie Samba zunutzen, um auf das entsprechende Benutzerverzeichnis zugreifen zu können.

• Per Mail, damit der Empfänger die notwendigen Schritte erledigt.

• Den Schlüssel auf einen Datenträger (USB-Speicherstick) zu kopieren undentsprechend zu übertragen.

• Für den Moment der Schlüsselübergabe die Sicherheitsstufe zurück zu setzen, um sichmit Benutzernamen und Kennwort an den Zielrechner anzumelden.

In den nächsten Kapiteln werden zwei Wege beschrieben, wie der öffentliche Schlüssel aufden Zielrechner kopiert wird. Ist dies - unabhängig der Methode - geschehen, so sind nochwenige Nacharbeiten notwendig. In allen Fällen gilt es aber zu berücksichtigen:

Anmerkung

Der SSH-Dienst auf dem Zielrechner sucht im Benutzerverzeichnis nach der Datei,wo der öffentliche Schlüssel abgelegt ist. Diese Datei muss den Namen"authorized_keys2" besitzen.

13.4.1. Kopieren des öffentlichen Schlüssels perDatenträger (USB-Speicherstick)

Beim Benutzen einer grafischen Benutzeroberfläche ist der Einsatz einesUSB-Speichersticks relativ einfach, da dieser automatisch in das System sichtbareingebunden wird. Ohne einer grafischen Oberfläche ist das nicht ganz so einfach, da derUSB-Speicherstick zwar vom System (hoffentlich) erkannt, aber evtl. nicht sofort sichtbarim Verzeichnisbaum hinein gehangen (gemountet) wird.

Mit ein paar Eingaben kann aber trotzdem ein externer USB-Speicherstick sichtbarhinzugefügt werden. Vorher wird aber ein Zielverzeichnis zum Mounten erstellt. AmArbeitsplatzrechner als root angemeldet, folgt die Eingabe:

mkdir /media/usbstick

Damit jetzt der richtige Gerätenamen herausgefunden wird, unter dem derUSB-Speicherstick erkannt wurde, ist es am einfachsten, auszugsweise dieSystemmeldungen (Kernel Ring Buffer) nach SCSI-Geräten auszulesen:

dmesg | grep SCSI

Das Ergebnis sollte in etwa so aussehen, wie in der folgenden Abbildung:

Abbildung 13.1. dmesg Ausgabe

SSH (Secure-Shell)

136

Page 147: Archlinux Und Mehr

Wichtig ist hierbei der Textauszug "USB Mass Storage devices" und der Gerätenamen inden eckigen Klammern (in diesem Beispiel sdb). Mit dieser Information kann nun derUSB-Speicherstick in den Verzeichnisbaum hineingehangen werden:

mount -t auto /dev/sdb1 /media/usbstick

Bei Fehlermeldungen besteht leider die Möglichkeit, dass der genutzte USB-Speicherstickmit einem Dateisystem formatiert wurde, das nicht automatisch erkannt wird (-t auto). Dannhelfen wieder die Systemmeldungen:

gmesg | tail

Abhängig vom Ergebnis, funktioniert dann z.B. die Eingabe:

mount -t vfat /dev/sdb1 /media/usbstick

Jetzt steht eigentlich nichts mehr im Weg, um den öffentlichen Schlüssel vomArbeitsplatzrechner auf den USB-Speicherstick zu kopieren (Ida ist weiterhin als rootangemeldet):

cp /home/ida/.ssh/id_rsa.pub /media/usbstick/

Mit folgender Eingabe wird der Memorystick wieder aus dem Systembaum herausgenommen, um anschließend mit ihm zum Zielrechner zu gehen:

umount /media/usbstick

Mit der gleichen Vorgehensweise wie oben beschrieben, wird der USB-Speicherstick demZielrechner bekannt gemacht. Ida kopiert anschließend ihren öffentlichen Schlüssel in IhrBenutzerverzeichnis (ida) auf dem Zielrechner. Dabei denkt sie an die Vorgabe, denDateinamen entsprechend zu ändern, das direkt beim Kopieren mit dem Copy-Befehl (cp)berücksichtigt wird:

cp /media/usbstick/id_rsa.pub /home/ida/.ssh/authorized_keys2

beziehungsweise sämtliche Berechtigungen zu überprüfen.

13.4.2. Kopieren des öffentlichen Schlüssels perSecure Copy (SCP)

Eigentlich nehme ich schon etwas vom nächsten Kapitel weg. Aber um die Funktionen undVorgänge zu verstehen, sind schon ein paar Details zum Verbindungsaufbau notwendig.

Bei SCP handelt es sich um ein Kopierwerkzeug, welches sich der SSH bedient. DerUnterschied hierbei ist nur, dass nach erfolgreicher Verbindung eine Datei vomArbeitsplatzrechner zum Zielrechner kopiert wird (anders herum geht es auch), mehr nicht.Im Vergleich zum vorherigen Kapitel eine super bequeme Lösung. Daher sehe ich denWeg mit dem USB-Speicherstick eher als Notlösung, aber auch als den Sichersten an.

Denn, laut der sshd-Konfiguration auf dem Zielrechner, sind unsichere Anmeldungen miteinem Benutzernamen und passendem Kennwort, dass im Klartext übertragen wird, nichterlaubt. In diesem Fall also nur kurz für das Kopieren des öffentlichen Schlüssels zunutzen. Später kann natürlich SCP weiter genutzt werden, aber dann mit der sicherstenVerbindung, die SSH zu bieten hat.

Als vorbereitende Maßnahme, muss also die sshd-Konfiguration auf dem Zielrechner

SSH (Secure-Shell)

137

Page 148: Archlinux Und Mehr

angepasst werden. Dazu meldet sich Ida als root an, um anschließend die Dateibearbeiten zu dürfen:

nano /etc/ssh/sshd_config

.

.PasswordAuthentication yes..

Der Parameter wird von "no" auf "yes" geändert. Hiermit wird das Anmelden mitBenutzerdaten unterstützt, somit stellt jetzt der SSH-Dienst zwei Zugangsmethoden zurVerfügung.

Zurück an ihrem Arbeitsplatzrechner, ändert Ida ebenso Ihre persönliche Konfiguration um.Unter Ihrem Benutzer angemeldet (nicht als root) wird folgende Eingabe gemacht:

nano ~/.ssh/config

.

.PubkeyAuthentication noPasswordAuthentication yes..

Der Secure-Shell über SCP wird somit mitgeteilt, dass jetzt die Anmeldung an demZielrechner mit einem Benutzer und Kennwort erfolgen soll. Ida braucht jetzt nur nochfolgende Eingabe zu machen, um nun Ihren öffentlichen Schlüssel auf dem Zielrechner zukopieren:

scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys2

Die Bedeutung der Parameter ist hier sehr übersichtlich.

1. Die Angabe der Quelldatei (~/.ssh/id_rsa.pub).

2. Die Angabe des Zieles ([email protected]:). Der Benutzername (ida) im Ziel istoptional. Würde hier nur die IP-Adresse angegeben sein, geht SCP vom aktuellangemeldeten Benutzer aus.

3. Und das Ziel mit neuem Dateiname (~/.ssh/authorized_keys2).

Wenn zum ersten mal eine Verbindung zum Zierechner aufgebaut wird, überprüft derSSH-Client ob dieser überhaupt legitim ist. Dazu wird die IP-Adresse zusammen mit demöffentlichen Schlüssel des Zielrechners mit den Angaben in der Datei~/.ssh/known_hosts auf dem Arbeitsplatzrechner überprüft. Bedingt durch dieEinstellung in der SSH-Konfiguration des Arbeitsplatzrechners (StrictHostKeyCheckingask), wird in diesem Fall gefragt, ob der neue Zielrechner mit seinem öffentlichenSchlüssel in die Datei aufgenommen und legitimiert werden soll. Würde ein "yes" bei derOption gesetzt sein, hätte der neue Zielrechner keine Chance, da er nicht in der Listesteht. Mit "no" wäre diese Funktionalität ausgeschaltet.

Wurde also die erste Verbindung erlaubt, wird nach dem Kennwort des Benutzers (Ida)gefragt. Stimmt die Eingabe, kopiert SCP die Datei laut Vorgabe.

Hiernach ändert Ida genau anders herum die Konfigurationsdateien auf ihrem Arbeitsplatz

SSH (Secure-Shell)

138

Page 149: Archlinux Und Mehr

(PubkeyAuthentication yes/PasswordAuthentication no) und auf dem Zielrechner(PasswordAuthentication no).

13.4.3. Die EigentumsverhältnisseDer SSH-Dienst prüft penibel die Eigentumsverhältnisse (Eigentümer, Gruppe undBerechtigungen) des Verzeichnisses .ssh und ganz besonders den darin liegendenöffentlichen Schlüssel des Benutzers (Ida) auf dem Zielrechner. Da während der ganzenVorbereitungen mit dem Benutzer root auf dem Zielrechner gearbeitet wurde, ist es nunnotwendig die richtigen Benutzerberechtigungen zu setzen. Attribute, die einmal vomBenutzer root gesetzt wurden, dürfen nicht von einem Standardbenutzer geändertwerden. Eine Anmeldung als root auf dem Zielrechner ist daher notwendig.

Ist der öffentlichen Schlüssel auf dem Zielrechner kopiert, bearbeitet Ida (aus demBeispiel) als erstes das SSH-Verzeichnis und alle darunter liegenden Objekte (-R):

chown -R ida /home/ida/.ssh

chgrp -R ida /home/ida/.ssh

Dann werden die Berechtigungen so gesetzt, dass nur der Eigentümer (Ida) dieBerechtigung hat, das Verzeichnis zu nutzen:

chmod 0700 /home/ida/.ssh

Entsprechend werden alle Objekte innerhalb des SSH-Verzeichnis gesetzt (ich gehe davonaus, dass sich dort nur die besprochenen Dateien und keine Verzeichnisse befinden):

chmod 0600 /home/ida/.ssh/*

Somit sind die Eigentumsverhältnisse klar gesetzt.

13.5. Der VerbindungsaufbauIch will es nicht unterschlagen, aber eine SSH-Verbindung nur mit Benutzerangaben klapptauch jetzt schon. Diese Verbindung ist nur sehr unsicher, daher hier derVerbindungsaufbau, wozu die in den vorherigen Kapiteln beschriebenen Vorbereitungengetroffen wurden.

Ida setzt sich an ihrem Arbeitzplatzrechner und startet die Verbindung mit folgenderEingabe:

ssh -l ida 192.168.1.20

Der Parameter "-l" dient zur Angabe eines Benutzers (ida) und die IP-Adresse desZielrechners.

Wird die Anfrage vom Zielrechner entgegen genommen, erfolgt ein Händeschütteln inForm eines Abstimmprozesses über verschiedene Details, wie z.B. welches Protokoll(SSHv1/SSHv2) eingesetzt werden soll, welche Verschlüsselungsalgorithmen bevorzugtsind und um später den Zielrechner zu legetimieren seinen öffentlichen Schlüssel(host-key). Vieles wird schon über die Konfigurationsdateien bestimmt, so dass derAbstimmprozess ohne Umwege erfolgen sollte.

Eine Verschlüsselte Verbindung besteht zu diesem Zeitpunkt noch nicht, es wurden eherdie organisatorischen Dinge geklärt. Was nun kommt, ist der Austausch dessymmetrischen Schlüssels, wobei man hier nicht direkt von einem Austausch sprechen

SSH (Secure-Shell)

139

Page 150: Archlinux Und Mehr

kann. Vorweg das Problem, was seit der Antike bestimmt zu vielen Morden geführt hat.Der berühmte Schlüssel, mit dem geheime Botschaften erstellt und (mit)gelesen werdenkonnten, muss zwischen zwei Partner so sicher wie möglich augestauscht werden. Wurdedieser Schlüssel z.B. im Mittelater auf eine Pergamentrolle geschrieben, so hatte es derBote bestimmt nicht einfach, diese Rolle lebendig dem Partner zu überreichen. Bis in densiebziger Jahren hat sich an diesem Problem nichts geändert, nur der Kommunikationswegein wenig.

Als mathematische Glanzleistung, haben in den siebziger Jahren die Entwickler Diffie,Hellman und Merkle dieses Problem gelöst. Hierbei wird eine sogenannte Einwegfunktiongenutzt, die zwar ein bestimmtes Ergebnis berechnet, aber nicht mehr auf Ihre eigentlichenFaktoren zurück schließen lässt. Bestimmte Werte für diese Einwegfunktion werden vonbeiden Seiten ausgetauscht und dürfen sogar mitgehört werden. Das Endergebnis ist zuguter Letzt der symmetrische Schlüssel, der unabhängig aber identisch von beidenKommunikationspartnern erstellt wurde. In diesem Fall zwischen Arbeitsplatzrechner undZielrechner. Ab diesem Zeitpunkt erfolgt die Kommunikation auf einem verschlüsseltenWeg.

Der Arbeitsplatzrechner erhielt schon vom Zielrechner den öffentlichen Schlüssel(host-key). Dieser wird mit der lokalen Datenbank, bestehend aus einer Datei auf demArbeitsplatzrechner (~/.ssh/known_hosts) verglichen. Ist der öffentliche Schlüssel dortnicht enthalten, wird einmalig abgefragt, ob dieser zusammen mit der IP-Adressehinzugefügt werden soll. Bei entsprechender Bestätigung mit "yes", ist in diesem Fall derZielrechner dann gegenüber dem Arbeitsplatzrechner legitimiert. Damit jetzt derArbeitsplatzrechner gegenüber dem Zielrechner als plausibel eingestuft werden kann, wirdeine generierte Zufallszahl mit dem öffentlichen Schlüssel (in diesem Fall von Ida)verschlüsselt und an den Arbeitsplatzrechner gesendet. Ida muss jetzt mit Ihrem privatenSchlüssel die verschlüsselte Information entschlüsseln. Dazu wird die Passphrase desprivaten Schlüssels abgefragt, das Ergebnis ist die Zufallszahl des Zielrechners. Im letztenSchritt wird nun eine Prüfsumme über diese Zufallszahl gebildet, die wieder zurück an denZielrechner geschickt wird. Der Zielrechner überprüft die Prüfsumme und bei positivemErgebnis folgt der normale Datenaustausch.

Der Datenaustausch sieht dann so aus, als dass jetzt der Zielrechner demArbeitsplatzrechner eine Shell zur Verfügung gestellt hat. In diesem Fall über einenverschlüsselten Dialog. Ida kann jetzt Befehle eingeben, die auf dem Zielrechnerausgeführt werden, um so z.B. ihre Wartungsarbeiten vornehmen zu können.

Verlassen wird die "Secure-Shell" auf dem Zielrechner mit der Eingabe von:

exit

SSH (Secure-Shell)

140

Page 151: Archlinux Und Mehr

Kapitel 14. UlogdAls Ergänzung zum vorinstallierten Logdienst Syslog-ng, kann Ulogd eingesetztwerden. Er ist für die Protokollierung für Iptables (siehe Kapitel: Iptables)zugeschnitten und arbeitet nach meinen Erfahrungen besser mit ihmzusammen, als mit Syslog-ng.

14.1. Die Installation von UlogdDie Installation erfolgt wie fast immer mit:

pacman #S ulogd

Root-Rechte vorausgesetzt.

14.2. Ulogd und IptablesNach der Installation ist eigentlich für den Standardbetrieb eine Änderung derKonfiguration von Ulogd nicht notwendig. Die Protokollierung erfolgt hierbei ineine Datei, im verzeichnis /var/log/ . Zum besseren Auffinden der Log-Dateifür Iptables, kann ich allerdings folgende kleine Änderungen vorschlagen:

nano /etc/ulogd.conf

.

.

.

[LOGEMU]file="/var/log/fw.log"sync=1

.

.

.

14.3. Ulogd als DienstDamit Ulogd als Dienst automatisch beim Bootvorgang gestartet wird, ist einEintrag selbiger in der Datei rc.conf notwendig. Beschrieben ist dies imKapitel "Dienste".

141

Page 152: Archlinux Und Mehr

Teil V. Programme undWerkzeuge

Page 153: Archlinux Und Mehr

Inhaltsverzeichnis15. Der Editor Nano ........................................................................................144

143

Page 154: Archlinux Und Mehr

Kapitel 15. Der Editor NanoNano ist ein leicht zu bedienender Editor und bietet gerade am Anfang denintuitiven Einstieg Dateien zu bearbeiten. Eigentlich brauche ich wenig überNano zu schreiben. Die wichtigsten Tastatur-Kombinationen sind schnell erklärt:

• Speichern der (geänderten) Datei erfolgt mit CTRL+O

• Beendet wird Nano mit CTRL+X

Die Navigation in der Datei selbst, erfolgt einfach mit den Pfeiltasten.

Innerhalb von Nano können zwar Dateien in die gerade Geöffente eingefügtwerden (CTRL+R), in der Regel wird aber die zu bearbeitende Datei zusätzlichzum Programmnamen selbst mit aufgeführt. Entweder mit kompletten Pfad odereinfach nur mit dem Namen selbst. Als Beispiel wird die Datei rc.confbearbeitet, die sich im Verzeichnis etc befindet:

nano /etc/rc.conf

Würde die Datei nicht existieren, so wird diese beim Speichern angelegt.

Wer eine Nummer sicherer gehen möchte, kann den Parameter -B mit angeben,um nach dem Speichern automatisch eine Backup-Datei der Ursprungsdateierstellen zu lassen:

nano -B /etc/rc.conf

Diese Sicherungsdatei besitzt dann als Erkennungsmerkmal ein Tildezeichenam Ende des Dateinamens.

In der unteren Zeile von Nano selbst, sind die wichtigstenTastatur-Kombinationen aufgelistet. Dort wird auch gezeigt, dass mit CTRL+Gdie Nano-Hilfeseite mit weiteren Funktionen geöffnet wird.

144

Page 155: Archlinux Und Mehr

Anhang A. Kurzreferenz -Linux-Befehle

Dieses Buch soll keine Linuxreferenz darstellen, dazu gibt es schon einige Bücher. Hiersind eher zu den einzelnen Beispielen und Kapiteln weitere ergänzende Befehleaufgelistet.

Auch werden nicht alle Parameter bis ins Detail erklärt, vielmehr liegt der Focus auf diegängigsten Eingaben. Die kompletten Beschreibungen zeigen die entsprechendenMan-Pages.

A.1. Befehle

145

Page 156: Archlinux Und Mehr

Namels — Ausgabe einer Liste von Dateien und Verzeichnissen

Übersichtls [Option]

Option

-lErweiterte Ausgabeform, wie die Nagbe von Dateigrößen

-iI-Node Angaben zu Dateien werden mit ausgegeben

-sAusgabe der Systemblöcke pro Datei

-aAnzeige von versteckten Dateien und Verzeichnissen, die mit einem Punkt im Namenbeginnen

Beispiel

ls -lisa

Kommentar

Weitere Details sind aus der Man-Page zu entnehmen.

Kurzreferenz - Linux-Befehle

146

Page 157: Archlinux Und Mehr

Nameshutdown — Herunterfahren oder Neustart des Rechners

Übersichtshutdown [Option]

Option

-hFährt den Rechner herunter.

-rFührt einen Neustart durch

nowZeitpunkt der Ausführung

Beispiel

shutdown -h now

Kommentar

Dieser Befehl wird systemseitig nur vom Benutzer "root" zugelassen. Weitere Details sindaus der Man-Page zu entnehmen.

Kurzreferenz - Linux-Befehle

147

Page 158: Archlinux Und Mehr

Anhang B. Kurzreferenz -Berechtigungen bei Verzeichnissenund DateienB.1. Der oktale Weg

Die Standardberechtigungen unter Unix beziehen sich auf Verzeichnisse und Dateiengleichermaßen. Es gibt verschiedene Wege, um beiden Objekten die entsprechendenZuweisungen zu machen. Ich behalte mir hier allerdings vor, nur eine Möglichkeit (nämlichdie der oktalen Schreibweise) zu beschreiben.

B.1.1. Von Objekten, Kategorien und AttributenGrundsätzlich wird pro Objekt (Verzeichnis oder Datei) eine Berechtigung in dreiKategorien vergeben. Als erstes die des Eigentümers, welcher das Objekt erstellt hat,dann die der Gruppe (für eine bestimmte Anzahl von Benutzern) und zuletzt die für alleanderen. Jedem der drei Kategorien werden wiederum drei Berechtigungs-Attribute wieLesen (r), Schreiben (w) und Ausführen (x) vergeben.

Abbildung B.1. Berechtigung - Verzeichnis/Datei

Das Setzen der entsprechenden Attribute erfolgt mit einem einzigen Zahlenwert,bestehend aus drei Stellen. Da pro Attribut-Bit (Lesen, Schreiben und Ausführen) nur einenvon zwei Zuständen (gesetzt bzw. nicht gesetzt) erhalten kann, werden die Einzelwerte proKategorie addiert, wo das entsprechende Attribut gesetzt werden soll.

148

Page 159: Archlinux Und Mehr

Beispiele:

• Ein Verzeichnis, dass neu angelegt wird bekommt als Eigentümer den Namen desaktuell angemeldeten Benutzers und als Gruppe die primäre Gruppe, die der Benutzerangehört.

Unix vergibt dem Eigentümer laut Voreinstellung die vollen Berechtigungen wie Lesen(r), Schreiben (w) und Ausführen (x). Bei Verzeichnissen bedeutet das Attribut Lesen,dass der Inhalt des Verzeichnisses betrachtet werden darf. Das Attribut Schreiben, dassauch neue Objekte innerhalb des Verzeichnisses angelegt werden dürfen. UndAusführen, dass überhaupt in das Verzeichnis hinein gesprungen werden darf. Werdennun die Einzelwerte der "gesetzten" Attribute für den Eigentümer zusammen addiert (4 +2 + 1), erhalten wir den ersten Einzelwert. In unserem Fall "7".

Ebenfalls laut Voreinstellung bekommt die Gruppe - und automatisch jeder Benutzer, derder Gruppe angehört - das Attribut Lesen und Ausführen. Bedeutet, dieGruppemitglieder dürfen den Inhalt ansehen und entsprechend in das Verzeichniswechseln. Werden die Einzelwerte für die gesetzten Attribute addiert (4 + 1), berechnetsich der zweite Wert zu "5".

Das Gleiche Spiel gilt für die Kategorie "Jeder". Auch hier die gleichen Berechtigungenund analog der Einzelwert "5"

Werden nun alle Einzelwerte als Stelle zusammen gesetzt, ergibt sich der Zahlenwert"755". Mit dem entsprechenden Werkzeug und diesem Zahlenwert können in einemRutsch also die entsprechenden Berechtigungen pro Kategorie gesetzt werden.

Möchte man die Berechtigungen für die Kategorie "Gruppe" und "Jeder" entziehen,würde sich der Zahlenwert zu "700" zusammen setzen.

• Bei Dateien verhält es sich fast gleich. Mit dem Attribut "Lesen" dürfte man die Dateieinsehen. Mit "Schreiben" entsprechend verändern. Das Attribut "Ausführen" würde nurbei ausführbaren Programmen und Skripten einen Sinn ergeben, denn dann dürftendiese auch gestartet werden.

Das Setzen der entsprechenden Attribute ist absolut identisch, wie bei demVerzeichnis-Beispiel.

B.1.2. Weitere Steuer-AttributeNeben den Berechtigungs-Attributen aus dem vorherigen Kapitel (Von Objekten,Kategorien und Attributen), gibt es noch Weitere mit bestimmten Steuereigenschaften wiez.B. das Sticky-Bit.

• Das Sticky-Bit mit dem Attributwert "1" wird eingesetzt, wenn ein Löschen von Objektendurch alle anderen Benutzern, außer durch den Eigentümer selbst, verhindert werdensoll. Beim temporären Verzeichnis (tmp) ist dieses Attribut gesetzt, da dort Programmeihre Daten zwischen speichern, die als Eigentümer den entsprechendenProgrammbenutzer besitzen. So kann nur derjenige seine temporären Daten löschen,der entsprechend der Eigentümer ist.

Als Voraussetzung gilt allerdings, wenn das Sticky-Bit benutzt werden soll, dass dieKategorie "Jeder" das Ausführen-Attribut besitzt.

• Das Setgid-Bit mit dem Attributwert "2" und das Setuid-Bit mit dem Attributwert "4"funktionieren identisch, wobei sich Setgid auf die Gruppe und Setuid auf den Benutzerbezieht. Bei beiden wird z.B. bei einem Programmstart entweder die Gruppe (Setgid)oder der Eigentümer (Setuid) als Berechtigungs-Referenz herangezogen, jenachdemwelches der beiden Attribute gesetzt ist.

Kurzreferenz - Berechtigungen beiVerzeichnissen und Dateien

149

Page 160: Archlinux Und Mehr

Normaler Weise haben Programme als Datei- und Gruppen-Eigentümer "root". Wärejetzt eines der beiden Steuer-Attribute gesetzt, so hätte ein Standard-Benutzer diegleichen Rechte für diesen Prozess wie "root" selbst und nicht als "normaler" Benutzer.Was ein Sicherheitsrisiko darstellen kann. Daher sollte der Einsatz überlegt sein.

Auch hier gilt als Voraussetzung, damit beide Attribute funktionieren, dass dasAusführen-Attribut gesetzt ist.

Bei dem Setgid-Bit gibt es allerdings einen praktischen Einsatz in Verbindung mitVerzeichnissen. Ist das Attribut bei einem Verzeichnis gesetzt, so erhalten neue Objekteals "Gruppe", die des Verzeichnisses und nicht des aktuellen Benutzers.

Das Setzen erfolgt ebenfalls über einen (durch Addition ermittelten) Einzel-Wert, der vordem Berechtigungswert (z.B. 1777) gestellt wird. Um ein vermeidliches Setzen derSteuerbits der speziellen Art zu umgehen bzw. direkt aufzuheben, wird eine Null benutzt(0777).

B.1.3. Über DateienDateien werden sehr vielseitig eingesetzt. Auch Verzeichnisse sind technisch eine Art vonDateien. Hinzu kommen symbolische Links (Verknüpfung, Alias) und Geräte, um nur zweizu nennen. Damit diese unterschiedlichen Typen auch erkennbar sind, steht vor denersten Berechtigungs-Zeichen (rwx) der entsprechende Kennbuchstabe, sofern demList-Befehl (ls) zur Darstellung die richtigen Parameter übergeben wurden.

Steht dort ein "d" weist dies auf ein Verzeichnis hin, ein "l" auf einen Link. Wird nur einStrich "-" dargestellt, handelt es sich um eine normale Datei.

B.1.4. Die WerkzeugeZur besseren Übersicht der notwendigen Werkzeuge, die folgende Abbildung.

Abbildung B.2. Berechtigungsdarstellung

Im Prinzip reichen drei Befehle aus, um alle notwendigen Eingriffe vornehmen zu können:

1. Der Befehl chmod ist für das Setzen der Berechtigungsattribute zuständig. Um z.B. demVerzeichnis "media" für den Eigentümer "root" (1) und der Gruppe "root" (2) jede Formder Zugriffe zu gewären, jedem anderem Benutzer (3) allerdings nicht, wird folgendeEingabe ausreichen:

chmod 0770 media

150

Page 161: Archlinux Und Mehr

2. Der aktuelle Eigentümer eines Objektes wird mit dem Befehl chown durch folgendeEingabe gewechselt:

chown erika media

In diesem Beispiel bei dem Verzeichnis "media" liegt die Voraussetzung auf der Hand,der neue Eigentümer (erika) muss vorher als Benutzer im System angelegt sein.

3. Nahezu identisch zum Ändern des Eigentümers, kann die Gruppe "root" (1)ausgetauscht werden. Hierzu ist der Befehl chgrp mit folgende Eingabe notwendig:

chgrp kreativ media

Auch hier gilt als Voraussetzung, dass die Gruppe (in diesem Fall "kreativ") dem Systembekannt ist.

Kurzreferenz - Berechtigungen beiVerzeichnissen und Dateien

151

Page 162: Archlinux Und Mehr

LiteraturverzeichnisWebseiten

Arch Linux (DE) http://www.archlinux.de.

Arch Linux (EN) http://www.archlinux.org.

Gnome-Projekt http://www.gnome.org.

Grub2-Projekt http://www.gnu.org/software/grub/.

Iptables-Projekt http://www.iptables.org.

KDE-Projekt http://www.kde.org.

Mesa http://dri.freedesktop.org/wiki/.

Samba-Projekt http://www.samba.org.

OpenSSH-Projekt http://www.openssh.org.

Ulogd-Projekt http://www.netfilter.org [http://www.netfilter.org/projects/ulogd/].

Xfce-Projekt http://www.xfce.org.

X.org-Projekt http://www.x.org.

BücherGeheime Botschaften. Die Kunst der Verschlüsselung von der Antike bis in die Zeiten des

Internet. Simon Singh. Copyright © 2000 Carl Hanser Verlag. ISBN3-446-19873-3.

152

Page 163: Archlinux Und Mehr

StichwortverzeichnisSymbole.xinitrc, 87, 88.xsession, 88

AACPID, 79Arch Linux-Setup, 13

BBerechtigungs-Attribute, 149BIOS, 11blkid, 71Bootloader, 30Bootvorgang, 11

Ccfdisk, 22, 93chgrp, 150chmod, 150chown, 150config, 134

DD-Bus, 78date, 65Dateisysteme, 70dbus, 78DHCP, 43Display-Manager, 87

Eext2, 70ext3, 70ext4, 70

FFlatrate, 3Font, 78fstab, 94

Ggdisk, 67, 67, 69GDM, 87Gnome, 83gpasswd, 49GPT, 66GPT fdisk, 67groupadd, 49groups, 49grub, 31, 32grub2, 55GUID Partitionstabelle, 66

H

hosts, 47

Iifconfig, 44inittab, 90Installationsmedium, 11iptables, 98ISO-Image, 11

KKDE, 84KDM, 87

LLocale, 40Login-Manager, 87

Mmkdir, 94mkfs.ext4, 94

Nnano, 31Neustart, 33, 41NTP, 65ntpdate, 65, 65

Ppacman, 49passwd, 49pdbedit, 117

Rrc.conf, 39reboot, 33, 41resolv.conf, 46root, 30Router, 43

SSamba, 109smb.conf, 110smbpasswd, 117Softwarepakete, 27SSH, 129sshd_config, 132startx, 87syslog-ng, 106

TTCP/IP, 43

Uulogd, 106Ulogd, 141useradd, 48userdel, 49UUID, 71

153

Page 164: Archlinux Und Mehr

XX.org, 75, 75X.org Grafikkartentreiber, 77X.org Installation, 76X.org Konfiguration, 78X.org Schriften, 78XDM, 88Xfce, 85

ZZeitserver, 65

Stichwortverzeichnis

154