ACHTUNG!!! Hier bitte *NICHTS* editieren. Neuen Text bitte im geteilten Dokument anlegen Die einzelnen Dokumente werden, wenn sie fertig sind, von Zeit zu Zeit hier eingefügt.

Slackware Linux Grundlagen




Alan Hicks
Chris Lumens
David Cantrell
Logan Johnson



Slackware Linux ist ein registriertes Markenzeichen von Patrick Volkerding und Slackware Linux, Inc.

Linux ist ein registriertes Markenzeichen von Linus Torvalds.

America Online und AOL sind sind registrierte Markenzeichen von American Online, in den USA und anderen Staaten.

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, und TrueType sind Markenzeichen von Apple Computer, Inc., registriert in den USA und anderen Staaten.

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390 und ThinkPad sind Markenzeichen von International Business Machines Corporation in the United States, anderen Staaten oder beidem.

IEEE, POSIX und 802 sind registrierte Markenzeichen des Institute of Electronical and Electric Engineers Incorporated in den USA.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, und Xeon sind Markenzeichen oder registrierte Markenzeichen der Intel Corporation oder einer ihrer Tochtergesellschaften in den USA oder anderen Staaten.

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT sind registrierte Markenzeichen oder Markenzeichen der Microsoft Corporation in den USA und/oder anderen Staaten.

Netscape und der Netsacape Navigator sind registrierte Markenzeichender Netscape Communications Corporation in den USA oder anderen Staaten.

RedHat, RPM sind Markenzeichen oder registrierte Markenzeichen von RedHat Inc. ind den USA oder anderen Staaten.

XFree86 ist ein registriertes Markenzeichen des XFree86 Projekt Inc.

Viele Kennzeichnungen der Hersteller ihre Produkte zu unterscheiden sind als Markenzeichen eingetragen. Wo immer diese Kennzeichnungen in dieser Textzusammenfassung vorkommen und Slackware Linux von den Markenansprüchen wusste, wurden diese durch "TM" oder "R" gekennzeichnet.





Inhaltsverzeichnis

Vorwort

1 Eine Einführung in Slackware Linux
2 Hilfe
3 Installation
4 Systemkonfiguration
5 Netzwerkkonfiguration
6 X Konfiguration
7 Booten
8 Die Shell
9 Struktur des Dateisystems
10 Mit Dateien und Verzeichnissen umgehen
11 Prozesse kontrollieren
12 Wesentliche Systemadministration
13 Grundlegende Netzwerkbefehle
14 Sicherheit
15 Archivdateien
16 Vi
17 Emacs

18 Slackware Paketmanagement
19 ZipSlack
Glossar

A. Die GNU General Public License

bearbeiten

Vorwort


Wertes Publikum


Das Slackware Linux Betriebssystem ist eine mächtige Plattform für Intel-basierte Computer. Es ist so ausgelegt, dass es stabil, sicher und funktional ist, sowohl auf einem High-End Server als auch auf einem leistungsstarken Arbeitsrechner.

Dieses Buch ist für Ihren Einstieg in das Slackware Linux Betriebssystem gedacht. Es ist nicht beabsichtigt jeden einzelnen Aspekt der Distribution zu behandeln sondern eher zu zeigen was sie fähig ist zu leisten und ein grundlegendes Arbeitswissen über das System zu vermitteln.

Wenn Sie mehr Erfahrung mit Slackware Linux sammeln hoffen wir dass Sie dieses Buch als nützliches Nachschlagewerk gebrauchen können. Wir hoffen auch dass Sie es an all ihre Freunde verleihen wenn sie kommen und nach dem coolen Slackware Linux System fragen dass Sie benutzen.

Damit dieses Buch nicht unter einem wackelnden Stuhl endet haben wir versucht es so unterhaltsam wie möglich zu gestalten. Mit etwas Glück bekommen wir einen Filmvertrag. Natürlich hoffen wir auch dass Sie daraus lernen können und es nützlich finden.

Und nun weiter im Text.

Aufbau dieses Buchs


Kapitel 1, Einführung
Liefert einführendes Material zu Linux, Slackware und die Open Source und Free Software Bewegungen.

Kapitel 2, Hilfe
beschreibt die Hilfe-Ressourcen die auf einem Slackware Linux System und online zu finden sind.

Kapitel 3, Installation
Beschreibt den Installationsprozess Schritt für Schritt mit Bildschirmfotos um eine anschauliche Beschreibung zu geben.

Kapitel 4, Systemkonfiguration
Beschreibt die wichtigen Konfigurationsdateien und behandelt die Kernel-Neukompilierung.

Kapitel 5, Netzwerkkonfiguration
Beschreibt wie eine Slackware Linux Maschine mit dem Netzwerk verbunden wird. Behandelt TCP/IP, PPP/dial-up, drahtlose Netzwerke und mehr.

Kapitel 6, Das X Window System
Beschreibt wie das grafische X Window System unter Slackware eingerichtet und genutzt wird.

Kapitel 7, Booten
Beschreibt den Vorgang nach dem ein Computer in Slackware Linux bootet. Behandelt auch Dual-Boot mit Microsoft Windows Betriebssystemen.

Kapitel 8, Die Shell
Beschreibt das mächtige Befehlszeilen-Interface für Linux.

Kapitel 9, Struktur des Dateisystems
Beschreibt die Struktur des Dateisystems inklusive Besitzrecht, Berechtigung und Verlinkung.

Kapitel 10, Mit Dateien und Verzeichnissen umgehen
Beschreibt die Befehle, die zum Manipulieren von Dateien und Verzeichnissen von der Befehlszeile genutzt werden.

Kapitel 11, Prozesse kontrollieren
Beschreibt die mächtigen Linux Prozess Management Befehle die genutzt werden um mehrere laufende Prozesse zu verwalten.

Kapitel 12, Wesentliche Systemadministration
Beschreibt grundlegende Systemadministrations-Aufgaben wie das Hinzufügen und Entfernen von Benutzern, das System richtig herunterfahren, und mehr.

Kapitel 13, Grundlegende Netzwerkbefehle
Beschreibt die Sammlung von Netzwerk-Clients die mit Slackware kommen.

Kapitel 14, Sicherheit
Beschreibt viele verschiedene Werkzeuge, die helfen Ihr Slackware System sicher zu halten, inklusive iptables und tcpwrappers.

Kapitel 15, Archivdateien
Beschreibt die verschiedenen Komprimierungs- und Archivierungsprogramme die für Linux erhältlich sind.

Kapitel 16, vi
Beschreibt den mächtigen vi Texteditor.

Kapitel 17, Emacs
Beschreibt den mächtigen Emacs Texteditor.

Kapitel 18, Slackware Paketmanagement
Beschreibt die Slackware Paket-Hilfsmittel und die Vorgehensweise zum Erstellen eigener Pakete und Tagfiles.

Kapitel 19, ZipSlack
Beschreibt die ZipSlack Version von Linux, die von Windows aus ohne erforderliche Installation genutzt werden.

Anhang A, Die GNU General Public License
Beschreibt die Lizenz unter deren Bedingungen Slackware Linux und dieses Buch kopiert und verbreitet werden darf.

Konventionen, die in diesem Buch genutzt wurden


Um einen konsistenten und einfach zu lesenden Text zu erhalten werden einige Konventionen durch das gesamte Buch beibehalten.

Typografische Konventionen


Kursiv
Kursive Schrift wird für Befehle, hervorgehobenen Text und den ersten Gebrauch von technischen Begriffen genutzt.

Nichtproportional
Nichtproportionale Schrift wird für Fehlermeldungen, Befehle, Umgebungsvariablen, Namen von Ports, Hostnamen, Benutzernamen, Gruppennamen, Gerätenamen, Variablen und Codefragmente genutzt.

Fett
Fettschrift wird für Benutzereingaben und Beispiele genutzt.

Benutzereingaben


Tasten werden mit Fettschrift vom übrigen Text hervorgehoben. Tastenkombinationen die gleichzeitig gedrückt werden sollen werden mit "+" zwischen den Tasten gezeigt, wie:

Strg+Alt+Entf

Bedeutet der Benutzer soll die Tasten Strg, Alt und Entf gleichzeitig drücken.

Tasten die hintereinander gedrückt werden sollen, werden mit Kommata getrennt, zum Beispiel:

Strg+X, Strg+S

Würde bedeuten, dass vom Benutzer erwartet wird, dass er die Strg und X Taste gleichzeitig drückt, und dann die Tasten Strg und S gleichzeitig drückt.

Beispiele


Beispiele, die mit E:\> beginnen, zeigen einen MS-DOS® Befehl. Wenn nicht anders angegeben können diese Befehle von einer "MS-DOS Eingabeaufforderung" in einer modernen Microsoft® Windows® Umgebung ausgeführt werden.

D:\> rawrite a: bare.i


Beispiele, die mit einem # beginnen, zeigen einen Befehl der als Superuser in Slackware ausgeführt werden muss. Sie können sich als root einloggen um den Befehl einzugeben, oder mit Ihrem normalen Account anmelden und su(1) nutzen um Superuser-Rechte zu erlangen.

# dd if=bare.i of=/dev/fd0


Beispiele, die mit einem % beginnen, zeigen einen Befehl der von einem normalen Benutzeraccount ausgeführt werden sollte. Wenn nicht anders angegeben wird die C-shell Syntax für das Setzen von Umgebungsvariablen und andere Shell Befehle genutzt.

% top


Danksagungen


Dieses Projekt ist die Zusammenfassung monatelanger Arbeit von vielen engagierten Privatpersonen. Es wäre mir nicht möglich gewesen diese Arbeit in einem luftleeren Raum zu erstellen. Viele Leute verdienen unseren Dank für ihr selbstloses Handeln: Keith Keller für seine Arbeit am Thema "wireless networking", Joost Kremers für seine großartige Arbeit beim Schreiben der Emacs-Sektion im Alleingang, Simon Williams für das Sicherheits-Kapitel, Jurgen Phillippaerts für die grundlegenden Netzwerkbefehle, Cibao Cu Ali G Colibri für die Inspiration und für die Unterstützung
and a good kick in the pants
. Unzählbare weitere haben Vorschläge und Verbesserungen eingesendet. Eine nicht vollständige Liste enthält: Jacob Anhoej, John Yast, Sally Welch, Morgan Landry, and Charlie Law. Ich möchte auch Keith Keller für das Hosten der Mailingliste dieses Projekts danken, wie auch Carl Inglis for das anfängliche Webhosting. Nicht zuletzt möchte ich Patrick J. Volkerding für Slackware Linux, und David Cantrell, Logan Johnson und Chris Lumens für Slackware Linux Essentials 1st Edition danken. Ohne ihre Vorarbeit wäre nichts von alledem jemals geschehen. Viele weitere haben auf geringfügige und umfangreiche Art und Weise zu diesem Projekt beigetragen und sind nicht hier gelistet. Ich hoffe sie vergeben mir wegen meinem schlechten Gedächtnis.

bearbeiten

1 Eine Einführung in Slackware Linux


1.1 Was ist Linux?


1991 begann Linus Torvalds in seiner Freizeit mit der Arbeit an einem neuen Betriebssystem Kernel namens Linux. Er gründete dieses Projekt da er auf der Suche nach einem kostengünstigen Unix basierenden Betriebssystem war. Ausserdem bekam er so die Möglichkeit die Funktionsweise des 386er Prozessors näher kennenzulernen. Linux wurde als offenes kostenfreies Betriebssystem veröffentlicht, so dass jeder die Möglichkeit besaß dessen Funktionsweise zu verstehen und selbst unter der GPL stehende Verbesserungen einzubringen (Lesen Sie bitte Kapitel 1.3 und Anhang A für weitere Erläuterungen zu diesem Lizenzmodell). Mittlerweile hat Linux einen enormen Anteil am Betriebssystem Markt gewinnen können. Es wurde auf verschiedenste Rechnerarchitekturen wie z.B. HP/Compaq´s Alpha, SUN´s Sparc und UltraSparc und Motorola´s PowerPC Chipsätze (die u.a. in Apple Macintosh und IBM RS/6000 Computern zum Einsatz kommen) portiert. Hunderte wenn nicht sogar tausende Entwickler aus der ganzen Welt beteiligen sich an der Weiterentwicklung von Linux. Populäre Anwendungen wie Sendmail, Apache oder Bind die auf einer Vielzahl von Internetservern zum Einsatz kommen werden unter Linux betrieben. Dabei ist es wichtig zu beachten das sich der Begriff Linux auf den Kernel bezieht - den eigentlichen Betriebssystemkern. Dieser ist für die Kontrolle des Computerprozessors, des Arbeitsspeichers, Festplatten und Zusatzgeräten verantwortlich. Das ist die eigentliche Aufgabe von Linux, es kontrolliert die Rechenoperationen Ihres Computers und stellt die Betriebsbereitschaft aller zum Einsatz kommenden Anwendungen sicher. Eine Vielzahl von Unternehmen bündeln den Kernel mit unterschiedlichen Anwendungsprogrammen zu einem Betriebssystem. Solch eine Zusammenstellung wird auch Distribution genannt.

1.1.1 ein Wort zu GNU


Das Linux Kernel Projekt wurde 1991 zunächst nur von Linus Torvalds entwickelt doch wie Isaac Newton schon sagte: "Wenn ich weiter als andere gesehen habe, dann nur deshalb, weil ich auf den Schultern von Giganten stand." Als Linus Torvalds mit der Arbeit am Linux Kernel begann, hatte sich die Idee der Free Software Foundation gemeinschaftlich Software zu entwickeln, bereits etabliert. Diese Bestrebungen wurden unter dem rekusriven Akronym GNU, das für "GNU´s not Unix" steht, geführt. Seit Beginn der Linux Kernel Entwicklung, kamen GNU Anwendungen zum Einsatz. Der Compiler gcc wurde genutzt um den Kernel zu compilieren. Auch heute sind Anwendungen wie gcc oder gnutar Bestandteil jeder großen Linux Distribution. Aus diesem Grund fordern viele Anhänger der Free Software Foundation, das dem GNU Projekt die gleiche Bedeutung zuteil wird, die dem Linux Kernel zukommt. Linux Distributionen sollten Ihrer Meinung nach unter der Terminologie GNU/Linux geführt werden.

Dies ist der Auslöser vieler Streitigkeiten, die nur durch den uralten Streit zwischen vi und emacs Anhängern übertroffen werden. Das Ziel dieses Buches sollte nicht sein weiter Öl auf das Feuer dieser heissen Diskussion zu gießen sondern zur Klärung der Begrifflichkeiten dienen. Wenn von einer GNU/Linux Distribution die Rede ist, handelt es sich um eine Linux Distribution. Wenn über Linux gesprochen wird, kann es sich um den Kernel oder um eine Linux Distribution handeln. Das führt oftmals zu Irritationen. Typischerweise wird der Begriff GNU/Linux einfach aufgrund seiner Länge seltener genutzt.

bearbeiten

1.2 Was ist Slackware?


Ende 1992 begann Patrick Volkerding mit der Entwicklung von Slackware, woraufhin am 17. Juli 1993 die Erste Veröffentlichung folgte. Somit war Slackware die erste Linux Distribution, die auf die breite Masse abzielte. Volkerding kam auf der Suche nach einem kostenkünstigen LISP Interpreter für eine Projektarbeit zum ersten Mal mit Linux in Kontakt. Eine der wenigen zu diesem Zeitpunkt verfügbaren Distributionen war SLS Linux von Soft Landing Systems. Volkerding benutzte SLS Linux und behob einige Fehler, nachdem ihm diese auffielen. Möglicherweise war dies auch der Auslöser dafür seine eigene Distribution für sich und seine Freunde zu entwickeln, die eben diese Fehlerkorrekturen enthalten sollten. Diese privat entwickelte Distribution bekam mehr und mehr Zuspruch und so entschloss sich Volkerding sie unter dem Namen Slackware öffentlich verfügbar zu machen. Nach und nach begann Patrick damit weitere Neuerungen in Slackware zu integrieren: ein Menü gesteuertes und leicht zu bediendendes Installationsprogramm sowie ein neuartiges Paketmanagementsystem, das jedem Benutzer die Möglichkeit bietet, einfach neue Pakete zu installieren, alte zu entfernen oder Pakete zu aktualisieren.

Es gibt eine Vielzahl von Gründen warum es sich bei Slackware um die älteste noch aktive Linux Distribution handelt. Ziel ist es nicht Windows zu emulieren, sondern möglichst Unix-ähnlich zu sein. So kommen keine grafisch ansprechenden klickbaren Konfigurationswerkzeuge zum Einsatz. Stattdessen bekommt der Anwender einen tiefen Enblick in die Funktionsweise seines Betriebssystems und somit volle Kontrolle über alle Prozessabläufe. Die Entwicklung wird auch nicht durch die Einhaltung von vorher bestimmten Veröffentlichungsterminen behindert, denn jede Version erscheint dann wenn sie fertig ist.

Slackware ist insbesondere für Menschen interessant die gerne mehr über Ihr Betriebssystem erfahren möchten und ein System nutzen möchten, das genau das tut was man von ihm erwartet. Slackware´s Stabilität und einfache Handhabung sind Gründe dafür, dass es auch noch viele weitere Jahre an Popularität gewinnen wird.

bearbeiten

1.3 Open Source und freie Software


Die Linux Gemeinschaft teilt sich im wesentlichen in zwei ideologische Gruppen. Die freie Software Bewegung (auf die wir in einem der nächsten Kapitel näher eingehen werden) arbeitet darauf hin die gesamte Software von geistigem Eigentum und Besitzrechten zu befreien.
Anhänger dieser Bewegung glauben, dass Einschränkungen solcher Art technische Inovationen verhindern und gegen die Vorteile einer Gemeinschaft arbeiten. Open Source arbeitet hauptsächlich auf die selben Ziele zu, nimmt aber einen anwendunggsbezogeneren Ansatz dafür. Anhänger dieser Bewegung bevorzugen Argumente mit der Grundlage der ökonomischen und technischen Leistungen den Quellcode frei zugänglich zu machen, eher als die moralischen und ethischen Prinzipien, die die freieSoftware Bewegung hat.

Am anderen Ende des Spektrums gibt es Gruppen, die festere Kontrolle auf ihre Software aufrechterhalten wollen.

Die freie Software Bewegung wird durch die freie Software Foundation geleitet, eine Geldbeschaffungs Organisation für das GNU Projekt. Die oft verwendete Bezeichnung ist „frei wie in der Sprache, gefangen, wie im Bier.“ Im Wesentlichen ist freie Software ein Ansatz gewisse Rechte für beide, Benutzer und Entwickler, zu garantieren. Diese Freiheiten beihnalten die Freiheit, das Programm unter jedem Grund zu betreiben, zum Erkennen und Verändern vom Quellcode, zum Weiterverteilen des Codes, und Veränderungen mit anderen zu teilen. Im Auftrag diese Freiheiten zu garantieren wurde die GNU General Public License (GPL) gegründet. Die GPL verordnet, dass jeder, der ein kompiliertes Programm weiterverteilt, das unter der GPL lizensiert ist, auch den Quellcode bereitstellen muss, aber auch wenn Veränderungen vorgenommen werden, müssen diese in Quellcodeform bereitgestellt werden. Das garantiert, dass wenn ein Programm einmal für die Gemeinschaft „geöffnet“ wurde, nicht mehr „geschlossen“ werden kann, mit Ausnahme des Einverständnisses jedes Autors von einem Stück Quellcode (auch der Modifikationen). Die meisten Linux Programme sind unter der GPL lizensiert.

Es ist wichtig zu sagen, dass die GPL nichts über einen Preis sagt. Es mag vielleicht merkwürdig klingen, aber man kann freie Software gegen Geld vertreiben. Der „freie“ Anteil ist in der Freiheitenthalten, die man mit dem Quellcode hat, nicht mit dem Preis, den man für die Software bezahlt. (Jedoch, wenn ihnen jemand ein kompiliertes Programm verkauft oder gegeben hat, das unter der GPL lizensiert ist, ist er dazu verpflichtet ihnen den Quellcode dazuzugeben.)

Eine andere bekannte Lizenz ist die BSD Lizenz. Im Vergleich zur GPL gibt die BSD keine Forderung für die Veröffentlichung des Quellcodes eines Programms. Software, die unter der BSD Lizenz steht darf zur Weiterverteilung in Quellcode- oder Binärform bereitgestellt werden, bei der nur ein paar wenige Bedingungen erfüllt werden müssen. Die Glaubwürdigkeit des Autors darf nicht als eine Art Werbung für das Programm verwendet werden. Es entschädigt den Autor von Haftung für Schäden, die durch verwenden der Software entstehen. Die meiste Software, die in Slackware Linux verwendet wird steht unter der BSD Lizenz.

An der Spitze neuerer Open Source Bewegungen ist die Open Source Initiative eine Organisation, die nur existiert, um Unterstützung für open Source Software zu gewinnen, die sowohl den Quellcode als auch das sofort ausführbare Programm enthält. Sie bieten keine spezielle Linzenz an, stattdessen unterstützen sie verschiedene open source erhältliche Lizenzen.

Die Idee hinter OSI ist mehr Gesellschaften zur open source zu bekommen, indem sie erlauben eigene open source Lizenzen zu zu schreiben, die dann von der Open Source Initiative ausgezeichnet werden. Viele Gesellschaften wollen Quellcode veröffentlichen, wollen aber nicht die GPL verwenden. Seit sie die GPL nicht einschneidend verändern dürfen, wird ihnen die Möglichkeit angeboten, ihre eigene Lizenz zu erstellen und sie von dieser Organisation auszeichnen zu lassen.

Solange die Free Software Foundation und die Open Source Initiative daran arbeiten sich gegenseitig zu helfen, sind sie nicht dieselbe Sache. Die Free Software Foundation benutzt eine spezielle Lizenz und biete Software unter dieser Lizenz an. Die open Source Initiative sucht Unterstützung für alle open source Lizenzen, eingeschlossen die der Free Software Foundation. Die Gründe, mit denen jeder argumentiert den Quellcode frei zugänglich zu machen scheidet manchmal die beiden Bewegungen, aber die Tatsache, dass 2 ideologisch verschiedene Gruppen zusammenarbeiten um das selbe Ziel zu erreichen verleiht dem Erfolg von beiden Glaubwürdigkeit.

bearbeiten

2 Hilfe


Oft gibt es Gelegenheiten in denen man Hilfe zu einem Bestimmten Befehl, mit dem Konfigurieren eines Programms oder zum Einrichten einer Hardwarekomponente braucht. Vielleicht wollen Sie nur einen Befehl verstehen oder Sie wollen wissen, welche Optionen bei diesem möglich sind. Glücklicherweise gibt es einige Möglichkeiten die Hilfe zu bekommen, die Sie suchen. Wenn Sie Slackware installieren, haben Sie die Möglichkeit Pakete der F-Serie zu installieren, welche die FAQ und HOWTOs enthalten. Programme bringen üblicherweise auch eine Hilfe über ihre Optionen, Konfigurationsdateien und Benutzung mit.

2.1 Systemhilfe


2.1.1 man


Der man Befehl (Abkürzung für "manual", Handbuch) ist die traditionelle Form der Online-Dokumentation in Unix und Linux Betriebssystemen. Durch speziell Formatierte Dateien, sind "man pages" (man Seiten) für die Meisten Befehle mit der Software mitgeliefert. Führt man man irgendeinbefehl aus, wird (normalerweise) die man-Seite für den angegebenen Befehl angezeigt, in unserem Beispiel wäre das unser imaginäres Programm irgendeinbefehl.

Wie Sie sich vorstellen können ist die Anzahl der man-Seiten stark gestiegen und selbst für einen Profi schwer zu überblicken. Deshalb sind die man-Seiten in nummerierte Sektionen eingeteilt. Dieses System gibt es schon eine lange Zeit; Lange genug, dass Sie oft Befehle, Programme und auch Funktionen von Programmbibliotheken sehen werden, die mit der Nummer ihrer man-Sektion refferenziert werden.

Zum Beispiel:
Sie lesen eine Refferenz zu man(1). Die Nummer sagt Ihnen das "man" in Sektion 1 dokumentiert ist (Benutzerbefehle; user commands); Sie können auch angeben, dass Sie die Sektion 1 man-Seite für "man" sehen wollen, mit dem Befehlt man 1 man. Die Sektion anzugeben in der man suchen soll ist dann nützlich, wenn es mehrere Objekte mit dem gleichen Namen gibt.

SektionInhalt
Sektion 1user commands (Benutzerbefehle, nur eine Einführung)
Sektion 2system calls (Systemaufrufe)
Sektion 3C library calls (Aufrufe der C Bibliothek)
Sektion 4devices (Geräte, z. B. hd, sd)
Sektion 5file formats and protocols (Dateiformate und Protokolle, z. B. wtmp, /etc/passwd, nfs)
Sektion 6games (Spiele, nur eine Einführung)
Sektion 7conventions, macro packages, etc. (Vorgaben, Makro Pakete, etc.; z. B. nroff, ascii)
Sektion 8system administration (System Administration, nur eine Einführung)

Zusätzlich zu man(1) gibt es noch whatis(1) und apropos(1), deren Aufgabe es ist, Informationen leichter in den man-Seiten zu finden.

Der Befehl whatis(1) gibt einen kurze Beschreibung der Systembefehle aus, in etwa wie ein Referenzkarte.

Beispiel:

% whatis whatis
whatis (1)  - search the whatis database for complete words (durchsucht die whatis-Datenbank nach kompletten Wörtern)


Der Befehl apropos wird benutzt um man-Seiten zu finden, die ein bestimmtes Schlüsselwort enthalten.

Beispiel:

% apropos wav
cdda2wav    (1)  - a sampling utility that dumps CD audio data into wav sound files
netwave_cs  (4)  - Xircom Creditcard Netwave device driver
oggdec      (1)  - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW)
wavelan     (4)  - AT&T GIS WaveLAN ISA device driver
wavelan_cs  (4)  - AT&T GIS WaveLAN PCMCIA device driver
wvlan_cs    (4)  - Lucent WaveLAN/IEEE 802.11 device driver


Wenn Sie weiter Informationen zu diesen Befehlen wünschen, dann lesen Sie ihre man-Seiten ;)

2.1.2 Das /usr/doc Verzeichnis


Die Quellen für die meisten Pakete die wir erstellen kommt mit irgendeiner Art von Dokumentation: README Dateien, Anleitungen, Lizenzdateien, etc. Jede Art von Dokumentation die in Quellen enthalten ist, ist eingefügt und im Verzeichnis /usr/doc installiert. Jedes Programm installiert (normalerweise) seine Dokumentation in der Form:

/usr/doc/$program-$version

Wobei $program der Name des Programms ist und $version (warscheinlich) die passende Versionsnummer der installierten Software auf Ihrem System ist.

Zum Beispiel um die Dokumentation des Befehls man(1) zu lesen, werden Sie ins folgende Verzeichnis wechseln wollen:

% cd /usr/doc/man-$version


Wenn die passende man-Seite nicht genug Informationen enthält solle das /usr/doc Verzeichnis Ihre nächste Anlaufstelle sein.

2.1.3 HOWTOs und Mini-HOWTOs


Es ist der Grundgedanke der Open Source Gemeinschaft, der uns zur Sammlung der HOWTOs/mini-HOWTOs bringt. Diese Dateien sind genau das, wonach es sich anhört - Dokumente und Anleitungen wie man etwas macht. Wenn Sie die HOWTO-Sammlung installiert haben, sind die HOWTOs in /usr/doc/Linux-HOWTOs und die mini-HOWTOs in /usr/doc/Linux-mini-HOWTOs installiert.

Auch findet man im gleichen Paket eine Sammlung von FAQ, eine Abkürzun für

Frequently Asked Questions (Häufig gestellte Fragen)

Diese Dokumente sind in einer Frage und Antwort Form geschrieben. Diese FAQs sind ein guter Anlaufpunkt wenn Sie nur eine schnelle Hilfe zu etwas suchen. Wenn Sie sich bei der Installation entschieden haben die FAQ zu installieren, finden Sie diese in /usr/doc/Linux-FAQs.

Auch ist es Sinvoll in diesen Dateien zu lesen, wenn Sie nicht sicher sind, wie etwas zu machen ist. Sie decken einen großen Bereich von Themen ab, meistens in einer sehr Ausführlichen Weise. Guter Lesestoff!

bearbeiten

2.2 Onlinehilfe


Zusätzlich zu der mit dem Slackware Linux Betriebssystem gelieferten und installierbaren Dokumentation, gibt es unmengen an Online Dokumentationen in denen Sie lesen können.

2.2.1 Die offizielle Webseite und Hilfe-Foren


Die offizielle Slackware Linux Webseite ist nicht immer Aktuell, aber bietet immer Informationen zur letzten Slackware Version. Es gab einmal ein aktives Hilfe Forum, bevor eine Horde Trolle, Problemverursacher und Heuler im Forum einstiegen. Das Forum zu unterhalten wurde mehr Arbeit und so stellte Pat es ein. Ein durchsuchbares Archiv der alten Daten findet sich unter http://www.userlocal.com/phorum/.

Nachdem die Foren von http://www.slackware.com vom Netz genommen wurden, sprangen verschiedene Seiten ein und boten Support für Slackware. Nachdem er lange darüber Nachgedacht hatte, wählte Pat http://www.linuxquestions.org als offizielles Forum für Slackware Linux.

2.2.2 E-Mail Support


Jeder, der ein offizielles CD Set kauft, hat vom Entwickler kostenlose Installationsunterstützung per E-Mail. Trotzdem solle man im Hinterkopf behalten, dass wir, die Entwickler (und Großteil der Benutzer) von Slackware "Die alte Schule" sind. Das heisst, das wir es bevorzugen Leuten zu helfen, die ein ehrliche Interesse daran haben und sich selbst dabei helfen wollen. Wir werden immer unser Bestes zun um jedem der uns mit E-Mail Anfragen anschreibt zu helfen. Aber bitte lesen Sie erst die Dokumentation oder die Internetseite (besonders die FAQ und vielleicht auch den o. g. Foren) bevor Sie mailen. Sie könnten so schneller eine Antwort bekommen und wir haben weniger E-Mails zu beantworten und können schneller denen helfen, die wirklich Hilfe brauchen.

Die E-Mail Adresse für technische Unterstützung ist: support@slackware.com. Andere E-Mail Adressen und Kontaktmöglichkeiten finden Sie auf der Internetseite.

Slackware Linux Projekt Mailing Listen

Wir haben verschieden Mailing Listen, verfügbar als Zusammenfassung und in der normalen Form. Schauen Sie nach den Aneleitung wie man sie abbonieren kann.

Um eine Mailing Liste zu abbonieren, schreiben sie eine E-Mail an::

majordomo@slackware.com

mit dem Text "subscribe [Name der Liste]". Die Auswahlmöglichkeiten finden Sie unten (Benutzen Sie die unten stehenden Namen für den Namen der Liste).

Archive der Mailinglisten finden Sie unter:

http://slackware.com/lists/archive

slackware-announce
Die slackware-announce Mailing Liste ist für Ankündigungen neuer Versionen, grössere Updates und andere allgemeine Informationen.

slackware-security
Die slackware-security Mailing Liste ist für Ankündigungen die die Sicherheit betreffen. Jeder exploit oder Verwundbarkeit, die Slackware direkt betrifft wird hier umgehend veröffentlicht.

Diese Listen gibt es auch in einer Zusammenfassung. Das heisst, das Sie eine grössere Nachricht pro Tag bekommen, anstatt mehrere Nachrichten über den Tag verteilt. Da die Slackware Mailinglisten keine Benutzerbeiträge erlauben, gibt es nicht so viel Traffic. Deshalb sehen die meisten Benutzer keine Vorteile in der Zusammenfassung. Sie sind jedoch trotzdem Verfügbar und können mit slackware-announce-digest oder slackware-security-digest abboniert werden.

2.2.3 Nicht offizielle Webseiten und Hilfe-Foren


2.2.3.1 Internetseiten


Google
Der Meister der Suchmaschinen. Wenn Sie jede noch so unwichtige Information zu einem Thema brauchen, gibt es keinen Ersatz.

Google:Linux
Linuxspezifische Suche

Google:BSD
BSD-spezifische Suche. Slackware ist so nah an einem Unix-ähnlichen-Betriebssystem, das sie oft 100% zutreffende Informationen für Slackware hier finden. Oft ist eine BSD Suche nützlicher um technische Informationen zu bekommen, als in den oft PR-bezogenen Linux Suchen.

Google:Groups
Suche in den Tiefen der Usenet Beiträge nach den Perlen der Weisheit.

http://userlocal.com
Eine virtuelle Schatzkammer des Wissens, guter Ratschläge, erster Hand Erfahrungen und interessanten Artikeln. Meist die erste Stelle, wo sie von den neuesten Entwicklungen in der Slackware-Welt lesen.

2.2.3.2 Internet basierende Quellen


linuxquestions.org
Das offiziell Unterstütze Web-Forum für Slackware Benutzer

LinuxISO.org Slackware Forum
"Ein Ort um Linux und Hilfe dazu zu bekommen."

alt.os.linux.slackware FAQ
Weitere FAQ

2.2.3.3 Usenet Gruppen (NNTP)


Das Usenet war lange ein Ort an dem sich Geeks versammelten und sich halfen. Es gibt ein paar wenige direkt Slackware bezogene Newsgroups, aber diese sind gefüllt mit sehr Erfahrenen Leuten.

alt.os.linux.slackware, besser bekannt als aols (in keiner Verbindung mit AOL(R)!), ist einer der aktivsten Plätze um hilfe bei Slackware Problemen zu bekommen. Wie in jeder Newsgroup können ein paar weniger Hilfsbereite Teilnehmer (Trolle) das Erlebnis mit ihren Diskussionen trüben. Zu lernen diese Trolle zu ignorieren und die wirklich Hilfsbereiten Leute zu finden, ist der Schlüssel um das Meiste aus dieser Quelle zu ziehen.

bearbeiten

3 Installation


3.1 Slackware bekommen


Bevor Sie Slackware Linux benutzen könne, müssen sie es erwerben und installieren. Um Slackware zu bekommen ist es genauso leicht es zu kaufen wie es kostenlos über das Internet herunterzuladen. Es zu installieren ist ebenfalls einfach, wenn sie ein paar grundlegende Dinge über ihren Computer wissen und bereit sind ein paar andere Dinge zu lernen. Das Installationsprogramm ist einfach ein Schritt für Schritt Prozess. Deshalb können sie es sehr schnell verwenden. Tatsächlich hat Slackware mitunter die niedrigste Installationszeit für eine Vollunterstützte Linux Distribution.

3.1.1 Die offiziellen Disks und Pakete


Das offizielle Slackware Linux CD Set ist bei Slackware Linux, Inc. erhältlich. Das CD Set besteht aus 4 Discs. Die erste Disc enthält die gesamte Software, die für eine grundlegende Server Installation und das X-Window System benötigt wird. Die zweite cd ist eine „live“ CD; das heißt, es ist eine bootfähige CD, die sich vorrübergehend im RAM installiert, um ein bisschen herumzuprobieren oder eine Daten oder System-Rettung durchzuführen. Diese CD enthält außerdem die KDE Desktop Umgebung. Ein paar andere kleine Schmankerl sind auf der zweiten CD enthalten, die aber nicht lebenswichtig sind und im „extra“ Ordner enthalten sind. CD drei und vier enthalten den Quellcode zu Slackware, mit der Original Version dieses Buches.

Man kann außerdem ein Box-Set bestellen, das 4 Discs enthält und ein Exemplar dieses Buches, sowie einige praktische Extras um deinen ganzen Stolz als Computerfreak zu zeigen.
CD Abonnements sind ebenfalls in einer kleineren Auflage erhältlich.
Die bevorzugte Methode um Slackware Artikel zu kaufen ist im Slackware-Online Shop.

http://store.slackware.com/

Sie können außerdem anrufen oder die Bestellung per Email schicken.

Slackware Linux, Inc. Kontakt Information

Methode | Contact Details
Telefon | 1-(925) 674-0783
Website | http://store.slackware.com/
Email | orders@slackware.com
Post | 1164 Claremont Drive, Brentwood, CA 94513

3.1.2 Via Internet


Slackware Linux ist ebenso über das Internet frei erhältlich. Sie dürfen ihre Support Fragen per Email stellen, wobei die eine höhere Priorität haben, die das offizielle CD set gekauft haben.
Anders ausgedrückt, wir bekommen eine Menge Emails und unsere Zeit ist auch begrenzt. Bevor sie eine Email wegen Unterstützung schreiben lesen sie zuerst Kapitel 2.

Die offizielle Slackware Linux Projekt Website befindet sich auf:

http://www.slackware.com/

Der erste FTP Server für Slackware Linux ist:

ftp://ftp.slackware.com/pub/slackware/

Vergesst nicht dass unsere FTP Seite weil sie für hauptsächliche Benutzung da ist, keine unbeschränkte Bandbreite hat.
Bitte überlegt deshalb auch die Mirror Sites zu verwenden um Slackware zu downloaden. Eine unvollständige Liste kann auf unserer Seite http://www.slackware.com/getslack/ gefunden werden.

bearbeiten

3.2 Systemvoraussetzungen


Eine einfache minimale Slackware Installation erfordert folgendes:

Tabelle 3.2 Systemvorraussetzungen

Hardware Voraussetzung
Prozessor 586
RAM 32 MB
freier Festplattnspeicher 1 GB
Laufwerk 4x CD-ROM


Falls sie die bootfähige CD besitzen, werden sie kein Diskettenlaufwerk benötigen. Falls sie kein CD-ROM Laufwerk besitzen sollten, ist es natürlich notwendig ein Diskettenlaufwerk zu haben, um eine Netzwerkinstallation zu starten. Eine Netzwerkkarte ist notwendig für eine Netzwerkinstallation (NFS). Weitere Informationen finden sie in dem Kapitel NFS-Installation.

Der benötigte Festplattenspeicher ist etwas tricky. Die 1 GB Vorraussetzung ist normalerweise sicher für eine Minimalinstallation. Wenn sie aber eine Vollinstallation wählen, werden sie ca. 2 GB und zusätzlichem Speicherplatz für eigene Dateien benötigen. Die wenigsten Benutzer führen eine Vollinstallation durch. Tatsächlich läuft Slackware meist auf einer Größe von 100 MB Speicher.

Slackware kann auch auf Systemen mit weniger Ram, kleineren Fesplatten und schwächeren CPUs installiert werden, erfordert dafür aber auch etwas mehr Geduld. Wenn sie Lust auf etwas Arbeit haben, sehen sie sich die LOWMEM.TXT im Distributions-Verzeichnis für ein paar hilfreiche Tips an.

3.2.1 Die Softwareserien


Aus Gründen der Einfachheit wurde Slackware schon immer in Softwareserien unterteilt. Ursprünglich wurden sie „Disk-Sets“ genannt, weil sie damals noch für eine Diskettenbasierte Installation gedacht waren. Die Softwareserien werden heute hauptsächlich dazu verwendet in Slackware verwendete Packete zu kategorisieren. Heute ist eine Diskettenbasierte Installation nicht mehr möglich.

Die folgende Liste ist eine Kurzbeschreibung jeder Softwareserie.

Tabelle 3-3. Softwareserien

Serie Inhalt
A Das Basis System. Enthält genug Software um zu booten, einen Texteditor und ein Kommunikationsprogramm
AP Verschiedene Anwendungen, die das X Window System nicht benötigen
D Programm Entwicklungstools (Compiler, Debugger, Interpretierer und Hilfe Seite (man-pages))
E GNU Emacs
F FAQs, HOWTOs und andere verschiedene Dokumentationen.
GNOME GNOME Die GNOME Desktop Umgebung (Anmerkung des Übersetzers: nicht mehr vorhanden seit Slackware 10.2)
K Der Source Code für den Linux Kernel
KDE Die KDE Desktop Umgebung. Eine X Umgebung, die in manchen Dingen von Aussehen und Verhalten wie MacOS und Windows ist. Die QT Bibliothek, die von KDE benötigt wird ist außerdem in dieser Serie
KDEI Internationale Sprachpakete für den KDE Desktop
L Bibliotheken. Dynamisch verlinkte Bibliotheken werden von vielen anderen Programmen benötigt
N Netzerkprogramme. Hintergrunddienste, Mail Programme, Telnet, Informationsleser und so weiter
T teTeX Dokument Format System
TCL Die Tool Command Language. Tk, TclX und TkDesk
X Das X Window System
XAP X Anwendungen die nicht Teil der Grundlegenden Desktop Umgebung sind (z.B. Ghostscript und Netscape)
Y BSD Konsolenspiele


3.2.2 Installationsmethoden



Obwohl es einmal möglich war Slackware Linux komplett von Diskette zu installieren, hat die sich erhöhende Größe der Softwarepakete (von einigen Programmen) zum Wegfall der Diskettenbasierten Installation geführt. Noch bei Slackware Version 7.1 war es teilweise noch möglich eine Installation über Diskette durchzuführen. Die A und N Softwareserie konnte nahezu komplett installiert werden, und stellte ein Basissytem bereit, von dem aus man den Rest der Distribution installieren konnte. Wenn sie eine Disketteninstallation in Erwägung ziehen (meistens auf älterer Hardware) wird normalerweise empfohlen einen anderen Weg zu finden, oder eine ältere Version zu installieren. Slackware 4.0 ist immer noch sehr gefragt für diese Lösung, sowie auch 7.0.

Bitte beachten sie, dass Disketten immer noch für eine CD-ROM basierte Installation benötigt werden, wenn sie keine bootfähige CD haben, sowie für eine NFS Installation.


3.2.2.1 Diskette



Obwohl es einmal möglich war Slackware Linux komplett von Diskette zu installieren, zwang die wachsende Größe von Software Paketen (tatsächlich einige wenige Programme) zur Aufgabe von Installation von Disketten. Solange es noch möglich war, konnte man Slackware Version 7.1 teilweise von Diskette installieren. Die A und N Software-Serie konnte nahezu vollständig installiert werden, was ein Basis System zur Verfügung stellte, von dem aus man den Rest der Distribution installieren konnte. Wenn man eine Disketteninstallation wählt (normalerweise auf betagterer Hardware), wird vorgeschlagen einen anderen Weg zu finden, oder eine ältere Version zu benutzen. Slackware 4.0 ist weiterhin sehr beliebt dafür, sowie Slackware 7.0.

3.2.2.2 CD-ROM



Wenn sie die bootfähige CD besitzen ,die in dem offiziellen CD Set enthalten ist, dass von der Slackware Linux, Inc. veröffentlicht wurde (genaueres hierzu in dem Kapitel Slackware bekommen), wird eine CD basierte Installation einfacher für sie verlaufen. Falls nicht, müssen sie von Diskette booten. Ebenso, wenn sie spezielle Hardware haben, die beim Verwenden des Kernels auf der Boot-CD zu Problemen führt, werden sie spezielle Disketten benutzen müssen.

Seit Slackware Version 8.1 gibt es eine neue Methode Boot-CDs zu erstellen, die aber nicht gut bestimmten flaky BIOS chips klarkommt (es darf erähnt werden, dass die meisten Linux CDs aus dieser Zeit darunter leiden). Wenn das der Fall ist, empfehlen wir von einer Diskette zu booten.

Kapitel 3.2.3 und Kapitel 3.2.5 beinhalten nähere Informationen wie sie Disketten auswählen und erstellen um mit diesen zu booten, sofern das notwendig sein sollte.

3.2.2.3 NFS



3.2.3 Bootdiskette


Die Bootdiskette ist die Diskette von der man gewöhnlich die Installation bootet. Sie beinhaltet ein komprimiertes Kernel Image, welches die Hardware während der Installation kontrolliert.
Deshalb ist diese unbedingt notwendig (wenn sie nicht gerade von CD booten, wie es in dem Kapitel CD-ROM beschrieben ist). Diese Boot Disketten befinden sich im Verzeichnis bootdisks/ der Distribution.

Es gibt mehr Slackware Bootdisketten als man denkt (es sind ungefähr 16). Eine komplette Liste der Bootdisketten mit jeweils einer Beschreibung gibt es im Slackware Verzeichnis in der Datei bootdisks/README.TXT. Aber die Meisten können bare.i (für IDE Laufwerke) oder scsi.s (für SCSI Laufwerke) Versionen verwenden.

Siehe Kapitel 3.2.6 für Anweisungen eine Diskette mit Hilfe eines Images zu erstellen.

Nach dem Bootvorgang werden sie dazu aufgevordert die Hauptdisketten einzulegen. Wir empfehlen ihnen der Bootdiskette zu glauben.

3.2.4 Hauptdisketten


Die Hauptdisketten enthalten das Installationsprogramm und ein Dateisystem, das während der Installation verwendet wird. Sie sind also notwendig. Die Hauptdisketten Images befinden sich im Verzeichnis rootdisks/ der Distribution. Sie müssen 2 Hauptdisketten aus den install.1 und install.2 erstellen. Hier finden sie auch die nework.dsk, pcmcia.dsk,rescue.dsk und die sbootmgr.dsk Disketten.

3.2.5 Zusatzdisketten


Eine Zusatzdiskette wird für eine NFS Installation oder ein System mit PCMCIA Geräten benötigt. Zusatzdisketten befinden sich im rootdsks Verzeichnis der Distribution mit den Dateinamen network.dsk und pcmcia.dsk. Inzwischen wurden noch andere Zusatzdisketten wie rescue.dsk und sbootmgr.dsk hinzugefügt. Die Rettungsdiskette ist eine kleine Diskette, die in auf 4MB RAM läuft. Sie enthält ein paar grundlegende Netzwerktools und den vi Editor für schnelle Änderungen auf der Maschine. Die sbootmgr.dsk wird dazu verwendet andere Laufwerke zu booten. Booten sie mithilfe dieser Diskette, wenn ihr bootfähigesCD-ROM Laufwerk ihre Slackware CDs nicht booten will. Sie wird sie zu verschieden Dingen auffordern und wird vielleicht einen Weg finden mit dem fehlerhaften Bios zu arbeiten.

Die Hauptdiskette wird sie anweisen wie sie die Zusatzdiskette verwenden, wenn sie geladen ist.

3.2.6 Die Disketten erstellen


Wenn sie ein Bootdisk Image ausgeählt haben müssen sie es auf eine Diskette bringen. Dieser Prozess ist leicht unterschiedlich, je nachdem welches Betriebssystem sie verwenden um die Disketten zu bschreiben. Wenn sie Linux verwenden (oder ein anderes Unix Ähnliches Betriebssytem) müssen sie den dd(1) Code verwenden. Bestehend aus bare.i und ihrem Diskettenlaufwerk /dev/fd0, heißt der Code um eine bare.i Diskette zu erstellen:

% dd if=bare.i of=/dev/fd0


Wenn sie ein Microsoft Betriebssystem verwenden benötigen sie das Programm RAWRITE.EXE, das sich im selben Verzeichnis befindet, wie die Disketten Images. Wieder aus bare.i bestehend und dem Diskettenlaufwerk A: öffnen sie eine DOS Eingabeaufforderung und geben sie folgendes ein:

C:\ rawrite a: bare.i


bearbeiten

3.3 Partitionierung



Nachdem sie von ihrem bevorzugten Medium gebootet haben, müssen sie die Festplatte partitionieren. Auf dieser Partition wird das Linux Dateisystem erstellt werden, auf der dann Slackware installiert wird.
Es müssen mindestens 2 Partitionen angelegt weden; eine für das root Dateisystem (/) und eine für den swap Speicher.

Nachdem die root CD geladen wurde, erscheint ein Anmeldefeld. Melden sie sich als root ein (hier gibt es kein Passwort). Tippen sie auf der Konsole cfdisk(8) oder fdisk(8) ein.
cfdisk bietet ein benutzerfreundlicheres Erscheinungsbild als das normale fdisk, allerdings fehlen einige Funktionen. Wir werden fdisk kurz erklären.

Starten sie fdisk für ihre Festplatte. In Linux haben Festplatten keine Laufwerksbuchstaben, sondern werden von durch eine Datei dargestellt. Die erste IDE Festplatte (primary master) ist /dev/hda, primary slave ist /dev/hdb, usw.
SCSI Laufwerke haben das selbe Bezeichnungssystem, allerdings in der Form /dev/sdx. Sie werden fdisk folgendermaßen starten und auf ihre Festplatte anpassen müssen:
# fdisk /dev/hda

Wie alle guten Unix Programme hat fdisk eine Konsole (sie haben gedacht, sie bekommen ein Menü, oder?). Das erste was sie tun sollten, ist ihre Partitionen durchsehen.
Tippen sie dafür p im fdisk prompt ein:
command (m for help) :p

Das wird ihnen alle Informationstypen über ihre momentanen Partitionen anzeigen. Die meisten Leute nehmen eine Festplatte und löschen alle vorhandenen Partitionen um eine Linux Partition zu erstellen.

ES IST SEHR WICHTIG, DASS SIE ALLES SICHERN, WAS SIE WOLLEN, BEVOR SIE DIE PARTITION AUF DER DIE SICH BEFINDEN ZERSTÖREN.

Es gibt keinen einfachen Weg Daten zu einer gelöschten Partition wiederherzustellen, deshalb sollten sie vorher alles sichern, bevor sie mit den Partitionen spielen.

Wenn sie sich die Partitionstabelle ansehen, sehen sie eine Partitionsnummer, die Größe der Partition und ihren Typ. Es gibt mehr Informationen, aber um die brauchen sie sich im Moment nicht zu kümmern.
Löschen sie alle existierenden Partitionen, um eine Linux Partition zu erstellen. Geben sie dafür den d Befehl ein, um diese zu löschen:

Command (m for help) : d
Partition numer (1-4): 1

Dieser Prozess sollte für jede Partition ausgeführt werden. Nachdem sie alle Partitionen gelöscht haben, erstellen sie eine Linux Partition.
Sie haben sich entschlossen eine Partition für das root Dateisystem und eine für swap zu erstellen. Es ist erwähnenswert, dass Unix Partitions Möglichkeiten das Thema vieler längerer Diskussionen ist, in der die meisten Nutzer meinen, ihnen die beste Möglichkeit erklären zu können. Sie müssen aber auf jeden Fall mindestens eine Partition für / und eine für swap erstellen. Mit der Zeit werden sie ihre eigene Methode entwickeln, die ihnen gefällt.

Ich verwende 2 grundlegende Varianten. Die erste ist für einen Desktop. Ich erstelle 4 Partitionen, /, /home/, /usr/local, und swap. Dadurch kann ich die komplette Installation unter / wieder installieren oder upgraden, ohne dabei meine Daten in /home oder meine eigenen Programme unter /usr/local zu verlieren.
Für Server ersetze ich oft die /usr/local Partition durch eine /var Partition. Viele verschiedene Server speichern ihre Informationen auf dieser Partition und halten sie dadurch von / getrennt, was diverse Leistungsvorteile mit sich bringt. Fürs erste werden sie nur 2 Partitionen erstellen: / und swap.

Erstellen sie die Partitionen mit dem Befehl n:
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4):1
First cylinder (0-1060, default 0):0
 Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M

Gehen sie sicher, dass sie primary partitions erstellt haben. Die erste Partition wird unsere swap Partition. fdisk soll aus Partition Nummer 1 eine primary partition machen. Starten sie bei Zylinder 0 und enden sie bei Zylinder +64M. Damit erstellen sie 64 MB für die swap Partition. (Die Größe, die eine swap Partition braucht, hängt von der Größe des vorhandenen Arbeitsspeichers ab. Es ist ein ungeschriebenes Gesetz, die swap Partition doppelt so groß zu erstellen, wie der Arbeitsspeicher groß ist.) Dann definieren sie Partition Nummer 2, indem sie beim ersten verfügbaren Zylinder anfangen und beim letzten verfügbaren auf der Festplatte enden.
Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4):2
First cylinder (124-1060, default 124):124
Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):1060

Sie sind schon fast fertig. Sie müssen den Typ der ersten Partition in Typ 82 ändern(Linux swap). Geben sie t ein um den Typ zu ändern, wählen sie die erste Partition aus und geben sie 82 ein. Bevor sie die Änderungen auf die Festplatte speichern, sollten sie ein letztes Mal einen Blick in die Partitionstabelle werfen. Geben sie p in fdisk ein um die Partitionstabelle anzuzeigen.
Wenn alles gut aussieht, geben sie w ein, um die Änderungen auf die Festplatte zu speichern und fdisk zu beenden.

bearbeiten

3.4 Das setup Programm


Wenn sie ihre Partitionen erstellt haben, sind sie bereit Slackware zu installieren. Der nächste Schritt im Installationsprozess is das setup(8) Programm auszuführen. Um das zu tun, geben sie einfach setup in die Konsole ein. setup ist ein menügebasiertes System um Slackware Pakete zu installieren und das System zu konfigurieren.

image

Der Setup Prozess läuft in etwa folgendermaßen ab: Sie gehen Schritt für Schritt durch die Optionen des setup Programms, in der Reihenfolge, in der sie aufgelistet sind. (Natürlich können sie eine beliebige andere Reihenfolge auswählen, aber die Chancen stehen schlecht, dass das gut geht.) Menü Optionen werden mit den Pfeiltasten (hoch und runter) ausgewählt, "Okay" und "Cancel" (abbrechen) werden mit den Pfeiltasten (rechts und links) ausgewählt. Alternativ hat jede Option die Möglichkeit per farblich markierter Taste ausgewählt zu werden. Optionen, bei denen Markierungen gesetzt werden können (markiert mit einem [X]), werden mit der Leertaste gesetzt/rückgesetzt.

Natürlich steht das Alles in "help" von setup, aber wir wollen unseren Lesern diesen Luxus bieten.

3.4.1 HELP


Wenn das das erste Mal ist, dass sie Slackware installieren, wollen sie vielleicht einen Blick auf den Help Bildschirm werfen. Dort gibt es eine Beschreibung jedes Teils von setup (fast so wie das was wir gerade schreiben, nur weniger aufwändig) und Anweisungen um durch die restliche Installation zu führen.

image

3.4.2 KEYMAP


Wenn sie keine amerikanische "querty" Tastaturbelegung verwenden wollen, werfen sie einen Blick in diesen Abschnitt. Hier werden ihnen eine Menge anderer Belegungen für ihre Tastatur angeboten.

image

3.4.3 ADDSWAP


image

Wenn sie eine swap Partition erstellt haben (zurück in Abschnitt 3.3), wird ihnen dieser Abschnitt die Möglichkeit bieten, sie zu aktivieren. Hier werden swap Partitionen, die sich auf ihrer Festplatte befinden automatisch erkannt und angezeigt. Dabei können sie eine auswählen und aktivieren.

3.4.4 TARGET


image

Im target Abschnitt werden ihre anderen (nicht-swap) Partitionen formatiert und für das zum Einbinden im Dateisystem aufgelistet. Eine Liste der Partitionen auf ihrer Festplatte wird angezeigt. Für jede Partition, müssen sie wählen, ob sie diese formatieren oder nicht. Abhängig vom verwendeten Kernel können sie zwischen reiserfs (der Standard), ext3, ext2 , jfs und xfs wählen. Die meisten Leute nehmen reiserfs oder ext3. In naher Zukunft wird es auch reiserfs4 Unterstützung geben.

Die erste Option in diesem Abschnitt ist die Auswahl der Partition, auf der sie das root (/) Dateisystem installieren wollen. Danach können sie andere Partitionen ins Dateisystem einbinden. (Zum Beispiel wollen sie ihre dritte Partition /dev/hda3 als ihr Arbeitsverzeichnis. Das ist nur ein Beispiel; binden sie die Partitionen nach ihrem Geschmack ein.)

3.4.5 SOURCE


Im source Abschnitt wählen sie das Medium aus, vom dem sie Slackware installieren wollen. Momentan gibt es 4 Quellen aus denen sie wählen können. Diese sind CD-ROM, NFS (Netzwerk Dateisystem, oder ein schon eingebundenes Verzeichnis.

image

Die CD-ROM auswahl aktiviert die CD-ROM basierte Installation. Es gibt eine Möglichkeit angeboten nach einem CD-ROM Laufwerk zu suchen, oder eine Liste auf der sie ihren Typ Laufwerk auswählen können. Stellen sie sicher, dass sie die Slackware CD eingelegt haben, bevor nach dem Laufwerk gesucht wird.

Die NFS Auswahl verlangt nach ihren Netzwerk Informationen und der für ihren NFS Server. Der NFS Server muss eingerichtet sein. Außerdem könntn sie keine Hostnamen verwenden. Sie müssen die IP Adresse für ihren PC und den NFS Server benutzen (es gibt keinen Namensauflöser auf der setup CD). Normalerweise müssen sie die network.dsk Diskette haben, um Unterstützung für ihren Netzwerk Controller zu haben.

Das schon eingebundene Verzeichnis bietet ihnen die größte flexibilität. Sie können diese Methode zur Installation verwenden um von Dingen wie Jaz Laufwerken, NFS über PLIP und FAT Dateisystemen zu installieren. Binden sie das Dateisystem auf ein Ziel ihrer Wahl ein, um danach im setup dieses Ziel auszuwählen.

3.4.6 SELECT


Die select Option erlaubt ihnen verschiedene Software Serien für die Installation auszuwählen. Diese Serien werden in Abschnitt 3.2.1 erklärt. Bitte merken sie sich, dass sie Serie A für ein laufendes minimales System installieren müssen. Alle anderen Serien sind optional.

image

3.4.7 INSTALL


Angenommen, dass sie die Schritte "target", "source" und "select" bereits hinter sich gelassen haben, erlaubt ihnen der Abschnitt install Pakete von den ausgewählten Software Serien zu installieren.Falls nicht, werden sie aufgefordert zurückzugehen und die anderen Abschnitte des setup Programms fertigzustellen. Diese Option ermöglicht ihnen aus 6 verschiedenen Installationsmethoden auszuwählen: full, newbie, menu, expert, custom, und tag path.

image

Die full Option installiert jedes einzelne Paket von den im "select" Abschnitt ausgewählten Software Serien. Hier gibt es keine weitere Aufforderungen. Das ists die einfachste Installationsmethode, weil sie selbst keine Entscheidungen treffen müssen, welche Pakete sie installieren. Natürlich belegt diese Methode am meisten Festplattenplatz.

Die nächste Option ist newbie. Hier werden alle benötigten Pakete der ausgehälten Serien installiert. Bei allen anderen Paketen werden sie dazu aufgefordert "Yes/Ja", "No/Nein" oder "Skip/Überspringen" auszuwählen. Yes und No sind offensichtlich, Skip springt zur nächsten Serie. Außerdem sehen sie eine Beschreibung und eine Größenangabe für jedes Paket, um ihnen die Entscheidung zu erleichtern, falls sie es brauchen. Wir empfehlen diese Option für neue Benutzer, um sicherzustellen, dass alle wichtigen Pakete installiert werden. Allerdings ist diese Variante etwas langsam, durch die ständigen Abfragen.

Menu ist eine schnellere und erweiterte Version der newbie Option. Für jede Serie wird ein Menü angezeigt, von dem sie alle optionalen Pakete für die Installation auswählen können. Essentielle Pakete werden nicht angezeigt.

Für fortgeschrittene Benutzer gibt es die expert Option. Hier haben sie die komplette Kontrolle darüber, welche Pakete sie installieren wollen. Sie können Pakete abwählen, die absolut notwendig sind, was in einem fehlerhaften System endet. Auf der anderen Seite wissen sie dadurch genau, was auf ihr System kommt. Allerdings können sie so besser kontrollieren, was auf ihr System kommt. Wählen sie einfach die Pakete von jeder Serie, die sie installiert haben wollen. Das wird für einen neuen Benutzer aber nicht empfohlen, weil es genauso einfach ist, sich in den Fuß zu schießen.

Die custom und tag path Methode sind ebenfalls für fortgeschrittene Nutzer. Mit Hilfe dieser Optionen können sie durch eigene Konfigurationsdateien installieren, die sie im Distributionsverzeichnis erstellt haben. Das ist sinnvoll, um eine ganze Reihe an Computern nachheinander schnell zu installieren. Für mehr Informationen wie sie die Konfigurationsdateien benutzen, gehen sie in Abschnitt 18.4.

Nachdem sie die Installationsmethode ausgwhält haben, werden ein paar Sachen passieren. Wenn sie menu ausgewählt haben, erscheint ein Menü, welches es ihnen erlaubt die zu installierenden Pakete auszuwählen. Wenn sie full ausgewählt haben, wird die Installation auf das Zielverzeichnis sofort beginnen. Wenn sie newbie ausgewählt haben, werden die Pakete installiert, bis die optionalen Pakete erreicht sind.

Merken sie sich, dass es möglich ist, dass ihnen der Festplattenspeicher während der Installation ausgeht. Wenn sie zu viele Pakete für den freien Platz auf ihrem Ziellaufwerk ausgewählt haben, werden sie Probleme bekommen. Die sicherste Variante ist ein bisschen Software auszuwählen, und später mehr zu installieren, falls sie mehr benötigen. Das wird ihnen durch Slackwares Paket Managment ermöglicht. Diese Informationen bekommen sie in Kapitel 18.

3.4.8 CONFIGURE



Der Abschnitt Konfiguration ermöglicht ihnen ein paar grundlegende Konfigurationen am System durchzuführen, nachdem die Pakete installiert wurden. Was sie hier sehen hängt zu großen Teilen davon ab, welche Software installiert haben. Sie werden jedoch immer folgendes sehen:

3.4.8.1 Kernel-Auswahl



Hier werden gebeten einen Kernel auszuwählen. Sie können den Kernel von dem verwendeten Boot-Medium installieren, von der Slackware CD-ROM oder von einer anderen Diskette, die sie (immer einen Schritt vorausdenkend) vorbereitet haben. Oder sie können die Auswahl überspringen. In diesem Fall wird der standard Kernel installiert und das Spiel wird wieder vom Kartengeber geleitet.

image

3.4.8.2 Bootdisk erstellen



Es ist sinnvoll eine Bootdiskette für die weitere Verwendung zu erstellen. Sie haben die Möglichkeit eine Diskette zu formatieren und dann eine von 2 Arten Boot Disketten auszuwählen. Die erste Variante, simple, schreibt einfach einen Kernel auf die Diskette. Die andere (und auch empfohlene) Variante ist lilo, die eine lilo Boot Diskette erstellt. Über LILO erfahren sie mehr in Kapitel 7.1. Natürlich können sie auch continue auswählen. In diesem Fall wird keine Boot Diskette erstellt.

image

3.4.8.3 Modem



Sie werden dazu aufgefordert, ihr Modem näher zu beschreiben. Genauer gesagt, sie werden gefragt, ob sie ein Modem besitzen, und wenn das der Fall ist, an welcher seriellen Schnittstelle es angeschlossen ist.

image


Die nächsten Konfigurationsblöcke können erscheinen, müssen aber nicht. Je nachdem, welche Pakete sie installiert haben, oder nicht.

3.4.8.4 Zeitzone




Diese ist recht einfach: sie werden gefragt, in welcher Zeitzone sie sich befinden. Wenn sie Zulu Zeit verwenden wollen, müssen wir uns entschuldigen; die (extrem lange) Liste ist alphabetisch geordnet, und sie müssen ganz nach unten.

image

3.4.8.5 Maus



Dieser Unterabschnitt fragt sie danach, was für eine Maus sie besitzen und ob sie gpm(8), die Konsole Maus Unterstützung, beim Systemstart verwenden wollen.

image

3.4.8.6 Hardware-Uhr



Dieser Abschnitt fragt sie ob ihre Hardware Uhr nach der Koordinierten Weltzeit (UTC oder GMT) gestellt ist. Die meisten PCs sind das nicht, also sollten sie im Normalfall nein sagen.

image

3.4.8.7 Schriftart



Dieser Unterabschnitt erlaubt ihnen aus verschiedenen Schrifttypen auszuwählen.

image

3.4.8.8 LILO


Hier werden sie dazu aufgefordert LILO zu installieren (der LInux LOader; mehr Informationen darüber in Kapitel 7.1).

image

Falls Slackware das einzige Betriebssystem auf ihrem Komputer ist, sollte simple für sie vollkommen ausreichen. Wenn sie mehr 2 oder mehr Betriebssysteme (dual-boot) verwenden, ist expert die bessere Wahl. Gehen sie in Kapitel 7.3 für mehr Informationen über dual-boot. Die dritte Option, do not install (nicht installieren), wird nicht empfohlen, wenn sie nicht wissen, was sie tun und einen guten Grund haben, LILO nicht zu installieren. Wenn sie eine expert Installation wählen wird ihnen zur Auswahl gestellt, wohin sie LILO installieren wollen. Sie können LILO in den MBR (Master Boot Record) ihrer Festplatte schreiben, in den superblock ihrer Linux root Partition, oder auf eine Diskette.

3.4.8.9 Netzwerk



Die Netzwerk Konfiguration ist gleichzusetzen mit netconfig. Sehen sie sich für mehr Informationen Kapitel 5.1 an.

3.4.8.10 X Window Manager



Dieser Unterabschnitt ermöglicht ihnen ihren standard Fenster Manager für X auszuwählen. Sehen sie sich Kapitel 6 für mehr Details über X und Fenster Manager an.

image

Egal welche Pakete sie installiert haben, ist der letzte Konfigurationsschritt das root Passwort zu setzen. Aus Sicherheitsgründen sollten sie dies tun; Trotzdem ist das wie alles andere bei Slackware auch ihre Wahl.

bearbeiten

4 Systemkonfiguration


Bevor man die Fortgeschrittenen Teile des Systems konfigurieren kann, ist es gut zu wiessen, wie das System organisiert ist und welche Befehle zum Suchen und Finden von Programmen genutzt werden können. Ausserdem ist es wichtig, wenn man einen eigenen Kernel kompilieren will und wie man das richtig macht. Dieses Kapitel wird Sie mit der Organisation des Systems und den Konfigurationsdateien bekannt machen. Dann kann man weitergehen um die Fortgeschrittenen Teile des Systems zu konfigurieren.

4.1 Überblick über das System


Es ist wichtig zu verstehen, wie ein Linuxsystem zusammengesetzt ist, bevor man in die verschiedenen Konfigurationsmöglichkeiten eintaucht. Ein Linuxsystem ist ganz anders als DOS, Windows oder ein Macintosh System (abgesehen von der Unix-Grundlage von Mac OS X), aber diese Abschnitte werden ihnen helfen mit dem Layout zurecht zu kommen damit sie möglichst einfach ihr System nach ihren Vorstellungen konfigurieren können.

4.1.1 Aufbau des Dateisystems


Der erste augenscheinliche Unterschied zwischen Slackware Linux und einem DOS oder Windows System ist das Dateisystem. Für Einsteiger, es werden keine Laufwerksbuchstaben für verschiedene Partitionen benutzt. Unter Linux gibt es nur ein Hauptverzeichnis. Man kann es mit c: unter DOS vergleichen. Jede Partition in ihrem System ist in ein Unterverzeichnis des Hauptverzeichnisses eingebunden. Es ist wie eine immer weiterwachsende Festplatte.

Man nennt das Hauptverzeichnis das root Verzeichnis und es wird mit einem einzelnen Slash (/) bezeichnet. Diese Konzept mag merkwürdig erscheinen, aber es macht das leben leichter, wenn man mehr Speicherplatz hinzufügen möchte. Zum Beispiel ist die Festplatte voll, auf der sich /home befindet. Die meisten Leute installieren Slackware und haben ein grosses root Laufwerk. Da man Partitionen in jedem Verzeichnis einhängen kann, kann man einfach eine neue Festplatte kaufen gehen und sie als /home einhängen. Und schon hat man mehr Platz in seinem System. Und das ohne irgendwelche Daten zu verschieben.

Unten finden Sie eine Beschreibung der Hauptverzeichnisse unter Slackware.


/bin
Wichtige Benutzerprogramme sind hier abgelegt. Diese repräsentieren das Minimum an Programmen für einen Benutzer des Systems. Dinge wie die Shell und die Dateisystemkommandos (ls, cp, und so weiter) finden sich hier. Das /bin Verzeichnis wird normalerweise nach der Installation nicht mehr verändert. Wenn doch, dann in der Form eines Upgrades eines unserer Packete.

/boot
Dateien die vom Linux Loader (LILO) benutzt werden. Dieses Verzeichnis bekommt auch kaum Veränderungen nach einer Installation. Der Kernel ist hier seit Slackware 8.1 abgelegt. In früheren Versionen von Slackware, war der Kernel noch einfach unter / abgelegt, aber weit Verbreitet ist es, den Kernel und zugehörige Dateien hier um Dual-boot zu ermöglichen.

/dev
Alles in Linux wird zu einer Datei, auch Hardware wie Serielle Schnittstellen, Festplatten und Scanner. Um diese Geräte ansprechen zu können, muss eine als Geräteknoten "device node" Bezeichnete Datei vorhanden sein. Alle "device nodes" sind im /dev Verzeichnis abgelegt. Sie werden dies in allen Unixähnlichen Betriebssystem finden.

/etc
Dieses Verzeichnis enthält die Systemkonfigurationsdateien. Alles von der X-Windows Konfigurationsdatei, den Benutzerdatenbanke, bis hin zu den Startscripten des Systems. Dem Systemadministrator wird dieses Verzeichnis mit der Zeit immer bekannter.

/home
Linux ist ein Multiuser Betriebssystem. Jedem Benutzer ist ein Account und ein eindeutiges Verzeichnis für persönliche Dateien zugeordnet. Dieses Verzeichnis nennt man das Heimverzeichnis (home directory) des Benutzers. Das /home Verzeichnis ist der vorgegeben Ort für Benutzer Heim Verzeichnisse (home directory).

/lib
Systembibliotheken die für grundlegende Operationen gebraucht werden, sind hier abgelegt. Die C Bibliothek, der dynamische Lader, die ncurses Bibliothek, und die Kernel Module sind die wichtigsten Dinge hier.

/mnt
Dieses Verzeichnis enthält Verzeichnisse zum temporären einhängen von Datenträgern oder ähnlichem, sogenannte "mount points". Hier findet man die Verzeichnisse für CD-Rom und Diskettenlaufwerke.

/opt
Optionale Softwarepakete. Die Idee hinter /opt ist, dass jedes Softwarepaket unter /opt/sofware-paket installiert wird, was das spätere entfernen einfacher macht. Slackware liefert einige Dinge in /opt (wie z. B. KDE in /opt/kde), aber sie können in /opt hinzufügen was sie wollen.

/proc
Dies ist ein einmaliges Verzeichnis. Es ist nicht wirklich ein Teil des Dateisystems, aber doch ein virtuelles Dateisystem, das Zugriff auf Kernelinformationen bietet. Verschieden Teile der Informationen die der Kernel mitteilen kann werden ihnen durch Dateien im /proc Verzeichnis präsentiert. Sie können auch dem Kernel durch diese Dateien informationen geben. Versuchen sie mal cat /proc/cpuinfo

/root
Den Systemadministrator nennt man root. Das Heimatverzeichnis von root ist in /root anstatt in /home/root. Der Grund ist einfach. Was ist, wenn /home auf einer anderen Partition liegt als / und nicht eingehängt werden kann? root meldet sich normalerweise an um das Problem zu beheben. Wenn das Heimatverzeichnis auf dem beschädigten Dateisystem ist, würde es schwer für ihn sich am System anzumelden.

/sbin
Essentielle Programme, welche von root (dem Administrator) benutzt werden und während des Startvorgangs gebraucht werden sind hier abgelegt. Normale Benutzer dürfen keine Programme aus diesem Verzeichnis ausführen.

/tmp
Der Ort für temporäre Daten. Alle Benutzer haben lese- und schreibzugriff in diesem Verzeichnis

/usr
Das ist das grösste Verzeichnis in einem Linuxsystem. Das Meiste landet hier, Programme, Dokumentationen, Kernel source code und das X Windows System. In dieses Verzeichnis werden Sie die meisten Programme installieren.

/var
Systemprotokolldateien, Cache Daten und "program lock files" sind hier gespeichert. Dies ist das Verzeichnis für regelmässig sich ändernde Dateien.

Sie sollten jetzt eine Vorstellung darüber haben, welche Verzeichnisse, was im Dateisystem enthalten. Genauere Informationen über den Dateisystemaufbau finden sie in der hier(7) man Seite. Das nächste Kapitel wird Ihnen helfen bestimmte Dateien leicht zu finden ohne die selbst suchen zu müssen.

4.1.2 Dateien finden


Sie wissen jetzt was jedes Hauptverzeichnis enthält, aber das Hilft Ihnen noch nicht wirklich weiter. Sie können natürlich in jede Verzeichnis schauen, aber es gibt schnellere Wege. Es gibt vier wichtige Suchbefehle in Slackware.

4.1.2.1 which


Das erste ist der Befehl which(1), welcher normalerweise zur schnellen Suche eines Programms benutzt wird. Es sucht einfach in ihrem Pfad (PATH) und gibt das erste Ergebnis und den Verzeichnispfad aus. Nehmen wir diese Beispiel:

% which bash
/bin/bash


Sie sehen, dass bash im Verzeichnis /bin ist. Dies ist ein sehr eingeschränkter Befehl, da er nur in ihrem Pfad (PATH) sucht.

4.1.2.2 whereis


Der Befehl whereis(1) arbeitet ähnlich wie which, sucht aber auch nach man-Seiten und source-Dateien. Eine whereis Suche nach bash sollte dies ausgeben:

% wheris bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz


Dieser Befehl sagt uns nich nur wo man das Programm findet, sondern auch wo man die Online-Dokumentation dazu findet. Dennoch ist dieser Befehl sehr eingeschränkt. Was ist, wenn sie eine bestimmte Konfigurationsdatei suchen? Hier können sie weder which noch whereis benutzen.

4.1.2.3 find


Der Befehl find(1) erlaubt dem Benutzer eine umfangreiche Suche im Dateisystem. Der Benutzer kann einen Dateinamen mit wildcards angeben, Bereiche von Erstellungs- oder Änderungsdatum von Dateien oder andere forteschrittene Eigenschaften. Zum Beispiel um nach der standard xinitrc Datei des Systems zu suchen, könnte folgender Befehl benutzt werden:

% find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc


find braucht einige Zeit, da es den kompletten Verzeichnisbaum durchsucht. Und wenn dieser Befehl als normaler Benutzer ausgeführt wird, wird es Zugriffsberechtigungsfehler geben für Verzeichnis dem dem Administrator vorbehalten sind. Aber find hat unsere Datei gefunden und das zählt. Wenn es nur noch schneller ginge...

4.1.2.4 slocate


Der Befehl slocate(1) sucht im gesamten Dateisystem wie find das auch macht, aber es sucht in einer Datenbank im gegensatz zum tatsächlichen Dateisystem. Die Datenbank wird automatisch jeden Morgen aktualisiert, so das man immer einen frischen Datei-Index von seinem System hat. Man kann auch updatedb(1) manuell zur akutalisierung der slocate-Datenbank ausführen (vor dem manuellen Ausführen von updatedb muss mit su zum root Benutzer gewechselt werden). Hier ein Beispiel für slocate in Aktion:

% slocate xinitrc  # ohne das wir zu root wechseln müssen
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm


Wir bekommen auch schneller, mehr als das wonach wir gesucht haben. Mit diesen Befehlten sollten Sie in der Lage sein alles zu finden, was sie in Ihrem Linuxsystem suchen.

4.1.3 Das /etc/rc.d Verzeichnis


Die Startdateien für das System sind im /etc/rc.d Verzeichnis abgelegt. Slackware benutzt den BSD-Stil für seinen Start im gegensatz zu den System V init Sctipen, welche Konfigurationsänderungen schwieriger machen ohne ein Programm das auf diese Aufgabe abgestimmt ist, zu benutzen. In BSD-init Scripten, ist jedem runlevel eine eigene rc-Datei zugeordnet. In System V gibt es für jeden runlevel ein eigenes Verzeichnis, jedes mit einer Anzahl von Scripten. Das bietet eine organisierte Struktur die einfach zu Verwalten ist.

Es gibt mehrer Kategorien von Startdateien. Diese sind Systemstart, runlevels, Netzwerk initialisierung und System V kompatibilität. Traditionell wird alles andere in eine andere Kategorie einsortiert.

4.1.3.1 Systemstart


Das erste Programm das nach dem Linuxkernel gestartet wird, ist init(8). Diese Programm list die /etc/inittab(5) Datei um zu sehen wie das System laufen soll. Es startet das /etc/rc.d/rc.S Script um das System auf den Start des gewünschten runlevels vorzubereiten. Das rc.S Script aktiviert den virtuellen Speicher, hängt Ihre Dateisysteme ein, säubert verschiedene Protokollverzeichnisse, initialisiert "Plug & Play" Geräte, lädt Kernelmodule, konfiguriert PCMCIA Geräte, richtet Serielle Schnittstellen ein und startet System V init Scripte (wenn welche gefunden werden). Die meiste Arbeit erledigt rc.S, aber es gibt noch andere Scripte in /etc/rc.d die rc.S startet um seine Arbeit zu beenden.

rc.S
Dies ist das aktuelle Systemstart Script.

rc.modules
Lädt Kernel Module. Dinge wie Ihre Netzwerkkarte, PPP unterstützung und andere Dinge werden hier geladen. Wen das Script rc.netdevice finde, wird dieses ausgeführt.

rc.pcmcia
Sucht und konfiguriert PCMCIA Geräte die in Ihrem System stecken. Dies ist am nützlichsten für Laptop Benutzer die warscheinlich eine PCMCIA Netzwerkkarte oder Modem haben.

rc.serial
Konfiguriert Ihre Seriellen Schnittstellen indem es die nötigen setserial Befehle ausführt.

rc.sysvinit
Schaut nach System V init Scripten für den gewünschten runlevel und führt sie aus. Dies wir unten näher erläutert.

4.1.3.2 Runlevel Startscripte


Nachdem die Systeminitialisierung abgeschlossen ist, initialisiert init den runlevel. Ein runlevel beschreibt den Zustand in dem Ihr Gerät läuft. Hört sich merkwürdig an? Also der runlevel teilt init mit, ob es Mehrbenutzer Anmeldungen akzeptiert oder nur Einzelbenutzer, ob Netzwerkdienste gestartet werden oder nicht, ob das X Windows System gestartet wird oder agetty(8) zur Verwaltung der Benutzeranmeldungen verwendet wird. Die nachfolgend genannten Dateien definieren die verschiedenen runlevel in Slackware Linux.

rc.0
Halten das System an (runlevel 0). Standardmässig ist dieses gegen rc.6 symbolisch gelinkt.

rc.4
Mehrbenutzer Start (runlevel 4), aber mit X und KDM, GDM oder XDM als Anmeldungsmanager.

rc.6
Startet das System neu (runlevel 6)

rc.K
Startet den Einzelbenutzer Modus (runlevel 1)

rc.M
Mehrbenutzer Modus (runlevel 2 und 3), aber mit Standard Textanmeldung. Dies ist der standardmässige runleven für Slackware.

4.1.3.3 Netzwerkinitialisierung


Runlevel 2, 3 und 4 starten die Netzwerkdienste. Die nachfolgenden Dateien sind für die Netzwerkinitialisierung verantwortlich:

rc.inet1
Erstellt von netconfig. Diese Datei ist zuständig für das Konfigurieren der aktuellen Netzwerk Schnittstellen.

rc.inet2
Läuft nach rc.inet1 und startet grundlegende Netzwerkdienste.

rc.atalk
Startet AppleTalk Dienste.

rc.httpd
Startet den Apache Webserver. Wie ein paar andere rc Scripte, kann dieses auch zum stoppen, neustarten des Dienstes genutzt werden. rc.httpd nimmt die Argumente stop, start oder restart an.

rc.news
Startet den Newsserver.

4.1.3.4 System V Kompatibilität


System V init kompatibilität wurde in Slackware 7.0 eingeführt. Viele andere Linux Distributionen verwenden diesen Stil anstatt den BSD-Stil. Grundsätzlich hat jeder runlevel ein Unterverzeichnis für seine init-Scripte, wo der BSD-Stil nur ein init-Script für jeden runlevel hat.

Das rc.sysvinit Script such nach System V init-Scripten die sich in /etc/rc.d finden und führt sie aus, wenn der passende runlevel gestartet wird. Dies ist für einige Kommerzielle Programmpakete nötig, die System V init Scripte installieren.

4.1.3.5 Weitere Dateien


Die unten beschriebenen Dateien sind die anderen Systemstartdateien. Sie werden normalerweise von einem der oben genannten Hauptscripte gestartet, soddass nur ihr Inhalt bearbeitet werden muss.

rc.gpm
Startet die universellen Mausdienste. Sie erlauben Ihnen "copy & paste" in der Linuxkonsole zu nutzen. Manchmal verursacht gpm Probleme, wenn es mit X Windows verwendet wird. Wenn Sie Probleme mit der Maus unter X haben versuchen Sie die Ausführungsberechtigung weg zu nehmen und den gpm-Server anzuhalten.

rc.font
Lädt die Benutzerdefinierten Fonts für die Konsole

rc.local
Enthält jeden beliebigen Startbefehl für Ihr System. Diese Datei ist nach einer frischen Installation leer, da es für Administratoren vorbehalten ist. Dieses Script wird nach allen anderen Startscripten ausgeführt.

Um ein Script zu aktivieren müssen sie ihm nur die Ausführungsberechtigung mit dem chmod Befehl geben. Um ein Script abzuschalten nur die Ausführungsberechtigung wegnehmen. Wenn Sie mehr Informationen über chmod brauchen schauen Sie in Kapitel 9.2.

bearbeiten

4.2 Einen Kernel auswählen


Der Kernel ist der Teil des Betriebssystems, der Hardwarezugriff , Prozesskontrolle und die gesamte Systemkontrolle ermöglicht. Der Kernel hat die Unterstützung für Ihre Geräte, deshalb ist es wichtig einen für Ihr System auszuwählen.

Slackware liefert mehr als ein Dutzend vorkompilierte Kernel aus denen Sie auswählen können, jeder mit einer Standardauswahl an Treibern und zusätzlich ein paar speziellen Treibern. Sie können einen der vorkompilierten Kernel ausführen oder selbst einen Kernel aus den Sourcen kompilieren. Wie auch immer, sie müssen Sicherstellen, das Ihr Kernel die Hardware Ihres Systems unterstützt.

4.2.1 Das /kernels Verzeichnis auf der Slackware CD-ROM


Die vorkompilierten Kerne sind im /kernels Verzeichnis auf der Slackware CD-ROM oder auf FTP Servern im Hauptverzeichnis von Slackware. Die verfügbaren Kernel ändern sich gelegentlich mit erscheinen neuer Versionen, weshalb die dort abgelegte Dokumentation die zuverlässigste Quelle dazu ist. Das /kernels Verzeichnis hat für jeden verfügbaren Kernel ein Unterverzeichnis. Diese Unterverzeichniss sind nach der zugehörigen Bootdiskette benannt:

Datei Zweck
System.map Die Systemkarten Datei für diesen Kernel
bzImage Das aktuelle Kernelabbild
config Die Konfigurationsdatei für diesen Kernel


Um einen Kernel zu verwenden, kopieren Sie die System.map und config Dateien in Ihr /boot Verzeichnis und kopieren das Kernelabbild nach /boot/vmlinuz. Führen sie /sbin/lilo(8) aus um LILO für Ihren neuen Kernel zu installieren und starten Sie das System neu. Das ist alles um einen neuen Kernel zu installieren.

Kernel die mit einem .i enden sind IDE Kernel. Das heisst, sie Unterstützen keine SCSI-Geräte. Kernel die mit einem .s enden sind SCSI-Kernel. Sie enthalten die komplette IDE-Unterstützung der .i Kernel und SCSI-Unterstützung.

4.2.2 Einen Kernel aus dem Quellcode kompilieren


Die Frage: "Soll ich einen Kernel für mein System kompilieren?" wird oft von Einsteigern gestellt. Die Antwort darauf ist immer Vielleicht. Es gibt wenige Fälle in denen es nötig ist einen Kernel speziell für Ihr System zu kompilieren. Die meisten Benutzer können einen der vorkompilierten Kernel nehmen um ein voll, lauffähiges System zu haben. Sie werden einen neuen Kernel kompilieren wollen, wenn sie auf eine Version upgraden wollen, die noch nicht für Slackware angeboten wird, oder wenn sie Ihre Kernelsourcen mit Unterstützung für spezielle Geräte gepatcht haben, die nicht im offiziellen Kernel enthalten sind. Jeder mit einem SMP System wird sicherlich einen Kernel mit SMP Unterstützung kompilieren wollen. Auch finden es viele Benutzer nützlich den Kernel mit Optimierungen für Ihren Prozessor zu kompilieren.

Einen eigenen Kernel zu kompilieren ist nicht schwer. Der erste Schritt ist zu überprüfen ob Sie die Kernelquelltexte auf Ihrem System installiert haben. Stellen sie Sicher, das die Pakete der K-Abteilung installiert sind. Sie sollten ausserdem Sicherstellen, das die D-Abteilung installiert ist, besonders der C compiler, GNU make und die GNU binutils. Generelll ist es gut die komplette D-Abteilung installiert zu haben, wenn Sie planen irgendwelche Entwicklung zu machen. Sie könnnen auch den aktuellen Kernelquelltext von einem der offiziellen Serfer herunterladen: http://www.kernel.org/mirrors

4.2.2.1 Linux Kernel Version 2.4.x kompilieren


% su -
Password:
# cd /usr/src/linux


Der erste Schritt ist, die Kernelsourcen in ihren Lieferzustand zu bringen. Wir erreichen dies durch den Befehl (Anmerkung: vielleicht möchten sie die Konfiguration .config sichern, denn der Befehl wird diese ohne Warnung löschen):

# make mrproper


Jetzt können Sie den Kernel für Ihr System konfigurieren. Der aktuelle Kernel bietet drei Möglichkeiten dies zu tun. Die erste ist das original, text-basierte Frage und Antwort System. Es stellt einen Haufen Fragen und bildet daraus die Konfigurationsdatei. Das Problem mit dieser Variante ist, dass bei Fehler von vorne begonnen werden muss. Die Variante, die die meisten Leute bevorzugen ist die Menügeführte. Letztlich gibt es noch ein X-basierendes Kernelkonfigurationsprogramm. Wählen Sie was Sie möchten und verwenden sie den entsprechenden Befehl:

# make config           (text-basierende Frage&Antwort Version)
# make menuconfig       (menügeführte, text-basierende Version)
# make xconfig          (X-basierende Version, stellen Sie sicher, das Sie in X sind)


Abbildung 4-1. Kernelkonfigurationsmenü
image

Einsteiger werden sicherlich menuconfig als die einfachste Variante bevorzugen. Es sind Hilfetexte enthalten, die die verschiedenen Teile des Kernel beschreiben. Nachdem der Kernel konfiguriert ist, verlassen Sie das Konfigurationsprogramm. Es wird die nötigen Konfigurationsdateien schreiben. Jetzt können sie die Sourcen auf einen bau vorbereiten:

# make dep
# make clean


Der nächste Schritt kompiliert den Kernel. Versuchen Sie zuerst den nachfolgenden bzImage Befehl.

# make bzImage


Dies wird einige Zeit, abhängig von Ihrer CPU-Leistung, dauern. Während des Vorgangs werden sie Compiler-Meldungen sehen. Nachdem das Kernelabbild erstellt ist, werden Siel alle Teile die als Module gewählt wurden erstellen wollen.

# make modules


Jetzt können Sie den Kernel und die Module die Sie kompiliert haben installieren. Um den Kernel auf einem Slackware System zu installieren, sollten folgende Befehle ausgeführt werden:

# mv /boot/vmlinuz /boot/vmlinuz.old
# cat arch/i3386/boot/bzImage > /boot/vmlinuz
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
# make modules_install


Ausserdem sollten Sie die Datei /etc/lilo.conf ändern und einen Abschnitt zum booten des alten Kernel hinzufügen, für den Fall, dass der neue nicht läuft. Nachdem Sie das getan haben, führen sie /sbin/lilo aus um den neuen Boot-Abschnitt zu installieren. Jetzt können Sie mit Ihrem neuen Kernel neu starten.

4.2.2.2 Linux Kernel Version 2.6.x


Das Kompilieren eines 2.6er Kernel ist nur ein Wenig anders als eines 2.4er oder 2.2er Kernel, aber es ist wichtig das Sie die Unterschiede verstehen, bevor sie Scheitern. Es ist nicht mehr nötig make dep und make clean auszuführen. Auch ist die Ausgabe beim Kompilieren nicht mehr so ausführlich. Das Ergebnis ist ein Bauvorgang, der einfach zu verstehen ist, aber auch einige Tücken hat. Wenn Sie Probleme haben den Kernel zu bauen, ist es wärmstens empfohlen die Ausführlichkeit wieder einzuschalten. Das geschieht durch einfaches anhängen von V=1 an den bau. Dies erlaubt ihnen mehr Informationen zu sammeln, die einem Kernelentwickler oder einem freundlichen Geek der Ihnen hilft ermöglichen Ihr Problem zu lösen.

# make bzImage V=1


4.2.3 Kernel Module nutzen


Kernel Module sind ein anderer Name für Gerätetreiber die einem laufenden Kernel übergeben werden können. Sie erlauben die von Ihrem Kernel unterstützte Hardware zu erweitern ohne einen anderen Kernel nehmen oder einen eigenen kompilieren zu müssen.

Module können ausserdem jederzeit geladen oder enfernt werden, auch wenn das System läuft. Das macht es Administratoren einfacher, das Upgraden bestimmter Treiber zu wechseln. Ein neues Modul kann kompiliert, das Alte entfernt und das Neue geladen werden ohne das System neu starten zu müssen.

Module sind auf Ihrem System in /lib/modules/kernelversion gespeichert. Sie können beim booten durch die rc.modules Datei geladen werden. Diese Datei ist sehr gut Kommentiert und bietet Beispiele für gängige Hardware. Um eine Liste der Module zu bekommen, die gerade aktiv sind, benutzen Sie den Befehl lsmod(1):

# lsmod
Module                  Size  Used by
parport_pc              7220   0 
parport                 7844   0  [parport_pc]


Sie sehen hier, das ich nur das Modul für die Parallele Schnittstelle geladen habe. Um ein Modul zu entfernen benutzt man den rmmod(1) Befehl. Module können mit den Befehlen modprobe(1) oder insmod(1) geladen werden. modprobe ist normalerweise Sicherer, weil es jedes Modul lädt, das von dem Modul das Sie laden möchten gebraucht wird.

Viele Benutzer laden oder entfernen nie Module per Hand. Sie benutzen den kernel autoloader zum verwalten der Module. Standardmässig benutzt Slackware kmod in seinen Kernels. kmod ist eine Kerneloption die dem Kernel ermöglicht Module zu laden die benötigt werden. Für mehr Informationen über kmod und wie es konfiguriert wird, schauen Sie in /usr/src/linux/Documentation/kmod.txt. Dafür benötigen Sie das Kernel Sourcen Paket oder einen heruntergeladenen Kernel von http://kernel.org.

Mehr Informationen finden sie in den man Seiten für jeden Befehl und in der rc.modules Datei.

bearbeiten

5 Netzwerkkonfiguration


5.1 Einführung: netconfig ist dein Freund


Wenn sie gerade Slackware installiert haben, ruft das Setup Programm netconfig auf. netconfig erledigt folgende Funktionen:

netconfig wird bis zu 80% Ihrer Netzwerkkonfiguration kontrollieren, wenn Sie dies zulassen. Wir empfehlen trotzdem Ihre Konfiguration aus folgenden Gründen zu überprüfen:
  1. Sie sollten niemals einem Installationsprogramm zutrauen Ihren Computer richtig zu konfigurieren. Wenn Sie ein Installationsprogramm benutzen, sollten Sie immer dessen Konfiguration überprüfen.

  1. Wenn Sie sich noch in Slackware und Linux System Management einarbeiten, kann eine Überprüfung hilfreich sein. Sie wissen dann zumindest, wie eine Konfiguration aussehen sollte. Dies wird ihnen helfen um Probleme durch Fehlkonfiguration zu beheben.


bearbeiten

5.2 Netzwerk Hardware Konfiguration


Wenn Sie beschlossen haben, Ihren Slackware Rechner in irgendeine Art von Netzwerk zu bringen, ist das Erste das Sie brauchen eine Linux-Kompatible Netzwerkkarte. Sie werden ein wenig schauen müssen damit sichergestellt ist, das die Karte wirklich Linux-Kompatibel ist (schauen Sie dazu beim Linux Documentation Projekt und/oder der Kerneldokumentation um den Status ihrer gewählten Netzwerkkarte zu erfahren). Sie werden sehen das die meisten Netzwerkkarten von neueren Kerneln unterstützt werden. Trotzdem sollten Sie in den gängigen Linux-Hardware-Kompatibilitätslisten (wie z. B. der GNU/Linux Beginners Group Hardware Compatibility Links - http://www.eskimo.com/%7Elo/linux/hardwarelinks.html und dem Linux Documentation Project Hardware HOWTO - http://www.linux.org/docs/ldp/howto/Hardware-HOWTO/) nachsehen, bevor Sie eine Karte kaufen. Ein wenig Forschung vorher kann Tage oder sogar Wochen bei der Fehlersuche sparen, wenn die Hardware nicht Kompatibel ist.

Wenn Sie die Linux-Hardware-Kompatibilitätslisten im Internet besuchen oder in der auf Ihrem System installierten Kerneldokumentation schauen, ist es schlau sich zu merken, welches Kernel-Modul Sie für Ihre Netzwerkkarte benötigen.

5.2.1 Netzwerkmodule laden


Kernel-Module welche beim Systemstart geladen werden müssen, werden duch die rc.modules Datei in /etc/rc.d oder durch den Kernel-Auto-Modul-Lader, gestartet durch /etc/rc.d/rc.hotplug, geladen. Die vorgegebene rc.modules Datei enthält einen Netzwerk-Module Abschnitt. Wenn Sie rc.modules öffnen und nach diesem Abschnitt suchen, werden Sie feststellen, das erst nach einer ausführbaren rc.netdevice Datei in /etc/rc.d/ gesucht wird. Dieses Script wird erstellt, wenn setup während der Installation erfolgreich einen Netzwerkadapter findet.

Unter diesem "if"-Block ist eine Liste mit Netzwerkadaptern und modprobe-Zeilen, alle auskommentiert. Finden Sie Ihr Gerät und entfernen Sie die Kommentierung der passenden modprobe-Zeile und speichern die Datei. Wenn Sie jetzt rc.modules als root ausführen, sollte Ihr Netzwerktreiber (und alle anderen nicht auskommentierten Treiber) geladen werden. Beachten Sie, das manche Module (wie der ne2000 Treiber) weitere Parameter benötigen; stellen Sie sicher, das Sie dich richtige Zeile ausgewählt haben.

5.2.2 LAN (10/100/1000Base-T and Base-2) Karten


Diese Überschrift fasst alle internen PCI und ISA Netzwerkkarten zusammen. Treiber für diese Karten werden als Kernel-Module, wie im vorigen Abschnitt beschrieben, mitgeliefert. /sbin/netconfig/ sollte nach Ihren Netzwerkkarten gesucht haben und erfolgreich in Ihre rc.netdevice Datei eingetragen haben. Wenn dies nicht passiert, ist das Problem meistens der Versuch ein falsches Modul für die verwendete Netzwerkkarte zu laden (nicht selten sind in verschiedenen Generationen von Geräten desselben Herstellers verschiedene Module nötig). Wenn Sie sicher sind, dass das Modul das Sie laden wollen das richtige ist, sollte Ihr nächster Schritt ein Blick in die Dokumentation des Moduls sein, um herauszufinden ob nicht vielleicht spezielle Parameter zum laden des Moduls benötigt werden.

5.2.3 Modems


Genau wie Netzwerkkarten können Modems in verschiedenen Busunterstützungen vorkommen. Bis vor kurzem waren Modems 8 oder 16bit ISA Karten. Durch die Bemühungen von Intel und den Mainboardherstellern den ISA-Bus vollständig zu verdrängen, sind Modems immer häufiger als externe Geräte ausgeführt, die an eine Serielle Schnittstelle oder den USB-Anschluss angeschlossen werden, oder sie sind interne PCI-Modems. Wenn sie ein Modem mit Linux benutzen wollen ist es überaus wichtig nachzuforschen, besonders wenn Sie ein PCI Modem kaufen möchten. Viele, wenn nicht sogar die meisten PCI Modems die in den Regalen stehen sind sogenannte WinModems. WinModems fehlen grundlegende Bausteine auf der Karte selbst: die Funktionen dieser Hardware werden durch den Modemtreiber an die CPU und das Windows Betriebssystem ausgelagert. Das heisst, dass sie keine standardisierte Serielle Schnittstelle haben, die PPPD erwartet, wenn Sie versuchen eine Wählverbindung zu Ihrem Internetprovider aufzubauen.

Wenn Sie ganz sicher gehen wollen, dass Ihr Modem von Linux unterstützt wird, dann sollten Sie ein externes Gerät, welches an die Serielle Schnittstelle Ihres Computers angeschlossen wird, wählen. Bei diesen können Sie sicher sein, dass sie besser arbeiten und weniger Probleme bei der Installation und Wartung bereiten, jedoch brauchen sie auch eine zusätzliche Stromquelle und sie sind in der Regel teurer.

Es gibt verschiedene Internetseiten, die Hilfe und Treiber für WinModem basierende Geräte anbieten. Einige Benutzer berichten von Erfolgen bei der Installation von Treibern für verschiedene WinModems, welche Lucent, Conexant oder Rockwell Chipsätze haben. Da die benötigte Software für diese Geräte nicht mit Slackware geliefert wird und jeder Treiber anders ist, werden wir hier nicht auf die Details eingehen.

5.2.4 PCMCIA


Während der Slackware Installation wird Ihnen die Möglichkeit gegeben die pcmcia Pakete (in der "A" Serie der Pakete) zu installieren. Dieses Paket enthält Programme und Konfigurationsdateien um mit PCMCIA-Karten unter Slackware zu arbeiten. Es ist wichtig zu wissen, dass das pcmcia Paket nur generische Software installiert um mit PCMCIA-Karten unter Slackware zu arbeiten. Es installiert KEINE Treiber oder Module. Die verfügbaren Module und Treiber sind im Verzeichnis /lib/modules/'uname-r'/pcmcia/. Sie werden etwas experimentieren müssen um das Modul zu finden, damit Ihre Netzwerkkarte funktioniert.

Sie werden /etc/pcmcia/network.opts (bei Ethernet Karten) oder /etc/pcmcia/wireless.opts (wenn Sie eine WLAN-Karte haben) bearbeiten müssen. Wie die meisten Slackware Konfigurationsdateien, sind diese beiden Datein sehr gut kommentiert und es sollte leicht sein herauszufinden welche Änderungen gemacht werden müssen.

bearbeiten

5.3 TCP/IP Konfiguration


An dieser Stelle sollte Ihre Netzwerkkarte in Ihrem Computer installiert und die nötigen Kernel Module geladen sein. Es wird noch keine Kommunikation über Ihre Netzwerkkarte möglich sein, aber mit ifconfig -a sollten sie schon Informationen über ihren Netzwerkadapter erhalten.

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric 1
RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:114824506 (109.5Mb) TX bytes:9337924 (8.9Mb)
Interrupt:5 Base address:0x8400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)


Wenn Sie nur /sbin/ifconfig ohne das -a eingegeben haben, werden sie kein eth0 Gerät in der Ausgabe haben, da Ihre Netzwerkkarte noch keine gültige IP-Adresse oder Route hat.

Da es viele verschieden Möglichkeiten gibt ein Netzwerk und ein Subnetz einzurichten, können Sie doch auf zwei Typen reduziert werden: Statische und Dynamische. Statische Netzwerke sind so eingerichtet, dass jeder Adapter immer die gleiche IP-Adresse zugewiesen hat. Bei Dynamischen Netzwerken übernimmt ein einziger Server die dynamisch Vergabe der Adressen, welcher DHCP-Server genannt wird.

5.3.1 DHCP


DHCP (oder Dynamic Host Configuration Protocol) vergibt IP-Adressen wenn ein Computer bootet. Wenn der DHCP-Client bootet, sendet es eine Anfrage in das Local Area Netzwork (LAN) damit ein DHCP-Server ihm eine IP-Adresse gibt. Der DHCP-Server hat einen Pool von verfügbaren IP-Adressen. Der Server antwortet dann auf diese Anfrage mit einer IP-Adresse aus seinem Pool und einem Haltbarkeitsdatum dieser Adresse. Wenn das Haltbarkeitsdatum für die IP-Adresse abgelaufen ist, muss der Client den Server erneut ansprechen und die Verhandlung wiederholen.

Der Client wird dann die IP-Adresse vom Server annehmen und den gewünschten Adapter mit dieser konfigurieren. Es gibt noch einen anderen nützlichen Trick, wie DHCP-Clients ihre IP-Adresse bekommen. Der Client merkt sich die letzte ihm zugewiesene IP-Adress und verlangt beim Server ihm wieder diese IP-Adresse bei der nächsten Anfrage zu geben. Wenn möglich, wird der Server dies tun, aber wenn nicht, dann wird eine neue Adresse vergeben. Die Aushandlung sieht in etwa so aus:
Client: Gibt es einen DHCP-Server im LAN?
Server: Ja, gibt es. Hier bin ich.
Client: Ich brauche eine IP-Adresse.
Server: Du kannst die 192.168.10.10 für 19200 Sekunden verwenden.
Client: Danke
Client: Gibt es einen DHCP-Server im LAN?
Server: Ja, gibt es. Hier bin ich..
Client: Ich brauche eine IP-Adresse. Das letzt mal als wir miteinander sprachen, hatte ich 192.168.10.10; Kann ich diese wieder bekommen?
Server: Ja, kannst du (oder Nein, kannst du nicht: nimm stattdessen 192.168.10.12).
Client: Danke

Der DHCP-Client in Linux ist /sbin/dhcpcd. Wenn sie /etc/rc./rc.inet1 in Ihrem bevorzugten Editor laden, werden Sie sehen, dasss /sbin/dhcpcd/ etwa in der Mitte des Scriptes aufgerufen wird. Dies wird die o. g. Aushandlung verursachen. dhcpcd wird auch die Ablaufzeit der aktuellen IP-Adresse überwachen und automatisch den DHCP-Server mit einer Anfrage zum erneuern der Ablaufzeit kontaktieren, wenn es nötig ist. DHCP kann auch zugehörig Informationen verwalten, wie z. B. welcher ntp-Server benutzt werden soll, welche Routen gewählt werden, etc.

DHCP in Slackware einzurichten ist einfach. Führen Sie einfach nur netconfig aus und wählen sie DHCP wenn es Angeboten wird. Wenn Sie mehr als eine Netzwerkkarte haben und Sie nicht wollen, dass eth0 von DHCP konfiguriert wird, dann ändern Sie nur in der /etc/rc./rc.inet1.conf Datei die für Ihren Adapter relevante Variable zu "YES".

5.3.2 Feste IP


Statische IP-Adresse sind festgelegte Adressen, die sich nur ändern, wenn die manuell gemacht wird. Diese werden benutzt, wenn der Administrator keine Änderung der IP Informationen wünscht, wie z. B. bei internen Servern im Netzwerk, jedem ans Internet angebundene Server und Netzwerkrouter. Mit statischer IP-Adressierung vergeben Sie eine Adresse und belassen es dabei. Andere Rechner kennen Sie unter dieser bestimmten IP-Adresse und können Sie darüber immer erreichen.

5.3.3 /etc/rc.d/rc.inet1.conf


Wenn Sie beabsichtigen Ihrem Slackware Rechner eine feste IP-Adresse zuzuweisen, können Sie das mit Hilfe von netconfig tun oder Sie bearbeiten /etc/rc.d/rc.inet1.conf. In dieser sehen Sie:

	# Primary network interface card (eth0)
	IPADDR[0]=""
	NETMASK[0]=""
	USE_DHCP[0]=""
	DHCP_HOSTNAME[0]=""


Und dann weiter unten:

	GATEWAY=""


In diesem Fall ist es äusserst Wichtig, dass Sie die richtigen Informationen in die Anführungszeichen setzen. Diese Variablen werden durch /etc/rc.d/rc.inet1 während des Bootvorganges zum konfigurieren der Netzwerkadapter verwendet. Fügen Sie für jeden Netzwerkadapter die korrekten IP-Informationen ein oder setzen Sie nur "Yes" bei USE_DHCP. Slackware wird die Adapter in dieser Reihenfolge mit den hier gegebenen Informationen starten.

Die DEFAULT_GW Variable setzt die vorgegebene Route für Slackware. Jede Kommunikation zwischen Ihrem und anderen Computern im Internet passiert dieses Gateway, wenn dafür keine andere Route festgelegt ist. Wenn Sie DHCP verwenden, werden Sie hier nichts eingeben müssen, da der DHCP-Serverm das zu benutzende Gateway vorgibt.

5.3.4 /etc/resolv.conf


Gut, sie haben jetzt eine IP-Adresse, Sie haben ein Gateway, Sie haben vielleicht auch 10 Millionen EURO (geben Sie uns was ab), aber wofür ist das alles gut, wenn sie keine Namen zu IP-Adressen auflösen können? Niemand will 72.9.234.112 in seinem Web Browser eingeben wollen umd www.slackbook.org zu erreichen. Und wer ausser den Autoren wird sich diese IP-Adresse merken? Wir brauchen DNS, aber wie? Das ist der Zeitpunkt, an dem /etc/resolv.conf ins Spiel kommt.

Möglicherweise haben Sie schon die richtigen Angaben in Ihrer /etc/resolv.conf. Wenn Sie Ihre Netzwerkverbindung mit DHCP einrichten, kann der DHCP-Server diese Datei für Sie verwalten. (Technisch erzählt der DHCP-Server nur dhcpcd es dort einzutragen und es gehorcht.) Wenn Sie Ihre DNS-Server Liste manuell verwalten müssen, dann müssen Sie /etc/resolv.conf bearbeiten. Unten finden Sie ein Beispiel:

# cat /etc/resolv.conf
nameserver 192.168.1.254
search lizella.net


Die erste Zeile ist einfach. Die nameserver Anweisung sagt uns, welcher DNS-Server angesprochen werden soll. Notwendiger Weise dind das immer IP-Adressen. Sie können hier so viele eintragen wie sie möchten. Slackware wird einen nach dem anderen Versuchen, bis eine Antwort kommt.

Die zweite Zeile ist etwas interessanter. Diese Anweisung nennt eine Liste von Domain nahmen, die angenommen werden, wenn ein DNS-Server angesprochen wird. Die erlaubt uns einen Rechner nur duch den ersten Teil seines FQDN (Fully Qualified Domain Name) zu erreichen. Zum Beispiel, wenn "slackware.com" in Ihrem Suchpfad wäre, dann könnten sie http://store.slackware.com durch einfache Eingaben von http://store in Ihrem Browser erreichen.

# ping -c 1 store
PING store.slackware.com (69.50.233.153): 56 data bytes
64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.251/0.251/0.251 ms


5.3.5 /etc/hosts


Jetzt, wo DNS läuft, was ist, wenn wir den DNS-Server umgehen wollen oder einen DNS-Eintrag für einen Rechner machen wollen, der nicht im DNS steht? Slackware enthält die geliebte /etc/hosts Datei, welche einen lokale Liste von DNS-Namen und deren zugehörigen IP-Adressen enthält.

# cat /etc/hosts
127.0.0.1 localhost locahost.localdomain
192.168.1.101 redtail
172.14.66.32 foobar.slackware.com


Hier sehen Sie, das localhost die IP-Adresse 127.0.0.1 (immer für localhost reserviert) hat, das redtail über 192.168.1.101 erreicht werden kann und dass foobar.slackware.com die 172.14.66.32 hat.

bearbeiten

5.4 PPP


Viele Leute verbinden sich immernoch durch irgendeine Art von Wählverbindung mit dem Internet.

Die meist genutzte Methode ist PPP, manchmal wird auch SLIP benutzt. Ihrem System PPP beizubringen um mit einem entfernten Rechner zu verbinden ist einfach. Wir haben ein paar Werkzeuge mitgeliefert die Ihnen beim Einrichten helfen.

5.4.1 pppsetup


Slackware enthält ein Programm namens pppsetup um Ihr System zum benutzen einer Wählverbindung zu konfigurieren. Es sieht ähnlich aus und fühlt sich ähnlich an wie netconfig. Um das Programm auszuführen müssen Sie als root angemeldet sein. Dann geben Sie pppsetup ein um es zu starten. Sie sollten nun ein ähnliches Bild sehen:

Das Programm stellt eine Reihe von Fragen, welche Sie mit den passenden Antworten beantworten. Dinge wie Ihr Modem, die Modeminitialisierungsanweisung und die Rufnummer Ihres Providers. Manche Dinge haben eine Vorgaben, welche Sie meist übernehmen können.

Nachdem das Programm durchgelaufen ist, erstellt es ein ppp-go Programm und ein ppp-off Programm. Diese werden benutzt um die PPP-Verbindung zu starten, bzw. zu stoppen. Diese beiden Programme sind in /usr/sbin/ und brauchen root-Rechte um ausgeführt zu werden.

5.4.2 /etc/ppp


Für die meisten Anwender reicht das ausführen von pppsetup. Es wird aber Situationen geben, bei denen Sie die Konfiguration, die der PPP Daemon benutzt, verbessern wollen. Jede dieser Konfigurationsinformationen finden sich in /etc/ppp. Hier ist ein Liste, die Zeigt wofür die einzelnen Dateien sind:
ip-down Dieses Script wird vom pppd gestartet, nachdem die PPP-Verbindung getrinnt wurde.
ip-up Dieses Script wird vom pppd gestartet, wenn eine PPP-Verbindung erfolgreich aufgebaut wurde. Fügen Sie hier alle Befehle ein, die nach einem erfolgreichen Verbindungsaufbau gestartet werden sollen.
options Generelle Konfigurationsinformationen für pppd
options.demand Gernerelle Konfigurationsinformationen, wenn pppd im "on demand" Verbindungsmodues läuft.
pppscript Enthält die Befehle die zum Modem gesendet werden.
pppsetup.txt Ein Protokoll über Ihre eingaben als Sie pppsetup ausgeführt haben.

Hinweis: Die meisten dieser Datein sind erst dort, wenn pppsetup ausgeführt wurde.



bearbeiten

5.5 Wireless


Drahtlose Netzwerke sind immernoch eine relativ neue Technik in der Computerwelt, auch wenn es immer verbreiteter wird, seit die Leute mehr Laptops kaufen und überall Netzwerk haben wollen, ohne den Kabelsalat zu haben. Dieser Trend scheint nicht abzureissen. Unglücklicherweise ist drahtloses Netzwerk nicht so stark von Linux unterstützt, wie traditionelle kabelgebundene Netzwerke.

Drei grundlegende Schritte sind zur Konfiguration einer 802.11 drahtlosen Netzwerkverbidung nötig:
1. Hardwareunterstützung für die Wireless-Karte
2. Konfiguration damit die Karte sich mit einem Access-Point verbindet
3. Das Netzwerk konfigurieren

5.5.1 Hardwareunterstützung


Hardwareunterstützung für Wireless-Karten wird durch den Kernel bereitgestellt. Entweder durch ein Modul oder in den Kernel integriert. Normalerweise werden neuere Ethernetkarten durch Kernelmodule bereitgestellt, also werden sie das passende Modul herausfinden müssen und es durch /etc/rc.d/rc.modules laden lassen. netconfig könnte Ihre Wireless-Karte nicht erkennen, sodaß Sie warscheinlich Ihre Karte selbst auswählen müssen. Schauen Sie am besten unter http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ zu mehr Informationen über Kerneltreiber für verschiedene Wireless-Karten.

5.5.2 Die Wireless-Einstellungen konfigurieren


Die meiste Arbeit hierzu wird mit iwconfig erledigt, also lesen Sie wie immer die man-Seite zu iwconfig, wenn Sie mehr Informationen benötigen.

Als erstes werden Sie Ihren Wireless-Access-Point konfigurieren. Da Wireless-Access-Points in ihrer Terminologie und Konfiguration immer ein bischen variieren, müssen Sie ein bischen an Ihre Hardware anpassen. Normalerweise brauchen Sie mindestens folgende Informationen:
* Die Domänen-ID oder den Namen Ihres Netzwerkes (ESSID bei iwconfig genannt?)
* Den Kanal den Ihre Access Point benutzt
* Die Verschlüsselungseinstellungen, inkl. der Schlüssel die bentutz werden (bevorzugt im hexadecimalen Format)
Warnung: EIN HINWEIS ZU WEP. WEP ist geknackt, aber es ist besser als Nichts. Wenn Sie mehr Sicherheit für Ihr drahtloses Netzwerk benötigen, sollten Sie sich VPNs oder IPSec genauer anschauen, welche beide den Rahmen dieser Dokumentation sprengen würden. Sie können Ihren Access-Point auch so konfigurieren, dass er seine Domänen-ID/ESSID nicht verbreitet. Ein gründliche Besprechung von drahtloser Sicherheit würde auch dieses Kapitel sprengen, aber eine schnelle suche mit Google wird mehr zu Tage bringen, als Sie je wissen wollten.

Wenn Sie oben genannte Informationen haben und modprobe zum laden des benötigten Kernel-Treibers gestartet haben, können Sie rc.wireless.conf bearbeiten und Ihre Einstellungen eintragen. Die rc.wireless.conf Datei ist ein bischen unsauber. Der schnellste Weg zum Erfolg ist die "generic section" mit Ihrer ESSID, Ihrem Schlüssel (KEY) und dem Kanal (CHANNEL), wenn Ihre Karte einen benötigt, zu füllen. (Versuchen Sie es erst ohne Angaben eines Kanals, wenn es funktioniert, Gut. Wenn nicht, dann fügen Sie den Kanal passend zu Ihrem Access-Point. Wenn Sie mutig sind, können Sie auch die Datei verändern, sodass nur noch die nötigen Variablen gesetzt sind. Die variablen Namen in rc.wireless.conf entsprechen den iwconfig-Parametern, und werden von rc.wireless gelesen und mit den zugehörigen iwconfig Befehlen angewendet.

Wenn Sie Ihren Schlüssel im hexadecimalen Format haben, ist das ideal, denn dann können Sie Sicher sein, dass ihr Access-Point und iwconfig den Schlüssel akzeptieren. Wenn Sie nur eine Zeichenkette haben, können Sie nicht Sicher sein, wie Ihr Access-Point diesen in einen hexadecimalen Schlüssel übersetzt. Dann ist etwas Ratespiel nötig oder sie müssen Ihren Access-Point-Schlüssel im hexadecimalen Format bekommen.

Wenn Sie rc.wireless.conf bearbeitet haben, führen Sie rc.wireless als root aus. Danach rc.inet1 auch als root ausführen. Sie können Ihre drahtlose Netzwerkverbindung mit den Standardprogrammen wie ping und iwconfig testen. Wenn Sie auch einen kabelgebundenen Adapter haben, sollten Sie diesen vielleicht mit ifconfig abschalten, solange Sie Ihre drahtlose Netzwerkverbindung testen. So umgehen Sie Sicher, dass sie sich nicht gegenseitig stören. Vielleicht sollten Sie Ihre Änderungen auch durch einen Neustart testen.

Jetzt wo Sie wissen wie /etc/rc.d/rc.wireless für Ihr Netzwerk bearbeitet wird, schauen wir uns iwconfig genauer an und sehen wie das alles funktioniert. Das wird Ihnen schnelle, einfache Wege zeigen, wie sie Ihre drahtlose Netzwerkverbindung anders Einstellen, wenn Sie sich in einem Internet Cafe, Bar oder jeder andern Örtlichkeit mit einem HotSpot befinden und Online gehen wollen.

Der erste Schritt sagt Ihrem Netzwerkeadapter, welche Netz er benutzen soll. Stellen Sie sicher, das sie "eth0" durch Ihren richtigen Netzwerkadapter ersetzen und dass Sie "mynetzwork" auf die ESSID einstellen, die Sie benutzen wollen. Ja, wir wissen das Sie auch schon wissen, das der nächste Schritt die Angabe des Schlüssels (wenn überhaupt nötig) für Ihr drahtloses Netzwerk ist. Zuletzt geben Sie (wenn nötig) den Kanal an.

# iwconfig eth0 essid "mynetwork"
# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
# iwconfig eth0 channel n


Das sollte alles sein.

5.5.3 Das Netzwerk konfigurieren


Das wird genause erledigt, wie bei Kabelgebundenen Netzwerken. Schauen Sie einfach in den vorangegangenen Abschnitten dieses Kapitels.

bearbeiten

5.6 Network File Systems


An diesem Punkt sollten Sie ein funktionierende TCP/IP Verbindung mit Ihrem Netzwerk haben. Es sollte möglich sein, andere Rechner in Ihrem internen Netzwerk anzupingen und sie sollten auch Rechner im Internet pingen können, wenn Sie das richtige Gateway angegeben haben. Wie wir wissenn, ist das Wichtigste um einen Computer in ein Netz zu bringen, Zugangsinformationen. Obwohl manche Leute nur aus Spass ein Netzwerk aufbauen, werden die Meisten wohl gemeinsam Drucker und Datenspeicher benutzen wollen. Oder Dokumente aus dem Internet laden oder Spiele online spielen. TCP/IP installiert und funktionsbereit zu haben bietet aber nur grundlegende Funktionen. Um Datein miteinander zu teilen, müssen diese hin und her transportiert werden. Entweder mit FTP oder SCP. Auch können wir kein Dateien von unseren Slackware Computern mit Hilfe der Netzwerkumgebung von Windows durchsuchen. Ausserdem wollen wir Dateien auch von anderen Unix-Maschinen erreichen.

Idealerweise möchten wir ein Netzwerk Datei System verwenden, das es uns erlaubt transparten auf unsere Dateien auf anderen Computer zuzugreifen. Unsere verwendeten Programme sollen nicht wissen müssen, wie eine Datei auf deinem anderen Rechner gespeichert wird; es soll nur wissen, das es sie gibt und wo es sie bekommt. Der Rest ist Aufgabe des Betriebssystems, welches den Zugriff auf die verfügbaren Dateisysteme und Netzwerk Dateisysteme regeln soll. Die beiden meist benutzten Netzwerk Dateisysteme sind SMB (wie in Samba implementiert) und NFS.

5.6.1 SMB/Samba/CIFS


SMB (für Server Message Block) ist ein Abkömmling des älteren NetBIOS Protokolls, das ursprünglich von IBM in deren LAN-Manger Produkten benutzt wurde. Microsoft interessierte sich stets für NetBIOS und dessen Abkömmlinge (NetBEUI, SMB und CIFS).

Das Samba Projekt existiert seit 1991, ursprünglich Entwickelt um einen IBM PC der NetBIOS verwendet mit Unix-Servern zu verbinden. Heute ist SMB das bevorzugte Protokoll um Dateien und Druckerdienste für praktisch die gesamte zivilisierte Welt bereitzustellen, da es von Windows unterstützt wird.

Die Konfiguration von Samba finden Sie in /etc/samba/smb.conf; eine der am besten Kommentierten und Dokumentierten Konfigurationsdateien die Sie finden werden. Beispielfreigaben sind schon für Sie eingerichtet, die Sie nur an Ihre Bedürfnisse anpassen müssen. Wenn Sie noch mehr Kontrolle benötigen sind die man-Seiten für die smb.conf unersetzlich. Da Samba, wie oben geschrieben, so gut Dokumentiert ist, werden wir hier kein Handbuch dazu schreiben. Trotzdem werden wir hier einen Grundlagenüberblick liefern.

smb.conf ist in mehrere Sektionen eingeteilt: eine Sektion pro Freigabe und eine globale Sektion um Einstellungen zu machen, die immer Gültig sind. Manche Optionen sind nur in der globalen Sektion gültig, andere nur ausserhalb dieser globalen Sektion. Beachten Sie das die globalen Optionen immer von anderen Sektionen "überschrieben" werden können. Schauen Sie in den man-Seiten, wenn Sie mehr Informationen benötigen.

Sie werden warscheinlich die smb.conf Datei bearbeiten wollen, um sie an die Netzwerkeinstellungen in Ihrem LAN anzupassen. Ich empfehle die folgenden Punkte zu bearbeiten:

[global]
# workgroup = NT-Domain-Name or Workgroup-Name, z. B.: LINUX2
workgroup = MYGROUP


Ändern sie den workgroup Namen wie er in Ihrem Netzwerk verwendet wird.

# server string is the equivalent of the NT Description field
server string = Samba Server


Das ist der Name Ihres Slackware Computers, wie er in der Netzwerkumgebung angezeigt wird.

# Security mode. Most people will want user level security. See
# security_level.txt for details. NOTE: To get the behaviour of
# Samba-1.9.18, you’ll need to use "security = share".
security = user


Meist werden Sie auch eine Verschlüssellung für Ihr Slackware System wünschen.

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
# documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes


Wenn verschlüsselte Passwörter deaktiviert ist, werden Sie Samba nicht mit NT4.0, Windows 2000, Windows XP und Windows 2003 nutzen können. Frühere Windows Versionen benötigen keine Verschlüsselung um Dateien zu teilen.

SMB ist ein Authentifizierungsprotokoll, d. h. sie müssen einen gültigen Benutzernamen und Passwort übergeben um den Dienst nutzen zu können. Welche Benutzernamen und Passwörter erlaubt sind, teilen wir Samba mit Hilfe des smbpasswd Befehls mit. smbpasswd braucht einige gängige Parameter um wissen, ob es tradditionelle Benutzer hinzufügen oder Gerätenutzer hinzufügen soll. (SMB benötigt die Angabe des NETBIOS Namens eines Computers für Maschinenbenutzer, um die Rechner einzugrenzen von denen man sich anmelden kann.)

Adding a user to the /etc/samba/private/smbpasswd file.
# smbpasswd -a user
Adding a machine name to the /etc/samba/private/smbpasswd file.
# smbpasswd -a -m machine


Sie sollten wissen, dass ein angegebener Benutzername oder Gerätename in der /etc/passwd Datei vorhanden sein muss. Sie können dies mit dem adduser Befehl erreichen. Beachten Sie, dass Sie beim Ausführen von adduser beim Anlegen eines Gerätenamens diesem ein Dollarzeichen ($) anhängen. Dies tun Sie jedoch nicht bei der Nutzung von smbpasswd, da dieses schon das Dollarzeichen selbständig anhängt. Sie werden einen Fehler ausgegeben bekommen, wenn sie Gerätenamen nicht auf diese Art angeben.

# adduser machine$


5.6.2 Network File System (NFS)


NFS (oder auch Network File System) wurd ursprünglich von Sun für ihr Solaris Unix entwickelt. Verglichen mit SMB ist es wesentlich einfacher ans laufen zu bekommen, allerdings ist es auch nicht so Sicher. Das grösste Sicherheitsproblem dabei ist, dass es einfach ist die Benutzer- und seine Gruppen-ID einem anderen Rechner vorzutäuschen. NFS ist ein Protokoll ohne authentifizierung. Zukünftige Versionen von NFS sollen diese fortgeschrittene Sicherheit bekommen, aber bis jetzt gibt es keine Einigkeit darüber.

Die NFS Konfiguration wird über die /etc/exports Datei verwaltet. Wenn sie die vorgegebene /etc/exports Datei in einem Editor laden, werden Sie eine leere Datei mit einem zwei Zeilen langen Kommentar finden. Für jedes Verzeichnis das wir freigeben wollen, benötigen wir eine Zeile, die eine Auflistung aller Computer enthält, die darauf zugreifen dürfen. Zum Beispiel, wenn Sie das Verzeichnis /home/foo für den Rechner "Bar§ freigeben wollen, würden wir folgen Zeile einfügen:

/home/foo Bar(rw)


Nachfolgen finden Sie ein Beispiel aus den man-Seiten der exports Datei:

# sample /etc/exports file
/               master(rw) trusty(rw,no_root_squash)
/projects       proj*.local.domain(rw)
/usr            *.local.domain(ro) @trusted(rw)
/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
/pub            (ro,insecure,all_squash)


Sie Sie sehen, gibt es einige Optionen, wobei die meisten durch dieses Beispiel klar sein sollten.

NFS geht davon aus, dass ein angegebener Benutzer eines Rechners auf allen Rechnern im Netzwerk die gleiche Benutzer-ID hat. Wenn versucht wird auf eine NFS Freigabe zu schreiben oder zu lesen, wird eine UID (Benutzer-ID) als teil des Zugriffs mitgegeben. Diese UID wird genauso behandelt als wäre es ein Zugriff vom lokalen Rechner. Wenn also jemand eine vorhandene UID beim Zugriff auf die Resourcen eines entfernten Rechners angeben kann, können und werden schlimme Dinge passieren. Ein kleines Hinderniss ist die Einbindung jedes Verzeichnisses mit der root_squash Option. Dieses Bewirkt, dass die UID für jeden Benutzer, der sich als root ausgibt eine andere UID bekommt und root-Zugriff auf die freigegebenen Verzeichniss oder Dateien verhindert wird. root_squash ist wohl normalerweise aus Sicherheitsgründen als Vorgabe aktiviert, aber die Autoren empfehlen weiterhin die in der /etc/exports Datei anzugeben.

Sie können ein Verzeichnis auch gleich von der Kommandozeile aus mit dem Befehl exportfs freigeben:

# exportfs -o rw,no_root_squash Bar:/home/foo


Diese Zeile gibt /home/foo für den Computer "Bar" mit lese-/schreibzugriff frei. Ausserdem ist root_squash ausgeschaltet, d. h. das jeder Benutzer von Bar mit einer UID von "0" (die UID von root) die gleichen Rechte hat wie root auf dem Server. Die Syntax sieht merkwürdig aus, denn normalerweise ist eine Datei gemeint, wenn Sie ein Verzeichnis in der Form computer:/Verzeichnis/Datei angeben.

Sie finden mehr Informationen in den man-Seiten der exports Datei.

bearbeiten

6 X Konfiguration



Seit Slackware 10.0 wird das X Window System von Xorg verwendet. X ist für die grafische Benutzeroberfläche verantwortlich. Es ist unabhängig vom Betriebssystem, anders als bei Windows oder MacOS.

Das X Window System ist durch viele Programme Organisiert, die im Benutzerkontext laufen. Die beiden Hauptkomponenten sind der Server und der Fenstermanager (window manager; wm) Der Server verwaltet die Grundlegenden Funktionen um mit Ihrer Videohardware zu interagieren, da es Systemabhängig ist. Der Windowmanager sitzt über dem Server und stellt die Benutzeroberfläche zur verfügung. Der Vorteil hierbei ist, dass Sie nur durch wechseln des Windowmanagers mehrere Benutzeroberflächen haben können.

X zu konfigurieren kann eine sehr umfangreiche Aufgabe sein. Der Grund dafür ist die grosse Anzahl an Grafikkarten die es für die PC-Architektur gibt, wobei die meisten auch unterschiedliche Programmierschnittstellen haben. Glücklicherweise unterstützen die meisten Karten heute wenigstens einen Grundlegenden Video-Standard, bekannt als VESA. Und wenn Ihre Karte diesen beherrscht, dann sollten sie in der Lage sein, X sofort durch den startx Befehl zu starten.

Wenn das mit Ihrer Karte nicht geht oder wenn Sie die Möglichkeiten Ihrer Grafikkarte, wie z. B. Hardware 3D beschleunigung, nutzen wollen müssen Sie X neu Konfigurieren.

Um X zu Konfigurieren, muss eine /etc/X11/xorg.conf erstellt werden. Diese Datei enthalt viele Details über Ihre Grafikkarte, Maus und Monitor. Es ist eine sehr komplexe Konfigurationsdatei, aber Glücklicherweise gibt es ein paar Programme die Ihnen dabei helfen diese zu erstellen. Ein paar werden hier besprochen.

6.1 xorgconfig



Das ist eine einfache Menügesteuerte Oberfläche die dem Slackware-installer sehr ähnlich sieht. Es sagt dem X-Server einfach, dass er nach der Karte schauen soll und dann eine Konfigurationsdatei erstellen soll, die am besten zu den Informationen passt, die er bekommen konnte. Die erstellte /etc/X11/xorg.conf sollte ein guter Ausgangspunkt für die meisten Systeme sein (und ohne weitere Änderungen funktionieren).

Dies ist eine textbasierendes X Konfigurationsprogramm, welches für fortgeschrittene Systemadministratoren gemacht wurde. Hier jetzt ein Beispieldurchlauf bei der Nutzung von xorgconfig. Als erstes starten Sie das Programm:

 # xorgconfig 


Dies wird einen Bildschirm, voll mit Informationen über xorgconfig bringen. Um weiter zu machen drücken Sie ENTER. xorgconfig wird Sie bitten dass Sie überprüfen, dass Ihr PATH richtig gesetzt ist. Das sollte es auch sein, also weiter mit ENTER.

Bild 6-1. xorgconfig Mouse Configuration
image

Wählen Sie Ihre Maus aus dem gezeigten Menü. Wenn Sie Ihre Serielle Maus hier nicht finden, wählen Sie das Microsoft protocol -- es ist das gängiste und wir warscheinlich funktionieren. Als nächstes fragt xorgconfig ob ChordMiddle und Emulat3Buttons verwendet werden soll. Diese Optionen sind am Schirm beschrieben. Wählen Sie sein, wenn die mittlere Maustaste in X nicht funktioniert oder wenn Ihre Maus nur zwei Tasten hat (Emulate3Buttons simuliert eine mittlere Maustaste für Sie, wenn Sie beide Tasten gleichzeitig drücken). Dann geben Sie den Namen für Ihre Maus an. Die Vorgabe /dev/mouse sollte funktionieren, dann die Verknüpung bei der Slackware installation angelegt wurde. Wenn Sie GPM (den Linux Mausserver) im "repeater" Modus verwenden, können Sie hier /dev/gpmdata verwenden, damit X die Informationen Ihrer Maus von gpm bekommt. In manchen Fällen (besonders bei Bus Mäusen) funktioniert dies besser, aber die meisten Benutzer sollten dies nicht tun.

xorgconfig wird sie nun nach speziellen Tastenbelegungen fragen. Wenn Sie dies benötigen, Antworten Sie hier "y". Die meisten Benutzer werden hier "n" Antworten -- benutzen Sie auch "n", wenn Sie unsicher sind.

Bild 6-2. xorgconfig Horizontal Sync
image

Im nächsten Abschnitt geben Sie den Sync-Bereich für Ihren Monitor ein. Um die Konfiguration des Monitors zu starten, drücken Sie ENTER. Sie werden eine Liste von Monitortypen sehen -- wählen Sie eine von diesen. Beachten Sie nicht die Daten Ihres Monitors zu überschreiten! Dies könnte Ihre Hardware beschädigen!!

Bild 6-3. xorgconfig Vertical Sync
image

Geben Sie den vertikalen Sync-Bereich Ihres Monitors an (sie sollten diese im Datenblatt Ihres Monitors finden). xorgconfig wird sie dann nach einer Angabe Ihrer Monitoridentifikation in der xorg.conf Datei fragen. Geben Sie in diesen drei Zeilen an, was Sie möchten (es kann auch Nichts sein).

Bild 6-4. xorgconfig Video Card
image

Jetzt haben Sie die Möglichkeit in die Datenbank der bekannten Grafikkarten Typen zu schauen. Um dies zu tun Antworten Sie "y" und wählen Sie eine Karte aus der gezeigten Liste. Wenn Sie Ihre Karte hierbei nicht finden, sollten Sie eine wählen, die den gleichen Chip verwendet. Dies sollte funktionieren.

Dann sagen Sie xorgconfig wieviel Grafikspeicher ihre Grafikkarte hat. xorgconfig fragt Sie auch nach einer Beschreibung Ihrer Grafikkarte. Wenn Sie wollen, könne Sie diese in die drei Zeilen eintragen.

Als nächstes werden Sie mach der Auflösung gefragt, die Sie benutzen wollen. Wieder sollten Sie mit den Vorgaben auskommen. Später könne sie die /etc/X11/xorg.conf Datei bearbeiten und Modi bearbeiten, damit 1024x768 (oder was immer Sie wollen) Vorgabe wird.

An diesem Punkt wird xorgconfig Fragen, ob Sie die aktuelle Konfiguration speichern wollen. Antworten Sie mit yes und die X-Konfigurationsdatei wird gespeichert und die Einrichtung vervollständigen. Jetzt können Sie X mit dem startx Befehl starten.

bearbeiten

6.2 xorgsetup



Der zweite Weg X zu Konfigurieren ist den Befehl xorgsetup zu benutzen, eine automatisches Konfigurationsprogramm, das mit Slackware geliefert wird.

Um es zu starten, melden Sie sich als root an und geben folgendes ein:
#xorgsetup

Wenn Sie schon eine /etc/X11/xorg.conf Datei haben (weil Sie X schon konfiguriert haben), werden Sie gefragt, ob die vorhandene Konfiguration gesichert werden soll bevor weitergemacht wird. Die vorhandene Datei wird dann zu /etc/X11/xorg.conf.backup umbenannt.

bearbeiten

6.3 xinitrc



xinit(1) ist das Programm, das X startet; es wird von startx(1) aufgerufen, wie Sie vielleicht bemerkt haben (was Sie aber nicht müssen). In seiner Konfigurationsdatei wird festgehalten, welche Programme (inklusive und vor allem dem Windowmanager) gestartet werden, wenn X startet. xinit sucht erst in Ihrem home-Verzeichnis nach einer .xinitrc Datei. Wenn diese Datei gefunden wird, wird sie ausgeführt, sonst wird /etc/X11R6/lib/xinit/xinitrc (die systemweite Vorgabe) verwendet. Hier eine einfach xinitrc Datei:

 #!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
xrdb -merge $sysresources

fi

if [ -f $sysmodmap ]; then
xmodmap $sysmodmap

fi

if [ -f $userresources ]; then
xrdb -merge $userresources

fi

if [ -f $usermodmap ]; then
xmodmap $usermodmap

fi

# start some nice programs

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login


Jeder dieser "if"-Abschnitte werden gebraucht um andere Konfigurationseinstellungen aus anderen Dateine zu laden. Der interessante Teil der Datei kommt am Ende, wo verschieden Programme gestartet werden. Diese X-Sitzung beginnt mit twm(1) als Windowmanager, eine Uhr und drei Terminals. Beachten Sie auch das exec vor dem letzten xterm. Es ersetzt die aktuell laufenden Shell (die, die das xinitrc-Script ausführt) mit diesem xterm(1) Befehl. Wenn der Benutzer dieses xterm beendet, wird die X-Sitzung beendet.

Um Ihren X Startvorgang anszupassen, kopieren sie die Vorgabe /var/X11R6/lib/xinit/xinitrc nach ~/.xinitrc und bearbeiten Sie diese durch ersetzen der Programmzeilen mit allem was sie möchten. Das Ende meiner ist einfach:

# Start the window manager:
exec startkde


Beachten Sie, das es mehrere xinitrc.* Dateien in /var/X11R6/lib/xinit gibt, welche den verschiedenen Windowmanagern und GUIs zugeordnet sind. Sie können auch eine von diesen verwenden, wenn Sie möchten.

bearbeiten

6.4 xwmconfig



Lange Jahre wurde Unix fast ausschliesslich als Server Betriebssystem genutzt, mit der Ausnahme von professionellen hochleistungs Workstations. Nur technisch Versierte waren in der Lage Unixähnliche Betriebsystem zu verwenden, was sich auch in der Benutzerschnittstelle wiederspiegelte. GUIs waren einfache Container, gemacht um nur wenige benötigte grafische Programme, wie CAD Programme und Bildrenderer auszuführen. Die meiste Datei- und Systempflege wurde auf der Kommandozeile erledigt. Wenige Hersteller (Sun Microsystems, Silicon Graphics, etc.) verkauften Workstations mit dem Versuch ein einheitliches "look and feel" zu liefern, aber die vielen verschiedenen, von Entwicklern benutzten GUI Toolkits verhinderten einen einheitlichen Desktop. Die Bildlaufleiste konnte in zwei verschiedenen Programmen auch anders aussehen. Menüs konnten an unterschiedlicher Stelle erscheinen. Programme konnten andersartige Knöpfe und Auswahlfelder enthalten. Farben unterschieden sich sehr stark und waren meistens in jedem Toolkit einprogrammiert. So lange die Benutzer hauptsächlich technische Fachleute waren, war das auch nicht Wichtig.

Mit dem ausbreiten freier Unixähnlichen Betriebssysteme und der wachsenden Anzahl von grafischen Programmen, wurde X von mehr und mehr Anwendern eingesetzt. Die meisten Benutzer waren natürlich der Konsistenz Microsofts Windows oder Apples MacOS verwöhnt. Das Fehlen einer solchen Konsistenz in X-basierenden Anwendungen wurde zu einer Hürde für weitere Akzeptanz. Als Antwort darauf entstanden zwei Open Source Projekte: Das K Desktop Environment oder KDE und das GNU Network Object Model Environment, bekannt als GNOME. Beide haben eine grosse Auswahl von Anwendungen, von Taskleisten über Dateimanagern bis hin zu Spielen und Büroanwendungen, die alle mit dem gleichen GUI Toolkit geschrieben und integriert wurden, um einen einheitlichen, konsistenten Desktop zu ermöglichen.

Die unterschiede zwischen KDE und GNOME sind relativ geringe. Sie sehen anders aus, weil sie unterschiedliche GUI Toolkits verwenden. KDE basiert auf der Qt Bibliothek von Troll Tech AS, währen GNOME GTK verwendet, ein Toolkit, welches ursprünglich für das "GNU Image Manipulation Programm" (oder kurz the GIMP) entwickelt wurde. Als unterschiedliche Projekte haben KDE und GNOME auch ihre eigenen Designer und Programmierer, mit unterschiedlichen Entwicklungsstilen und Philosophien. Das Ergebnis ist in jedem Fall das Gleiche, eine konsistente, integrierte Desktopumgebung und Anwendungssammlung. Die Funktionalität, benutzbarkeit und einfachheit von KDE und GNOME kann es mit jedem anderen Betriebssystem aufnehmen.

Das Beste daran ist, diese Desktops sind Frei. Das heisst, sie können einen oder sogar beide (ja, sogar gleichzeitig) benutzen. Die Wahl liegt bei Ihnen.

Zusätzlich zu GNOME und KDE enthält Slackware eine grosse Auswahl von Windowmanagern. Manche sind gemacht um andere Betriebssysteme zu immitieren, andere um sie den eigenen Bedürfnissen und Vorlieben anzupassen und wieder andere auf geschwindigkeit Optimiert. Es gib eine grosse Auswahl, wovon Sie soviele installieren und ausprobieren können, um selbst zu entscheiden, welchen Sie am meisten mögen.

Um die Desktopauswahl einfach zu machen, enthält Slackware ein Programm mit dem Namen xwmconfig, welches zum auswählen eines Desktops oder Windowmanagers verwendet wird. Ausgeführt wird es mit:

# xwmconfig 


Bild 6-5. Desktop Configuration mit xorgconfig
image

Ihnen wird eine Liste aller installierten Desktops und Windowmanagern paräsentiert. Wählen Sie einfachen aus der Liste, welchen Sie verwenden möchten. Jeder Benutzer auf Ihrem System wird diese Programm ausführen müssen, da jeder Benutzer einen anderen Desktop verwenden kann und nicht jeder wird den verwenden wollen, den Sie bei der Installation ausgewählt haben.

Dann starten Sie X und fertig.

bearbeiten

6.5 xdm



Als Linux immer brauchbarer als Desktop Betriebssystem wurde, fanden es viele Benutzer bequemer, gleich in eine grafische Umgebung zu booten. Sie müssen Slackware konfigurieren um gleich X zu starten und einen grafischen Anmeldungsmanager bestimmen. Slackware wird mit drei verschiedenen grafischen Anmeldungsprogrammen geliefert, xdm(1), kdm und gdm(1).

xdm ist der vom X.org System mitgelieferte Anmeldungsmanager. Er ist Ausreichend, aber nicht so Funktionsreich wie die Alternativen. kdm ist der grafische Anmeldungsmanager der mit KDE geliefert wird. Und gdm ist der Anmeldungsmanager der mit GNOME installiert wird. Jeder erlaubt es Ihnen sich als Benutzer anzumelden und Ihren Desktop auszuwählen.

Unglücklicherweise bringt Slackware kein nettes Programm wie xwmconfig mit, welches das Auswählen des Anmeldungsmanagers erlaubt, sodass Sie etwas bearbeiten müssen um Ihren Wunsch auszuwählen. Aber das erste, was wir besprechen ist, wie wir gleich in eine grafische Umgebung booten.

Um X beim booten zu starten, müssen Sie in runlevel 4 booten. Runlevel sind nur die Art des Aufrufs von init(8) um mitzuteilen was zu tun ist, wenn es das Betriebssystem startet. Wir erreichen dies durch bearbeiten der Konfiguration von init, die /etc/inittab Datei.

# These are the default runlevels in Slackware:
# 0 = halt
# 1 = single user mode
# 2 = unused (but configured the same as runlevel 3)
# 3 = multiuser mode (default Slackware runlevel)
# 4 = X11 with KDM/GDM/XDM (session managers)
# 5 = unused (but configured the same as runlevel 3)
# 6 = reboot
# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:


Um Slackware in eine grafische Umgebung booten zu lassen, ändern wir nur die 3 in eine 4.

# Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:


Jetzt wird Slackware im runlevel 4 starten und /etc/rc.d/rc.4 ausführen. Diese Datei startet X und ruft den gewählten Windowmanager auf. Wie wählen wir jetzt den Anmeldungsmanager? Es gibt einige Wege, welche ich erklären werde, nachdem wir einen Blick in die rc.4 Datei geworfen haben.

# Try to use GNOME’s gdm session manager:
if [ -x /usr/bin/gdm ]; then
exec /usr/bin/gdm -nodaemon
fi
# Not there? OK, try to use KDE’s kdm session manager:
if [ -x /opt/kde/bin/kdm ]; then
exec /opt/kde/bin/kdm -nodaemon
fi
# If all you have is XDM, I guess it will have to do:
if [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon
fi 


Wie Sie hier erkennen können überprüft rc.4 zuerst ob gdm ausführbar ist und führt es aus. Das Zweite in der Liste ist kdm und zuletzt xdm. Eine Möglichkeit den Loginmanager auszuwählen ist einfach die, die sie nicht möchten mit removepkg zu deinstallieren. Mehr zu removepkg finden Sie in Kapitel 18.

Alternativ können Sie die ausführungsrechte für diese Dateien entfernen. chmod wird in Kapitel 9 besprochen.

# chmod -x /usr/bin/gdm 


Zuletzt haben Sie die Möglichkeit, einfach die Loginmanager auszukommentieren, die Sie nicht benutzen wollen.

# Try to use GNOME’s gdm session manager:
# if [ -x /usr/bin/gdm ]; then
# exec /usr/bin/gdm -nodaemon
# fi
# Not there? OK, try to use KDE’s kdm session manager:
if [ -x /opt/kde/bin/kdm ]; then
exec /opt/kde/bin/kdm -nodaemon
fi
# If all you have is XDM, I guess it will have to do:
if [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon
fi 


Alle Zeilen die mit der Raute (#) beginnen werden als Kommentare interpretiert und die Shell ignoriert sie. Also auch, wenn gdm installiert und ausführbar ist, wird die Shell (in diesem Fall bash) es nicht überprüfen.

bearbeiten

7 Booten



Der Bootvorgang Ihres Linux Systems kann manchmal einfach, manchmal aber auch kompliziert sein. Viele Benutzer installieren Slackware auf Ihrem Computer und das war's. Sie schalten ihn nur ein und benutzen ihn. Manchmal kann einfaches booten aber auch sehr unangenehme Arbeit sein. Für die meisten Benutzer wird LILO am besten sein. Slackware enthält LILO und Loadlin um Slackware Linux zu booten. LILO funktioniert von einer Festplattenpartition, vom master boot record (MBR) oder einer Diskette, was es zu einem sehr universellen Programm macht. Loadlin funktioniert von der DOS Eingabeaufforderung, indem es DOS beendet und Linux startet.

Ein anderes bekanntest Programm um Linux zu booten ist GRUB. GRUB wird bei Slackware nicht mitgeliefert und auch nicht offiziell Unterstützt. Slackware hält sich an den "Test und Gut" Standard bei der Auswahl, was die Distribution enthält. Während GRUB gut funktioniert und einige Funktionen bietet, die LILO nicht hat, behandelt LILO jedoch die wichtigsten Aufgaben eines Bootladers und hat sich als zuverlässig bewährt. Da GRUB jünger ist, hat es noch nicht diesen Stand erreicht. Da es nicht in Slackware enthalten ist, wird es hier auch nicht weiter besprochen. Wenn Sie GRUB verwenden wollen (z. B. weil es mit einer anderen Linux Distribution, die sie im dual-boot bentutzen wollen, geliefert wurde) lesen Sie in der GRUB Dokumentation.

Dieses Kapitel beschäftigt sich mit dem Benutzen von LILO und Loadlin, den beiden Bootladern, die mit Slackware kommen. Auch werden ein paar typische dual-boot Szenarios besprochen und wie Sie diese einrichten.

7.1 LILO



Der Linux Loader, oder LILO, ist der bekannteste, verwendete Bootlader von Linux Systemen. Es lässt sich gut konfigurieren und kann auch einfach benutzt werden, andere Betriebssystem zu laden.

Slackware Linux bietet ein menügeführtes Konfigurationsprogramm, genannt liloconfig. Dieses Programm wird zum ersten Mal während der Installation ausgeführt, aber Sie können es jederzeit Später durch eingeben von liloconf starten.

LILO liest seine Einstellungen aus der Datei /etc/lilo.conf. Sie wird nicht jedesmal beim Systemstart geladen, sondern nur wenn Sie LILO installieren. LILO muss jedesmal neu in den Bootsektor installiert werden, wenn Sie die Konfiguration ändern. Viele LILO Fehler entstehen dadurch, das Änderungen in der Datei lilo.conf# gemacht werden, aber ein Fehler beim installieren von lilo auftritt. liloconfig hilft Ihnen eine Konfigurationsdatei zu erstellen, damit sie LILO in Ihrem System installieren können. Wenn Sie es vorziehen, die Datei /etc/lilo.conf per Hand zu bearbeiten, dann müssen Sie danach nur /sbin/lilo (als root) zum ausführen damit die Änderungen installiert werden.

Wenn Sie liloconfig zum ersten Mal aufrufen sieht es etwa so aus:

Bild 7-1. liloconfig

Wenn Sie das erste Mal LILO einrichten, sollten sie simple (Einfach) wählen. Ansonsten könnten Sie expert schneller finden, wenn Sie sich bereits mit LILO und Linux auskennen. Das Auswählen von simmple startet die LILO Konfiguration.

Wenn Kernle frame buffer Unterstützung in Ihren Kernel einkompiliert ist, wird liloconfig nach der gewünschten Bildschirmauflösung fragen. Diese Auflösung wird auch vom XFree86 frame buffer Server verwendet. Wenn Sie keine besondere Konsolenauflösung wünschen, ist normal die Einstellung die den 80x25 Standard Text Modues nutzt.

Der nächste Teil der LILO Konfiguration ist der Ort wo es installiert werden soll. Das ist warscheinlich der wichtigeste Schritt. Die folgende Liste erklärt die Installationsorte:

Root
Diese Option installiert LILO am Anfang Ihrer Linux root-Partition. Dies ist die sicherste Option, wenn Sie noch andere Betriebssystem auf Ihrem Computer nutzen. Dadurch werden sicher keine anderen Bootloader überschrieben. Der Nachteil ist, das LILO hier nur geladen wird, wenn Ihre Linuxpartition das erste Laufwerk in Ihrem System ist. Das ist auch der Grund, warum viele Leute sich für eine kleine /boot Partition als erstes Laufwerk auf Ihrem System entscheiden. Dies erlaubt dem Kernel und LILO am Anfang des Laufwerks installiert zu werden, wo LILO sie auch findet. Ältere Versionen von LILO enthielten einen fatalen Fehler, bekannt als das "1024 cylinder limit". LILO konnte keine Kernel auf Partitionen nach dem 1024. Cylinder starten. Aktuelle Versionen von LILO haben dieses Problem nicht.

Floppy
Diese Methode ist noch sicherer als die vorhergehende. Sie erstellt eine Bootdiskette, welche Sie zum Starten Ihres Linuxsystems nutzen können. Es hält den Bootlader komplett von Ihrer Festplatte fern und sie booten nur von Diskette, wenn Sie Slackware nutzen wollen. Der Nachteil dieser Methode liegt auf der Hand. Disketten sind sehr empfindlich und gehen oft kaputt. Ausserdem ist der Bootlade nicht auf dem Computer. Wenn Sie also die Diskette verlieren müssen Sie eine neue erstellen um ihr System starten zu können.

MBR
Sie werden diese Methode nutzen, wenn Slackware das einzige Betriebssystem auf Ihrem Computer ist oder wenn Sie LILO zur Auswhahl von verschiedenen Betriebssystemen nutzen wollen. Dies ist die bevorzugte Methode LILO zu installieren und wird auf den meisten System funktionieren.
image
Diese Option überschreibt jeden anden Bootlader, den Sie im MBR installiert haben!

Nachdem der Installationsort gewählt wurde wird liloconfig die Konfiguration speichern und LILO installieren. Das war's. Wenn sie den expert Modus gewählt haben, bekommen Sie ein besonderes Menü. Dieses Menü erlaubt Ihnen die Datei /etc/lilo.conf zu verbessern, andere Betriebssystem dem Bootmenü hinzuzufügen und dem Kernel spezielle Parameter beim Systemstart mitzugeben. Das Menü sieht etwa so aus:

Bild 7-2. liloconfig Expert Menu
image

Wie auch immer Ihre Systemkonfiguration aussieht, einen funktionieren Bootlader zu installieren ist nicht schwer. liloconfig macht es sehr leicht.

bearbeiten

7.2 LOADLIN



bearbeiten

7.3 Dualboot


7.3.1 Windows


7.3.2 Linux



bearbeiten

8 Die Shell


In einer grafischen Umgebung wird die Oberfläche von einem Programm bereitgestellt, welches Fenster, Scrollbars, Menüs, u.s.w. erzeugt. In einer Befehlszeilen-Umgebung wird die Benutzerschnittstelle von einer Shell bereitgestellt, welche Befehle interpretiert und allgemein Dinge nutzbar macht. Direkt nach dem Einloggen (welches in diesem Kapitel behandelt wird) werden Benutzer in einem Shell weitergeleitet um ihrer Arbeit nachzugehen. Dieses Kapitel hat den Zweck eine Einleitung in die Shell, und zwar die am meisten unter Linux Nutzern verbreitete-- Die Bourne Again Shell (bash). Für detailliertere Informationen über alles in diesem Kapitel, lesen Sie bitte die bash(1) man page.

8.1 Benutzer


8.1.1 Einloggen


So, sie haben gebootet und schauen auf etwas wie dieses:

Welcome to Linux 2.4.18
Last login: Wed Jan   1 15:59:14 -0500 2005 on tty6.
darkstar login:


Hmmm.. Niemand hat etwas von einem Login gesagt. Und was ist ein darkstar? Keine Sorge; Sie haben nicht versehentlich eine Hyperspace Verbindung zum künstlichen Mond des Imperiums aufgebaut (Leider wird das Hyperspace Verbindungsprotokoll im Moment noch nicht vom Linux Kernel unterstützt. Vielleicht wird der 2.8 Kernel Zweig letztendlich dieses oft nachgefragte Protokoll unterstützen.) Nein, darkstar ist nur der Name eines unserer Computer und sein Name wird wird standardmäßig aufgestempelt. Wenn Sie einen Namen für Ihren Computer während der Installation festgelegt haben, dann sollte dieser an Stelle von darkstar erscheinen.

Was das Login angeht... Wenn dies das erste Mal ist, wenn Sie sich als Root einloggen wollen. Sie werden nach einem Passwort gefragt werden; Wenn Sie eines während der Installation gesetzt haben, dann ist es das gesuchte Passwort. Wenn nicht, dann einfach Enter drücken. Das war's-- Sie sind drin!

8.1.2 Root: Der Superuser


Okay, wer oder was ist root? Und was hat er mit einem Account auf Ihrem System zu tun?

Nun, in der Welt von Unix und ähnlichen Betriebssystemen (wie Linux), gibt es Benutzer und es gibt Benutzer. Nun, wir werden das später etwas genauer betrachten, aber die wichtigeste Sache ist jetzt das root der Benutzer über alle anderen Benutzer ist; root ist allmächtig und allwissend und niemand missachtet root. Es ist ihm schlicht nicht erlaubt. root ist was wir einen "superuser" nennen, und das zu Recht. Und das beste von allem: Sie sind root.

Cool, was?

Wenn Sie nicht sicher sind: Ja, das ist sehr cool. Der Haken ist aber, dass es root von Natur aus erlaubt ist alles zu zerstören das er will. Sie könnten zu Abschnitt 12.1.1 springen um zu sehen wie ein Benutzer angelegt wird; dann loggen Sie sich mit diesem Benutzer ein und arbeiten von dort. Die traditionelle Weisheit ist, dass es das beste ist nur dann root zu werden wenn es absolut notwendig ist um die Gefahr, dass man versehentlich etwas kaputt macht, reduziert wird.

Übrigens, wenn Sie sich entscheiden, während sie als jemand anderes eingeloggt sind, root werden zu wollen, kein Problem. Verwenden Sie einfach den su(1) Befehl. Sie werden nach dem root-Passwort gefragt und dann macht es Sie zu root bis Sie mit exit oder logout aussteigen. Sie können mit su auch jeder andere Benutzer werden, vorausgesetzt Sie kennen sein Passwort: su logan, zum Beispiel, würde Sie meinem Benutzer machen.

Beachte:

root ist es erlaubt zu jedem Benutzer via su zu wechseln ohne dafür ein Passwort zu benötigen.

bearbeiten

8.2 Die Kommandozeile


8.2.1 Programme starten


Es ist schwierig etwas zu erreichen ohne ein Programm auszuführen; Sie könnten etwas mit Ihrem Computer abstützen oder eine Tür aufhalten und er könnte das schönste brummende Geräsch machen wenn er läuft, aber das wäre auch schon alles. Und ich glaube wir können uns alle darauf einigen das der Gebrauch als brummender Türstopper den Computer nicht zu der Popularität verholfen hat die er heute hat.

Nun, Sie erinnern sich daran das fast alles in Linux eine Datei ist? Nun, das ist auch für Programme so. Jeder Befehl den Sie ausführen (sofern er nicht in die Shell eingebaut ist) befindet sich irgendwo in einer Datei. Sie führen ein Programm einfach aus indem Sie den vollen Pfad dazu angeben.

Zum Beispiel, erinnern Sie sich an den su Befehl des letzten Abschnitts? Nun, er befindet sich genau genommen im /bin Verzeichnis: /bin/su würde ihn problemlos ausführen.

Nun, warum funktioniert es dann wenn man einfach su eingibt? In der Tat haben Sie nicht angegeben das es in /bin liegt. Es hätte doch genau so gut in /usr/local/share liegen können, richtig? Wie konnte es das wissen? Die Antwort darauf liegt in der PATH Umgebungsvariablen; die meisten Shells haben entweder PATH oder etwas sehr ähnliches wie PATH. Sie enthält im Grunde genommen eine Liste von Verzeichnissen, in denen nach Programmen geschaut werden soll, die Sie ausführen wollen. Als Sie su ausgeführt haben ist Ihre Shell durch seine Liste mit den Verzeichnissen gegangen und hat jedes nach einer ausführbaren Datei, mit dem Namen su, geprüft, die sie ausführen könnte; die erste die sie erreicht hat, hat sie ausgeführt. Das passiert immer wenn Sie ein Programm starten ohne den vollen Pfad dazu anzugeben; wenn Sie einen "Befehl nicht gefunden" Fehler bekommen, dann bedeutet das nur das das Programm, das Sie ausführen wollten, nicht in ihrem PATH ist. (Das würde natürlich zutreffen wenn das Programm überhaupt nicht existiert...) Wir werden die Umgebungsvariablen ausführlicher in Abschnitt 8.3.1 diskutieren.

Denken Sie auch daran das "." eine Kurzform für das aktuelle Verzeichnis ist. Wenn Sie also in /bin sein sollten, dann würde ./su als expliziter voller Pfad funktionieren.

8.2.2 Wildcard Matching


Nahezu jede Shell erkennt einige Zeichen als Ersatz oder Abkürzung die bedeutet das hier etwas hingehört. Solche Zeichen werden passend wildcards genannt; die gängisten sind * und ?. Nach Vereinbarung steht ? normalerweise für irgendein einzelnes Zeichen. Zum Beispiel, nehmen wir an Sie befinden sich in einem Verzeichnis mit drei Dateien: ex1.txt, ex2.txt und ex3.txt. Sie wollen all diese Dateien in ein anderes Verzeichnis kopieren (mit dem cp Befehl den wir in Abschnitt 10.5.1 behandeln), nehmen wir an nach /tmp. Nun, tippen von cp ex1.txt ex2.txt ex3.txt /tmp ist viel zu viel Arbeit. Es ist viel einfacher cp ex?.txt /tmp zu tippen; das ? entspricht jedem der Zeichen "1", "2", und "3", und jedes in dieser Reihe wird eingefügt.

Sie fragen sich was das soll? Das ist immer noch zu viel Arbeit? Sie haben Recht. Es ist entsetzich; wir haben Arbeitsgesetze die uns vor solchen Dingen schützen sollen. Erfreulicherweise haben wir auch *. Wie bereits erwähnt entspricht * "jede Anzahl von Zeichen", inklusive 0. Wenn also diese drei Dateien die einzigen im Verzeichnis gewesen wären, dann hätten wir einfach cp * /tmp sagen können und hätte alle auf einem Schlag erwischt. Gehen wir aber davon aus, dass es auch eine Datei mit dem Namen ex.txt und eine mit dem Namen hejaz.txt gibt. Wir wollen ex.txt aber nicht hejaz.txt kopieren; cp ex* /tmp wird das für uns tun.

cp ex?.txt /tmp, würde natürlich nur die originalen drei Dateien erwischen weil es kein Zeichen in ex.txt gibt das dem ? entsprechen würde, also würde sie weggelassen.

Ein weiteres übliches wildcard ist das Klammernpaar [ ]. Alle Zeichen innerhalb der Klammern wird an Stelle des [ ] eingesetzt um Treffer zu finden. Hört sich verwirrend an? Es ist nicht so schlimm. Nehmen wir zum Beispiel an, dass wir ein Verzeichnis ahben das die folgenden 8 Dateien enthält: a1, a2, a3, a4, aA, aB, aC, und aD. Wir wollen nur die Dateien die in Zahlen enden; [ ] wird das für uns tun.

% ls a[1-4]
a1 a2 a3 a4


Aber was wir wirklich wollen ist a1, a2, und a4? Im vorigen Beispiel haben wir - genutzt das allen Werten zwischen 1 und 4 entspricht. Wir können auch einzelne Einträge mit Kommas trennen.

% ls a[1,2,4]
a1 a2 a4


Ich weiß was Sie jetzt denken, "was ist mit Buchstaben?" Linux ist I know what you're thinking now, “Well what about letters?” Linux unterscheidet zwischen Groß- und Kleinschreibung, was bedeutet das a und A verschiedene Zeichen sind und nur nach Ihrem Gefühl etwas miteinander zu tun haben. Großbuchstaben kommen immer vor Kleinbuchstaben, deshalb kommt A und B vor a und b. Um mit unserem früheren Beispiel fortzusetzen, wenn wir die Dateien a1 und A2 wollten, dann können wir diese schnell mit [ ] finden.

% ls [A,a]1
A1 a1


Beachten Sie, dass wir falsche Ergebnisse bekommen hätten wenn wir einen Bindestrich statt des Kommans verwendet hätten.

ls [A-a]1
A1 B1 C1 D1 a1


Sie können auch Bindestrich- und Kommazeichenfolgen kombinieren.

% ls [A,a-d]
A1 a1 b1 c1 d1


8.2.3 Eingabe-/Ausgabeweiterleitung und Pipen


(Hier kommt etwas tolles.)

% ps > blargh


Wissen Sie was das ist? Das bin ich beim Ausführen von ps um zu sehen welche Prozesse laufen; ps wird in Abschnitt 11.3 behandelt. Das ist nicht der tolle Teil. Der tolle Teil ist das > blargh, welches bedeutet, grob gesagt, nimm die Ausgabe von ps und schreibe sie in eine Datei die blargh heißt. Aber warte, es wird noch toller.

% ps | less


Dieser nimmt die Ausgabe von ps und leitet (piped) sie durch less. So kann ich nach Belieben durchscrollen.

% ps >> blargh


Dies ist die dritte oft genutzte Möglichkeit der Weiterleitung. Es macht das gleiche wie ">", außer das ">>" die Ausgabe von ps an die Datei blargh anhängt, wenn besagte Datei existiert. Wenn nicht, dann wird wie mit ">" die Datei erstellt. (“>” wird die aktuellen Inhalte von blargh auslöschen.)

Es gibt auch einen “<” Operator, welcher bedeutet "nehme deine Eingabe aus dem folgenden", aber es wird nicht annähernd so oft genutzt.

% fromdos < dosfile.txt > unixfile.txt


Weiterleitung beginnt wirklich Spaß zu machen wenn man beginnt sie zu stapeln:

% ps | tac >> blargh


Dieser wird ps starten, die Reihenfolge der Zeilen seiner Ausgabe umdrehen und diese zur Datei blargh hinzufügen. Sie können so viele von diesen zusammenstecken wie Sie wollen; denken Sie nur daran das sie von links nach rechts interpretiert werden.

Schauen Sie in die bash(1) man page für detailliertere Information zur Weiterleitung.

bearbeiten

8.3 Die Bourne Again Shell (bash)


8.3.1 Umgebungsvariablen


Ein Linux System ist ein komplexes Beast und es gibt vieles über das die Übersicht behalten werden muss. Viele kleine Dinge die während Ihrer normalen Interaktion mit diversen Programmen ins Spiel kommen (viele von diesen müssen Sie garnicht kennen). Niemand will einen Haufen von Optionen an jedes Programm, welches er ausführen will, übergeben, um ihm mitzuteilen, welche Art von Terminal genutzt wird, den Hostnamen, wie seine Anzeige aussehen soll...

Deshalb gibt es einen Mechanismus der "Umgebung" genannt wird, welcher dieses Problem löst. Die Umgebung definiert die Bedinungen unter welchen Programme laufen, und einige dieser Definitionen sind variabel; der Benutzer kann sie anpassen und damit spielen wie es nur auf einem Linux-System möglich ist. Viele Shells haben Umgebungsvariablen (wenn nicht, dann ist es wahrscheinlich keine wirklich brauchbare Shell). Hier geben wir einen Überblick über die Befehle die die bash zum Manipulieren von ihren Umgebungsvariablen liefert.

set wird Ihnen alle Umgebungsvariablen anzeigen, die aktuell definiert sind und auch deren Werte. Wie die meisten in Bash eingebauten Funktionen kann sie auch mehrere andere Dinge tun (mit Parametern); Wir überlassen es der bash(1) man page dies zu behandeln. Beispiel 8-1 zeigt einen Auszug eines set Befehls der auf einem der Rechner des Autors ausgeführt wurde. Beachten Sie in diesem Beispiel die PATH Variable die vorher diskutiert wurde. Programme in jedem dieser Verzeichnisse können ausgeführt werden indem einfach der Dateiname angegeben wird.

Beispiel 8-1. Umgebungsvariablen mit set anzeigen
% set
PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash

% unset VARIABLE


unset wird alle Variablen, die ihm übergeben werden entfernen, wobei sowohl der Name als auch der Wert ausgelöscht werden; bash wird vergessen das die Variable jemals existiert hat. (Keine Sorge. Solange es sich nicht um etwas handelt, das explizit in dieser Shell Sitzung definiert wurde, wird es wahrscheinlich in einer anderen Sitzung wieder definiert).

% export VARIABLE=some_value


Nun, export ist wirklich praktisch. Mit ihm geben Sie der Umgebungsvariable VARIABLE den Wert "some_value"; wenn VARIABLE nicht existiert hate, dann ist das jetzt der Fall. Wenn VARIABLE schon einen Wert hatte, nun, der ist futsch. Das ist nicht so gut, wenn Sie nur versuchen ein Verzeichnis zu Ihrem PATH hinzuzufügen. In diesem Fall möchten sie wahrscheinlich folgendes tun:

% export PATH=$PATH:/some/new/directory/


Beachten Sie den Gebrauch von $PATH dort: wenn Sie wollen das bash eine Variable interpretiert (sie mit ihrem Wert ersetzen), hängen Sie ein $ vor den Anfang des Variablennamens. Zum Beispiel wird echo $PATH den Wert von PATH ausgeben. In meinem Fall:

% echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin


8.3.2 Tab-Vervollständigung


(Hier kommt nochmal etwas tolles.)
1. Eine Befehlszeilen Oberfläche bedeutet viel Tippen.
2. Tippen ist Arbeit.
3. Niemand mag Arbeit.

Aus 3 und 2 können wir ermitteln das (4) niemand Tippen mag. Glücklicherweise beschützt uns bash vor (5)Fortunately, bash saves us from (5) (niemand mag Befehlszeilen Oberflächen).

Sie fragen wie bash dieses Kunststück vollbringt? Ergänzend zur Wildcard Erweiterung die wir vorher diskutiert haben, enthält bash Tab Verfollständigung.

Tab Verfollständigung funktioniert in Etwa so: Sie tippen den Namen einer Datei. Vielleicht ist sie in ihrem PATH, vielleicht tippen Sie ihn ausführlich. Alles was Sie tun müssen ist genügend zu tippen um ihn eindeutig zu identifizieren. Dann drücken Sie die Tab Taste. bash wird herausfinden was Sie wollen und wird für Sie zu Ende tippen!

Zeit für Beispiele. /usr/src enthält zwei Unterverzeichnisse: /usr/src/linux und /usr/src/sendmail. Ich will sehen was sich in /usr/src/linux befindet. Also tippe ich nur ls /usr/src/l, drücke die TAB Taste und bash gibt mir ls /usr/src/linux.

Nun nehmen wir an es gibt dort zwei Verzeichnisse /usr/src/linux und /usr/src/linux-old; Wenn ich /usr/src/l tippe und TAB drücke, wird bash so viel einfügen wie sie kann und ich bekomme /usr/src/linux. Ich kann hier aufhören oder ich kann nochmal TAB drücken und bash wird eine Liste aller Verzeichnisse ausgeben, die dem entsprechen, das ich bis jetzt getippt habe.

Folglich weniger Tippen (und folglich können Leute Befehlszeilen Oberflächen mögen). Ich habe Ihnen gesagt es ist toll.

bearbeiten

8.4 Virtuelle Terminals


Sie befinden sich mitten in der Arbeit an etwas und Sie entscheiden sich das Sie etwas anderes tun müssen. Sie könnten einfach verwerfen was Sie gerade machen und die Aufgabe wechseln, aber das ist ein Mehrbenutzersystem, richtig? Und Sie können sich so oft gleichzeitig einloggen wie sie wollen, richtig? Also warum sollten sie nur eine Sache auf einmal machen müssen?

Sie müssen nicht. Wir können nicht alle mehrere Tastaturen, Mäuse und Bildschirme für eine Maschine haben; wahrscheinlich wollen die meisten von uns diese nicht. Folglich ist Hardware nicht die Lösung. Folglich bleibt Software und Linux bietet eine Lösung indem es "virtuellen Terminals" oder "VTs" anbietet.

Durch das Drücken von Alt und einer Funktionstaste können Sie zwischen den virtuellen Terminals schalten; jede Funktionstaste steht für eines. Slackware hat standardmäßg Anmeldeaufforderungen auf 6 VTs. Alt+F2 bringt Sie zum zweiten, Alt+F3 zum dritten, usw.

Der Rest der Funktionstasten ist für X-Sitzungen reserviert. Jede X-Situng benutzt ihr eigenes VT, beginnend mit dem siebten (Alt+F7) und steigend. Wenn Sie in X sind, dann wird die Alt+Funktionstaste Kombination durch Strg+Alt+Funktionstaste. Wenn Sie also in X sind und zurück auf ein Text-Login wechseln wollen (ohne die X-Sitzung zu beenden), wird Strg+Alt+F3 Sie zum dritten bringen. (Alt+F7 wird Sie zurückbringen, angenommen das Sie die erste X-Sitzung verwenden.)

8.4.1 Screen


Aber was ist mit Situationen in denen es keine virtuellen Terminals gibt? Was dann? Glücklicherweise enthält Slackware einen schönen Bildschirm Manager, passend screen genannt. screen ist ein Terminal Emulator der Virtual Terminal ähnliche Fähigkeiten hat. Ausführen von screen gibt eine kurze Einführung und leitet einen dann in ein Terminal. Anders als die standard Virtual Terminals hat screen eigene Befehle. Allen screen Befehlen wird Strg+A vorangestellt. Zum Beispiel wird Strg+A+C eine neue Terminal Sitzung erzeugen. Strg+A+N wird zum nächsten Terminal schalten. Strg+A+P schaltet zum vorherigen Terminal.

screen unterstützt auch das trennen und wiederaufnehmen von screen Sitzungen was besonders praktisch für Remote Sitzungen via ssh oder telnet ist (mehr zu diesen später). Strg+A+D trennt von der aktuell laufenden Sitzung. Ausführen von screen -r listet alle aktuell laufenden screen Sitzungen zu denen wieder verbunden werden kann.

% screen -r
There are several suitable screens on:
	 1212.pts-1.redtail      (Detached)
	 1195.pts-1.redtail      (Detached)
	 1225.pts-1.redtail      (Detached)
	 17146.pts-1.sanctuary   (Dead ???)
Remove dead screens with 'screen -wipe'.
Type "screen [-d] -r [pid.]tty.host" to resume one of them. 


Ausführen von screen -r 1212 würde die erste gelistete Sitzung wieder aufnehmen. Ich habe vorhin erwähnt wie praktisch das für Remote Sitzungen ist. Wenn ich auf einen entfernten Slackware Server via ssh eingeloggt wäre und meine Verbindung würde durch einen Zufall, wie Stromausfall getrennt, dann würde, was auch immer ich gerade getan habe, umgehend zerstört, was schrecklich für Ihren Server sein kann. Der Gebrauch von screen verhindert dies durch Trennen der Sitzung, wenn meine Verbindung verloren geht. Sobald meine Verbindung wiederhergestellt wird, kann ich wieder zu meiner screen Sitzung verbinden und genau dort fortsetzen, wo ich aufgehört habe.

bearbeiten

9 Struktur des Dateisystems


Wir haben bereits die Verzeichnisstruktur in Slackware Linux diskutiert. An dieser Stelle sollten Sie fähg sein Dateien und Verzeichnisse, die Sie benötigen, zu finden. Aber es gibt mehr im Dateisystem als nur die Verzeichnisstruktur.

Linux ist ein Mehrbenutzer-Betriebssystem. Jeder Aspekt des Systems Mehrbenutzerfähig, sogar das Dateisystem. Das System speichert Informationen wie, wer eine Datei besitzt und wer sie lesen kann. Es gibt noch andere einmalige Teile des Dateisystems wie Links und NFS mounts. Dieser Abschnitt erklärt diese genau so wie die Mehrbenutzer-Aspekte des Dateisystems.

9.1 Besitzrecht


Das Dateisystem speichert Besitz-Informationen für jede Datei und jedes Verzeichnis auf dem System. Dadurch wird erfasst welcher Benutzer und welche Gruppe welche bestimmte Datei besitzen. Der einfachste Weg diese Information zu sehen ist der ls Befehl:

% ls -l /usr/bin/wc
-rwxr-xr-x   1 root     bin    7368 Jul 30  1999 /usr/bin/wc


Uns interessieren die dritte und vierte Spalte. Diese enthalten Benutzername und Gruppenname welche diese Datei besitzen. Wir sehen das der Benutzer "root" und die Gruppe "bin" diese Datei besitzen.

Wir können die Datei-Besitzer einfach, mit den Befehlen chown(1) (was "ändere Besitzer" (change owner) bedeutet) und chgrp(1) (was "ändere Gruppe" (change group) bedeutet), ändern. Um den Datei-Besitzer zu daemon zu ändern könnten wir chown nutzen:

# chown daemon /usr/bin/wc


Um die besitzende Gruppe zu "root" zu ändern könnten wir chgrp nutzen:

# chgrp root /usr/bin/wc


Wir können auch chown verwenden um die Benutzer- und Gruppenbesitzer für eine Datei zu ändern:

# chown daemon:root /usr/bin/wc


Im obigen Beispiel hätte der Benutzer einen Punkt anstatt des Doppelpunkts verwenden können. Das Ergebnis wäre das gleiche gewesen; allerdings wird der Doppelpunkt als die bessere Form angesehen. Der Gebrauch des Punkts wird abgelehnt und könnte in zukünftigen Versionen von chown entfernt werden, um Benutzernamen, die Punkte enthalten, zu erlauben. Diese Benutzernamen neigen zu mehr Popularität durch Windows Exchange Server und man begegnet ihnen alltäglich in E-Mail Addressen wie: mr.jones@example.com. In Slackware ist es Administratoren zu raten von solchen Benutzernamen Abstand zu nehmen weil manche Skripte immer noch den Punkt zum Angeben des Benutzers und der Gruppe einer Datei oder eines Verzeichnisses verwenden. In unserem Beispiel würde chmod mr.jones als Benutzer "mr" und Gruppe "jones" interpretieren.

Dateibesitz ist ein sehr wichtiger Teil beim Gebrauch eines Linux Systems, sogar wenn Sie der einzige Benutzer sind. Sie müssen manchmal Besitzrechte auf Dateien und Geräteknoten bereinigen.

bearbeiten

9.2 Berechtigungen


Berechtigungen sind der andere wichtige Teil eines des Mehrbenutzer-Aspekts des Dateisystems. Mit diesen können Sie ändern wer Dateien lesen, schreiben und ausführen kann.

Die Besitzinformation wird in vier oktalen Zahlen gespeichert, wobei jede einer unterschiedlichen Zusammenstellung von Berechtigungen entspricht. Es gibt Besitzer-Berechtigungen, Gruppen-Berechtiungen und Welt-Berechtigungen. Die vierte oktale Zahl wird benutzt um spezielle Informationen zu speichern, wie set user ID, set group ID, und das sticky bit. Die oktalen Werte, die den Berechtigungen zugeordnet sind, sind (sie haben auch Buchstaben zugeordnet welche von Programmen wie ls angezeigt werden und mit chmod genutzt werden können):

Tabelle 9-1. Oktale Berechtigungs Werte

Berechtigungstyp Oktalwert Buchstabenwert
"sticky" bit 1 t
set user ID 4 s
set group ID 2 s
lesen 4 r
schreiben 2 w
ausführen 1 x


Sie fügen die oktalen Werte für jede Berechtigungsgruppe zusammen. Zum Beispiel, wen Sie die Gruppen-Berechtigungen auf "lesen" und "schreiben" haben wollen, würden Sie "6" im Gruppen-Bereich der Berechtingunsinformation angeben.

bash's Standard Berechtigungen sind:

% ls -l /bin/bash
-rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash


Der erste Strich würde mit einem "d" ersetzt werden wenn dies ein Verzeichnis wäre. Die drei Berechtingsgruppen (Besitzer, Gruppe und Welt) werden danach angezeigt. Wir sehen das der Besitzer Lese-, Schreib- und Ausführungsrecht hat (rwx). Die Gruppe hat nur Lese- und Ausführungsrecht (r-x). Alle anderen haben nur Lese- und Ausführungsrecht (r-x).

Wie würden wir Berechtigungen auf eine andere Datei setzen, dass sie denen von bash gleichen? Lassen Sie uns zunächst eine Beispiel-Datei erstellen:

% touch /tmp/example
% ls -l /tmp/example
-rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example


Wir werden chmod(1) (was "Modus ändern" (change mode) bedeutet) nutzen um die Berechtigungen auf die Beispiel-Datei zu setzen. Fügen Sie die Oktalzahlen für die Berechtigungen, welche Sie wollen, zusammen. Um für den Besitzer Lese-, Schreibe- und Ausführungsrecht zu haben, hätten wir eienn Wrt von 7. Lese- und Ausführungsrecht wäre 5. Fügen Sie diese zusammen und übergeben Sie sie an chmod wie hier:

% chmod 755 /tmp/example
% ls -l /tmp/example
-rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example


Nun könnten Sie sich fragen: "Warum hat er die Datei nicht einfach von vornherein mit diesen Berechtigungen erzeugt?" Nun, die Antwort ist einfach. bash hat etwas nettes eingebaut das sich umask nennt. Dieses ist auch in den meisten Unix Shells enthalten und kontrolliert welche Berechtigungen für neu erstellte Dateien vergeben werden. Wir haben in Bash eingebaute Funktionen zu einem gewissen Grad in Abschnitt 8.3.1 diskutiert. Es gehört nicht viel dazu um sich an umask zu gewöhnen. Es funktioniert sehr ähnlich wie chmod, nur andersrum. Sie geben die Oktalwerte die für neu erstellte Dateien nicht existieren sollen. Der standard umask Wert ist 0022.

% umask
0022
% umask 0077
% touch tempfile
% ls -l tempfile
-rw--------  1 david    users    0 Apr 19 11:21 tempfile


Schauen Sie in die bash Man Page für weitere Informationen.

Um spezielle Berechtigungen mit chmod zu setzen, fügen Sie die Zahlen zusammen und platzieren Sie sie in die erste Spalte. Um sie zum Beispiel auf set user ID und set group ID zu setzen, verwenden wir 6 als erste Spalte:

% chmod 6755 /tmp/example
% ls -l /tmp/example
-rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example


Wenn die Oktalwerte Sie verwirren, dann können Sie Buchstaben mit chmod verwenden. Die Berechtigungsgruppen sind wie folgt vertreten:

Besitzer u
Gruppe g
Welt o
Alle obigen a


Um obiges zu erreichen müssten wir mehrere Befehlszeilen nutzen:

% chmod a+rx /tmp/example
% chmod u+w /tmp/example
% chmod ug+s /tmp/example


Einige Leute ziehen die Buchstaben den Zahlen vor. Beide Wege resultieren in der gleichen Zusammenstellung von Berechtigungen

Das Oktalformat ist oft schneller und die Form die am häufigsten in Shellskripten genutzt wird. Manchmal sind die Buchstaben allerdings leistungsfähiger. Es gibt z.B. keinen einfachen Weg mit dem Oktalformat eine Gruppe von Berechtigungen zu ändern während die anderen Gruppen auf Dateien und Verzeichnissen erhalten bleiben. Das ist einfach mit Buchstaben.

% ls -l /tmp/
-rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
-rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
% chmod g-rwx /tmp/example?
-rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
-rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
-------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2


Wir haben set user ID und set group ID Berechtigungen oben an mehreren Stellen erwähnt. Sie könnten sich wundern was das ist. Normalerweise wenn Sie ein Programm ausführen, dann arbeitet es unter ihrem Benutzeraccount. Das bedeutet es hat alle Berechtigungen die Sie als Benutzer haben. Das gleiche gilt für die Gruppe. Wenn Sie ein Programm ausführen, dann wird es unter ihrer aktuellen Gruppe ausgeführt. Mit set user ID Berechtigungen können Sie das Programm zwingen immer als Programm-Besitzer zu laufen (wie zum Beispiel "root"). Set group ID ist das selbe aber für die Gruppe.

Seien Sie vorsichtig damit. Set user ID und set group ID Programme können größte Sicherheitslöcher auf Ihrem System öffnen. Wenn Sie häufig set user ID für Programme setzen für die root der Besitzer ist, dann erlauben Sie jedem dieses Programm als root zu starten. Da root keine Einschränkungen auf dem System hat, können Sie sehen wie dies ein größeres Sicherheitsproblem hervorrufen würde. Kurz geagt ist es nicht verkehrt set user ID und set group ID Berechtigungen zu setzen. Verwenden Sie einfach Ihren gesunden Menschenverstand.

bearbeiten

Links sind Zeiger zwischen Dateien. Mit Links können Dateien an verschiedenen Stellen existieren und über viele Namen zugreifbar sein. Es gibt zwei Typen von Links: Hard und Soft.

Hard Links sind Namen für eine spezielle Datei. Sie können nur innerhalb eines einzelnen Dateisystems existieren und werden nur entfernt wenn der wirkliche Name vom System entfernt wird. Diese können in manchen Fällen nützlich sein, aber viele Benutzer empfinden die Soft Links als vielseitiger.

Der Soft Link, auch symbolischer Link genannt, kann auf eine Datei außerhalb seines Dateisystems zeigen. Er ist eigentlich eine kleine Datei die die nötigen Informationen enthält. Sie können Soft Links hinzufügen und entfernen ohne die eigentliche Datei zu beeinflussen. Und da ein symbolischer Link eigentlich eine kleine Datei ist, welche ihre eigenen Informationen enthält, kann er auch auf ein Verzeichnis zeigen. Es ist zum Beispiel durchaus üblich das /var/tmp in Wirklichkeit ein symbolischer Link auf /tmp ist.

Links haben keine eigene Zusammenstellung von Berechtigungen oder Besitzrechten, stattdessen geben Sie die Berechtigungen der Datei wieder auf die sie zeigen. Slackware benutzt meist Soft Links. Hier ein einfaches Beispiel:

% ls -l /bin/sh
lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash


Die sh Shell unter Slackware ist eigentlich bash. Links werden mit rm entfernt. Der ln Befehl wird verwendet um Links anzulegen. Diese Befehle werden vertieft in Kapitel 10 diskutiert.

Es ist sehr wichtig mit Symlinks besonders aufzupassen. Einmal habe ich an einer Maschine gearbeitet bei der regelmäßig die nächtliche Bandsicherung fehlgeschlagen ist. Zwei Symlinks wurden auf Verzeichnisse weiter unten im Verzeichnisbaum gebildet. Die Backupsoftware hat diese gleichen Verzeichnisse auf das Band geschrieben bis sie keinen Speicher mehr hatte. Normalerweise würde eine Reihe von Prüfungen eine solche Situation vermeiden, aber unserer war ein spezieller Fall.

bearbeiten

9.4 Geräte mounten


Wie bereits in Abschnitt 4.1.1 diskutiert wurde sind alle Laufwerke und Geräte auf Ihrem Computer ein großes Dateisystem. Viele Festplattenpartitionen, CD-ROMs und Floppies sind alle im gleichen Baum platziert. Um diese Laufwerke zum Dateisystem hinzuzufügen, um auf sie zugreifen zu können, müssen Sie die Befehle mount(1) und umount(1) nutzen.

Einige Geräte werden automatisch gemountet wenn Sie Ihren Rechner booten. Diese sind in der Datei /etc/fstab aufgelistet. Alles was Sie automatisch gemountet haben wollen bekommt einen Eintrag in dieser Datei. Für andere Geräte müssen Sie immer, wenn Sie das Gerät nutzen wollen, einen Befehl absetzen.

9.4.1 fstab


Lassen Sie uns einen Blick auf ein Beispiel einer /etc/fstab Datei werfen:

% cat /etc/fstab
/dev/sda1       /               ext2        defaults        1   1
/dev/sda2       /usr/local      ext2        defaults        1   1
/dev/sda4       /home           ext2        defaults        1   1
/dev/sdb1       swap            swap        defaults        0   0
/dev/sdb3       /export         ext2        defaults        1   1
none            /dev/pts        devpts      gid=5,mode=620  0   0
none            /proc           proc        defaults        0   0
/dev/fd0        /mnt            ext2        defaults        0   0
/dev/cdrom      /mnt/cdrom      iso9660     ro              0   0


Die erste Spalte ist der Gerätename. In diesem Fall handelt es sich bei den Geräten um fünf Partitionen die sich über zwei SCSI Festplatten erstrecken, zwei Spezial-Dateisysteme die kein Gerät benötigen, ein Floppy und ein CD-ROM Laufwerk. Die zweite Spalte enthält das Ziel auf das das Gerät gemountet wird. Dieses muss ein Verzeichnisname sein, außer für Swap Partitionen. Die dritte Spalte ist der Dateisystem-Typ des Geräts. Für normale Linux Dateisysteme wird dies ext2 sein (zweites erweitertes (extended) Dateisystem). CD-ROM Laufwerke sind iso9660 und Windows basierte Laufwerke werden entweder msdos oder vfat sein.

Die vierte Spalte ist eine Liste von Optionen die für das gemountete Dateisystem angewendet werden. defaults ist gut für fast alles. Allerdings sollte für Geräte, welche nur gelesen werden können, das ro Flag gesetzt werden. Es gibt viele Optionen die genutzt werden können. Lesen Sie für weitere Informationen in der fstab(5) man Page nach. Die letzten zwei Spalten werden von fsck und anderen Befehlen genutzt die die Geräte verändern müssen. Lesen Sie auch für diese Information in der man Page nach.

Wenn Sie Slackware installieren wird das Setup Programm viel von der fstab Datei bereits erstellen.

9.4.2 mount und umount


Ein weiteres Gerät zu Ihrem Dateisystem hinzuzufügen ist einfach. Alles was Sie benutzen müssen ist der mount Befehl zuseammen mit ein paar Optionen. Der Gebrauch von mount kann vereinfacht werden, wenn das Gerät einen Eintrag in der /etc/fstab Datei hat. Sagen wir zum Beispiel ich möchte mein CD-ROM Laufwerk mounten und meine fstab Datei würde so aussehen, wie das Beispiel des vorherigen Abschnitts. Ich würde mount wie folgt aufrufen:

% mount /cdrom


Da es einen Eintrag in der fstab für diesen Mount-Punkt gibt weiß mount welche Optionen es nutzen muss. Wenn es keinen Eintrag für dieses Gerät geben würde, dann müsste ich mehrere Optionen für mount verwenden:

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


Diese Befehlszeile enthält die gleichen Informationen die auch die Beispiel fstab enthält, aber wir gehen trotzdem durch die einzelnen Teile. Das -t iso9660 ist der Dateisystem-Typ des zu mountenden Geräts. In diesem Fall wäre es das iso9660 Dateisystem, welches das Dateisystem ist, das von CD-ROM Laufwerken am meisten genutzt wird. Das -o ro teilt mount mit, dass es das Gerät nur für Lesezugriff mounten soll. Das /dev/cdrom ist der Name des Geräts welches gemountet werden soll und /cdrom ist das Ziel im Dateisystem auf das das Gerät gemountet werden soll.

Bevor Sie ein Floppy, CD-ROM oder anderes Wechsellaufwerk entfernen, während es gemountet ist, müssen Sie es unmounten. Das wird mit dem umount Befehl erledigt. Fragen Sie nicht wo das "n" hingekommen ist, denn wir könnten es Ihnen nicht sagen. Sie können entweder das gemountete Gerät oder dem Mount-Punkt als Argument für umount verwenden. Zum Beispiel, wenn Sie das CD-ROM aus dem vorhergehenden Beispiel unmounten wollten, dann würden jeder der folgenden Befehle funktionieren:

# umount /dev/cdrom
# umount /cdrom


bearbeiten

9.5 NFS Mounts


NFS steht für Netzwerk Dateisystem (Network Filesystem). Es ist nicht wirklich ein Teil des echten Dateisystems aber es kann genutzt werden um Teile zum gemounteten Dateisystem hinzuzufügen.

Große Unix Umgebungen teile oft die gleichen Programme, Zusammenstellungen von Home-Verzeichnissen und Mail Spools. DAs Problem die gleiche Kopie auf jede Maschine zu bekommen wird mit NFS gelöst. Wir können NFS nutzen um eine Zusammenstellung von Home-Verzeichnissen zwischen verschiedenen Arbeitsstationen zu teilen. Die Arbeitsstationen hängen die NFS Freigabe ein als wäre sie auf der eigenen Maschine.

Betrachten Sie Abschnitt 5.6.2 und die man Pages für exports(5), nfsd(8), und mountd(8) für weitere Informationen.

bearbeiten

10 Mit Dateien und Verzeichnissen umgehen


Linux zielt darauf ab so Unix-Ähnlich wie möglich zu sein. Traditionell waren Unix Betriebssysteme Befehlszeilenorientiert. Wir haben eine grafische Benutzeroberfläche in Slackware aber die Befehlszeile ist imemr noch die Hauptebene um das System zu kontrollieren. Folglich ist es wichtig einige der grundlegenden Datei Management Befehle zu kennen.

Die folgenden Abschnitte erklären die grundlegenden Datei Management Befehle und bieten Beispiele wie sie genutzt werden. Es gibt viel mehr Befehle aber diese werden ihnen helfen einen Anfang zu finden. Außerdem werden die Befehle hier nur kurz diskutiert. Sie finden detailliertere Informationen in den zu den Befehlen mitgelieferten man Pages.

10.1 Navigation : ls, cd, und pwd


10.1.1 ls


Dieser Befehl listet Dateien in einem Verzeichnis. Windows und DOS Benutzer werden seine Ähnlichkeit zum dir Befehl erkennen. Der Befehl ls(1) wird die Dateien des aktuellen Verzeichnisses auflisten. Um zu sehen was sich in Ihrem Wurzelverzeichnis befindet könnten Sie folgende Befehle absetzen:

% cd /
% ls
bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz


Das Problem das viele Leute mit dieser Ausgaben haben ist, dass man nicht einfach sagen kann was ein Verzeichnis und was eine Datei ist. Manche Benutzer bevorzugen es wenn ls einen Typenkennung zu jedem Listeneintrag hinzufügt, wie hier:

% ls -FC
bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz


Verzeichnisse bekommen einen Slash am Ende des Namens, Ausführbare Dateien bekommen ein Sternchen am Ende des Namens und so weiter.

ls kann auch benutzt werden um andere Auswertungen für Dateien durchzuführen. Zum Beispiel um das Erstellungsdatum, Besitzer und Berechtigungen zu sehen. Sie würden auf eine lange Liste schauen:

% ls -l
drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/


Nehmen wir an Sie wollen eine Liste von versteckten Dateien im aktuellen Verzeichnis. Dieser Befehl wird dies tun:

% ls -a
.              bin   cdrom  home        mnt   sbin   usr
..             boot  dev    lib         proc  suncd  var
.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz


Dateien die mit einem Punkt beginnen (Punkt-Dateien genannt) werden versteckt wenn ls ausgeführt wird. Sie sehen sie nur wenn Sie die -a Option übergeben.

Es gibt viel mehr Optionen welche in der man Page gefunden werden können. Vergessen Sie nicht, dass Optionen, welche an ls übergeben werden, kombiniert werden können.

10.1.2 cd


Der cd Befehl wird genutzt um das Arbeitsverzeichnis zu ändern. Sie geben einfach cd gefolgt vom Pfadnamen, zu dem gewechselt werden soll, ein. Hier sind ein paar Beispiele:

darkstar:~$ cd /bin
darkstar:/bin$ cd usr
bash: cd: usr: No such file or directory
darkstar:/bin$ cd /usr
darkstar:/usr$ ls
bin
darkstar:/usr$ cd bin
darkstar:/usr/bin$


Beachten Sie, dass es ohne den führenden Slash versucht in ein Verzeichnis im aktuellen Verzeichnis zu wechseln. Zudem leitet das Ausführen von cd ohne Optionen Sie in Ihr Home-Verzeichnis.

Der cd Befehl ist nicht wie andere Befehle. Er ist ein in die Shell eingebauter Befehl. In die Shell eingebautes wird in Abschnitt 8.3.1 diskutiert. Dies würde ihnen an dieser Stelle noch nicht viel bringen. Grundsätzlich bedeutet das, dass es keine man Page für diesen Befehl gibt. Stattdessen müssen Sie die Hilfe der Shell benutzen, wie hier:

% help cd


Dies wird die Optionen für cd und ihren Gebrauch anzeigen.

10.1.3 pwd


Der pwd Befehl wird genutzt um Ihrem aktuelle Position anzuzeigen. Um den pwd Befehl zu nutzen tippen Sie einfach pwd. Zum Beispiel:

% cd /bin
% pwd
/bin
% cd /usr
% cd bin
% pwd
/usr/bin


bearbeiten

10.2 Pager: more, less, und most


10.2.1 more


more(1) ist was wir ein Pager Programm nennen. Häufig ist die Ausgabe eines bestimmten Programms zu groß um auf den Bildschirm zu passen. Die einzelnen Befehle wissen nicht wie ihre Ausgabe auf mehrere Bildschirmausgaben passt. Sie überlassen diese Aufgabe einem Pager Programm.

Der more Befehl bricht die Ausgabe in einzelne Bildschirmausgaben auf und wartet, dass Sie die Leertaste drücken, bevor es mit der nächsten Ausgabe fortsetzt. Durch Drücken von Enter wird die Ausgabe um eine Zeile fortgesetzt.. Hier ist ein gutes Beispiel:

% cd /usr/bin
% ls -l


Dies sollte einige Zeit scrollen. Um diese Ausgabe Bildschirmausgabe für Bildschirmausgabe aufzubrechen würden sie es einfach durch more pipen:

% ls -l | more


Dies ist das Pipe Zeichen (Alt Gr und kleiner als). Pipe ist die Kurzform für "nimm die Ausgabe von ls und füttere sie in more". Sie können fast alles durch den more Befehl pipen, nicht nur ls. Pipen wird auch in Abschnitt 8.2.3 behandelt.

10.2.2 less


Der more Befehl ist wirklich praktisch aber oft werden Sie merken das Sie die Bildschirmausgaben die Sie wollten verpasst haben. more bietet keine Möglichkeit um zurückzugehen. Der less(1) Befehl bietet diese Funktionalität. Er wird wie der more Befehl verwendet und somit gelten die vorigen Beispiele hier auch. Folglich ist less mehr als more. Joost Kremers erklärt das so:
less is more, but more more than more is, so more is less less, so use more less if you want less more.

10.2.3 most


Wo more und less ihre Grenzen erreichen, da fängt most(1) an. Wenn less mehr als more ist, dann ist most mehr als less. Während die anderen Pager nur eine Datei auf einmal anzeigen können kann most jede Zahl von Dateien anzeigen solange jedes Fenster jeder Datei mindestens zwei Zeilen groß ist. most hat viele Optionen. Sehen Sie für alle Details in die man Page.

bearbeiten

10.3 Einfache Ausgabe: cat und echo


10.3.1 cat


cat(1) steht für "zusammenfassen (concatenate). Es wurde ursprünglich zum Zusammenfassen von Dateien zu einer großen Datei erstellt kann aber auch für viele andere Dinge genutzt werden.

Um zwei oder mehrere Dateien zu einer zusammenzufassen, listen Sie die Dateien einfach nach dem cat Befehl auf und leiten die Ausgabe in eine Datei weiter. cat nutzt die Standardeingabe und die Standardausgabe, also müssen Sie die Shell Weiterleitungszeichen nutzen. Zum Beispiel:

% cat file1 file2 file3 > bigfile


Dieser Befehl nimmt die Inhalte der Dateien file1, file2 und file3 und fasst sie alle zusammen. Die neue Ausgabe wird auf der Standardausgabe ausgegeben.

Sie können cat auch nutzen um Dateien anzuzeigen. Viele Leute nutzen cat und leiten Textdateien durch die more oder less Befehle wie im folgenden:

% cat file1 | more


Dies zeigt die Datei file1 an und piped sie durch den more Befehl das Sie nur eien Bildschirmausgabe auf einmal bekommen.

Eine anderer üblicher Einsatzzweck von cat ist das Kopieren von Dateien. Sie können jede Datei mit cat herumkopieren wie hier:

% cat /bin/bash > ~/mybash


Das Programm /bin/bash wird in Ihr Home-Verzeichnis mit dem Namen mybash kopiert.

cat hat viele Einsatzbereiche und diejenigen die hier diskutiert wurden sind nur ein paar davon. Da cat ausgiebig die Standardeingabe und Standardausgabe nutzt ist es ideal zum Gebrauch in Shellskripten und als Teil von komplexeren Befehlen.

10.3.2 echo


Der echo(1) Befehl zeigt den angegebenen Text auf dem Bildschirm an. Sie geben die anzuzeigende Zeichenfolge nach dem echo Befehl an. Standardmäßig wird echo die Zeichenfolge anzeigen und ein Zeilenumbruchzeichen danach ausgeben. Sie können die -n Option übergeben um das Zeilenumbruchzeichen zu unterdrücken. Die -e Option weist echo an nach Escape Zeichen in Zeichenfolgen zu suchen und diese auszuführen.

bearbeiten

10.4 Erstellen: touch und mkdir


10.4.1 touch


touch(1) wird genutzt um den Zeitstempel einer Datei zu ändern. Sie können Zugriffszeitstempel und Änderungszeitstemple mit diese Befehl ändern. Wenn die angegebene Datei nicht existiert, dann wird touch eine leere Datei mit dem angegebenen Namen erstellen. Um eine Datei mit der aktuellen Systemzeit zu markieren könnten Sie diesen Befehl absetzen:

% ls -al file1
-rw-r--r--    1 root     root        9779 Feb  7 21:41 file1
% touch file1
% ls -al file1
-rw-r--r--    1 root     root        9779 Feb  8 09:17 file1


Es gibt einige Optionen für touch inklusive Optionen um anzugeben welche Zeitstempel anzupassen sind, die Zeit die genutzt werden soll und viele mehr. In der man Page werden diese im Detail behandelt.

10.4.2 mkdir


mkdir(1) erstellt ein neues Verzeichnis. Sie geben einfach das Verzeichnis, welches Sie erstellen wollen, an, wenn Sie mkdir ausführen. Dieses Beispiel erstellt das hejaz Verzeichnis im aktuellen Verzeichnis:

% mkdir hejaz


Sie können auch den Pfad angeben, wie hier:

% mkdir /usr/local/hejaz


Die -p Option weist mkdir an die Elternverzeichnisse zu erzeugen. Das obige Verzeichnsi wird fehlschlagen wenn /usr/local nicht existiert. Die -p Option wird /usr/local und /usr/local/hejaz erzeugen:

% mkdir -p /usr/local/hejaz


bearbeiten

10.5 Kopieren und Verschieben


10.5.1 cp


cp(1) kopiert (copies) Dateien. DOS-Benutzer werden bemerken, dass er ähnlich wie der copy Befehl ist. Es gibt viele Optionen für cp, darum sollten Sie einen Blick in die man-Pages werfen, bevor Sie ihn benutzen.

Eine häufige Verwendung ist das Kopieren von einer Datei von einem zu einem anderen Ort. Zum Beispiel:

Unknown action ""graybox""% cp hejaz /tmp
Unknown action ""graybox""

Das kopiert die hejaz Datei vom aktuellen Verzeichnis in den /tmp Ordner.

Viel Benutzer wollen den Zeitstempel nicht verändern, wie in diesem Beispiel:

Unknown action ""graybox""% cp -a hejaz /tmp
Unknown action ""graybox""

Dies garantiert, dass der Zeitstempel in der Kopie nicht verändert wurde.

Um ein Verzeichnis in ein anderes Verzeichnis rekursiv zu kopieren, benutzen Sie dieses Kommando:

Unknown action ""graybox""% cp -R meinverz /tmp
Unknown action ""graybox""

Das wird das meinverz Verzeichnis in das /tmp Verzeichnis kopieren.

Wenn Sie ein Verzeichnis oder eine Datei kopieren und alle alten Berechtigungen und Zeitstempel behalten wollen, oder einfach alles gleich bleiben soll, benutzen Sie cp -p.

Unknown action ""graybox""% ls -l file
-rw-r--r-- 1 root vlad 4 Jan 1 15:27 file
% cp -p file /tmp
% ls -l /tmp/file
-rw-r--r-- 1 root vlad 4 Jan 1 15:27 file
Unknown action ""graybox""

cp hat noch viel mehr Optionen, welche im Detail in der Onlinedokumentation diskutiert werden.

10.5.2 mv


mv(1) verschiebt (moves) Dateien von einem Ort zu einem Anderen. Tönt einfach, oder nicht?

Unknown action ""graybox""% mv oldfile /tmp/newfile
Unknown action ""graybox""

mv hat ein paar nützliche Kommandozeilenoptionen welche detailiert in den man-pages sind. Bei der täglichen Arbeit, wird mv fast nie mit irgendwelchen Kommandozeilenoptionen benützt.

bearbeiten

10.6 Löschen: rm und rmdir


10.6.1 rm


rm(1) entfernt Dateien und Verzeichnisbäume. DOS Benutzer werden die Ähnlichkeit zu den beiden Befehlen del und deltree bemerken. rm kann sehr gefährlich sein wenn Sie nicht auf sich selber aufpassen. Auch wenn es manchmal möglich ist eine kürzlich gelöschte Datei wiederzubekommen kann dies kompliziert (und möglicherweise kostenintensiv) sein und würde den Rahmen dieses Buches sprengen.

Um eine einzelne Datei zu löschen, übergeben Sie den Namen wenn Sie rm aufrufen:

% rm file1


Wenn die Schreibberechtigung der Datei entfernt ist, könnten Sie eine Zugriff Verweigert Fehlermeldung bekommen. Um das Löschen, ganz gleich was passiert, zu erzwingen, übergeben Sie die -f Option wie hier:

% rm -f file1


Um ein komplettes Verzeichnis zu löschen können Sie die -r und -f Optionen zusammen verwenden. Dies ist ein gutes Beispiel wie Sie alle Inhalte Ihrer Festplatte löschen können. Sie wollen das mit Sicherheit nicht tun. Hier ist trotzdem der Befehl:

# rm -rf /


Seien Sie sehr vorsichtig mit rm. Sie könnten sich selber in den Fuß schießen. Es gibt mehrere Befehlszeilen-Optionen die im Detail in der man Page behandelt werden.

10.6.2 rmdir


rmdir(1) löscht Verzeichnisse vom Dateisystem. Das Verzeichnis muss leer sein bevor es gelöscht werden kann. Die Syntax ist einfach:

% rmdir <Verzeichnis>


Dieses Beispiel wird das hejaz Unterverzeichnis des aktuellen Arbeitsverzeichnisses löschen:

% rmdir hejaz


Wenn dieses Verzeichnis nicht existiert wird rmdir Ihnen das mitteilen. Sie können auch einen kompletten Pfad zu einem Verzeichnis, welches zu löschen ist, angeben, wie dieses Beispiel zeigt:

% rmdir /tmp/hejaz


Dieses Beispiel wird versuchen das hejaz Verzeichnis im /tmp Verzeichnis zu löschen.

Sie können auch ein Verzeichnis und all seine Elternverzeichnisse entfernen wenn Sie die -p Opion übergeben.

% rmdir -p /tmp/hejaz


Dies wird zunächst probieren das hejaz Verzeichnis innerhalb von /tmp zu löschen. Wenn dies erfolgreich verläuft wird es versuchen /tmp zu entfernen. rmdir wird dies fortsetzen bis ein Fehler auftritt oder der gesamte angegebene Baum entfernt wurde.

bearbeiten

ln(1) wird genutzt um Verknüpfungen zwischen Dateien herzustellen. Dies Verknüpfungen können entweder Hard Links oder Soft (symbolische) Links sein. Die Unterschiede zwischen dem zwei Arten von Links wurden in Abschnitt 9.3 diskutiert. Wenn Sie einen symbolischen Link zum Verzeichnis /var/media/mp3 herstellen wollten und diesen Link in Ihrem Home-Verzeichnis ablegen wollen, dann würden Sie dies tun:

% ln -s /var/media/mp3 ~/mp3


Die -s Option sagt ln das es einen symbolischen Link erzeugen soll. Die nächste Option ist das Ziel des Links und die letzte Option ist wie der Link genannt werden soll. In diesem Fall wird es einfach eine Datei mit dem Namen mp3 in Ihrem Home-Verzeichnis anlegen die auf /var/media/mp3 zeigt. Sie können den Link selbst so nennen wie Sie wollen indem Sie die letzte Option ändern.

Das Erzeugen eines Hard Links ist genau so einfach. Alles was Sie tun müssen ist es die -s Option wegzulassen. Hard Links können allerdings normalerweise nicht auf Verzeichnisse referenzieren oder in andere Dateisysteme übergreifen. Um einen Hard Link /usr/bin/email nach /usr/bin/mutt zu erzeugen tippen Sie einfach das folgende:

# ln /usr/bin/mutt /usr/bin/email


bearbeiten

11 Prozesse kontrollieren


Jedes Programm, das läuft, wird Prozess genannt. Diese Prozesse erstrecken sich von Dingen wie X Window System zu Systemprogrammen (daemons) die gestartet werden, während der Computer bootet. Jeder Prozess läuft unter einem bestimmten Benutzer. Prozesse die während dem Booten gestartet werden läufen meist als root oder nobody. Prozesse, die Sie starten, laufen unter Ihrem Benutzer. Prozesse, die von anderen Benutzern gestartet werden, läufen unter deren Benutzern.

Sie haben Kontrolle über all die Prozesse die Sie starten. Zusätzlich hat root Kontrolle über alle Prozesse auf dem System, inklusive deren die von anderen Benutzern gestartet wurden. Prozesse können mit verschiedenen Programmen als auch mit einigen Shell Befehlen kontrolliert und beobachtet werden.

11.1 In Hintergrund setzen


Programme, die von der Befehlszeile gestartet werden, starten im Vordergrund. Dies erlaubt Ihnen die ganze Ausgabe des Programms zu sehen und mit ihm zu interagieren. Allerdings gibt es einige Gelegenheiten in denen man Programme laufen lassen will ohne das sie das Terminal übernehmen. Dies wird "Programm im Hintergrund laufen lassen" genannt und es gibt verschiedene Wege um dies zu tun.

Der erste Weg ein Programm in den Hintergrund zu bekommen ist es, ein kaufmännisches Und an die Befehlszeile anzuhängen, wenn Sie das Programm starten. Nehmen wir zum Beispiel an Sie wollen den Befehlszeilen MP3 Player amp nutzen um ein Verzeichnis voll mit mp3s abzuspieln aber Sie wollen etwas anderes auf dem gleichen Terminal machen. Die folgende Befehlszeile würde amp im Hintergrund starten:

% amp *.mp3 &


Das Programm wird wie gewohnt gestartet und Sie werden zur Befehlseingabe zurückgebracht.

Der andere Weg ein Programm in den Hintergrund zu bekommen ist, dies zu tun während das Programm läuft. Starten Sie zunächst ein Programm. Während es läuft drücken Sie Strg+Z. Dies hält den Prozess an. Ein angehaltener Prozess ist im Prinzip pausiert. Er hört umgehend auf zu laufen aber kann jederzeit wieder gestartet werden. Wenn Sie einen Prozess angehalten haben werden Sie zurück zur Befelseingabe gebracht. Sie können den Prozess in den Hintergrund bringen wenn Sie folgendes tippen:

% bg


Nun läuft der angehaltene Prozess im Hintergrund.

bearbeiten

11.2 In Vordergrund setzen


Wenn Sie mit einem Hintergrundprozess interagieren müssen, können Sie ihn wieder in den Vordergrund zurückholen. Wenn Sie nur einen Prozess im Hintergrund haben können Sie dies tun indem Sie folgendes tippen:

% fg


Wenn das Programm nicht bereits beendet wurde übernimmt das Programm die Kontrolle über Ihr Terminal und Sie werden nicht mehr zu einer Befehlseingabe zurückgebracht. Manchmal wird das Programm beendet während es im Hintergrund läuft. In diesem Fall bekommen Sie eine Nachricht wie die folgende:

[1]+  Done              /bin/ls $LS_OPTIONS


Dies teilt Ihnen mit, dass der Hingergrundprozess (in diesem Fall ls - nicht wirklich interessant) beendet wurde.

Es ist möglich mehrere Prozesse auf einmal im Hintergrund zu haben. Wenn dies vorkommt müssen Sie wissen welchen Prozess Sie wieder in den Vordergrund holen wollen. Einfaches Tippen von fg wird den Prozess in den Vordergrund holen der zuletzt in den Hingergrund gesetzt wurde. Was wenn Sie eine ganze Liste von Prozessen im Hingergrund hätten? Glücklicherweise enthält bash einen Befehl der alle Prozesse auflistet. Er wird jobs genannt und erzeugt eine Ausgabe wie diese:

% jobs
[1]   Stopped                 vim
[2]-  Stopped                 amp
[3]+  Stopped                 man ps


Dies zeigt eine Liste aller Prozesse die im Hintergrund liegen. Wie Sie sehen können sind alle gestoppt. Dies bedeutet das die Prozesse angehalten wurden. Die Nummer ist eine Art ID für die Hintergrundprozesse. Die ID mit einem Pluszeichen daneben (man ps) ist der Prozess der in den Vordergrund geholt wird, wenn Sie einfach fg tippen.

Wenn Sie vim in den Vordergrund holen wollten, dann würden Sie folgendes tippen:

% fg 1


und vim würde zurück in die Konsole springen. Prozesse in den Hingergrund zu legen kann sehr praktisch sein wenn Sie nur ein Terminal über eine Einwahlverbindung offen haben. Sie können mehrere Programme auf diesem einen Terminal offen haben und immer wieder zwischen ihnen vor- und zurückschalten.

bearbeiten

11.3 ps


Sie wissen also jetzt wie man zwischen mehreren Prozessen, die Sie von der Befehlszeile gestartet haben, hin und herschaltet. Und Sie wissen auch das immer eine Menge Prozesse laufen. Wie listen Sie aber all diese Programme auf? Nun, sie machen Gebrauch vom ps(1) Befehl. Dieser Befehl hat viele Optionen, also behandeln wir hier nur die wichtigsten. Schauen Sie für die komplette Auflistung in die man Page zu ps. Man Pages werden tiefergehend in Abschnitt 2.1.1 behandelt.

Einfaches Tippen von ps wird Ihnen eine Liste der Programme geben, die auf Ihrem Terminal laufen. Diese enthält die Vordergrundprozesse (inklusive der Shell die Sie nutzen und natürlich ps selber). Es werden auch möglicherweise laufende Hintergrundprozesse aufgelistet. Meistens wird das eine sehr kurze Auflistung:

Darstellung 11-1. Einfache ps Ausgabe

% ps
   PID TTY          TIME CMD
  7923 ttyp0    00:00:00 bash
  8059 ttyp0    00:00:00 ps


Obwohl das nicht viele Prozesse sind ist diese Information sehr eindeutig. Sie bekommen die gleichen Spalten beim einfachen Aufruf von ps unabhängig davon wie viele Prozesse laufen. Was bedeute sie alle?

Nun, die PID ist die Prozess ID. Allen laufenden Prozessen wird eine eindeutige Identifizierung zwischen 1 und 32767 gegeben. Jeder Prozess wird der nächsten freien PID zugewiesen. Wenn ein Prozess abgeschlossen ist (oder abgebrochen wird, was Sie im nächsten Abschnitt sehen) gibt er seine PID auf. Wenn die maximale PID erreicht wird, dann ist "nächste freie" gleichbedeutend mit "niedrigste freie".

Die TTY Spalte gibt an auf welchem Terminal der Prozess läuft. Ein einfaches ps wird nur die Programme auf dem aktuellen Terminal auflisten, also haben alle Prozesse die gleiche Information in der TTY Spalte. Wie Sie sehen können laufen beide aufgelisteten Prozesse auf ttyp0. Diese zeigt das diese entweder aus der Entfernung oder von irgendeinem X Terminal gestartet wurden.

Die TIME Spalte gibt an wie viel CPU Zeit der Prozess verbraucht hat. Diese unterscheidet sich von der Zeit die der Prozess insgesamt gelaufen ist. Erinnern Sie sich daran das Linux ein multitasking Betriebssystem ist. Es laufen die ganze Zeit viele Prozesse und jeder dieser Prozesse bekommt einen kleinen Teil der Zeit des Prozessors. Deshalb sollte die TIME Spalte wesentlich weniger Zeit für jeden Prozess anzeigen als dieser tatsächlich zum Laufen benötigt. Wenn Sie mehr als einige Minuten in der TIME Spalte sehen, dann könnte das bedeuten das etwas falsch läuft.

Letztendlich zeigt die CMD Spalte um was es sich bei dem Programm handelt. Sie listet nur den grundlegenden Namen des Programms, nicht eine Befehlszeilen-Option oder ähnliche Information. Um diese Information zu bekommen müssen Sie eine der vielen Optionen für ps verwenden. Wir werden das in kürze diskutieren.

Sie können eine komplette Liste der Prozesse, welche auf Ihrem System laufen, mit der richtigen Kombination von Optionen erhalten. Dies wird wahrscheinlich in einer langen Auflistung von Prozessen enden (fünfundfünfzig auf dem Laptop auf dem ich diesen Satz schreibe) also kürze ich die Ausgabe:

% ps -ax
 PID TTY      STAT   TIME COMMAND
   1 ?        S      0:03 init [3]
   2 ?        SW     0:13 [kflushd]
   3 ?        SW     0:14 [kupdate]
   4 ?        SW     0:00 [kpiod]
   5 ?        SW     0:17 [kswapd]
  11 ?        S      0:00 /sbin/kerneld
  30 ?        SW     0:01 [cardmgr]
  50 ?        S      0:00 /sbin/rpc.portmap
  54 ?        S      0:00 /usr/sbin/syslogd
  57 ?        S      0:00 /usr/sbin/klogd -c 3
  59 ?        S      0:00 /usr/sbin/inetd
  61 ?        S      0:04 /usr/local/sbin/sshd
  63 ?        S      0:00 /usr/sbin/rpc.mountd
  65 ?        S      0:00 /usr/sbin/rpc.nfsd
  67 ?        S      0:00 /usr/sbin/crond -l10
  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
  77 ?        S      0:00 /usr/sbin/apmd
  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
 106 tty1     S      0:08 -bash
 108 tty3     SW     0:00 [agetty]
 109 tty4     SW     0:00 [agetty]
 110 tty5     SW     0:00 [agetty]
 111 tty6     SW     0:00 [agetty]
 [Ausgabe abgeschnitten]


Viele dieser Prozesse werden während dem Booten des Systems gestartet. Ich habe einiges an meinem System angepasst, also wird die Länge Ihrer Auflistung mit großer Wahrscheinlichkeit abweichen. Dennoch werden Sie die meisten dieser Prozesse auch auf Ihrem System sehen. Wie Sie sehen zeigen diese Optionen die Befehlszeilen-Optionen für die laufenden Prozesse an. Kürzlich hat eine Kernel-Sicherheitslücke in ptrace zu einer Anpassung geführt, durch die Befehlszeilen-Optionen für viele laufende Prozesse nicht mehr angezeigt werden. Diese werden nun, wie die PIDs 108 bis 110, in Klammern gelistet. Es bringt auch einige weitere Spalten und weitere interessante Angaben.

Als erstes fällt auf das die meisten dieser Prozesse auf tty "?" gelistet werden. Diese sind nicht mit irgendeinem bestimmten Terminal verbunden. Dies ist üblich für Daemons, welches Prozesse sind, die laufen ohne sich mit irgendeinem bestimmten Terminal zu verbinden. Übliche Daemons sind sendmail, BIND, apache und NFS. Diese lauschen üblicherweise auf eine Anfrage eines Clients und geben auf Anfrage Informationen zurück.

Zweitens ist da eine neue Spalte: STAT. Sie zeigt den Status des Prozesses an. S steht für schlafen: der Prozess wartet darauf das etwas passiert. Z steht für "zum Zombie gewordener Prozess". Ein zum Zombie gewordener Prozess ist einer dessen Elternprozess beendet wurde und den Kindprozess zurückgelassen hat. Das ist keine gute Sache. D steht für einen Prozess der in einen nicht abbrechbaren Schlaf gekommen ist. Oft verweigern diese Prozesse auch dann den Abbruch wenn ein SIGKILL abgesetzt wird. Sie können später im nächsten Abschnitt über kill mehr über SIGKILL lesen. W steht für ausgebend. Ein abgebrochener Prozess wird mit einem X markiert. Ein Prozess der mit T markiert ist wird beobachtet oder ist gestoppt. R bedeutet das der Prozess gestartet werden kann.

Wenn Sie noch mehr Informationen über die laufenden Prozesse wollen, versuchen Sie dies:

% ps -aux
 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
 root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
 root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
 root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
 root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
 root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
 root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
 root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
 bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
 root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
 root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
 root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
 root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
 root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
 root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
 root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
 root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
 root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
 root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
 chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
 root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
 root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
 root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
 root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
 [Ausgabe abgeschnitten]


Das ist eine ganze Menge Information. Im Wesentlichen enthält es Informationen darüber welcher Benutzer den Prozess gestartet hat, wie viele Systemressourcen der Prozess nutzt (die %CPU, %MEM, VSZ und RSS Spalten) und zu welchem Datum der Prozess gestartet wurde. Obwohl das eine ganze Menge Information ist, könnte das praktisch für einen Administrator sein. Dies bringt uns auch zu einem anderen Punkt: Die Information geht nun über das Ende des Bildschirms so dass Sie sie nicht ganz sehen können. Die -w Option zwingt ps dazu lange Zeilen umzubrechen.

Das ganze sieht nicht besonders hübsch aus, aber es tut seinen Job. Sie haben nun die komplette Auflistung für jeden Prozess bekommen. Es gibt noch viel mehr Information die Sie für jeden Prozess angezeigen können. Lesen Sie die sehr ausführliche man Page zu ps. Jedoch sind die oben gezeigten Optionen die bekanntesten und werden diejenigen sein die Sie am meisten benutzen werden.

bearbeiten

11.4 kill


Gelegentlich können sich Proramme daneben benehmen und Sie müssen sie wieder auf den richtigen Weg bringen. Das Programm für diese Art der Administration wird kill(1) genannt und kann zur Manipulation von Prozessen auf verschiedene Weise genutzt werden. Der offensichtlichste Einsatzbereich für kill ist das "killen" eines Prozesses. Sie müssen dies tun wenn Ihnen ein Programm durchgeht und viele Systemressourcen verbraucht oder wenn Sie es einfach nur loshaben wollen.

Um einen Prozess abzubrechen müssen Sie seine PID oder seinen Namen kennen. Um die PID zu bekommen verwenden Sie den ps Befehl der im letzten Abschnitt diskutiert wurde. Um zum Beispiel Prozess 4747 abzubrechen würden Sie folgendes tun:

% kill 4747


Beachten Sie das Sie der Besitzer des Prozesses sein müssen um ihn abzubrechen. Dies ist ein Sicherheitsfeature. Wenn Sie die Erlaubnis hätten Prozesse von allen anderen Benutzern abzubrechen wäre es möglich das Sie allerlei bösartiges tun. Natürlich kann root alle Prozesse auf dem System abbrechen.

Es gibt eine weitere Variante von kill, die killall(1) genannt wird. Dieses Programm macht genau was es sagt: Es bricht alle laufenden Prozesse, die einen bestimmten Namen haben, ab. Wenn Sie alle laufenden vim Prozesse abbrechen wollten könnten Sie den folgenden Befehl eingeben:

% killall vim


Jeder vim Prozess, den Sie laufen haben, wird sterben. Wenn Sie dies als root machen würden Sie alle vim Prozesse von allen Benutzern abbrechen. Dies ergibt einen interessanten Weg jeden vom System zu kicken (inklusive Ihnen selbst):

# killall bash


Manchmal schafft es ein normaler Aufruf von kill nicht diese Aufgabe zu erledigen. Einige Prozesse werden nicht abgebrochen mit kill. Sie werden etwas mächtigeres nutzen müssen. Wenn dieses nervtötende PID 4747 nicht auf Ihre Abbruchanfrage reagiert, dann könnten Sie folgendes tun:

% kill -9 4747


Dies wird ziemlich sicher dafür sorgen das der Prozess 4747 stirbt. Sie können das gleiche mit killall machen. Dieser Befehl sendet ein anderes Signal zum Prozess. Ein normales kill sendet ein SIGTERM (terminate) Signal zum Prozess, welches ihm mitteilt das er das womit er beschäftigt ist fertigstellen, aufräumen und beenden soll. kill -9 sendet ein SIGKILL (kill) Signal zum Prozess welches ihn umgehend verwirft. Der Prozess kann nicht aufräumen und manchmal können böse Dinge, wie korrupte Daten, durch Abbrechen eines Prozesses mit SIGKILL, auftreten. Es gibt eine ganze Liste von Signalen die Ihnen zur Verfügung stehen. Sie können eine Auflistung der Signale durch Tippen des folgenden erhalten:

% kill -l
  1) SIGHUP     2) SIGINT    3) SIGQUIT   4) SIGILL
  5) SIGTRAP    6) SIGABRT   7) SIGBUS    8) SIGFPE
  9) SIGKILL   10) SIGUSR1  11) SIGSEGV  12) SIGUSR2
 13) SIGPIPE   14) SIGALRM  15) SIGTERM  17) SIGCHLD
 18) SIGCONT   19) SIGSTOP  20) SIGTSTP  21) SIGTTIN
 22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
 26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO
 30) SIGPWR


Für kill muss die Zahl verwendet werden, während der Name ohne das vorangestellte "SIG" mit killall genutzt werden kann. Hier ist ein weiteres Beispiel:

% killall -KILL vim


Ein abschließender Einsatzzweck von kill ist das Neustarten eines Prozesses. Senden von SIGHUP wird dafür sorgen das die meisten Prozesse ihre Konfigurationsdateien neu einlesen. Dies ist besonders hilfreich um, nach dem Editiren von Konfigurationsdateien, den Systemprozessen zu sagen das Sie selbige neu einlesen sollen.

bearbeiten

11.5 top


Zum Schluss haben wir noch einen Befehl für Sie, den Sie nutzen können um Informationen über Prozesse, die auf Ihrem System laufen, in Echtzeit anzuzeigen. Dieser Befehl wird top(1) genannt und wird folgendermaßen gestartet:

% top


Dies zeigt Ihnen einen ganzen Bildschirm voll Informationen über die Prozesse, welche auf Ihrem System laufen, als auch allgemeine Informationen über das System. Dies umfasst die durchschnittliche Belastung (load average) die Anzahl von Prozessen, den CPU Status, Information über den freien Speicher und Details zu den Prozessen wie PID, Benutzer, Priorität, CPU und Speicherverbrauchsinformation, Laufzeit und Programmname.

 6:47pm  up 1 day,  18:01,  1 user,  load average: 0.02, 0.07, 0.02
61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
CPU states:  2.8% user,  3.1% system,  0.0% nice, 93.9% idle
Mem:   257992K av,  249672K used,    8320K free,   51628K shrd,  78248K buff
Swap:   32764K av,     136K used,   32628K free,                 82600K cached

PID USER    PRI  NI  SIZE  RSS  SHARE  STAT  LIB %CPU %MEM  TIME COMMAND
 112 root     12   0 19376  18M   2468  R       0  3.7  7.5 55:53 X
4947 david    15   0  2136 2136   1748  S       0  2.3  0.8  0:00 screenshot
3398 david     7   0 20544  20M   3000  S       0  1.5  7.9  0:14 gimp
4946 root     12   0  1040 1040    836  R       0  1.5  0.4  0:00 top
 121 david     4   0   796  796    644  S       0  1.1  0.3 25:37 wmSMPmon
 115 david     3   0  2180 2180   1452  S       0  0.3  0.8  1:35 wmaker
4948 david    16   0   776  776    648  S       0  0.3  0.3  0:00 xwd
   1 root      1   0   176  176    148  S       0  0.1  0.0  0:13 init
 189 david     1   0  6256 6156   4352  S       0  0.1  2.4  3:16 licq
4734 david     0   0  1164 1164    916  S       0  0.1  0.4  0:00 rxvt
   2 root      0   0     0    0      0  SW      0  0.0  0.0  0:08 kflushd
   3 root      0   0     0    0      0  SW      0  0.0  0.0  0:06 kupdate
   4 root      0   0     0    0      0  SW      0  0.0  0.0  0:00 kpiod
   5 root      0   0     0    0      0  SW      0  0.0  0.0  0:04 kswapd
  31 root      0   0   340  340    248  S       0  0.0  0.1  0:00 kerneld
  51 root      0   0    48   48     32  S       0  0.0  0.0  0:00 dhcpcd
  53 bin       0   0   316  316    236  S       0  0.0  0.1  0:00 rpc.portmap
  57 root      0   0   588  588    488  S       0  0.0  0.2  0:01 syslogd


Es wird top genannt weil CPU-Intensive Programme am Anfang der Liste (top) eingeordnet werden. Eine Interessante Feststellung ist, dass top auf den meisten inaktiven (und einigen aktiven) Systemen wegen seinem CPU-Verbrauch. Wie auch immer, top ist wirklich praktisch um festzustellen welches Programm aus dem Rahmen fällt und abgebrochen werden muss.

Aber nehmen wir an Sie wollen nur eine Liste Ihrer eigenen Prozesse oder der Prozesse eines anderen Benutzers. Die Prozesse, die Sie sehen wollen, könnten nicht zu den CPU intensivsten laufenden Programmen gehören. Die -u Option erlaubt Ihnen einen Benutzernamen oder UID anzugeben um die Prozesse zu betrachten dieser UID gehören.

% top -u alan
 PID USER      PR  NI  VIRT RES   SHR S %CPU %MEM   TIME+   COMMAND
3622 alan      13   0 11012  10m 6956 S  1.0  2.1   0:03.66 gnome-terminal
3739 alan      13   0  1012 1012  804 R  0.3  0.2   0:00.06 top
3518 alan       9   0  1312 1312 1032 S  0.0  0.3   0:00.09 bash
3529 alan       9   0   984  984  848 S  0.0  0.2   0:00.00 startx
3544 alan       9   0   640  640  568 S  0.0  0.1   0:00.00 xinit
3548 alan       9   0  8324 8320 6044 S  0.0  1.6   0:00.30 gnome-session
3551 alan       9   0  7084 7084 1968 S  0.0  1.4   0:00.50 gconfd-2
3553 alan       9   0  2232 2232  380 S  0.0  0.4   0:00.05 esd
3555 alan       9   0  2552 2552 1948 S  0.0  0.5   0:00.10 bonobo-activati
3557 alan       9   0  2740 2740 2224 S  0.0  0.5   0:00.05 gnome-smproxy
3559 alan       9   0  6496 6492 5004 S  0.0  1.3   0:00.31 gnome-settings-
3565 alan       9   0  1740 1740 1440 S  0.0  0.3   0:00.28 xscreensaver
3568 alan       9   0  7052 7052 4960 S  0.0  1.4   0:02.28 metacity
3572 alan       9   0 11412  11m 7992 S  0.0  2.2   0:01.58 gnome-panel
3574 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.64 nautilus
3575 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
3576 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus


Wie Sie sehen können habe ich gerade X, top und ein gnome-terminal (in dem ich dieses schreibe) und viele weitere zu X gehörende Prozesse laufen die für mich die meiste CPU-Zeit verbrauchen. Dies ist ein guter Weg um zu überwachen wie intensiv die Benutzer mit Ihrem System arbeiten.

top erlaubt auch Prozesse anhand ihrer PID zu überwachen unabhängig davon ob diese im Leerlauf sond oder zum Zombie geworden sind und es gibt noch viele andere Optionen. Die beste Stelle einen Überblick über diese Optionen zu bekommen ist die man Page zu top.

bearbeiten

12 Wesentliche Systemadministration


Whoa whoa whoa whoa whoa.... Ich weiß was Sie denken. "Ich bin kein Systemadministrator! Ich will nichtmal Systemadministrator sein!"

Fakt ist, dass Sie Systemadministrator von jedem Computer sind dessen root Passwort Sie haben. Dies könnte Ihr Desktoprechner mit einem oder zwei oder ein großer Server mit vielen Hundert Benutzern sein. Unabhängig davon müssen Sie wissen wie Benutzer verwaltet werden und wie man das System sicher herunterfährt. Diese Aufgaben erscheinen einfach aber es gibt ein paar Eigenarten die Sie im Gedächtnis behalten sollten.

12.1 Benutzer und Gruppen


Wie in Kapitel 8 erwähnt sollten Sie Ihr System normalerweise nicht als root benutzen. Stattdessen sollten Sie für den täglichen Gebrauch einen normalen Benutzeraccount anlegen und den root Account nur für Systemadminstrationsaufgaben nutzen. Um einen Benutzer anzulegen könnten Sie entweder die Tools nutzen die mit Slackware ausgeliefert werden oder die Passwortdateien per Hand anpassen.

12.1.1 Mitgelieferte Skripte


Der einfachste Weg Benutzer und Gruppen zu verwalten, ist mit den mitgelieferten Skripten und Programmen. Slackware enthält die Programme adduser, userdel(8), chfn(1), chsh(1) und passwd(1) um sich um Benutzer zu kümmern. Die Befehle groupadd(8), groupdel(8) und groupmod(8) sind zum Umgehen mit Gruppen. Mit der Ausnahme von chfn, chsh und passwd können diese Programme generell nur als root ausgeführt werden und befinden sind dementsprechend in /usr/sbin. chfn, chsh und passwd können von jedem ausgeführt werden und befinden sich in /usr/bin.

Benutzer können mit dem adduser Programm hinzugefügt werden. Wir beginnen damit durch die gesamte Prozedur zu gehen, alle Fragen, die gefragt werden, zu zeigen und eine kurze Beschreibung zu liefern was alles bedeutet. Die Standardantwort ist in den Klammern und kann für fast alle Fragen gewählt werden, außer Sie wollen etwas ändern.

# adduser
Login name for new user []: jellyd


Dies ist der Name den der Benutzer zum Einloggen verwenden wird. Traditionell haben Login-Namen acht oder weniger Zeichen und alle Zeichen sind Kleinbuchstaben. (Sie können auch mehr als acht Zeichen benutzen oder Zahlen einsetzen, aber vermeiden Sie dies wenn sie keinen wirklich wichtigen Grund haben.)

Sie können den Loginnamen auch als Argument auf der Befehlszeile angeben:

# adduser jellyd


In beiden Fällen wird adduser Sie nach dem Bestimmen des Loginnamens nach der Benutzer ID fragen:

User ID ('UID') [ defaults to next available ]:


Die Benutzer ID (UID) ist die Art mit der Besitzrechte in Linux festgelegt werden. Jeder Benutzer hat eine eindeutige Nummer welche in Slackware bei 1000 beginnt. Sie können eine UID für den Benutzer festlegen oder Sie könne adduser einfach die nächste freie bestimmen lassen.

Initial group [users]:


Alle Benutzer werden standardmäßig zur Gruppe users hinzugefügt. Sie könnten den neuen Benutzer in eine andere Gruppe hinzufügen, aber das ist nicht empfehlenswert, solange Sie nicht wissen was Sie tun.

Additional groups (comma separated) []:


Diese Rückfrage erlaubt Ihnen den neuen Benutzer zusätzlichen Gruppen hinzuzufügen. Es ist einem Benutzer möglich in verschiedenen Gruppen auf einmal zu sein. Das ist praktisch wenn Sie Gruppen für Dinge wie das Anpassen von Seiten einer Webseite, das Spielen von Spielen und so weiter angelegt haben. Zum beispiel definieren viele Standorte eine Gruppe wheel als die einzige Gruppe die den su Befehl nutzen kann. Oder eine Standard Slackware Installation nutzt die sys Gruppe für Benutzer denen es erlaubt ist Töne durch die eingebaute Soundkarte auszugeben.

Home directory [/home/jellyd]


Home Verzeichnisse werden standardmäßig unter /home erstellt. Wenn Sie ein sehr großes System betreiben ist es möglich, dass Sie die Home Verzeichnisse an eine andere Stelle verschoben haben (oder an mehrere Stellen). Dieser Schritt erlaubt Ihnen anzugeben wo die Home Verzeichnisse der Benutzer sein werden.

Shell [ /bin/bash ]


bash ist die Standardshell für Slackware Linux und wird für die meisten Leute das richtige sein. Wenn Ihr neuer Benutzer eine Unix-Vergangenheit hat könnte er sich mit einer anderen Shell auskennen. Sie können dessen Shell jetzt ändern oder er kann sie später selber mit dem chsh Befehl ändern.

Expiry date (YYYY-MM-DD) []:


Accounts können so eingerichtet werden, dass sie an einem bestimmten Datum auslaufen. Standardmäßig gibt es kein Ablaufdatum. Sie können das ändern, wenn Sie wollen. Dies Option könnte für ISPs interessant sein die einen Account zu einem bestimmten Datum auslaufen lassen wollen, bis Sie die Bezahlung für das nächste Jahr erhalten.

New account will be created as follows:
---------------------------------------
Login name:         jellyd
UID:                [ Next available ]
Initial group:      users
Additional groups:  [ None ]
Home directory:     /home/jellyd
Shell:              /bin/bash
Expiry date:        [ Never ]


Das war's... wenn Sie aussteigen wollen drücken Sie Strg+C. Andernfalls drücken Sie ENTER um fortzusetzen und diesen Account anzulegen.

Sie sehen nun die ganze Information die Sie über den neuen Account eingegeben haben und bekommen die Gelegenheit das Erzeugen des Accounts abzubrechen. Wenn Sie etwas falsch eingegeben haben sollten Sie Strg+C tippen und erneut anfangen. Andernfalls können Sie Enter drücken und der Account wird erstellt.

Creating new account...

Changing the user information for jellyd
Enter the new value, or press return for the default
	    Full Name []: Jeremy
	    Room Number []: Smith 130
	    Work Phone []:
	    Home Phone []:
	    Other []:


All diese Information ist optional. Sie müssen nichts davon eingeben wenn Sie nicht wollen und der Benutzer kann es jederzeit mit chfn ändern. Dennoch könnten Sie es hilfreich empfinden zumindest den Namen und die Telefonnummer einzutragen, für den Fall das Sie später in Kontakt mit dieser Person treten wollen.

Changing password for jellyd
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.

Account setup complete.


Sie werden ein neues Passwort für diesen neuen Benutzer eingeben müssen. Generell würden Sie, im Fall das der Benutzer zu diesem Zeitpunkt noch nicht existiert, würden Sie einfach ein Standardpasswort wählen und dem Benutzer mitteilen das er dies in etwas anderes, sichereres, ändern soll.

Beachte:
Wahl eines Passworts: Ein sicheres Passwort zu haben ist der erste Grundsatz zur Abwehr eines Einbruchs. Sie wollen kein einfach zu erratendes Passwort weil es jemandem den Einbruch in Ihr System vereinfacht. Idealerweise wäre ein sicheres Passwort eine zufällige Zeichenfolge aus Zeichen, inklusive Groß und Kleinschreibung, Zahlen und zufälligen Zeichen. (Ein Tab Zeichen könnte eine nicht so weise Wahl sein, abhängig davon von welchen Arten von Computern sie einloggen werden). Es gibt viele Softwarepakete die Zufallspasswörter für Sie erstellen können. Durchsuchen Sie das Internet nach solchen Programmen.
Generell sollten Sie Ihren Verstand gebrauchen: Verwenden Sie kein Passwort das der Geburtstag von jemandem ist, keine übliche Redensart, etwas das auf Ihrem Schreibtisch zu finden ist oder etwas das mit Ihnen in Verbindung gebracht werden könnte. Ein Passwort wie "secure1" oder jedes andere Passwort das Sie in Druck- oder Onlinemedien sehen ist auch schlecht.

Benutzer zu löschen ist nicht schwer. Führen Sie einfach userdel mit dem Namen des Accounts, den Sie löschen wollen, aus. Sie sollten sicherstellen das der Benutzer nicht eingeloggt ist und das keine Prozesse unter diesem Benutzer laufen. Denken Sie außerdem daran, dass, wenn Sie den Benutzer erst einmal gelöscht haben, alle Passwortinformationen dieses Benutzer dauerhaft verschwunden sind.

# userdel jellyd


Dieser Befehl entfernt diesen nervigen Benutzer jellyd von Ihrem System. Ein Glück, dass wir das/den los sind! :) Der Benutzer wird aus den Dateien /etc/passwd, /etc/shadow, und /etc/group entfernt, aber es wird nicht das Home-Verzeichnis gelöscht.

Wenn Sie auch das Home-Verzeichnis entfernen wollten, hätten Sie diesen Befehl stattdessen verwendet:

# userdel -r jellyd

Temporäres Deaktivieren von Accounts wird im folgenden Abschnitt zu Passwörtern behandelt weil eine temporäre Änderung das Ändern des Benutzerpassworts einschließt. Das Ändern anderer Account-informationen wird in Abschnitt 12.1.3 behandelt.

Die Programme zum Hinzufügen und Entfernen von Gruppen sind sehr einfach. groupadd fügt einfach einen weiteren Eintrag zur Datei /etc/group mit einer eindeutigen Gruppen ID hinzu, während groupdel die angegebene Gruppe entfernt. Es ist Ihnen überlassen die Datei /etc/group zu editieren um Benutzer zu einer bestimmten Gruppe hinzuzufügen. Um zum Beispiel eine Gruppe mit dem Namen cvs hinzuzufügen:

# groupadd cvs

Und um sie zu entfernen:

# groupdel cvs


12.1.2 Passwörter ändern


Das passwd Programm ändert Passwörter durch Verändern der Datei /etc/shadow. Diese Datei enthält alle Passwörter des Systems in verschlüsseltem Format. Um Ihr eigenes Passwort zu ändern würden Sie folgendes tippen:

% passwd
Changing password for chris
Old password:
Enter the new password (minumum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:


Wie Sie sehen können werden Sie aufgefordert Ihr altes Passwort einzugeben. Es wird nicht auf dem Bildschirm angezeigt wenn Sie es eintippen, genau so wie wenn Sie sich einloggen. Dann werden Sie aufgefordert ein neues Passwort einzugen. passwd wird einige Tests mit Ihrem neuen Passwort durchführen und wird sich beschweren wenn Ihr neues Passwort seine Tests nicht besteht. Sie können die Warnungen ignorieren, wenn Sie wollen. Sie werden aufgefordert das neue Passwort einzweites Mal zur Bestätigung einzugeben.

Wenn Sie root sind können Sie auch das Passwort eines anderen Benutzers ändern:

# passwd ted


Sie müssen dann durch die gleiche Prozedur die oben beschrieben wurde außer das Sie nicht das alte Passwort des Benutzers eingeben müssen. (Einer der Vielen Vorzüge wenn man root ist...)

Wenn erforderlich können Sie auch einen Account temporär deaktivieren und, wenn erforderlich, zu einer späteren Zeit wieder aktivieren. Beides, deaktivieren und wieder aktivieren eines Accounts, kann mit passwd gemacht werden. Um einen Account zu deaktivieren tun sie folgende als root:

# passwd -l david


Dies ändert das Passwort von david zu etwas das niemals irgendeinem verschlüsselten Wert entsprechen kann. Sie würden den Accound wie folgt wieder aktivieren:

# passwd -u david


Nun ist david's account wieder im Normalzustand. Deaktivieren von Accounts kann praktisch sein wenn sich Benutzer nicht an die Regeln hält die Sie auf Ihrem System aufgesetzt haben oder wenn Sie eine sehr große Kopie von xeyes(1) auf Ihren X Desktop exportiert haben.

12.1.3 Benutzer-Information ändern


Es gibt zwei Informationsteile die Benutzer jederzeit ändern können: Ihre Shell und ihre finger Information. Slackware Linux nutzt chsh (change shell) und chfn (change finger) um diese Werte zu ändern.

Ein Benutzer kann jede Shell auswählen die in der Datei /etc/shells gelistet ist. Für die meisten Benutzer ist /bin/bash die beste Wahl. Andere könnten sich mit einer Shell besser auskennen die sie auf ihrem System an der Arbeit oder an der Schule vorgefunden haben und wollen das nutzen was sie bereits kennen. Um Ihre Shell zu ändern nutzen Sie chsh:

% chsh
Password:
Changing the login shell for chris
Enter the new value, or press return for the default
	    Login Shell [/bin/bash]:


Nach der Eingabe Ihres Passworts geben Sie den vollen Pfad zur neuen Shell ein. Stellen Sie vorher sicher, dass er in der /etc/shells(5) Datei gelistet ist. Der root Benutzer kann auch die Shell jedes Benutzers durch Starten von chsh, mit dem Benutzernamen als Argument, ändern.

Die finger Information ist optionale Information wie Ihr voller Name, Telefonnummer und Raumnummer. Diese können mit Hilfe von chfn geändert werden und erfolgt in der selben Prozedur die Sie bereits beim Anlegen des Accounts durchlaufen haben. Wie üblich kann root die finger Information von jedem verändern.

bearbeiten

12.2 Benutzer und Gruppen, der harte Weg


Natürlich ist es möglich Benutzer und Gruppen hinzuzufügen, zu verändern und zu entfernen ohne die Skripte und Programme zu nutzen, welche mit Slackware kommen. Das ist nicht wirklich schwer. Obwohl Sie nach dem Lesen dieser Vorgehensweise wahrscheinlich den Gebrauch der Skripte einfacher finden werden, ist es, für den Fall, dass Sie diese Information wiederherstellen müssen und die Slackware Tools nicht zur Verfügung haben, wichtig zu wissen wie Ihre Passwort-Informationen eigentlich gespeichert werden.

Zunächst werden wir einen neuen Benutzer zu den Dateien /etc/passwd(5), /etc/shadow(5), und /etc/group(5) hinzufügen. Die passwd-Datei enthält einige Information über die Benutzer auf Ihrem System, aber (komischerweise) nicht deren Passwörter. Dies war ursprünglich so aber wurde aus Sicherheitsgründen vor langer Zeit geändert. Die passwd-Datei muss für alle Benutzer lesbar sein aber Sie wollen die verschlüsselten Passwörter nicht für alle lesbar, denn Einbrecher können die verschlüsselten Passwörter als Startpunkt zum Entschlüsseln des Passworts eines Benutzers hernehmen. Stattdessen werden die verschlüsselten Passwörter in der shadow-Datei vorgehalten, die nur von root gelesen werden kann. Die Passwörter der Benutzer werden in der passwd-Datei einfach als "x" eingetragen. Die group-Datei listet alle Gruppen und wer sich in jeder befindet.

Sie können den Befehl vipw nutzen um die Datei /etc/passwd sicher zu bearbeiten und den Befehl vigr um die Datei /etc/group sicher zu bearbeiten. Nutzen Sie vipw -s zum sicheren Bearbeiten der Datei /etc/shadow. ("sicher" bedeutet in diese Kontext das niemand anders die Datei bearbeiten kann die Sie im Moment bearbeiten. Wenn Sie der einzige Administrator sind, dann sind sich wahrscheinlich sicher, aber es ist am besten es sich von vornherein richtig anzugewöhnen.)

Lassen Sie uns die Datei /etc/passwd begutachten und betrachten wie ein neuer Benutzer hinzugefügt wird. Ein typischer Eintrag in passwd schaut aus wie dieser:

chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash


Jede Zeile ist ein Eintrag für einen Benutzer und die Felder jeder Zeile werden von einem Doppelpunkt getrennt. Die Felder sind der Login Name, das verschlüsselte Passwort ("x" für jeden auf einem Slackware-System da Slackware shadow Passwörter nutzt), User ID, Group ID, die optionalen finger Informationen (mit Kommas getrennt), Home-Verzeichnis und Shell. Um einen Benutzer per Hand hinzuzufügen, fügen Sie eine neue Zeile am Ende der Datei ein und füllen Sie sie mit den entsprechenden Informationen.

Die Information die Sie einfügen muss einigen Bestimmungen entsprechen oder Ihr neuer Benutzer könnte Probleme beim Einloggen haben. Stellen Sie zunächst sicher das das Passwort-Feld ein x ist und das beide, der Benutzername und die User ID, einmalig sind. Weisen Sie dem Benutzer einer Gruppe zu. Entweder 100 (die Gruppe "users" in Slackware) oder Ihre Standardgruppe (verwenden Sie ihre Nummer und nicht ihren Namen). Geben Sie dem Benutzer ein gültiges Home-Verzeichnis (welches Sie später anlegen werden) und eie Shell (erinnern Sie sich daran das gültige Shells in /etc/shells gelistet sind).

Als nächstes werden wir einen Eintrag in die Datei /etc/shadow hinzufügen müssen welcher das verschlüsselte Passwort enthält. Ein typischer Eintrag sieht aus wie dieser:

chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::


Wieder ist jede Zeile ein Eintrag für eine Person mit Feldern die durch einen Doppelpunkt getrennt sind. Die Felder sind (der Reihe nach) Login Name, verschlüsseltes Passwort, Tage seit der Epoche (1. Januar 1970) die das Passwort nicht mehr geändert wurde, Tage nach denen das Passwort geändert werden darf, Tage nach denen das Passwort geändert werden muss, Tage die der Benutzer vor dem Ablaufen des Passworts gewarnt wird, Tage nach Ablauf des Passworts ab denen der Account gesperrt wird, Tage seit der Epoche die der Account gesperrt ist und ein reserviertes Feld.

Wie Sie sehen ist das meiste davon Information über das Auslaufen des Accounts. Wenn Sie keine Ablaufinformationen nutzen, müssen Sie nur ein paar Felder mit einigen speziellen Werten füllen. Andernfalls müssten Sie einige Berechnungen durchführen und Entscheidungen treffen bevor Sie diese Felder füllen können. Für einen neuen Benutzer fügen Sie einfach zufälligen Müll in das Passwort-Feld ein. Machen Sie sich keine Gedanken darüber was das Passwort jetzt ist denn Sie werden es in einer Minute ändern. Das einzige Zeichen das Sie nicht in das Passwort-Feld einfügen können ist der Doppelpunkt. Lassen Sie das "Tage die das Passwort nicht mehr geändert wurde"-Feld auch leer. Fügen Sie 0, 99999 und 7 einfch so ein wie Sie es im Beispiel-Eintrag senen und lassen Sie alle anderen Felder leer.

(Für diejenigen unter euch, die denken das sie mein verschlüsseltes Passwort oben sehen und glauben einen Schritt weiter zu sein um in mein System einzubrechen, ihr könnte es auch sparen. Wenn Sie das Passwort knacken können wissen Sie das Passwort für ein durch Firewall geschütztes Testsystem. Nun das ist hilfreich :) )

Alle normalen Benutzer sind Mitglieder der "users" Gruppe auf einem typischen Slackware-System. Wenn Sie allerdings eine neue Gruppe erzeugen oder einen neuen Benutzer zu weiteren Gruppen hinzufügen wollen, werden Sie die Datei /etc/group bearbeiten müssen. Hier ist ein typischer Eintrag:

cvs::102:chris,logan,david,root


Die Felder sind Gruppenname, Gruppenpasswort, Group ID und Gruppenmitglieder getrennt mit Kommas. Das Erzeugen einer neuen Gruppen entspricht dem einfachen Hinzufügen einer neuen Zeile mit einer eindeutigen Gruppen ID und Auflisten all der Benutzer die Sie in der Gruppe haben wollen. Alle Benutzer die in dieser neuen Gruppe sind und eingeoggt sind werden sich ausloggen und neu einloggen müssen das die Änderungen in Kraft treten.

An diesem Punkt könnte es eine gute Idee sein die pwck und grpck Befehle zu nutzen um die Änderungen, die Sie gemacht haben, auf Konsistenz zu prüfen. Verwenden Sie zunächst pwck -r und grpck -r. Der -r Parameter führt keine Änderungen durch aber listet die Änderungen auf nach denen Sie gefragt würden wenn Sie den Befehl ohne den Parameter aufrufen würden. Sie können diese Ausgabe nutzen um zu entscheiden ob Sie die Dateien weiter anpassen müssen, pwck oder grpck ohne -r Parameter ausführen oder einfach die Änderung lassen wie sie sind.

An diese Punkt sollten Sie den passwd Befehl nutzen um ein ordnetliches Passwort für den Benutzer zu erzeugen. Dann verwenden Sie mkdir um das Home-Verzeichnis des neuen Benutzers an der Stelle anzulegen die Sie in der /etc/passwd Datei angegeben haben und verwenden Sie chown um den Besitzer des neuen Verzeichnisses auf den neuen Benutzer festzulegen.

Das Entfernen eines Benutzers bedeutet einfach das Löschen aller Einträge die für diesen Benutzer existieren. Entfernen Sie den Eintrag des Benutzers aus /etc/passwd und /etc/shadow und entfernen Sie den Login Name aus allen Gruppen in der Datei /etc/group file. Wenn Sie wollen löschen Sie das Home-Verzeichnis des Benutzers, die Mail Spool Datei und seinen crontab Eintrag (wenn diese existieren).

Gruppen entfernen ist ähnlich: Entfernen Sie den Eintrag der Gruppe aus /etc/group.

bearbeiten

12.3 Richtig herunterfahren


Es ist sehr wichtig das Sie Ihr System richtig heruntefahren. Einfaches Ausschalten des Stroms über den Netzschalter kann erhebliche Beschädigungen im Dateisystem hervorrufen. Während das System läuft sind Dateien in Gebrauch auch wenn Sie nichts tun. Erinnern Sie sich daran das viele Prozesse immer im Hintergrund laufen. Diese Prozesse verwalten das System und halten eine Menge Dateien offen. Wenn der Strom des Systems abgestellt wird können diese Dateien nicht sauber geschlossen und dadurch zerstört werden. Abhängig davon was für Dateien zerstört werden kann das System dadurch komplett unbrauchbar werden! In allen Fällen müssen Sie beim nächsten Booten durch einen langen Dateisystemtest gehen

image
Wenn Sie ihr System mit einem journalling filesystem wie ext3 oder reiserfs erstellt haben sind sie teilweise vor Schäden am Dateisystem geschützt und Ihr Dateisystem-Check beim Reboot wird kürzer ausfallen als wenn Sie ein Dateisystem ohne journalling, wie ext2, verwendet hätten. Dennoch ist diese Sicherheit keine Entschuldigung für falsches Herunterfahren ihres Systems! Ein journalling FS ist dafür gedacht ihre Dateien von Ereignissen zu bewahren über die Sie keine Kontrolle haben und nicht von Ihrer eigenen Faulheit.

In jedem Fall in dem Sie Ihren Computer neu starten oder ausschalten wollen ist es wichtig dies richtig zu tun. Es gibt mehrere Wege dies zu tun; Sie können den auswählen der Ihnen am besten gefällt (oder der am wenigsten Arbeit macht). Da Herunterfahren und Neustarten ähnliche Dinge sind können die meisten Wege zum Herunterfahren des Systems auch zum Neustarten genutzt werden.

Der erste Weg ist das shutdown(8) Programm, und sie ist wahrscheinlich die bekannteste. shutdown kann genutzt werden um das System zu einer bestimmten Zeit neuzustarten oder auszuschalten und kann allen angemeldeten Benutzern eine Meldung zukommen lassen die ihnen mitteilt das das System heruntergefahren wird.

Der grundlegendste Anwendungfall für shutdown, um den Computer herunterzufahren, ist:

# shutdown -h now


In diesem Fall senden wir keine angepasste Meldung an die Benutzer. Sie werden die Standard Nachricht von shutdown sehen. "now" ist die Zeit zu der wir herunterfahren wollen und das "-h" steht für das Herunterfahren des Sytems. Dies ist kein sehr freundlicher Weg beim Verwalten eines Mehrbenutzersystems, aber es funktioniert gut auf Ihrem Heimcomputer. Eine bessere Methode auf einem Mehrbenutzersystem wäre jedem eine kurze Vorwarnung zu geben:

# shutdown -h +60


Dies würde das System in einer Stunde (60 Minuten) herunterfahren was für ein normales Mehrbenutzersystem in Ordnung wäre. Für kritische Systeme sollte die Ausfallzeit weit im Voraus geplant werden und Sie sollten die Warnungen über die Ausfallzeit über alle für Systemmitteilungen geeigneten Informationswege veröffentlichen (E-Mail, schwarzes Brett, /etc/motd, was auch immer).

Für das Neustarten des Systems verwenden Sie den gleichen Befehl aber ersetzen "-h" mit "-r":

# shutdown -r now


Sie können bei shutdown -r die gleiche Schreibweise für die Zeitangabe nutzen, die Sie auch für shutdown -h nutzen. Es gibt noch viele weitere Möglichkeiten, um mit shutdown zu beeinflussen, wann eine Maschine heruntergefahren oder neugstartet werden soll. Sehen Sie für weitere Details in die man-Page.

Der zweite Weg um herunterzufahren oder den Rechner auszuschalten ist der Gebrauch der Befehle halt(8) und reboot(8). Wie der Name schon andeutet wird halt umgehend das Betriebssystem anhalten und reboot wird das System neustarten. (reboot ist in Wirklichkeit nur ein symbolischer Link auf halt). Sie werden wie Folgt aufgerufen:

# halt
# reboot


Ein Weg zum neustarten und herunterfahren auf niedrigerer Ebene ist das direkte Sprechen mit init. Alle anderen Methoden sind einfach bequemere Möglichkeiten um mit init zu sprechen aber Sie können ihm direkt sagen was zu tun ist wenn Sie telinit(8) nutzen (beachten Sie das es nur ein "l" hat). Mit telinit können Sie init mitteilen in welchen Runlevel es wechseln soll was dafür sorgt das ein spezielles Skript aufgerufen wird. Dieses Skript wird Prozesse so abbrechen oder starten wie es für den entsprechenden runlevel gebraucht wird. Dies funktioniert für Neustarten und Herunterfahren, denn beide sind spezielle Runlevels.

# telinit 0


Runlevel 0 ist der Haltemodus. Wenn Sie init sagen das es in Runlevel 0 wechseln soll sorgt dafür das alle Prozesse abgebrochen, die Dateisysteme ungemountet und die Maschine angehalten wird. Dies ist ein akzeptabler Weg das System herunterzufahren. Auf vielen laptops und modernen Desktoprechnern wird dies auch dafür sorgen das die Maschine ausgeschaltet wird.

# telinit 6


Runlevel 6 ist der Neutart-Modus. Alle Prozesse werden abgebrochen, das Dateisystem ungemountet und die Maschine wird neu gebootet. Dies ist ein akzeptabler Weg um das System neu zu booten.

Für die Neugierigen: Wenn Sie zu Runlevel 0 oder 6 wechseln, je nachdem ob Sie shutdown, halt oder reboot nutzen, wird das Skript /etc/rc.d/rc.6 ausgeführt. (Das Skript /etc/rc.d/rc.0 ist noch ein symbolischer Link der auf /etc/rc.d/rc.6 zeigt). Sie können diese Datei nach Ihrem Geschmack anpassen--aber stellen Sie sicher das Ihre Änderungen gründlich geprüft werden!

Es gibt eine letzte Methode um das System neuzustarten. All die anderen Methoden erforden, dass Sie als root eingeloggt sind. Allerdings ist es auch möglich die Maschine neuzustarten ohne root zu sein, vorausgesetzt Sie haben physikalischen Zugriff auf eine Tastatur. Die Tastenkombination Strg+Alt+Entf (der "Affengriff") sorgt dafür das die Maschine umgehend neugestartet wird. (Im Hintergrund wird der shutdown-Befehl ausgeführt, wenn Sie Strg+Alt+Entf benutzen). Der Affengriff funktioniert nicht immer wenn Sie sich in einem X Fenster befinden--es könnte sein, dass Sie erst Strg+Alt+F1 (oder eine andere Funktionstaste) nutzen müssen, um auf ein nicht-X Terminal zu wechseln, bevor Sie ihn nutzen können.

Die Datei die letztendlich jeden Aspekt des Hoch- und Herunterfahrens kontrolliert ist die Datei /etc/inittab(5). Im Allgemeinen sollten Sie diese Datei nicht bearbeiten müssen, aber Sie kann Ihnen mehr Einblick darüber geben warum mache dinge so funktionieren wie sie funktionieren. Wie immer sollten Sie für weiteren Details in die man Pages schauen.

bearbeiten

13 Grundlegende Netzwerkbefehle


Ein Netzwerk besteht aus mehreren miteinander verbundenen Computern. Ein Netzwerk kann ganz einfach aus einem paar miteinander vebundenen Computern bei dir Zuhause oder im Büro bestehen, oder so kompliziert sein, wie ein großes Uni-Netzwerk oder sogar das ganze Internet. Wenn ihr Computer Teil eines Netzwerkes ist, dann haben Sie entweder direkten Zugriff auf diese Systeme oder Sie haben Zugriff über Dienste wie Mail und Web.

Es gibt eine Vielzahl von Netzwerkprogrammen, die man benutzen kann. Einige sind nützlich um zu überprüfen, ob alles korrekt funktioniert. Andere ( zB. Mailreader und Webbrowser) sind nützlich um die Arbeit erledigt zu kriegen und mit anderen Menschen in Kontakt zu bleiben.

13.1 ping


ping(8) sendet ein ICMP ECHO_REQUEST Packet zu einem bestimmten Host. Wenn der Host antwortet, kriegen Sie ein ICMP Packet zurück. Hört sich seltsam an? Nun, Sie können eine IP-Adresse "anpingen" um zu prüfen, ob eine Maschine lebt. Wenn Sie keine Antwort bekommen, wissen Sie, das etwas nicht stimmt. Hier ist eine beispielhafte Konversation zwischen zwei Linux - Benutzern:
User A: Lokis ist schon wieder down.
User B: Bist du sicher?
User A: Ja, ich hab versucht zu pingen, aber keine Antwort bekommen.

Es sind Beispiele wie dieses, die den Ping Befehl zu einem sehr nützlichen Befehl machen. Er bietet eine schnelle Möglichkeit zu prüfen, ob eine Maschine läuft und mit dem Netzwerk verbunden ist.
Die grundlegende Syntax ist:

% ping www.slackware.com


Es gibt natürlich mehrere Optionen, die angegeben werden können. Für mehr Informationen, schauen Sie sich die ping(1) manpage an.

bearbeiten

13.2 traceroute


Slackwares traceroute(8) Befehl ist ein sehr nützliches Netzwerkdiagnoseprogramm. traceroute zeigt jeden Host, über den ein Packet reist wenn es versucht sein Ziel zu erreichen. Sie können mit diesem Kommando sehen, wie viele "Hops" Sie von der Slackware Seite entfernt sind:

% traceroute www.slackware.com


Jeder Host wird dargestellt, ebenso wie die Antwortzeiten für jeden Host. Hier ist ein Beispiel:

% traceroute www.slackware.com
traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets
1  zuul.tdn (192.168.1.1)  0.409 ms  1.032 ms  0.303 ms
2  207.171.227.254 (207.171.227.254)  18.218 ms  32.873 ms  32.433 ms
3  border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms
4  pb-nap.crl.net (198.32.128.20)  20.741 ms  23.672 ms  21.378 ms
5  E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms
6  T1-CDROM-00-EX.US.CRL.NET (165.113.118.2)  24.544 ms  42.955 ms 58.443 ms
7  www.slackware.com (204.216.27.13)  38.115 ms  53.033 ms  48.328 ms


traceroute ist ähnlich wie ping, es nutzt auch ICMP-Packete. Es gibt mehrere Optionen, die Sie bei traceroute angeben können. Diese Optionen sind in der manpage detailiert erklärt.

bearbeiten

13.3 DNS Tools


Domain Name Service (kurz DNS) ist das magische Protokoll, das es Ihrem Computer erlaubt bedeutungslose Domainnamen wie www.slackware.com in bedeutungsvolle IP-Adressen wie 64.57.102.34 umzuwandeln. Computer können ein Packet nicht nach www.slackware.com leiten, aber sie können Packete zu der IP-Adresse der Domäne senden. Das gibt uns einen einfachen Weg uns an Maschinen zu erinnern. Ohne DNS müssten wir eine geistige Datenbank führen, welche IP-Adresse gehört zu welchem Computer und das setzt vorraus, das sich die IP-Adresse nicht ändert. Offentsichtlich ist es besser Namen für Computer zu benutzen, aber wie verbinden wir Namen mit IP-Adressen?

13.3.1 host


host(1) kann das für uns erledigen. host wird benutzt um Namen IP-Adressen zuzuordnen. Es ist ein sehr schnelles und einfaches Hilfsprogramm ohne viele Funktionen.

% host www.slackware.com
www.slackware.com is an alias for slackware.com.
slackware.com has address 64.57.102.34


Aber was ist gesetzt den Fall, das wir eine IP-Adresse einem Domainnamen zuordnen wollen, was dann?

13.3.2 nslookup


nslookup ist ein durchgetestetes Programm, das wirklich in die Jahre gekommen ist. nslookup wurde abgelehnt und könnte von zukünftigen Releases entfernt werden. Es gibt noch nicht einmal eine manpage für dieses Programm.

% nslookup 64.57.102.34
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         192.168.1.254
Address:        192.168.1.254#53

Non-authoritative answer:
www.slackware.com       canonical name = slackware.com.
Name:   slackware.com
Address: 64.57.102.34


13.3.3 dig


Der härteste Knochen in der Runde der domain information groper, kurz dig(1), ist das Programm um DNS Informationen zu finden. dig kann annähernd alles von einem DNS-Server ausgraben, einschließlich Rückwärtssuchen, A, CNAME, MX, SP und TXT Einträgen. dig hat viele Kommandozeilen Optionen und wenn Sie damit nicht vertraut sind, sollten Sie sich seine umfangreiche manpage durchlesen.

% dig @192.168.1.254 www.slackware.com mx

; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.slackware.com.             IN      MX

;; ANSWER SECTION:
www.slackware.com.      76634   IN      CNAME   slackware.com.
slackware.com.          86400   IN      MX      1 mail.slackware.com.

;; AUTHORITY SECTION:
slackware.com.          86400   IN      NS      ns1.cwo.com.
slackware.com.          86400   IN      NS      ns2.cwo.com.

;; ADDITIONAL SECTION:
ns1.cwo.com.            163033  IN      A       64.57.100.2
ns2.cwo.com.            163033  IN      A       64.57.100.3

;; Query time: 149 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Sat Nov  6 16:59:31 2004
;; MSG SIZE  rcvd: 159


Das sollte Ihnen zeigen, wie dig arbeitet. "@192.168.1.254" gibt den DNS-Server an, der benutzt werden soll. "www.slackware.com" ist der Domainname, auf den ich eine Abfrage mache und "mx" ist die Art der Abfrage, die ich durchführe. Die obige Anfrage sagt mir, das EMail an www.slackware.com stattdessen an mail.slackware.com gesendet wird.

bearbeiten

13.4 finger


finger(1) bezieht Informationen über einen bestimmten Benutzer. Wenn Sie finger einen Benutzername oder eine Emailadresse geben, wird es versuchen, den entsprechenden Server zu kontaktieren und Benutzername, Büro, Telefonnummer und andere Informationen zu beziehen. Hier ist ein Beispiel:

% finger johnc@idsoftware.com


finger kann Benutzername, Mail Status, Telephonenummer und Dateien, die mit "dot plan" und "dot projekt" angegeben sind, zurückgeben. Natürlich variieren die zurückgegebenen Informationen mit jedem Fingerserver. Der, der bei Slackware dabei ist, gibt standardmässig die folgenden Informationen zurück:

Die ersten vier Einträge können mit dem chfn Befehl geändert werden. Er speichert sie in der Datei /etc/passwd. Um die Informationen in Ihrer .plan oder .project Datei zu ändern, müssen Sie diese nur mit Ihrem Liblingseditor bearbeiten. Sie müssen in Ihrem home-Ordner liegen und .plan und .project heißen.

Viele Benutzer benutzen finger von einem Remotesystem auf ihren eigenen Zugang um schnell nachzusehen, ob sie neue Emials haben. Oder Sie können sich den gegenwärtigen plan oder das gegenwärtige Projekt eines Benutzers ansehen.

Wie viele Befehle hat finger Optionen. Sehen sie sich die manpage an um weitere Infomationen darüber zu erhalten, welche besonderen Optionen Sie benutzen können.

bearbeiten

13.5 telnet


Jemand hat mal gesagt, das telnet(1) das beste sei, das er je auf einem Computer gesehen hat. Die Möglichkeit sich aus der Ferne anzumelden und Sachen auf einem anderen Computer zu machen, unterscheidet Unix und Unix-ähnliche Betriebssysteme von anderen Betriebssystemen.

telnet erlaubt es Ihnen sich an einem Computer anzumelden, als würden Sie direkt an dem terminal sitzen. Sobald Ihr Benutzername und Kennwort verifiziert sind, erhalten sie einen Shellprompt. Ab jetzt können Sie alles ausführen, was eine Textkonsole benötigt. EMails verfassen, newsgroups lesen, Dateien hin und her verschieben und so weiter. Wenn Sie X laufen haben, können sie telnet ausführen und X-Programme auf dem entfernten Rechner ausführen und auf ihrem Bildschirm darstellen lassen.

Um sich auf einer entfernten Maschine anzumelden, verwenden Sie diese Syntax:

% telnet <hostname>


Wenn der Host antwortet, erhalten Sie einen Loginprompt. Geben Sie Ihren Benutzernamen und Passwort ein. Das wars. Jetzt sind sie auf der Kommandozeile. Um Ihre Telnetsitzung zu beenden, können sie entweder exit oder logout verwenden.

image
telnet verschlüsselt die gesendeten Informationen nicht. Alles wird im Klartext gesendet, sogar Passwörter. Es ist nicht ratsam telnet im Internet zu verwenden. Überlegen Sie sich statdessen secure shell zu verwenden. Es verschlüsselt jeglichen Verkehr und ist frei erhältlich.

13.5.1 Das andere Anwendungsgebiet von telnet


Jetzt da wir Sie davon überzeugt haben, das Telnetprotokoll nicht mehr zu verwenden um sich an einem entfernten Rechner anzumelden, werden wir Ihnen ein paar Möglichkeiten zeigen, telnet sinnvoll zu verwenden.

Sie können den telnet Befehl auch dazu verwenden, sich auf einen bestimmten Port eines Hostes zu verbinden.

% telnet <hostname> [port]


das kann sehr nützlich sein, wenn Sie schnell einen bestimmten Dienst testen müssen, und Sie volle Kontrolle über die Befehle brauchen, und Sie genau sehen müssen was passiert. Sie können so interaktiv einen SMTP-, einen POP3-, einen HTTP-Server und so weiter testen oder benutzen.

In der nächsten Abbildung werden Sie sehen, wie Sie telnet mit einem HTTP-Server auf Port 80 verwenden und einige grundlegende Informatioen beziehen können.

Abbildung 13-1. Telnet auf einen Webserver


% telnet store.slackware.com 80
Trying 69.50.233.153...
Connected to store.slackware.com.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 25 Apr 2005 20:47:01 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
ETag: "193424-c0-3e9fda6e"
Accept-Ranges: bytes
Content-Length: 192
Connection: close
Content-Type: text/html

Connection closed by foreign host.
%


Das gleiche können Sie für andere Klartextprotokolle machen, solange Sie wissen, auf welchen Port Sie sich verbinden müssen, und was die Befehle sind.

bearbeiten

13.6 Die Secure shell


Heute genießt die secure shell die Bewunderung die telnet einst genossen hat. ssh(1) erlaubt Ihnen eine Verbindung zu einem entfernten Computer herzustellen und Programme auszuführen, als wäre Sie selbst dort, wie auch immer ssh verschlüsselt alle Daten, die zwischen den beiden Rechnern ausgetauscht werden, so das andere selbst wenn sie die Konversation stören diese nicht verstehen können. Eine typische secure shell Verbindung folgt.

% ssh carrier.lizella.net -l alan
The authenticity of host 'carrier.lizella.net (192.168.1.253)' can't be
established.
RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'carrier.lizella.net' (RSA) to the list of
known hosts.
Password: password
Last login: Sat Nov  6 16:32:19 2004 from 192.168.1.102
Linux 2.4.26-smp.
alan@carrier:~$ ls -l MANIFEST
-rw-r--r--  1 alan users 23545276 2004-10-28 20:04 MANIFEST
alan@carrier:~$ exit
logout
Connection to carrier.lizella.net closed.


Hier sehen Sie mich eine sichere Verbindung zu carrier.lizella.net aufbauen und die Berechtigungen der Datei Manifest prüfen.

bearbeiten

13.7 E-Mail


Elektronische Post ist eines der bekannstesten Dinge, die man mit dem Internet tun kann. 1998 wurde gemeldet, das mehr elektronische Post versandt wurd als normale Post. Es ist in der Tat gewöhnlich und nützlich.

Unter Slackware stellen wir einen Standard Mail Server bereit und mehrere Mail Clients. Alle unten stehende Clients sind textbasierend. Viele Windowsbenutzer mögen dagegen sein, aber Sie werden feststellen, das ein textbasierter Mailclient sehr nützlich ist, besonders, wenn Sie Mails aus der Ferne prüfen. Haben Sie keine Angst, es gibt viel grafische Mailclients, wie KDE's Kmail. Wenn Sie einen verwenden möchten, sehen Sie sich sein Hilfe-Menü an.

13.7.1 pine


pine(1) ist nicht elm. Oder so sagt man. Die Universität von Washington hat ihr Programm für Internet News und Mail aus der Nötogkeit herraus gemacht einen einfachen Mailreader für ihre Studenten zu haben. pine ist heute eins der beliebtesten Emailclients und ist für fast jeden Geschmack an Unix und sogar Windows zu haben.

Figure 13-2. Das pine Menü


image

Sie werden ein Menü mit Befehlen und eine Reihe von Befehlstasten unten sehen. pine ist wirklich ein komplexes Programm, also werden wir hier nicht jedes einzelne Feature diskutieren.

Um zu sehen was in Ihrem Posteingang ist drücken Sie i. Ihre Nachrichten sind dort mit ihrem Datum, Author und Betreff aufgelistet. Markieren Sie die Nachricht, die Sie wollen, und drücken Sie enter um Sie sich anzusehen. r drücken wird eine Antwort auf die Nachricht beginnen. Sobald Sie ihre Antwort verfasst haben, drücken Sie Ctrl+X um Sie zu senden. Sie können i drücken um zu der Nachrichtenauflistung zurückzukehren.

Wenn Sie eine NAchricht löschen wollen, drücken Sie d. Es wird die markierte Nachricht zum Löschen kennzeichnen. pine löscht Mails, wenn Sie das Programm verlassen. pine lässt Sie ihre Mails auch in Ordnern speichern. Sie kriegen eine Auflistung mit Ordnern, wenn Sie l drücken. In der Nachrichtenauflistung drücken Sie s um sie in einem anderen Ordner zu speichern. Es wird Sie nach dem Namen des Ordners fragen, in den die Mail gespeichert werden soll.

pine bietet viele, viele Möglichkeiten, Sie sollten sich definitiv die manpage ansehen um mehr Informationen zu erhalten. Sie wird die neusten Informationen über das Programm enthalten.

13.7.2 elm


elm(1) ist ein weiterer beliebter textbasierter Mailclient. Obwohl er nicht ganz so benutzerfreundlich ist wie pine gibt es ihn defintiv viel länger.

image

Standardmässig landen Sie im Posteingang. Die Nachrichten werden mit Nachrichtennummer, Datum, Absender und Betreff aufgelistet. Benutzen Sie die Pfeiltasten um die Nachricht zu markieren, die Sie lesen wollen. Drücken Sie Enter um die Nachricht zu lesen.

Um eine neue Nachricht zu verfassen, drücken Sie m auf dem Hauptbildschirm. Die d-Taste markiert eine Nachricht zum Löschen. Und die r -Taste antwortet auf die Mail die Sie gegenwärtig am Lesen sind. Alle diese Tasten werden am unteren Bildschrimrand mit einer Eingabezeile dargestellt.

13.7.3 mutt


"All mail clients suck. This one just sucks less" - "Alle Mailclients sind schlecht. Dieser hier ist nur weniger schlecht." mutt's ursprüngliche Benutzerschnittstelle basierte auf elm mit ein paar zusätzlichen Features aus anderen beliebten Mailclients - das Ergebnis war ein hybrider mutt.

Einige Features, die mutt beinhaltet:

Abbildung 13-4. Mutt Hauptbildschrim


image

Wenn Sie einen Mailclient suchen, der Ihnen komplette Kontrolle über alles gibt, werden Sie mutt mögen. Alle Standardeinstellungen können angepasst werden, alle Tastaturbelegungen verändert werden. Wenn Sie ein Makro hinzufügen wollen, können Sie das.

Wahrscheinlich möchten Sie sich die muttrc manpage ansehen, die Ihnen sagen wird, wie Sie alles einstellen. Oder schauen Sie sich die mitgelieferte muttrc Beispieldatei an.

13.7.4 nail


nail(1) ist ein kommandozeilengesteuerter Mailclient. Er ist sehr primitiv und bietet ziemlich nichts in der Art einer Benutzerschnittstelle. Wie auch immer, mailx ist nützlich, wenn Sie schnell etwas mailen müssen, den Hauptteil eines Mailers scripten, ihre MTAinstallation testen oder etwas in dieser Art. Anmerkung: Slackware erstellt symbolische Links auf nail in /usr/bin/mail und /usr/bin/mailx. Jeder dieser drei Befehle führt das selbe Programm aus. Im Klartext: Sie werden wahrscheinlich nail als mail ansehen.

Die grundsätzliche Befehlszeile ist:

% mailx <subject> <to-addr>


mailx ließt die Nachricht vom Standard input. Also können Sie eine Textdatei mit cat in diesen Befehl leiten um ihn zu mailen oder Sie können einfach nur den Text schreiben und Ctrl+D drücken, wenn Sie mit der Nachricht fertig sind.

Hier ist ein Beispiel um einen Programmcode an eine andere Person zu mailen.

% cat randomfunc.c | mail -s "Here's that function" asdf@example.net


Die manpage erklärt wahrscheinlich einiges mehr, was nail tun kann, also werden Sie sich diese wahrscheinlich ansehen wollen, bevor Sie es nutzen.

bearbeiten

13.8 Browser


Das erste was die Leute denken, wenn sie das Wort Internet hören ist "Durchs Netz surfen". Oder sich mit einem Webbrowser eine Webseite ansehen. Das it wahrscheinlich, die bei weitem bekannteste Anwendung des Internets für den durchschnittlichen Benutzer.

Slackware stellt graphische Webbrowser in der "xap" Serie bereit, genauso wie textbasierde Browser in der "N" Serie. Nachfolgend werfen wir einen kurzen Blick auf die gebräuchlisten Optionen.

13.8.1 lynx


lynx(1) ist ein textbasierter Webbrowser. Es ist ein sehr schneller Weg etwas im Internet nachzuschlagen. Manchmal ist Graphik einfach nur im Weg, wenn Sie wissen was Sie suchen.

Um lynx zu starten, tippen sie einfach lynx auf der Kommandozeile ein.

% lynx


Abbildung 13-5. Lynx Standard Startseite
image

Vielleicht möchten Sie eine Seite angeben, die lynx öffnen soll:

% lynx http://www.slackware.com


lynx zeigt die Befehlstasten und was sie machen am unteren Bildschirmrand. Mit den hoch und runter Tasten bewegt man sich im Dokument, Enter wählt den markierten Link aus und die linke Pfeiltaste geht zur vorherigen Seite zurück. Ein Druck auf d wird die gegenwärtig markierte Datei herunterladen. g öffnet den GO Prompt, mit dem Sie lynx eine URL zum öffnen angeben können.

Es gibt viele andere Befehle in lynx. Sie können entweder die manpage zu Rate ziehen, oder h eingeben, um zu dem Hilfe Bildschirm zu gelangen und weitere Informationen zu erhalten.


Genau wie lynx ist links ein textbasierter Browser, in dem Sie die ganze Navigation mit der Tastatur machen. Wie auch immer, wenn Sie die esc Taste drücken wird sich ein nützliches Pulldownmenü am oberen Bildschirmrand öffnen. Das macht ihn sehr einfach zu benutzen, ohne das man die ganzen Tastenkürzle lernen muss. Leute die nicht jeden Tag einen textbasierten Browser benutzen werden dieses Feature begrüßen.

links scheint, verglichen mit lynx, eine besserer Unterstützung für Frames und Tabellen zu haben.

Abbildung 13-6. Links, mit geöffnetem Dateimenü
image

13.8.3 wget


wget(1) ist ein Kommandozeilenprogramm, das Dateien von einer angegebenen Adresse herunterlädt. Obwohl es im eigentlichen Sinn kein Wbbrowser ist, wird wget überwiegend dazu benutzt Webseiten ganz oder teilweise herunterzuladen, um sie Offline anzusehen, oder um schnell eine einzelene Datei von einem HTTP oder FTP-Server herunterzuladen. Die grundlegende Syntax ist:

% wget <url>


Sie können auch Optionen mitgeben. Das, zum Beispiel, lädt die Slackware Seite herunter:

% wget --recursive http://www.slackware.com


wget legt einen www.slackware.com Ordner an und speichert die Dateien dort, genau wie die Seite es macht.

wget kann auch Dateien von FTP Seiten herunterladen, Sie müssen nur statt einer HTTP Adresse eine FTP Adresse angeben.

% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
--12:18:16--  ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
	       => `wget-1.8.2.tar.gz'
Resolving ftp.gnu.org... done.
Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.   ==> PWD ... done.
==> TYPE I ... done. ==> CWD /gnu/wget ... done.
==> PORT ... done.   ==> RETR wget-1.8.2.tar.gz ... done.
Length: 1,154,648 (unauthoritative)

100%[==================================>] 1,154,648     209.55K/s    ETA 00:00

12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]


wget hat viel mehr Optionen, die es geeignet für Seiten spezifische Skripte machen (Webseitenspiegelung und so weiter). Um weitere Informationen zu erhalten, sollte Sie sich die manpage ansehen.

bearbeiten

13.9 FTP Clients



FTP steht für File Transfer Protocol. Es erlaubt es Ihnen, Dateien zwischen zwei Computern zu empfangen und zu senden. Es gibt einen FTP Server und einen FTP Client. Wir diskutieren in diesem Kapitel den Client.

Für die Neugierigen: Der "Client" sind Sie. Der "Server" ist ein Computer der Ihre FTP Anfrage beantwortet und Ihren Login zulässt. Sie werden Dateien zum Server hoch- und runterladen. Der Client kann keine FTP Verbindungen annehmen, er kann nur an Server verbinden.

13.9.1 ftp



Um sich zu einem FTP Server zu verbinden, geben Sie einfach den ftp(1) Befehl ein und geben Sie den Host an:

% ftp <hostname> [port]


Wenn auf dem Host ein FTP Server läuft, wird er Sie nach Benutznamen und Passwort fragen. Sie können sich als Sie selbst oder als "anonymous" anmelden. Anonyme FTP Seiten sind sehr beliebt als Software Archive. Um zum Beispiel Slackware Linux via FTP zu erhalten, müssen Sie einen anonymen FTP benutzen.

Einmal verbunden, landen Sie auf dem ftp> prompt. Es gibt spezielle Befehle für FTP, aber sie sind den Standardbefehlen ähnlich. Im folgenden werden einige grundlegende FTP Befehle vorgestellt und erklärt:

Tabelle 13-1. ftp Befehle

Befehl Zweck
ls Dateien auflisten
cd <Verzeichnisname> Verzeichnis wechseln
bin binären Übertragungsmodus setzen
ascii Ascii Übertragungsmodus setzen
get <Dateiname> Datei herunterladen
put <Dateiname> Datei hochladen
hash Fortschrittsindikator an/ausschalten
tick Bytezähler an/ausschalten
prom Interaktiver Modus für Downloads an/ausschalten
mget <Maske> Eine Datei oder Gruppe von Dateien herunterladen, Jokerzeichen sind erlaubt
mput <Maske> Eine Datei oder Gruppe von Dateien hochladen, Jokerzeichen sind erlaubt
quit Vom FTP Server abmelden


Außerdem können Sie einige der folgenden Befehle verwenden, die ziemlich selbsterklärend sind: chmod, delete, rename, rmdir. Um eine komplette Übersicht aller Befehle mit ihrer Bedeutung zu erhalten, geben Sie einfach help oder ? ein und Sie sehen eine komplette Auflistung auf dem Bildschirm.

FTP ist ein recht einfaches Programm zum benutzen, aber es fehlt ihm eine Benutzerschnittstelle, die viele von uns heutzutage gewöhnt sind. Die man page diskutiert eine Kommandozeilenoptionen für ftp(1).

ftp  ls *.TXT
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
-rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
-rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
-rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
-rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
-rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
-rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
-rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
-rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
-rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
226 Transfer complete.
ftp>  tick 
Tick counter printing on (10240 bytes/tick increment).
ftp>  get README81.TXT 
local: README81.TXT remote: README81.TXT
200 PORT command successful.
150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
Bytes transferred: 12339
226 Transfer complete.
12339 bytes received in 0.208 secs (58 Kbytes/sec)


13.9.2 ncftp



bearbeiten

13.10 Mit anderen Leuten Unterhalten


13.10.1 wall


13.10.2 talk


13.10.3 ytalk



bearbeiten

14 Sicherheit


Für jedes System ist die Sicherheit von Bedeutung; Angriffen von Aussen vorzubeugen, sowie
vertrauliche Daten zu sichern versuchen. Dieses Kapitel beschreibt nun insgesamt, wie ein Slackware -
System anfänglich gegen "script kiddies, "cracker" und "rogue hamsters", ( was soviel wie
Fälscher oder Gaunerhamster heißt ) zu sichern ist. Bitte behalten Sie in der Überlegung, dass es
hier um den Anfang einer Sicherung des Systems geht; Sicherheit ist im Fortschritt begriffen, kein
Zustand ansich.

14.1 Dienste deaktivieren


Nach der Installation Slackwares sollte der erste Schritt das Abschalten nicht benötigter
Dienste beinhalten. Jeder laufende "Service" Dienst beinhaltet ein Sicherheitsrisiko, wo es nun
angezeigt scheint, so wenige Dienste wie eben nötig, nur solche die auch unbedingt gebraucht
werden, in Stand zu setzen, zu aktivieren.
Services, Dienste starten hauptsächlich von zwei Ausgangspunkten im System, '- inetd' und 'init-scripts'.

14.1.1 Dienste die von inetd gestartet werden


Viele der Daemonen ( "dienstbarer Geister" ), die mit Slackware ausgeliefert werden laufen als 'inetd(8),
'inetd' ist ein Daemon, der über alle Tore ( ports ) wacht, derer Dienstleistungen zusammenführt, startet und
einen Verbindungsaufbau des betreffenden Daemon herstellt. Daemonen die von 'inetd' gestartet sind,
können gesperrt werden, mittels Auskommentierens der betreffenden Zeilen in '/etc/inetd.conf'.
In der Praxis öffnen sie die Datei 'inetd.conf' mit einem Editor ihrer Wahl ( z.b. vi ), wo sie dann folgende
Zeilen, ähnlich wie dieser sehen sollten:

telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd


Um nun diesen Dienst / Daemon, und in Folge auch jeden Anderen zu sperren, auszukommentieren,
stellen sie in der betreffenden Zeile das Raute # Zeichen vorweg. Die oben genannte Zeile sehe dann
wie folgt aus:

#telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd


Wenn nun 'inetd' neu gestartet wird ist der Dienst gesperrt. Der Start ( restart ) kann mit folgender
Eingabe auf der Kommandozeile bewerkstelligt werden:

# kill -HUP $(cat /var/run/inetd.pid)


14.1.2 Dienste die von Init Skripten gestartet werden


Die übrigen Dienste welche gestartet werden, wenn der Rechner hochfährt, sind diejenigen
genannter 'init scripts', im Verzeichnis '/etc/rc.d/'. Diese nun können auf zweierlei Weise gesperrt werden,
einmal indem man dem gewünschten Skript das Ausführungsrecht nimmt, oder die entsprechenden
Zeilen im jeweiligen Skript auskommentiert.
Zum Beispiel wird 'SSH' durch ein eigenes Skript als 'etc/rc.d/rc.sshd' gestartet. Brauche ich diesen Dienst
nicht, dient folgende Anweisung:

# chmod -x /etc/rc.d/rc.sshd


Der Services die kein eigenes Skript mitbringen können entsprechender Zeilen in den 'init' Skripten
auskommentiert werden.
Zum Beispiel wird der 'portmap' Daemon über folgende Zeilen in der 'etc/rc.d/rc.inet2' gestartet:

#This must be running in order to mount NFS volumes.
# Start the RPC portmapper:
if [ -x /sbin/rpc.portmap ]; then
  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
  /sbin/rpc.portmap
fi
# Done starting the RPC portmapper.


Dieser kann nun durch ein Voranstellen des # Raute Zeichen in den jeweiligen Zeilen gestoppt werden:

# This must be running in order to mount NFS volumes.
# Start the RPC portmapper:
#if [ -x /sbin/rpc.portmap ]; then
#  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
#  /sbin/rpc.portmap
#fi
# Done starting the RPC portmapper.


Diese Veränderungen tragen erst nach einem Neustart, oder einem Wechsel von oder
zu 'runlevel', der Startvorgabe 3 oder 4 ihre Wirkung. Bewerkstelligt kann dieses
durch folgende Eintragungen in der Konsole werden, (nach den Änderungen ist ein erneutes einloggen
in den 'runlevel' 1 erforderlich.)

# telinit 1
# telinit 3


bearbeiten

14.2 Host Zugriffskontrolle


14.2.1 iptables


'iptables' ist ein Packet filterndes Konfigurationsprogram für Linux 2.4 und darüber. Der 2.4 Kernel (2.4.5, um
genau zu sein) war zuerst in Slackware in der Version 8.0 vorhanden und wurde dann später der Standard
in Slackware 8.1. Dieser Sachverhalt bezieht sich lediglich auf die Grundinhalte und deren Gebrauch für nähere
Informationen sollte ein Blick auf folgende Seite http://www.netfilter.org/ von Vorteil sein.
Dererlei Eingaben in '/etc/rc.d/rc.firewall' werden als ausführbar gesetzt, um beim nächsten Start wirksam zu sein.
Zu beachten ist, das inkorrekt eingegebene 'iptables' Kommandos den betreffenden 'user', Anwender von seinem
Arbeitsplatz ausschließen können. Sind sie nicht so 100% von ihren Kentnissen überzeugt, stellen sie besser
sicher, daß sie einen direkten Zugang zum Rechner behalten.
Was es für die meisten von uns zunächst für richtig erscheinen läßt alle ankommenden Verbindungen
vorerst auszuschließen.

# iptables -P INPUT DROP
# iptables -P FORWARD DROP


Ist erst einmal alles unterbunden, kann es an den Aufbau einzelner Verbindungen gehen. Hier nun scheint es
angezeigt die Verbindungen zu erlauben die bereits etabliert, hergestellt sind:

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Das es zu keinen Funktionsstörungen derer Inhalte kommt, die der Loopback Adresse benötigen, scheint
es sinnvoll die Regel wie folgt zu formulieren:

# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT


Dieser Art gestatten es jeglicher Verbindung von und zu 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) der 'loopback' (lo)
Schnittstelle. Bei dem Entwerfen von Regeln kann es nicht schaden, so genau wie nur möglich zu sein, um nicht
unbeabsichtigt das Falsche zu veranlassen. Will sagen, dass Regeln die zu wenig erlauben letztlich mehr Aufwand
bedeuten können.
Der nächste Schritt den es zu tuen gilt ist einen Zugang zu bestimmten Diensten herzustellen. Als Beispiel sei hier an-
geführt, daß wenn sie beabsichtigen einen eigenen Web-Server aufzulegen,
eine Regel ähnlich wie dieser erstellt werden könnte.

# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT


Dieses ermöglicht dann den Zugang eines jeden Rechners auf Port 80 mittels der Schnittstelle 'ppp0'.
Wenn sie es wünschen kann der Zugang zu diesem Dienst auch eingeschränkt werden, indem nur bestimmte
Rechner darauf zugreifen können.
Diese Ausnahme (z.b) erlaubt einen Zugang auf ihren Web-Server nur der IP-Adresse 64.57.102.34:

# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT


Einen ICMP Verkehr zu Testzwecken einrichten:

# iptables -A INPUT -p icmp -j ACCEPT


Um ihren Web-Server für andere zugänglich zu machen ist es ratsam die IP-Adresse in einen Namen umzuwandeln (s. NAT).
Hierzu kann folgende Regel angewandt werden:

# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


Die Möglichkeit des "IP Forwarding" Weiterleiten wird temporär mit folgendem Befehl erreicht:

# echo 1 > /proc/sys/net/ipv4/ip_forward


Einer dauerhaften, also auch nach einem Neustart erhaltenden IP Weiterleitung Rechnung zu tragen,
muß folgender Eintrag in der Datei '/etc/rc.d/rc.inet2'

IPV4_FORWARD=0


zu

IPV4_FORWARD=1


geändert werden.

Für genauere Information der NAT, schauen sie nach dem http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO.txt

14.2.2 tcpwrappers


tcpwrappers kontrolliert die Zugänge direkt zu den Daemonen /Diensten der Anwendungen, anstatt über die IP Zuordnung.
Dies bedeutet eine zusätzliche Sicherungsquelle auch für den Fall, daß es zum Ausfall der IP seitigen Zugangskontrolle
(wie Netfilter) kommt.
Wenn sie z.b den Kernel neu kompilieren und vergaßen zusätzlich die Unterstützung von 'iptables' zu aktivieren,
fällt der Schutz über die IP Zuordnung aus, sodann hilft 'tcpwrappers' noch ihr System gegenüber Angriffen zu erhalten.

Der Zugang zu den Diensten die von 'tcpwrappers' geschützt werden, kann über die Dateien '/etc/hosts.allow' und
'/etc/hosts.deny" gesteuert werden.

Meistens beinhaltet die Datei '/etc/hosts.deny' nur einen einzigen Satz, der festlegt, daß zunächst alle Zugänge zu
den möglichen Diensten /Daemonen gesperrt sind. Was wie folgt aussieht:

ALL : ALL


Ist dies geschehen, kann man damit beginnen den Zugang (zu den Diensten) bestimmten Rechnern,
Gruppierungen, oder IP Adressen zu ermöglichen. Dies kann in der gleichen Weise wie zuvor mittels der
Datei '/etc/hosts.allow' bewerkstelligt werden.

Meist sorgt ein Eintrag zu Beginn der Datei dafür das alle Verbindungen, die von 'localhost' stammen,
akzeptiert werden. Der Eintrag lautet hier:

ALL : 127.0.0.1


Um z.b einen Zugang zum SSHd der IP-Adresse 192.168.0.0/24 zu ermöglichen, kann eine der folgenden
Regeln Verwendung finden.

sshd : 192.168.0.0/24
sshd : 192.168.0.


Es ist ebenso auch möglich den Zugang bestimmten Rechnern einer Gruppierung zu verwehren. Dies kann durch
folgende Regel erreicht werden, (hierbei ist jedoch zu beachten, daß es der angeschlossenen Rechner
die Rückantwort der DNS für vertrauenswürdig halten, und somit würde ich im laufenden Betrieb davon abraten):

sshd : .slackware.com


bearbeiten

14.3 Aktuell bleiben


14.3.1 slackware-security Mailing Liste


Wann auch immer ein Angriff auf das Slackware System stattfindet, wird umgehend an alle Mitglieder der slackware-security@slackware.com Mailing-Liste automatisch eine E-Mail verschickt. Mit Ausnahme der Dateien in /extra und /pasture werden Reporte etwaiger Zerstörungen des gesamten Slackware Systems übermittelt. Dieser Meldungen enthalten obendrein mögliche Updates soweit vorhanden.

Die Möglichkeit, sich in die Slackware Mailing-Liste einzutragen, wird im Abschnitt 2.2.2 behandelt.

14.3.2 Das /patches Verzeichnis


Wann immer neuere Pakete für eine Slackware Version vorliegen, (meistens dann wenn Sicherheitslöcher schon freigegebener Slackware Versionen auftauchen), werden sie im Verzeichnis /patches untergebracht. Der genaue Pfad dieser Patches ist abhängig vom Mirror, der beim Herunterladen der Dateien Verwendung fand, aber sieht ähnlich wie dieser aus: /path/to/slackware-x.x/patches/.

Vor Installation gedachter Pakete scheint es angebracht sich über die md5sum zu vergewissern, dass es auch die richtigen, orginal Pakete sind. md5sum(1) ist ein im Terminal (Befehlszeile) zu gebrauchendes Dienstprogramm, welches eine "einmalige" mathematische Kennung (des entsprechenden Paketes) ausgibt. Wenn nur ein einziges -bit- vom Orginal abweicht stimmt alles im Ergebnis nicht mehr überein.

% md5sum package-<ver>-<arch>-<rev>.tgz
6341417aa1c025448b53073a1f1d287d  package-<ver>-<arch>-<rev>.tgz


Das Ergebnis des neueren Paketes sollte nun mit der CHECKSUMS.md5 Datei im Root / Wurzelverzeichnis des slackware-$VERSION-Verzeichnisses, (womöglich auch im Verzeichnis /patches zu finden), oder der slackware-security mailing Liste zugesandten Nummern verglichen werden.

bearbeiten

15 Archivdateien


15.1 gzip


gzip(1) iist das GNU Kompressionsprogramm. Es nimmt eine einzelne Datei und komprimiert diese. Die grundlegende Verwendung ist wie folgt:

%  gzip Dateiname 


Das Ergebnis heißt Dateiname.gz und ist im Normalfall kleiner als die Ausgangsdatei. Merke Dir das Dateiname.gz Dateiname ersetzt. Das bedeutet das Dateiname nicht länger exististiert, es gibt nur noch eine gezippte Kopie. Einfache Textdateien werden sehr stark komprimiert, während jpeg Bilder, mp3s und ähnliche Dateien nicht sehr stark komprimiert werden, da diese bereits komprimiert sind. Die einfache Verwemdung ist ein Mittelweg zwischen endgültiger Dateigrösse und Kompressionszeit. Die stärkste Kompression erreichen sie wie folgt:

%  gzip -9 Dateiname 


Dadurch wird die Kompression zwar länger dauern, aber am Ende wird die Datei so klein sein wie gzip sie machen kann. Kleine Werte als Parameter machen die Kompression schneller aber dafür wird die Datei auch nicht so komprimiert, also klein sein Entpacken kann man die gezippten Dateien mit zwei Befehlen, welche ganz genau das gleiche machen. Gzip entpackt jede Datei mit einer bekannten Dateiendung. Bekannte Endungen sind: .gz, -gz, .z, -z, .Z, oder -Z. Die erste Möglichkei ist gunzip(1) mit einer Datei aufzurufen. Dies geschieht wie folgt:

%  gunzip Dateiname.gz 


Das hinterlässt eine entpackte Version der Datei im aktuellen Verzeichnis und die .gz Endung wird entfernt. Gunzip ist ein Teil von gzip und macht das selbe wie gzip -d. Gzip wird oft als gunzip bezeichnet, weil es besser klingt. ;)

bearbeiten

15.2 bzip2



bearbeiten

15.3 tar



bearbeiten

15.4 zip



bearbeiten

16 Vi


vi(1) ist das Standard Unix Textbearbeitungsprogramm. Auch, wenn es nicht mehr so unentbehrlich, wie früher ist, vi zu beherrschen, ist es immer noch ein lohnendes Ziel. Es sind viele Versionen (oder Klone) von vi verfügbar, darunter auch vi, elvis, vile, und vim. Einer von diesen ist auf fast jedem Unix, wie auch auf Linux, verfügbar. Alle diese Versionen beinhalten den gleichen grundlegenden Funktionsumfang und die gleichen Befehle. Deshalb sollte das Erlernen eines Klons ein Erlernen eines weiteren sehr einfach machen. Durch die Vielfalt von Texteditoren, die in Linux-Distributionen enthalten sind, verwenden heutzutage viele Leute kein vi mehr. Dennoch bleibt er der universellste Texteditor für Unix und Unix-ähnliche Systeme. Vi zu beherrschen, bedeutet, dass Sie niemals an einer Unix-Maschine sitzen sollten, ohne mit mindestens einem leistungsfähigen Editor vertraut zu sein.

vi umfasst eine Vielzahl von mächtigen Features, wie Syntax-Highlighting, Code-Formatierung, einen mächtigen Suchen- und Ersetzen-Mechanismus, Makros und mehr. Diese Features machen ihn besonders attraktiv für Programmierer, Web Entwickler und ähnliche. Systemadministratoren werden die autmation und integration mit der Shell, welche möglich ist, zu schätzen wissen.

Auf Slackware Linux ist die Standard-Version von vi, die verfügbar ist, elvis. Andere Versionen - einschließlich vim und gvim - sind verfügbar, wenn Sie die passenden Pakete installiert haben. gvim ist eine X-Window-Version von vim die Symbolleisten, abtrennbare Menüs und dialogboxen enthält.

16.1 Vi starten


vi kann von der Befehlszeile auf verschiedene Weise gestartet werden. Die einfachste Form ist einfach:

% vi


Abbildung 16-1. Eine vi Session.
image

Dies startet vi mit einem leeren Buffer. An dieser Stelle sehen Sie einen größtenteils leeren Bildschirm. Es ist nun im "Befehlsmodus" und wartet darauf, dass Sie etwas tun. In Abschnitt 16.2 werden die verschiedenen vi Modis behandelt. Um vi zu beenden tippen Sie folgendes:

:q


Wenn wir annehmen, dass keine Änderungen an der Datei gemacht wurden, dann wird dies dafür sorgen, dass vi beendet wird. Wenn Änderungen durchgeführt wurden, dann wird es Sie warnen, dass Änderungen gemacht wurden und wird ihnen mitteilen wie Sie diese Warnung umgehen. Umgehen von Warnungen bedeutet normalerweise einfach das Anhängen eines Ausrufezeichens nach dem "q", also so:

:q!


Das Ausrufezeichen bedeitet normalerweise, dass eine Aktion erzwungen werden soll. Wir besprechen diesen und andere Befehle später im Detail.

Sie können vi auch mit einer bereits existierenden Datei starten. Zum Beispiel würde die Datei /etc/resolv.conf wie folgt geöffnet:

% vi /etc/resolv.conf


Letztlich kann vi auch an einer bestimmten Zeile einer Datei gestartet werden. Dies ist besonders praktisch für Programmierer, wenn eine Fehlermeldung die Zeile enthält, an der das Programm fehlgeschlagen ist. Zum Beispiel könnten Sie vi an Zeile 47 von /usr/src/linux/init/main.c wie folgt starten:

% vi +47 /usr/src/linux/init/main.c


vi wird die angegebene Datei anzeigen und wird den cursor an die angegebene Zeile platzieren. Im Fall, dass Sie eine Zeile angeben die nach dem Ende der Datei liegt, platziert vi den Cursor in die letzte Zeile. Dies ist besonders hilfreich für Programmierer, da sie direkt zur Stelle in der Datei springen können, an der der Fehler aufgetreten ist, ohne danach suchen zu müssen.

bearbeiten

16.2 Modi


vi arbeitet in verschiedenen Modis, welche genutzt werden, um verschiedene Aufgaben zu bewältigen. Wenn Sie vi zum ersten mal starten werden Sie in den Befehlsmodus gebracht. An dieser Stelle können sie verschiedene Befehle zum Manipulieren von text, Bewegen in der Datei, speichern, beenden und zum Ändern des Modus absetzen. Das Bearbeiten des Textens wird im Einfügemodus durchgeführt. Sie können schnell, mit einer Vielzahl von Tastenfolgen, welche unten erklärt werden, zwischen den Modi wechseln.

16.2.1 Befehlsmodus


Sie werden zunächst in den Befehlsmodus geführt. Von diesem Modus können Sie nicht direkt Text eingeben oder bearbeiten, was bereits vorhanden ist. Allerdings können Sie text manipulieren, suchen, beenden, speichern, neue Dateien laden und mehr. Dies ist nur als Einführung in den Befehlsmodus gedacht. Für eine Beschreibung der verschiedenen Befehle schlagen Sie bitte in Abschnitt 16.7 nach.

Der wahrscheinlich am häufigsten genutzte Befehl im Befehlsmodus ist der Wechsel zum Einfügemodus. Dies kann durch das Drücken der Taste i erreicht werden. Der Cursor ändert die Form und -- INSERT -- wird am Ende des Bildschirms angezeigt (Beachten Sie, dass dies nicht in allen Klonen von vi so sein muss). Von dort an werden alle Ihre Tastendrücke im aktuellen Buffer eingefügt und am Bildschirm angezeigt. Um wieder in den Befehlsmodus zu kommen, drücken Sie die ESCAPE-Taste.

Im Befehlsmodus bewegen Sie sich auch in der Datei. Auf manchen Systemen können Sie die Pfeiltasten nutzen, um sich herumzubewegen. Auf anderen Systemen könnte es sein, dasss Sie die traditionelleren Tasten "hjkl" nutzen müssen. Hier ist eine einfache Auflistung, wie diese Tasten genutzt werden, um sich herumzubewegen:

h Ein Zeichen nach Links bewegen
j Ein Zeichen nach Unten bewegen
k Ein Zeichen nach Oben bewegen
l Ein Zeichen nach Rechts bewegen


Drücken Sie einfach eine Taste, um sich zu bewegen. Wie Sie später sehen werden, können diese Teasten mit einer Zahl kombiniert werden um sich noch effizienter bewegen zu können.

Viele der Befehle, die Sie im Befehlsmodus nutzen werden, starten mit einem Doppelpunkt. Zum Beispiel steht :q, wie bereits früher behandelt, für "Beenden". Der Doppelpunkt gibt einfach an, dass es sich um einen Befehl handelt während "q" vi mitteilt, dass es geschlossen werden soll. Andere Befehle bestehen aus einer optionalen Nummer der ein Buchstabe folgt. Diese Befehle haben keinen Doppelpunkt vorangestellt und werden generell genutzt um den Text zu manipulieren.

Zum Beispiel kann das Löschen einer Zeile, in einer Datei, durch das Tippen von dd erreicht werden. Dies wird die Zeile, auf der der Cursor ist, löschen. Das Ausführen des Befehls 4dd würde vi mitteilen, dass er die Zeile, auf der der Cursor ist, und 3 Zeilen danach löschen soll. Im allgemeinen sagt die Zahl vi wie oft er den Befehl wiederholen soll.

Sie können auch eine Zahl mit den Bewegungstasten kombinieren um sich mehrere Zeichen auf einmal weiter zu bewegen. Zum Beispiel würde 10k dafür sorgen, dass Sie sich 10 Zeilen nach oben bewegen.

Der Befehlsmodus kann auch zum Ausschneiden und Einfügen, Textpassagen einsetzen und zum Einlesen anderer Dateien in den aktuellen Buffer geuntzt werden. Das Kopieren von Text kann mit der y-Taste erreicht werden (y steht für eglisch "yank" (herausziehen)). Kopieren der aktuellen Zeile geht durch Tippen von yy und diesem Befehl kann eine Zahl vorangestellt werden, um mehrere Zeilen zu kopieren. Dann bewegen Sie sich zu der Zeile an der eingefügt werden soll und drücken Sie p. Der Text wird in der Zeile nach der aktuellen Zeile eingefügt.

Ausgeschnitten wird Text durch Tippen von dd und p kann verwendet werden um den Text wieder in die Datei einzufügen. Text von einer anderen Datei zu lesen, ist einfach. Tippen Sie einfach :r gefolgt von einer Leerstelle und dem Dateinamen, der Datei, die den Text enthält, der eingefügt werden soll. Die Dateiinhalte werden in den aktuellen Buffer in die Zeile nach dem Cursor eingefügt. Aufwändigere vi-Klone enthalten auch Dateinamen-Vervollständigung, ähnlich wie die in den Shells.

Der letzte Verwendungszweck, der behandelt wird, ist das Suchen. Der Befehlsmodus erlaubt einfaches Suchen, genau so wie komplizierte Suchen-und-Ersetzen Befehle, welche Gebrauch von einer mächtigen Variante von Regular Expressions Gebrauch machen. Eine ausführiche Dikussion über Regular Expressions würde den Rahmen dieses Kapitels sprengen, deshalb wird dieser Abschnitt nur einfache Suchen behandeln.

Eine einfache Suche wird durch Drücken der /-Taste, gefolgt vom zu suchenden Text, ausgeführt. vi beginnt von der Cursorposition an, bis zum Ende des Dokuments, nach einem Treffer zu suchen und stoppt sobald einer gefunden wird. Beachten Sie, dass ungenaue Treffer auch dafür sorgen, dass vi stoppt. Zum Beispiel wird eine Suche nach "the" dafür sorgen, dass vi für "then" und "therefore", und so weiter, stoppen wird. Dies ist deshalb der Fall, weil "the" auf all diese Wörter zutrifft.

Nachdem vi den ersten Treffer gefunden hat können Sie die Suche durch Tippen von /, gefolgt von Enter, fortsetzen. Sie können auch rückwärts durch die Datei suchen, wenn Sie den Schrägstrich durch ein ? ersetzen. Zum Beispiel können Sie die Datei rückwärts nach "the" durchsuchen, indem Sie ?the tippen.

16.2.2 Einfügemodus


Einfügen und Ersetzen von Text wird im Einfügemodus erledigt. Wie bereits früher erwähnt wurde, können Sie durch Drücken der Taste i, im Befehlsmodus, in dem Einfügemodus wechseln. Dann wird sämtlicher Text, den Sie tippen, in den aktuellen Buffer eingegeben. Durch Drücken der ESCAPE-Taste kommen Sie zurück in den Befehlsmodus.

Das Ersetzen von Text kann auf verschiedene Weisen durchgeführt werden. Vom Befehlsmodus aus führt das Drücken von r dazu, dass Sie die Zeichen unterhalb des Cursors ersetzen können. Tippen Sie einfach das neue Zeichen und es wird das Zeichen unterhalb des Cursors ersetzen. Sie werden danach umgehend wieder in den Befehlsmodus gebracht. Das Drücken von R erlaubt Ihnen so viele Zeichen zu ersetzen, wie Sie möchten. Um aus diesem Ersetzen-Modus herauszukommen, drücken Sie einfach ESCAPE um zurück in den Befehlsmodus zu kommen.

Es gibt auch noch einen weiteren Weg um zwischen Einfügen und Ersetzen umzuschalten. Drücken der EINFÜGEN-Taste im Befehlsmodus bringt Sie in den Einfügemodus. Sobald Sie im Einfügemodus sind, fungiert die EINFÜGEN-Taste auf Ihrer Tastatur als Umschater zwischen Einfügen und Ersetzen. Einmal Drücken und Sie können ersetzen. Ein weiteres mal Drücken und Sie können Text einfügen.

bearbeiten

16.3 Dateien öffnen


vi erlaubt es Ihnen Dateien, sowohl aus dem Befehlsmodus, als auch durch Angeben der Datei auf der Befehlszeile, zu öffnen. Um die Datei /etc/lilo.conf zu öffnen:

:e /etc/lilo.conf


Wenn Sie im aktuellen Buffer etwas geändert haben, ohne zu speichern, dann wird vi sich beschweren. Sie können dennoch Dateien ohne Speichern des aktuellen Buffers öffnen, wenn Sie :e!, gefolgt von einem Leerzeichen und dem Dateinamen, nutzen. In general, vi's warnings can be suppressed by following the command with an exclamation mark.

Wenn Sie die aktuelle Datei erneut öffnen wollen, dann könne Sie dies durch einfaches Tippen von e! tun. Das ist besonders nützlich, wenn Sie etwas in einer Datei durcheinandergebracht haben und die Datei neu öffnen wollen.

Einige vi-Klone (zum Beispiel vim) erlauben es mehrere Buffer auf einmal offen zu haben. Um zum Beispiel die Datei 09-vi.sgml aus meinem Home-Verzeichnis zu laden, während eine andere Datei offen ist, würde ich folgendes tippen:

:split ~/09-vi.sgml


Die neue Datei wird in der oberen Hälfte des Bildschirms angezeigt, und die alte Datei wird in der unteren Hälfte angezeigt. Es gibt viele Befehle um den geteilten Bildschirm zu beeinflussen und viele dieser Befehle zeigen Ähnlichkeit mit Emacs. Die beste Stelle um solche Befehle nachzuschlagen, dürfte die man-Page Ihres vi-Klons sein. Beachten Sie, dass viele Klone die Idee des geteilten Bildschirms nicht unterstützen, also wäre es möglich, dass Sie diese Funktion garnicht nutzen können.

bearbeiten

16.4 Dateien speichern


Es gibt viele Wege, um Dateien in vi zu speichern. Um den aktuellen Buffer in die Datei randomness zu speichern, würden Sie tippen:

:w randomness


Sobald Sie die Datei zum ersten Mal gespeichert haben, können Sie durch einfaches Tippen von :w erneut speichern. Alle Änderungen werden in die Datei geschrieben. Sobald Sie gespeichert haben, landen Sie wieder im Befehlsmodus. Wenn Sie die Datei speichern und vi beenden wollen (eine sehr häufige Aktion), dann würden Sie :wq tippen. Dies teilt vi mit, dass es die aktuelle Datei speichern und sich danach beenden.

Gelegentlich muss man einmal in eine Datei schreiben, die als Schreibgeschützt markiert ist. Sie können dies tun, wenn Sie ein Ausrufezeichen nach den Schreiben-Beehl setzen, wie hier:

:w!


Dennoch wird es Fälle geben in denen Sie die Datei nicht schreiben können (zum Beispiel, wenn Sie vorhaben in eine Datei zu schreiben, die einem anderen Benutzer gehört). Wenn dies passiert, dann teilt Ihnen vi mit, dass es die Datei nicht speichern kann. Wenn Sie die Datei wirklich bearbeiten wollen, dann müssen Sie dies als root oder (vorzugsweise) als der Besitzer der Datei tun.

bearbeiten

16.5 Vi beenden



bearbeiten

16.6 Vi Konfiguration



bearbeiten

16.7 Vi Befehle


Dieser Abschnitt ist eine Schnellreferenz für viele übliche Vi Befehle. Viele von diesen wurden früher in diesem Kapitel bereits behandelt, während viele neu sein werden.

Tabelle 16-1. Bewegung
Operation Befehl
links, runter, hoch, rechts h, j, k, l
Zum Ende der Zeile $
Zum Anfang der Zeile ^
Zum Ende der Datei G
Zum Anfang der Datei :1
Zu Zeile 47 :47


Tabelle 16-2. Bearbeiten
Operation Befehl
Eine Zeile löschen dd
Fünf Zeilen löschen 5dd
Ein Zeichen ersetzen r
Ein Zeichen löschen x
Zehn Zeichen löschen 10x
Letzte Aktion rückgängig machen u
Aktuelle und nächste Zeile zusammenfassen J
alt global mit neu ersetzen %s'old'new'g


Tabelle 16-3. Suchen
Operation Befehl
Nach "asdf" suchen /asdf
Rückwärts nach "asdf" suchen ?asdf
Letzte Suche vorwärts wiederholen /
Letzte Suche rückwärts wiederholen ?
Letzte Suche wiederholen, gleiche Richtung n
Letzte Suche wiederholen, entgegengesetzte Richtung N


Tabelle 16-4. Speichern und Beenden
Operation Befehl
Beenden :q
Beenden, ohne zu speichern :q!
Speichern und beenden :wq
Speichern, ohne zu beenden :w
Aktuell geöffnete Datei erneut laden :e!
Buffer in Datei asdf schreiben :w asdf
Datei hejaz öffnen :e hejaz
Datei asdf in den Buffer lesen :r asdf
Ausgabe von ls in den Buffer lesen :r !ls


bearbeiten

17 Emacs



Während VI (mit all seinen Klonen) zweifellos der verbreitetste Editor auf Unix Systeme ist, ist Emacs der zweitverbreitetste. Anstatt wie VI verschiedene Modi zu verwenden, werden im Emacs Editor mit diversen Kombinationen der Steuerung und Alt Tasten Kommandos eingegeben. Auf dieselbe Art kann man in Textverarbeitungsprogrammen und natürlich auch in anderen Anwendungen verschiedene Funktionen aufrufen (Obwohl die Kommandos selten den Funktionen in anderen Programmen entsprechen; während heutzutage viele Anwendungen Strg-X / C / V zum Ausschneiden, Kopieren und Einfügen verwenden, benutzt Emacs andere Tastenkombinationen und Aktionen um das zu tun).

Aber anders als VI, der ein excellenter Editor, aber nicht mehr ist, ist Emacs ein Programm mit nahezu endlosen Fähigkeiten. Emacs wurde (größtenteils) in Lisp geschrieben,



... Emacs is (for the most part) written in Lisp, which is a very powerful programming language that has the peculiar property that every program written in it is automatically a Lisp compiler of its own. This means that the user can extend Emacs, and in fact write completely new programs “in Emacs”.

As a result, Emacs is not just an editor anymore. There are many add-on packages for Emacs available (many come with the program's source) that provide all sorts of functionality. Many of these are related to text editing, which is after all Emacs' basic task, but it doesn't stop there. There are for example several spreadsheet programs for Emacs, there are databases, games, mail and news clients (the top one being Gnus), etc.

There are two main versions of Emacs: GNU Emacs (which is the version that comes with Slackware) and XEmacs. The latter is not a version for Emacs running under X. In fact, both Emacs and XEmacs run on the console as well as under X. XEmacs was once started as a project to tidy up the Emacs code. Currently, both versions are being actively developed, and there is in fact much interaction between the two development teams. For the present chapter, it is immaterial whether you use Emacs or XEmacs, the differences between them are not relevant to the normal user.

17.1 Emacs starten


17.1.1 Befehle



bearbeiten

17.2 Puffer



bearbeiten

17.3 Modi


17.3.1 Dateien öffnen



bearbeiten

17.4 Grundlegendes Editieren



bearbeiten

17.5 Dateien speichern


17.5.1 Emacs beenden



bearbeiten

18 Slackware Paketmanagement



Ein Softwarepaket ist eine installationsfertige Zusammenstellung von zusammengehörenden Programmen. Wenn man ein Quellcodearchiv herunterlädt, muss dieses per Hand konfiguriert, kompiliert und installiert werden. Bei einem Softwarepaket ist all dies bereits für Sie erledigt worden. Alles was noch zu tun bleibt, ist die Installation des Paketes. Ein anderes bequemes Feature bei der Benutzung von Softwarepaketen ist, sofern gewünscht, deren sehr einfache Deinstallation bzw. deren Upgrade. Slackware bringt bereits Programme für all Ihre Paketmanagementbedürfnisse mit. Man kann Pakete sehr einfach installieren, deinstallieren, aktualisieren, erzeugen und prüfen.

Seit RedHat den RedHat Packagemanager eingeführt hat, steht die Behauptung im Raum, dass Slackware über kein Paketmanagementtool verfüge. Dies entspricht in keiner Weise der Wahrheit. Zu Slackware gehörte bereits ein Paketmanager lange bevor es RedHat überhaupt gab. Auch wenn es nicht so üppig ausgestattet und so universell wie rpm (oder meinetwegen deb) ist, so sind das pkgtool und seine zugehörigen Programme ebenso gut für die Paketinstallation geeignet wie rpm. Die Wahrheit über pkgtool besteht nicht darin, dass es nicht existiert, sondern dass es keinerlei Abhängigkeiten überprüft.

Offensichtlich glauben aber viele in der Linux Community, dass ein Paketmanager bereits per Definition eine Abhängigkeitsprüfung enthalten muss. Dies ist stimmt so nicht, da Slackware ziemlich sicher nicht so verfährt. Das bedeutet nicht, dass Slackwarepakete keine Abhängigkeiten haben, sondern dass es nicht dem Paketmanager obliegt, diese zu prüfen. Abhängigkeiten zu verwalten ist allein dem Systemverwalter vorbehalten und so soll es bleiben.

18.1 Überblick über das Paketformat


Bevor wir uns mit den Werkzeugen befassen, sollten Sie sich mit dem Format eines Slackwarepaktes vertraut machen. In Slackware ist ein Paket einfach ein mit gzip komprimiertes tar Archiv. Die Pakete sind so aufgebaut, dass sie direkt in das Wurzelverzeichnis entpackt werden können.

Ein Paket für ein fiktives Programm könnte beispielsweise so aussehen:

./
usr/
usr/bin/
usr/bin/makehejaz
usr/doc/
usr/doc/makehejaz-1.0/
usr/doc/makehejaz-1.0/COPYING
usr/doc/makehejaz-1.0/README
usr/man/
usr/man/man1
usr/man/man1/makehejaz.1.gz
install/
install/doinst.sh


Das Paketsystem entpackt zum Installieren diese Datei in das Wurzelverzeichnis und erzeugt in der Paketdatenbank einen Eintrag, welcher den Inhalt des Paketes beschreibt, so dass es später aktualisiert oder wieder entfernt werden kann.

Man beachte das install/ Unterverzeichnis. Dies ist ein spezielles Verzeichnis, welches ein postinstall Script mit dem Namen doinst.sh enthalten kann. Wenn das Paketsystem diese Datei vorfindet, wird sie im Anschluss an die Paketinstallation ausgeführt.

Es können noch weitere Scripte in das Paket eingebettet werden, diese werden detailliert weiter unten im _Abschnitt 18.3.2_ beschrieben.


bearbeiten

18.2 Paket Dienstprogramme


Es gibt vier Hauptdienstprogramme für das Paketmanagement. Sie gestatten das Installieren, Entfernen und Aktualisieren von Paketen.

18.2.1 pkgtool


pkgtool(8) ist ein menügeführtes Programm zum Installieren und Entfernen von Paketen. Das Hauptmenü ist in Abb. 18-1 zu sehen.

Abb. 18-1. Pkgtool's Hauptmenü
image

Die Auswahl gestattet die Installation aus dem aktuellen oder einem anderen Verzeichnis oder von Diskette. Nach der Auswahl der Installationsmethode, sucht pkgtool den Speicherort gültiger Pakete für die Installation.

Genauso kann man sich eine Liste der installierten Pakete, wie in Abb. 18-2 gezeigt, anzeigen lassen.

Abb. 18-2. Pkgtool Anzeigemodus
image

Wenn ein Paket entfernt werden soll, wählt man dazu die remove Option aus. Es wird dann ein Auswahlliste aller installierten Pakete vorgegeben. Nach Markieren der zu löschenden Pakete und Betätigung von OK löscht pkgtool diese.

Einige Anwender ziehen dieses Dienstprogramm den Kommandozeilenprogrammen vor. Jedoch muss angemerkt werden, dass die Kommandozeilenprogramme deutlich mehr Möglichkeiten bieten. Insbesondere die Aktualisierung von Paketen ist nur mit den Kommandozeilenprogrammen möglich.

18.2.2 installpkg


installpkg(8) installiert neue Pakete im System. Die Syntax ist wie folgt:

# installpkg option package_name


Drei Optionen sind für installpkg verfügbar. Nur eine Option kann je Aufruf benutzt werden.

Tabelle 18-1. installpkg Optionen

OptionWirkung
-mFührt ein makepkg Operation im aktuellen Verzeichnis aus.
-warnZeigt was passieren würde, wenn man das angegebene Paket installieren würde. Nüztlich für Produktionssysteme, da man genau sehen kann was passiert bevor man etwas installiert.
-rRekursive Installation aller Pakete im aktuellen Verzeichnis und allen Unterverzeichnissen. Der Paketname kann Platzhalter enthalten und kann damit als Suchmaske während rekursiven Installation dienen.


Wenn man die ROOT Umgebungsvariable for dem Aufruf von installpkg setzt, so wird dieser Pfad als root Verzeichnis benutzt. Das ist nützlich für das Einrichten neuer Laufwerke als root Verzeichnis. Diese werden typischerweise nach /mnt oder in ein anderes Verzeichnis als / gemounted.

Der Eintrag in die Paketdatenbank wird unter /var/log/packages abgelegt. Der Eintrag ist tatsächlich nur eine einfache Textdatei, je eine für jedes Paket. Wenn das Paket über ein postinstall Script verfügte, so wird dieses unter /var/log/scripts abgelegt.

Man kann mehrere Pakete oder Platzhalter anstelle des Paketnamens angeben. Es sei darauf hingewiesen, dass installpkg nicht davor warnt ein bereits installiertes Paket zu überschreiben. Es installiert einfach über das vorhergehende. Wenn man absichern will, das vorhandene Dateien von vorhergehenden Paketen sicher entfernt werden, muß man upgradepkg benutzen.

18.2.3 removepkg


removepkg(8) entfernt installierte Pakete aus dem System. Die Syntax ist wie folgt:

# removepkg option package_name


Vier Optionen sind für removepkg verfügbar. Nur eine Option kann je Aufruf benutzt werden.

Tabelle 18-2. removepkg Optionen

OptionWirkung
-copyDas Paket wird in das Paketsicherungsverzeichnis kopiert. Dort wird der Baum des Originalpaketes erzeugt, ohne es zu entfernen.
-keepSichert die während der Installation erzeugten temporären Dateien. Wirklich nützlich nur für Debugging Zwecke.
-preserveDas Paket wird entfernt, aber gleichzeitig in das Paketsicherungsverzeichnis kopiert.
-warnZeigt, was passieren würde, wenn man das Paket entfernt.


Wenn man die ROOT Umgebungsvariable for dem Aufruf von removepkg setzt, so wird dieser Pfad als root Verzeichnis benutzt. Das ist nützlich für das Einrichten neuer Laufwerke als root Verzeichnis. Diese werden typischerweise nach /mnt oder ein in anderes Verzeichnis als / gemounted.

removepkg prüft die anderen installierten Pakete und entfernt nur Dateien, die allein zu dem angegebenen Paket gehören. Es durchsucht auch das Postinstallationsscript des angegebenen Pakets und entfernt gegebenefalls durch das Paket erzeugte symbolische Links.

Während des Entferenes wird ein Statusbericht angezeigt. Nach dem Entfernen wird der Paketdatenbankeintrag nach /var/log/removed_packages und das Postinstallationsscript nach /var/log/removed_scripts verschoben.

Wie für installpkg kann man für mehrere Pakete auch wieder Platzhalter für den Paketnamen benutzen.

18.2.4 upgradepkg


upgradepkg(8) aktualisiert ein installiertes Slackwarepaket. Die Syntax ist wie folgt:

# upgradepkg package_name


oder

# upgradepkg old_package_name%new_package_name


upgradepkg geht dabei so vor, dass zuerst das neue Paket installiert und dann das alte entfernt wird, so dass die alten Dateien nicht mehr länger im System herumliegen. Wenn der Name des aktulisierten Pakets sich geändert hat, kann man die Prozentzeichensyntax benutzen um den alten Paketnamen (jenes welches installiert war) und den neuen Paketnamen (jenes auf welches aktualisiert wird) anzugeben.

Wenn man die ROOT Umgebungsvariable for dem Aufruf von upgradepkg setzt, so wird dieser Pfad als root Verzeichnis benutzt. Das ist nützlich für das Einrichten neuer Laufwerke als root Verzeichnis. Diese werden typischerweise nach /mnt oder ein in anderes Verzeichnis als / gemounted.

upgradepkg ist nicht unfehlbar, daher sollte man seine Konfigurationsdateien immer sichern. Wenn diese gelöscht oder überschreiben werden, benötigt man eine Kopie für eventuelle Reparaturarbeiten.

Wie für installpkg und removepkg kann man für mehrere Pakete auch wieder Platzhalter für den Paketnamen benutzen.

18.2.5 rpm2tgz/rpm2targz


Der Red Hat Packager Manager ist heutzutage ein weitverbreitetes Paketmanagementsystem. Viele Softwaredistributoren bieten ihre Produkte im RPM Format an. Da es nicht unser natives Format ist, empfehlen wir nicht darauf zu bauen. Ein Teil der Software (sogar die Quellen) ist jeoch nur als RPM verfügbar.

Wir stellen ein Programm zur Verfügung, welches RPM Pakete in unser natives .tgz Format konvertiert. Dies erlaubt das Entpacken des Paketes (z.B. mit explodepkg) in ein temporäres Verzeichnis und die Untersuchung seines Inhalts.

Das rmp2tgz Programm erzeugt Slackware Pakete mit einer .tgz Endung, während rpm2targz Archive mit einer .tar.gz Endung erzeugt.


bearbeiten

18.3 Pakete erstellen


Das Erstellen von Slackwarepaketen kann sowohl einfach als auch schwierig sein. Es gibt kein spezielles Vorgehen beim Zusammenstellen eines Paketes. Die einzige Bedingung besteht darin, dass es sich um eine mit tar gepackte und gezipptes Datei handeln muss, und sofern ein Postinstallscript vorhanden ist, dieses unter /install/doinst.sh zu finden sein muss.

Wenn Sie an der Erstellung von Paketen für Ihr System oder für das von ihnen betreute Netzwerk interessiert sind, sollten Sie einen Blich auf die verschiedenen Erzeugungsscripte im Slackware Quellcodebaum werfen. Es gibt verschiedene Methoden für die Erstellung von Paketen.

18.3.1 explodepkg


explodepkg(8) führt die gleichen Aktionen wie installpkg für das Entpacken des Paketes aus, installiert dies jedoch nicht und erzeugt auch keinen Eintrag in der Paketdatenbank. Das Paket wird einfach in das aktuelle Verzeichnis entpackt.

Schaut man in den Slackwarequelldateiverzeichnisbaum, so kann man sehen, wie dieses Kommando für die "Framework" Pakete benutzt wird. Diese Pakte enthalten eine leere Struktur die das Aussehen des späteren Paketes beschreibt. Sie enthalten alle notwendigen Dateien (mit der Länge 0), Zugriffsrechten und Eigtümern. Das Erzeugungsscript gibt dann den Paketinhalt aus dem Quellverzeichnis in das Paketerzeugungsverzeichnis aus.

18.3.2 makepkg


makepkg(8) packt den Inhalt des aktuellen Verzeichnis in ein gültiges Slackwarepaket. Es durchsucht den Baum nach symbolischen Links und fügt dem Postinstallationsscript einen entsprechenden Erzeugungsaufruf hinzu, welcher später den Link bei der Installation erzeugt. Es warnt ferner vor Dateien mit der Länge 0 im Paketbaum.

Dieses Kommando wird typischerweise nach dem Aufbau des Paketdateiverzeichnisbaums ausgeführt.

18.3.3 SlackBuild Skripte


Slackwarepakete werden je nach Bedarf auf verschieden Art und Weise erstellt. Nicht alle Softwarepakete sind von ihren Programmierern so geschrieben, dass sie auf die gleiche Art kompiliert werden können. Viele haben Optionen für die Komplierung, welche nicht alle von den Slackware Pakteten genutzt werden. Möglicherweise benötigen Sie aber etwas gerade von dieser Funktionalität; Dann müssen Sie sich Ihr eigenes Paket erzeugen. Glücklicherweise gibt es für viele Slackwarepakete SlackBuild Scripte im Paktequellcode Verzeichnis.

Nun, was ist ein SlackBuild Script? SlackBuild Scripte sind ausführbare Shellscripte, welche man als root ausführen kann um die Konfiguration (configure), das Compilieren und die Erzeugung der Slackwarepakete durchzuführen. Diese Scripte dürfen Sie frei nach Ihren Wünschen anpassen und ausführen um Ihre eigenen Versionen der Standard Slackwarepakte zu erzeugen.


bearbeiten

18.4 Tags and Tag-Dateien erstellen (für setup)


Das Slackware setup Programm kontrolliert die Installation der Softwarepakete für ihr System. Es gibt Dateien, welche dem setup Programm mitteilen, welche Pakete installiert werden müssen, welche optional sind und welche standardmäßig vom setup Programm ausgwählt werden.
Ein Tag-Datei befindet sich im Verzeichnis der ersten Software Serie und heißt tagfile. Es listet die Pakete und deren Status für diesem speziellen Disk-Set. Der Status kann sein:

Table 18-3. Tag-Datei Status Optionen

OptionWirkung
ADDDas Paket ist erfordlich für einen lauffähiges System
SKPDas Paket wird automatisch überprungen
RECDas Paket ist nicht erforderlich, aber empfohlen
OPTDas Paket ist optional


Das Format ist einfach:

 
package_name: status


Ein Paket pro Zeile. Die originalen Tag-Dateien für jede Software Serie sind als tagfile.org gespeichert, so dass Sie die Dateien wiederherstellen können, falls Sie Ihre zerstört haben.
Viele Administratoren ziehen es vor, ihre eigenen Tag-Dateien zu schreiben und starten dann den Installer mit der Auswahl "full". Das setup Programm liest die Tag-Dateien und führt die Installation entsprechend deren Inhalt aus. Wenn Sie REC oder OPT benutzen, öffnet sich eine Dialogbox und fragt den Nutzer, ob das betreffende Paket gwünscht wird oder nicht. Daher wird empfohlen, dass Sie sich aufi ADD und SKP beschränken, wenn Sie Tag-Dateien für automatisierte Installationen schreiben.
Die Tag-Dateien müssen einfach an die gleiche Stelle geschrieben werden, wie deren Original. Andernfalls kann man einen angepassten Tag-Datei Pfad für angepassten Tag-Dateien angeben.



bearbeiten

19 ZipSlack


19.1 Was ist ZipSlack?


ZipSlack ist eine Spezielle Version von Slackware Linux. Es ist eine bereits installierte Kopie von Slackware, welche bereit zum Starten deiner DOS- oder Windowspartition ist. Es ist eine Grundinstallation, du bekommst nicht alles was in Slackware ist.

ZipSlack bekam seinen Namen durch die Form wie es verteilt wurde, eine große .ZIP Datei. Benutzer von DOS und Windows werden vermutlich mit diesem Dateityp Vertraut sein. Es sind komprimierte Archive. Das ZipSlack Archiv beinhaltet alles, was man braucht um es hoch zu fahren und mit Slackware zu arbeiten.

Es ist notwendig, anzumerken, dass ZipSlack sich Grundlegend von einer normalen Installation unterscheidet. Selbst wenn es gleich funktioniert und die selben Programme beinhaltet Zielgruppe und Funktionsumfang unterscheiden sich. Einige Vor- und Nachteile werden folgend diskutiert.

Eine letze Sache, du solltest immer die Dokumentation im aktuellen ZipSlack-Verzeichniss lesen. Diese beinhaltet die neusten Informationen bezüglich der Installation, Booten und der Nutzung.


19.1.1 Vorteile


19.1.2 Nachteile



bearbeiten

19.2 ZipSlack bekommen


ZipSlack bekommt man ganz einfach. Hast du das offizielle CD-Set von Slackware erworben, dann verfügst du bereits über ZipSlack. Nur die richtige CD mit dem Verzeichniss zipslack auswählen und in das CD-ROM laufwerk einlegen. Es ist üblicherweise die 3te oder 4te CD, vertraue dem Aufdruck der CDs mehr als dieser Dokumentation falls die Inhalte der Datenträger verändert wurden.

Willst du ZipSlack herunterladen, solltest du zuerst die Internetseite "Get Slack" für die aktuellsten Informationen aufsuchen.

http://www.slackware.com/getslack/

ZipSlack ist Bestandteil jeder Slackwareausgabe. Wähle die gewünschte Version und gehe zum entsprechenden Verzeichniss auf dem FTP-Server. Das Verzeichniss der aktuellsten Ausgabe kann unter der folgenden Adresse erreicht werden:

ftp://ftp.slackware.com/pub/slackware/slackware/

Du wirst ZipSlack im Unterverzeichnis /zipslack finden. ZipSlack wird als eine große Zip-Datei oder in Diskettengrösse Abbilder (Chunks) angeboten. Die Diskkettenabbilder befinden sich im Verzeichnis /zipslack/split .

Höre nicht mit den Zip-Dateien auf. Du solltest ebenfalls die Dokumentations-Dateien und ein Bootimage aus dem Verzeichnis laden.

19.2.1 Installation


Nachdem du die einmal notwendigen Komponenten heruntergeladen hast, musst du die Zip-Dateien entpacken. Sei sicher, dass du einen 32-bit unzipper verwendest. Die Größe und die Dateinamen im Archiv sind zu groß für 16-bit zip-entpacker. 32 Bit Zipentpacker für Windows sind z.Bsp. WinZip und PKZIP.

ZipSlack ist so entworfen, dass es direkt ins unterste Verzeichnis eines Laufwerks (wie C: oder D:) entpackt wird. Das Verzeichnis \LINUX wird erstellt, welches die aktuelle Slackwareinstallation beinhaltet. Du wirst ebenfalls die notwendigen Dateien zum erfolgreichen Booten des System in dem Verzeichnis finden.

Nachdem du die Dateien ausgepackt hast, solltest du das Verzeichnis \LINUX auf dem ausgewählten Laufwerk haben (Wir werden C: von hier ab verwenden).

bearbeiten

19.3 ZipSlack booten



bearbeiten

Glossar



bearbeiten

A. Die GNU General Public License


GNU General Public License

Deutsche Übersetzung der Version 2, Juni 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA

Jeder hat das Recht, diese Lizenzurkunde zu vervielfältigen und unveränderte Kopien zu verbreiten; Änderungen sind jedoch nicht gestattet.

Diese Übersetzung ist kein rechtskräftiger Ersatz für die englischsprachige Originalversion!

A.1. Vorwort


Die meisten Softwarelizenzen sind daraufhin entworfen worden, Ihnen die Freiheit zu nehmen, die Software weiterzugeben und zu verändern. Im Gegensatz dazu soll Ihnen die GNU General Public License, die allgemeine öffentliche GNU-Lizenz, ebendiese Freiheit garantieren. Sie soll sicherstellen, daß die Software für alle Benutzer frei ist. Diese Lizenz gilt für den Großteil der von der Free Software Foundation herausgegebenen Software und für alle anderen Programme, deren Autoren ihr Werk dieser Lizenz unterstellt haben. Auch Sie können diese Möglichkeit der Lizenzierung für Ihre Programme anwenden. (Ein anderer Teil der Software der Free Software Foundation unterliegt stattdessen der GNU Library General Public License, der allgemeinen öffentlichen GNU-Lizenz für Bibliotheken.)

Die Bezeichnung "freie" Software bezieht sich auf Freiheit, nicht auf den Preis. Unsere Lizenzen sollen Ihnen die Freiheit garantieren, Kopien freier Software zu verbreiten (und etwas für diesen Service zu berechnen, wenn Sie möchten), die Möglichkeit, die Software im Quelltext zu erhalten oder den Quelltext auf Wunsch zu bekommen. Die Lizenzen sollen garantieren, daß Sie die Software ändern oder Teile davon in neuen freien Programmen verwenden dürfen - und daß Sie wissen, daß Sie dies alles tun dürfen.

Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen, die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern, auf diese Rechte zu verzichten. Aus diesen Einschränkungen folgen bestimmte Verantwortlichkeiten für Sie, wenn Sie Kopien der Software verbreiten oder sie verändern.

Beispielsweise müssen Sie den Empfängern alle Rechte gewähren, die Sie selbst haben, wenn Sie - kostenlos oder gegen Bezahlung - Kopien eines solchen Programms verbreiten. Sie müssen sicherstellen, daß auch sie den Quelltext erhalten bzw. erhalten können. Und Sie müssen ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen.

Wir schützen Ihre Rechte in zwei Schritten: (1) Wir stellen die Software unter ein Urheberrecht (Copyright), und (2) wir bieten Ihnen diese Lizenz an, die Ihnen das Recht gibt, die Software zu vervielfältigen, zu verbreiten und/oder zu verändern.

Um die Autoren und uns zu schützen, wollen wir darüberhinaus sicherstellen, daß jeder erfährt, daß für diese freie Software keinerlei Garantie besteht. Wenn die Software von jemand anderem modifiziert und weitergegeben wird, möchten wir, daß die Empfänger wissen, daß sie nicht das Original erhalten haben, damit von anderen verursachte Probleme nicht den Ruf des ursprünglichen Autors schädigen.

Schließlich und endlich ist jedes freie Programm permanent durch Software-Patente bedroht. Wir möchten die Gefahr ausschließen, daß Distributoren eines freien Programms individuell Patente lizensieren - mit dem Ergebnis, daß das Programm proprietär würde. Um dies zu verhindern, haben wir klargestellt, daß jedes Patent entweder für freie Benutzung durch jedermann lizenziert werden muß oder überhaupt nicht lizenziert werden darf.

Es folgen die genauen Bedingungen für die Vervielfältigung, Verbreitung und Bearbeitung:

A.2. Bedingungen für die Vervielfältigung, Verbreitung und Bearbeitung


Paragraph 0. Diese Lizenz gilt für jedes Programm und jedes andere Werk, in dem ein entsprechender Vermerk des Copyright-Inhabers darauf hinweist, daß das Werk unter den Bestimmungen dieser General Public License verbreitet werden darf. Im folgenden wird jedes derartige Programm oder Werk als "das Programm" bezeichnet; die Formulierung "auf dem Programm basierendes Werk" bezeichnet das Programm sowie jegliche Bearbeitung des Programms im urheberrechtlichen Sinne, also ein Werk, welches das Programm, auch auszugsweise, sei es unverändert oder verändert und/oder in eine andere Sprache übersetzt, enthält. (Im folgenden wird die Übersetzung ohne Einschränkung als "Bearbeitung" eingestuft.) Jeder Lizenznehmer wird im folgenden als "Sie" angesprochen.

Andere Handlungen als Vervielfältigung, Verbreitung und Bearbeitung werden von dieser Lizenz nicht berührt; sie fallen nicht in ihren Anwendungsbereich. Der Vorgang der Ausführung des Programms wird nicht eingeschränkt, und die Ausgaben des Programms unterliegen dieser Lizenz nur, wenn der Inhalt ein auf dem Programm basierendes Werk darstellt (unabhängig davon, daß die Ausgabe durch die Ausführung des Programmes erfolgte). Ob dies zutrifft, hängt von den Funktionen des Programms ab.

Paragraph 1. Sie dürfen auf beliebigen Medien unveränderte Kopien des Quelltextes des Programms, wie sie ihn erhalten haben, anfertigen und verbreiten. Voraussetzung hierfür ist, daß Sie mit jeder Kopie einen entsprechenden Copyright-Vermerk sowie einen Haftungsausschluß veröffentlichen, alle Vermerke, die sich auf diese Lizenz und das Fehlen einer Garantie beziehen, unverändert lassen und desweiteren allen anderen Empfängern des Programms zusammen mit dem Programm eine Kopie dieser Lizenz zukommen lassen.

Sie dürfen für den eigentlichen Kopiervorgang eine Gebühr verlangen. Wenn Sie es wünschen, dürfen Sie auch gegen Entgeld eine Garantie für das Programm anbieten.

Paragraph 2. Sie dürfen Ihre Kopie(n) des Programms oder eines Teils davon verändern, wodurch ein auf dem Programm basierendes Werk entsteht; Sie dürfen derartige Bearbeitungen unter den Bestimmungen von Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, daß folgende Bedingungen erfüllt werden:

(a)
Sie müssen die veränderten Dateien mit einem auffälligen Vermerk versehen, der auf die von Ihnen vorgenommene Modifizierung und das Datum jeder Änderung hinweist.
(b)
Sie müssen dafür sorgen, daß jede von Ihnen verbreitete oder veröffentlichte Arbeit, die ganz oder teilweise von dem Programm oder Teilen davon abgeleitet ist, Dritten gegenüber als Ganzes unter den Bedingungen dieser Lizenz ohne Lizenzgebühren zur Verfügung gestellt wird.
(c)
Wenn das veränderte Programm normalerweise bei der Ausführung interaktiv Kommandos einliest, müssen Sie dafür sorgen, daß es, wenn es auf dem üblichsten Wege für solche interaktive Nutzung gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen geeigneten Copyright-Vermerk enthält sowie einen Hinweis, daß es keine Gewährleistung gibt (oder anderenfalls, daß Sie Garantie leisten), und daß die Benutzer das Programm unter diesen Bedingungen weiter verbreiten dürfen. Auch muß der Benutzer darauf hingewiesen werden, wie er eine Kopie dieser Lizenz ansehen kann. (Ausnahme: Wenn das Programm selbst interaktiv arbeitet, aber normalerweise keine derartige Meldung ausgibt, muß Ihr auf dem Programm basierendes Werk auch keine solche Meldung ausgeben).

Diese Anforderungen betreffen das veränderte Werk als Ganzes. Wenn identifizierbare Abschnitte des Werkes nicht von dem Programm abgeleitet sind und vernünftigerweise selbst als unabhängige und eigenständige Werke betrachtet werden können, dann erstrecken sich diese Lizenz und ihre Bedingungen nicht auf diese Abschnitte, wenn sie als eigenständige Werke verbreitet werden. Wenn Sie jedoch dieselben Abschnitte als Teil eines Ganzen verbreiten, das ein auf dem Programm basierendes Werk darstellt, dann muß die Verbreitung des Ganzen nach den Bedingungen dieser Lizenz erfolgen, deren Bedingungen für weitere Lizenznehmer somit auf die Gesamtheit ausgedehnt werden - und damit auf jeden einzelnen Teil, unabhängig vom jeweiligen Autor.

Somit ist es nicht die Absicht dieses Abschnittes, Rechte für Werke in Anspruch zu nehmen oder zu beschneiden, die komplett von Ihnen geschrieben wurden; vielmehr ist es die Absicht, die Rechte zur Kontrolle der Verbreitung von Werken, die auf dem Programm basieren oder unter seiner auszugsweisen Verwendung zusammengestellt worden sind, auszuüben.

Ferner bringt ein einfaches Zusammenstellen eines anderen Werkes, das nicht auf dem Programm basiert, zusammen mit dem Programm oder einem auf dem Programm basierenden Werk auf ein- und demselben Speicher- oder Vertriebsmedium nicht in den Anwendungsbereich dieser Lizenz.

Paragraph 3. Sie dürfen das Programm (oder ein darauf basierendes Werk gemäß Paragraph 2) als Objectcode oder in ausführbarer Form unter den Bedingungen von Paragraph 1 und 2 vervielfältigen und verbreiten - vorausgesetzt, daß Sie außerdem eine der folgenden Leistungen erbringen:

(a)
Liefern Sie das Programm zusammen mit dem vollständigen zugehörigen maschinenlesbaren Quelltext auf einem für den Datenaustausch üblichen Medium aus, wobei die Verteilung unter den Bedingungen der Paragraphen 1 und 2 erfolgen muß. Oder:
(b)
Liefern Sie das Programm zusammen mit einem mindestens drei Jahre lang gültigen schriftlichen Angebot aus, jedem Dritten eine vollständige maschinenlesbare Kopie des Quelltextes zur Verfügung zu stellen - zu nicht höheren Kosten als denen, die durch den physikalischen Kopiervorgang anfallen -, wobei der Quelltext unter den Bedingungen der Paragraphen 1 und 2 auf einem für den Datenaustausch üblichen Medium weitergegeben wird. Oder:
(c)
Liefern Sie das Programm zusammen mit dem schriftlichen Angebot der Zurverfügungstellung des Quelltextes aus, das Sie selbst erhalten haben. (Diese Alternative ist nur für nicht-kommerzielle Verbreitung zulässig und nur, wenn Sie das Programm als Objectcode oder in ausführbarer Form mit einem entsprechenden Angebot gemäß Absatz b erhalten haben.)

Unter dem Quelltext eines Werkes wird diejenige Form des Werkes verstanden, die für Bearbeitungen vorzugsweise verwendet wird. Für ein ausführbares Programm bedeutet "der komplette Quelltext": Der Quelltext aller im Programm enthaltenen Module einschließlich aller zugehörigen Modulschnittstellen-Definitionsdateien sowie der zur Compilation und Installation verwendeten Skripte. Als besondere Ausnahme jedoch braucht der verteilte Quelltext nichts von dem zu enthalten, was üblicherweise (entweder als Quelltext oder in binärer Form) zusammen mit den Hauptkomponenten des Betriebssystems (Kernel, Compiler usw.) geliefert wird, unter dem das Programm läuft - es sei denn, diese Komponente selbst gehört zum ausführbaren Programm.

Wenn die Verbreitung eines ausführbaren Programms oder von Objectcode dadurch erfolgt, daß der Kopierzugriff auf eine dafür vorgesehene Stelle gewährt wird, so gilt die Gewährung eines gleichwertigen Zugriffs auf den Quelltext als Verbreitung des Quelltextes, auch wenn Dritte nicht dazu gezwungen sind, den Quelltext zusammen mit dem Objectcode zu kopieren.

Paragraph 4. Sie dürfen das Programm nicht vervielfältigen, verändern, weiter lizenzieren oder verbreiten, sofern es nicht durch diese Lizenz ausdrücklich gestattet ist. Jeder anderweitige Versuch der Vervielfältigung, Modifizierung, Weiterlizenzierung und Verbreitung ist nichtig und beendet automatisch Ihre Rechte unter dieser Lizenz. Jedoch werden die Lizenzen Dritter, die von Ihnen Kopien oder Rechte unter dieser Lizenz erhalten haben, nicht beendet, solange diese die Lizenz voll anerkennen und befolgen.

Paragraph 5. Sie sind nicht verpflichtet, diese Lizenz anzunehmen, da Sie sie nicht unterzeichnet haben. Jedoch gibt Ihnen nichts anderes die Erlaubnis, das Programm oder von ihm abgeleitete Werke zu verändern oder zu verbreiten. Diese Handlungen sind gesetzlich verboten, wenn Sie diese Lizenz nicht anerkennen. Indem Sie das Programm (oder ein darauf basierendes Werk) verändern oder verbreiten, erklären Sie Ihr Einverständnis mit dieser Lizenz und mit allen ihren Bedingungen bezüglich der Vervielfältigung, Verbreitung und Veränderung des Programms oder eines darauf basierenden Werks.

Paragraph 6. Jedesmal, wenn Sie das Programm (oder ein auf dem Programm basierendes Werk) weitergeben, erhält der Empfänger automatisch vom ursprünglichen Lizenzgeber die Lizenz, das Programm entsprechend den hier festgelegten Bestimmungen zu vervielfältigen, zu verbreiten und zu verändern. Sie dürfen keine weiteren Einschränkungen der Durchsetzung der hierin zugestandenen Rechte des Empfängers vornehmen. Sie sind nicht dafür verantwortlich, die Einhaltung dieser Lizenz durch Dritte durchzusetzen.

Paragraph 7. Sollten Ihnen infolge eines Gerichtsurteils, des Vorwurfs einer Patentverletzung oder aus einem anderen Grunde (nicht auf Patentfragen begrenzt) Bedingungen (durch Gerichtsbeschluß, Vergleich oder anderweitig) auferlegt werden, die den Bedingungen dieser Lizenz widersprechen, so befreien Sie diese Umstände nicht von den Bestimmungen dieser Lizenz. Wenn es Ihnen nicht möglich ist, das Programm unter gleichzeitiger Beachtung der Bedingungen in dieser Lizenz und Ihrer anderweitigen Verpflichtungen zu verbreiten, dann dürfen Sie als Folge das Programm überhaupt nicht verbreiten. Wenn zum Beispiel ein Patent nicht die gebührenfreie Weiterverbreitung des Programms durch diejenigen erlaubt, die das Programm direkt oder indirekt von Ihnen erhalten haben, dann besteht der einzige Weg, sowohl das Patentrecht als auch diese Lizenz zu befolgen, darin, ganz auf die Verbreitung des Programms zu verzichten.

Sollte sich ein Teil dieses Paragraphen als ungültig oder unter bestimmten Umständen nicht durchsetzbar erweisen, so soll dieser Paragraph seinem Sinne nach angewandt werden; im übrigen soll dieser Paragraph als Ganzes gelten.

Zweck dieses Paragraphen ist nicht, Sie dazu zu bringen, irgendwelche Patente oder andere Eigentumsansprüche zu verletzen oder die Gültigkeit solcher Ansprüche zu bestreiten; dieser Paragraph hat einzig den Zweck, die Integrität des Verbreitungssystems der freien Software zu schützen, das durch die Praxis öffentlicher Lizenzen verwirklicht wird. Viele Leute haben großzügige Beiträge zu dem großen Angebot der mit diesem System verbreiteten Software im Vertrauen auf die konsistente Anwendung dieses Systems geleistet; es liegt am Autor/Geber, zu entscheiden, ob er die Software mittels irgendeines anderen Systems verbreiten will; ein Lizenznehmer hat auf diese Entscheidung keinen Einfluß.

Dieser Paragraph ist dazu gedacht, deutlich klarzustellen, was als Konsequenz aus dem Rest dieser Lizenz betrachtet wird.

Paragraph 8. Wenn die Verbreitung und/oder die Benutzung des Programms in bestimmten Staaten entweder durch Patente oder durch urheberrechtlich geschützte Schnittstellen eingeschränkt ist, kann der Urheberrechtsinhaber, der das Programm unter diese Lizenz gestellt hat, eine explizite geographische Begrenzung der Verbreitung angeben, in der diese Staaten ausgeschlossen werden, so daß die Verbreitung nur innerhalb und zwischen den Staaten erlaubt ist, die nicht ausgeschlossen sind. In einem solchen Fall beinhaltet diese Lizenz die Beschränkung, als wäre sie in diesem Text niedergeschrieben.

Paragraph 9. Die Free Software Foundation kann von Zeit zu Zeit überarbeitete und/oder neue Versionen der General Public License veröffentlichen. Solche neuen Versionen werden vom Grundprinzip her der gegenwärtigen entsprechen, können aber im Detail abweichen, um neuen Problemen und Anforderungen gerecht zu werden.

Jede Version dieser Lizenz hat eine eindeutige Versionsnummer. Wenn in einem Programm angegeben wird, daß es dieser Lizenz in einer bestimmten Versionsnummer oder "jeder späteren Version" ("any later version") unterliegt, so haben Sie die Wahl, entweder den Bestimmungen der genannten Version zu folgen oder denen jeder beliebigen späteren Version, die von der Free Software Foundation veröffentlicht wurde. Wenn das Programm keine Versionsnummer angibt, können Sie eine beliebige Version wählen, die je von der Free Software Foundation veröffentlicht wurde.

Paragraph 10. Wenn Sie den Wunsch haben, Teile des Programms in anderen freien Programmen zu verwenden, deren Bedingungen für die Verbreitung anders sind, schreiben Sie an den Autor, um ihn um die Erlaubnis zu bitten. Für Software, die unter dem Copyright der Free Software Foundation steht, schreiben Sie an die Free Software Foundation; wir machen zu diesem Zweck gelegentlich Ausnahmen. Unsere Entscheidung wird von den beiden Zielen geleitet werden, zum einen den freien Status aller von unserer freien Software abgeleiteten Werke zu erhalten und zum anderen das gemeinschaftliche Nutzen und Wiederverwenden von Software im allgemeinen zu fördern.

Keine Gewährleistung

Paragraph 11. Da das Programm ohne jegliche Kosten lizenziert wird, besteht keinerlei Gewährleistung für das Programm, soweit dies gesetzlich zulässig ist. Sofern nicht anderweitig schriftlich bestätigt, stellen die Copyright-Inhaber und/oder Dritte das Programm so zur Verfügung, "wie es ist", ohne irgendeine Gewährleistung, weder ausdrücklich noch implizit, einschließlich - aber nicht begrenzt auf - Marktreife oder Verwendbarkeit für einen bestimmten Zweck. Das volle Risiko bezüglich Qualität und Leistungsfähigkeit des Programms liegt bei Ihnen. Sollte sich das Programm als fehlerhaft herausstellen, liegen die Kosten für notwendigen Service, Reparatur oder Korrektur bei Ihnen.

Paragraph 12. In keinem Fall, außer wenn durch geltendes Recht gefordert oder schriftlich zugesichert, ist irgendein Copyright-Inhaber oder irgendein Dritter, der das Programm wie oben erlaubt modifiziert oder verbreitet hat, Ihnen gegenüber für irgendwelche Schäden haftbar, einschließlich jeglicher allgemeiner oder spezieller Schäden, Schäden durch Seiteneffekte (Nebenwirkungen) oder Folgeschäden, die aus der Benutzung des Programms oder der Unbenutzbarkeit des Programms folgen (einschließlich - aber nicht beschränkt auf - Datenverluste, fehlerhafte Verarbeitung von Daten, Verluste, die von Ihnen oder anderen getragen werden müssen, oder dem Unvermögen des Programms, mit irgendeinem anderen Programm zusammenzuarbeiten), selbst wenn ein Copyright-Inhaber oder Dritter über die Möglichkeit solcher Schäden unterrichtet worden war.


Ende der Bedingungen

A.3. Wie Sie diese Bedingungen auf Ihre neuen Programme anwendbar machen


Wenn Sie ein neues Programm entwickeln und wollen, daß es vom größtmöglichen Nutzen für die Allgemeinheit ist, dann erreichen Sie das am besten, indem Sie es zu freier Software machen, die jeder unter diesen Bestimmungen weiterverbreiten und verändern kann.

Um dies zu erreichen, fügen Sie die folgenden Anmerkungen zu Ihrem Programm hinzu. Am sichersten ist es, sie an den Anfang einer jeden Quelldatei zu stellen, um den Gewährleistungsausschluß möglichst deutlich darzustellen; außerdem sollte jede Datei mindestens eine "Copyright"-Zeile besitzen sowie einen kurzen Hinweis darauf, wo die vollständige Lizenz gefunden werden kann.
	[eine Zeile mit dem Programmnamen und einer kurzen Beschreibung]
	Copyright (C) 19[yy]  [Name des Autors]

	This program is free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License as
	published by the Free Software Foundation; either version 2 of
	the License, or (at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
	General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Auf Deutsch:

	[eine Zeile mit dem Programmnamen und einer kurzen Beschreibung]
	Copyright (C) 19[jj]  [Name des Autors]

	Dieses Programm ist freie Software. Sie können es unter
	den Bedingungen der GNU General Public License, wie von der
	Free Software Foundation herausgegeben, weitergeben und/oder
	modifizieren, entweder unter Version 2 der Lizenz oder (wenn
	Sie es wünschen) jeder späteren Version.

	Die Veröffentlichung dieses Programms erfolgt in der
	Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE JEDE
	GEWÄHRLEISTUNG - sogar ohne die implizite Gewährleistung
	der MARKTREIFE oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
	Details finden Sie in der GNU General Public License.

	Sie sollten eine Kopie der GNU General Public License zusammen
	mit diesem Programm erhalten haben. Falls nicht, schreiben Sie
	an die Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
	MA 02139, USA.


Fügen Sie auch einen kurzen Hinweis hinzu, wie Sie elektronisch und per Brief erreichbar sind.

Wenn Ihr Programm interaktiv ist, sorgen Sie dafür, daß es nach dem Start einen kurzen Vermerk ausgibt:
	Gnomovision version 69, Copyright (C) 19[yy]  [Name des Autors]
	Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type
	`show w'. This is free software, and you are welcome to redistribute
	it under certain conditions; type `show c' for details.


Auf Deutsch:
	Gnomovision Version 69, Copyright (C) 19[jj]  [Name des Autors]
	Für Gnomovision besteht KEINERLEI GARANTIE; geben Sie `show w'
	für Details ein. Gnonovision ist freie Software, die Sie unter
	bestimmten Bedingungen weitergeben dürfen; geben Sie `show c'
	für Details ein.


Die hypothetischen Kommandos `show w' und `show c' sollten die entsprechenden Teile der GNU-GPL anzeigen. Natürlich können die von Ihnen verwendeten Kommandos anders heißen als `show w' und `show c'; es könnten auch Mausklicks oder Menüpunkte sein - was immer am besten in Ihr Programm paßt.

Soweit vorhanden, sollten Sie auch Ihren Arbeitgeber (wenn Sie als Programmierer arbeiten) oder Ihre Schule einen Copyright-Verzicht für das Programm unterschreiben lassen. Hier ein Beispiel mit geänderten Namen:
	Yoyodyne, Inc., hereby disclaims all copyright interest in the program "Gnomovision" (which makes passes at compilers) written by James Hacker.

	[Unterschrift von Ty Coon], 1 April 1989
	Ty Coon, President of Vice

Auf Deutsch:
	Die Yoyodyne GmbH erhebt keinerlei urheberrechtlichen Anspruch auf das Programm "Gnomovision" (einem Schrittmacher für Compiler), geschrieben von James Hacker.

	[Unterschrift von Ty Coon], 1. April 1989
	Ty Coon, Vizepräsident

Diese General Public License gestattet nicht die Einbindung des Programms in proprietäre Programme. Ist Ihr Programm eine Funktionsbibliothek, so kann es sinnvoller sein, das Binden proprietärer Programme mit dieser Bibliothek zu gestatten. Wenn Sie dies tun wollen, sollten Sie die GNU Library General Public License anstelle dieser Lizenz verwenden.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki