diff --git a/de_DE.ISO8859-1/books/handbook/Makefile b/de_DE.ISO8859-1/books/handbook/Makefile
index f1cb8bf195..8a3cdd22c5 100644
--- a/de_DE.ISO8859-1/books/handbook/Makefile
+++ b/de_DE.ISO8859-1/books/handbook/Makefile
@@ -1,55 +1,56 @@
#
# $FreeBSD$
-# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.16 2002/03/11 22:07:13 mheinen Exp $
+# $FreeBSDde: de-docproj/books/handbook/Makefile,v 1.17 2002/05/09 15:56:27 mheinen Exp $
#
# Build the FreeBSD Handbook in its German translation.
#
MAINTAINER=alex@FreeBSD.org
DOC?= book
FORMATS?= html-split
HAS_INDEX= true
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# Images from the cross-document image library
IMAGES_LIB= callouts/1.png
IMAGES_LIB+= callouts/2.png
IMAGES_LIB+= callouts/3.png
IMAGES_LIB+= callouts/4.png
IMAGES_LIB+= callouts/5.png
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
SRCS+= book.sgml
SRCS+= basics/chapter.sgml
SRCS+= bibliography/chapter.sgml
+SRCS+= cutting-edge/chapter.sgml
SRCS+= boot/chapter.sgml
SRCS+= config/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= kernelconfig/chapter.sgml
SRCS+= ports/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
SRCS+= sound/chapter.sgml
SRCS+= users/chapter.sgml
# Entities
SRCS+= chapters.ent
SRCS+= newsgroups.ent
# alle Kapitel bauen
CHAPTERS?= ${SRCS:M*chapter.sgml}
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./}
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
index 11b9bbfebc..75c73a32de 100644
--- a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
@@ -1,1570 +1,1572 @@
ChrisShumwayUmgeschrieben von UwePierauÜbersetzt von Unix GrundlagenÜbersichtGrundlagenDas folgende Kapitel umfaßt die grundlegenden Kommandos
und Funktionsweisen des Betriebssystems FreeBSD. Viel von dem folgenden
Material gilt auch für jedes andere Unix-ähnliche System.
Falls Sie mit dem Material schon vertraut sind, können Sie dieses
Kapitel überlesen. Wenn FreeBSD neu für Sie ist, dann sollten
- Sie dieses Kapitel auf jeden Fall sehr genau lesen.
+ Sie dieses Kapitel auf jeden Fall aufmerksam lesen.
Nachdem Sie dieses Kapitel gelesen haben, werden Sie folgendes
wissen:wie Unix Zugriffsrechte funktionieren,was Prozesse, Dämonen und Signale sind,was eine Shell ist und wie Sie die Login Umgebung
ändern,wie Sie mit Texteditoren umgehen, und
- wie Sie in den Manual-Pages nach weiteren Informationen
+ wie Sie in den Manualpages nach weiteren Informationen
suchen können.ZugriffsrechteUnixDie Grundlagen von FreeBSD, das ein direkter Abkömmling
- von BSD UNIX ist, stützen sich auf verschiedene UNIX
+ von BSD Unix ist, stützen sich auf verschiedene Unix
Grundkonzepte. Das erste und ausgeprägteste: FreeBSD ist
- ein Multi-User Betriebssystem. Das System ermöglicht,
+ ein Mehrbenutzer Betriebssystem. Das System ermöglicht,
daß mehrere User gleichzeitig an völlig verschiedenen
- und unabhängigen Aufgaben arbeiten können. Es ist
+ und unabhängigen Aufgaben arbeiten können. Es ist
verantwortlich für eine gerechte Auf- und Zuteilung von
Nachfragen nach Hardware- und Peripheriegeräten, Speicher
und CPU Zeit unter den Usern.Da das System mehrere Benutzer unterstützt, hat alles,
was das System verwaltet, einen Satz von Rechten, die bestimmen,
wer die jeweilige Ressource lesen, schreiben oder ausführen
darf. Diese Zugriffsrechte stehen in zwei Achtergruppen, die in
drei Teile unterteilt sind: einen für den Besitzer der
Datei, einen für die Gruppe, zu der die Datei gehört
und einen für alle anderen. Die numerische Darstellung
sieht wie folgt aus:ZugriffsrechteDateizugriffsrechteWertZugriffsrechteAuflistung im Verzeichnis0Kein Lesen, Kein Schreiben, Kein Ausführen---1Kein Lesen, Kein Schreiben, Ausführen--x2Kein Lesen, Schreiben, Kein Ausführen-w-3Kein Lesen, Schreiben, Ausführen-wx4Lesen, Kein Schreiben, Kein Ausführenr--5Lesen, Kein Schreiben, Ausführenr-x6Lesen, Schreiben, Kein Ausführenrw-7Lesen, Schreiben, AusführenrwxlsVerzeichnisseSie können auf der Kommandozeile
von &man.ls.1; angeben, um eine ausführliche Verzeichnisauflistung
zu sehen, die in einer Spalte die Zugriffsrechte für den
Besitzer, die Gruppe und alle anderen enthält. Die erste
- Spalte von ls -l könnte wie folgt aussehen:
+ Spalte von ls -l könnte wie folgt
+ aussehen:
-rw-r--r--Das erste Zeichen von links ist ein Symbol, welches angibt,
ob es sich um eine normale Datei, ein Verzeichnis, ein special-
oder block-Device, ein Socket oder irgendeine andere
Pseudo-Datei handelt. Die nächsten drei Zeichen,
dargestellt als rw-, ergeben die Rechte
für den Datei-Besitzer. Die drei Zeichen danach
r-- die Rechte der Gruppe, zu der die Datei
gehört. Die letzten drei Zeichen, r--,
geben die Rechte für den Rest der Welt an. Ein Minus
bedeutet, daß das Recht nicht gegeben ist. In diesem Fall
sind die Zugriffsrechte also: der Eigentümer kann die Datei
lesen und schreiben, die Gruppe kann lesen und alle anderen
können auch nur lesen. Entsprechend obiger Tabelle
wären die Zugriffsrechte für diese Datei
644, worin jede Ziffer die drei Teile der
Zugriffsrechte dieser Datei verkörpert.Das ist alles schön und gut, aber wie kontrolliert das
System die Rechte von Hardware Geräten? FreeBSD behandelt
die meisten Hardware Geräte als Dateien, welche Programme
öffnen, lesen und mit Daten beschreiben können wie
alle anderen Dateien auch. Diese Spezial-Dateien sind im
Verzeichnis /dev gespeichert.Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie
haben Lese-, Schreib- und Ausführ-Rechte. Das
Ausführungs-Bit hat eine etwas andere Bedeutung für
ein Verzeichnis als für eine Datei. Die Ausführbarkeit
eines Verzeichnisses bedeutet, daß in das Verzeichnis
zum Beispiel mit cd gewechselt werden kann.
Das bedeutet auch, daß in dem Verzeichnis auf Dateien, deren
- Namen bekannt sind, zugegriffen kann, vorausgesetzt die
+ Namen bekannt sind, zugegriffen werden kann, vorausgesetzt die
Zugriffsrechte der Dateien lassen dies zu.Das Leserecht auf einem Verzeichnis erlaubt es, sich den Inhalt
des Verzeichnisses anzeigen zu lassen. Um eine Datei mit bekanntem
Namen in einem Verzeichnis zu löschen, müssen auf dem
Verzeichnis Schreib- und Ausführ-Rechte
gesetzt sein.Es gibt noch mehr Rechte, aber die werden vor allem in
speziellen Umständen benutzt, wie zum Beispiel bei
SetUID-Binaries und Verzeichnissen mit gesetztem Sticky-Bit.
Mehr über Zugriffsrechte von Dateien und wie sie gesetzt werden,
finden Sie in &man.chmod.1;.Verzeichnis-StrukturenVerzeichnis HierarchienDie FreeBSD Verzeichnis Hierarchie ist die Grundlange, um
ein umfassendes Verständnis des Systems zu erlangen.
Das wichtigste Konzept, das Sie verstehen sollten, ist das
Root-Verzeichnis /. Dieses Verzeichnis ist das
erste, das während des Bootens eingehangen wird. Es
- enthält das notwendige Basissystem um das System in den
+ enthält das notwendige Basissystem, um das System in den
Mehrbenutzerbetrieb zu bringen. Das Root-Verzeichnis enthält
auch die Mountpunkte anderer Dateisysteme, die später
eingehangen werden.Ein Mountpunkt ist ein Verzeichnis, in das zusätzliche
Dateisysteme in das / Verzeichnis eingepflanzt
werden können.
Standard Mountpunkte beinhalten /usr,
/var, /mnt und
/cdrom. Auf diese Verzeichnisse verweisen
üblicherweise Einträge in der Datei
/etc/fstab. /etc/fstab ist
eine Tabelle mit verschiedenen Dateisystemen und Mountpunkten
als Referenz des Systems. Die meisten der Dateisysteme in
/etc/fstab werden beim Booten automatisch
durch das Skript &man.rc.8; gemountet, wenn die zugehörigen
Einträge nicht mit der Option
- versehen sind. Konsultieren Sie die &man.fstab.5; Man-Page
+ versehen sind. Konsultieren Sie die &man.fstab.5; Manualpage
für mehr Informationen über das Format der Datei
/etc/fstab und den Optionen darin.Eine vollständige Beschreibung der Dateisystem-Hierarchie
- finden Sie in &man.hier.7;. Als Beispiel sein eine kurze
+ finden Sie in &man.hier.7;. Als Beispiel sei eine kurze
Übersicht über die gebräuchlisten Verzeichnisse
gegeben:VerzeichnisBeschreibung/Root-Verzeichnis des Dateisystems./bin/Grundlegende Werkzeuge für den Single-User-Modus
sowie den Mehrbenutzerbetrieb./boot/Programme und Konfigurationsdateien, die während
des Bootens benutzt werden./boot/defaults/Vorgaben für die Boot-Konfiguration, siehe
&man.loader.conf.5;./dev/Gerätedateien, siehe &man.intro.4;./etc/
- System Konfigurationsdateien und Skripte.
+ Konfigurationsdateien und Skripten des Systems./etc/defaults/Vorgaben für die System Konfigurationsdateien,
siehe &man.rc.8;./etc/mail/Konfigurationsdateien von MTAs wie
&man.sendmail.8;./etc/namedb/Konfigurationsdateien von named,
siehe &man.named.8;./etc/periodic/Täglich, wöchentlich oder monatlich
ablaufende Skripte, die von &man.cron.8; gestartet werden.
Siehe &man.periodic.8;./etc/ppp/Konfigurationsdateien von ppp,
siehe &man.ppp.8;./mnt/Ein leeres Verzeichnis, das von Systemadministratoren
häufig als temporärer Mountpunkt genutzt wird./proc/Prozeß Dateisystem, siehe &man.procfs.5;
und &man.mount.procfs.8;./root/Home Verzeichnis von root./sbin/Systemprogramme und administrative Werkzeuge, die
- grundlegend für des Single-User-Modus und den
+ grundlegend für den Single-User-Modus und den
Mehrbenutzerbetrieb sind./stand/Programme, die ohne andere Programme oder Bibliotheken
laufen./tmp/Temporäre Dateien, die für gewöhnlich
nicht nach einem Reboot erhalten werden. Dies kann
ein speicherbasiertes Dateisystem, siehe &man.mfs.8;,
sein./usr/Der Großteil der Benutzerprogramme und
Applikationen./usr/bin/Gebräuchliche Werkzeuge, Programmierhilfen und
Applikationen./usr/include/Standard C include-Dateien./usr/lib/Bibliotheken./usr/libdata/Daten verschiedener Werkzeuge./usr/libexec/System-Dämonen und System-Werkzeuge, die von
anderen Programmen ausgeführt werden./usr/local/
- Lokale Programme, Bibliotheken usw. Die Port Kollektion
+ Lokale Programme, Bibliotheken usw. Die Ports-Sammlung
benutzt dieses Verzeichnis als Zielverzeichnis für zu
installierende Applikationen. Innerhalb von
/usr/local sollte das von
&man.hier.7; beschriebene Layout für
/usr benutzt werden. Das
man Verzeichnis wird direkt unter
/usr/local anstelle unter
/usr/local/share angelegt. Die
Dokumentation der Ports findet sich in
share/doc/port.
/usr/obj/Von der Architektur abhängiger Verzeichnisbaum,
der durch das Bauen von /usr/src
entsteht./usr/ports
- Die FreeBSD Ports-Kollektion (optional).
+ Die FreeBSD Ports-Sammlung (optional)./usr/sbin/System-Dämonen und System-Werkzeuge, die von
Benutzern ausgeführt werden./usr/share/Von der Architektur unabhängige Dateien./usr/src/
- Quelldateien zu BSD und/oder lokalen
+ Quelldateien von BSD und/oder lokalen
Ergänzungen./usr/X11R6/Optionale X11R6 Programme und Bibliotheken./var/Wird für mehrere Zwecke genutzt und enthält
- Logdateien, temporäre und Spooldateien.
+ Logdateien, temporäre Daten und Spooldateien.
/var/log/Verschiedene Logdateien des Systems./var/mail/Postfächer der Benutzer./var/spool/Verschiedene Spool-Verzeichnisse der Drucker- und
Mailsysteme./var/tmp/Temporäre Dateien, die über Reboots erhalten
bleiben./var/ypNIS maps.ProzesseDa FreeBSD ein Multitasking Betriebssystem ist, sieht es so aus,
als ob mehrere Prozesse zur gleichen Zeit laufen. Jedes Programm,
das zu irgendeiner Zeit läuft, wird
Prozeß genannt. Jedes Kommando
startet mindestens einen Prozeß. Einige Systemprozesse
- laufen die ganze Zeit und stellen die Funktion des Systems sicher.
+ laufen ständig und stellen die Funktion des Systems sicher.
Jeder Prozeß wird durch eine eindeutige Nummer identifiziert,
die Prozeß-ID oder
PID genannt wird. Prozesse haben ebenso
wie Dateien einen Besitzer und eine Gruppe, die festlegen, welche
Dateien und Geräte der Prozeß benutzen kann. Dabei
- finden die vorher beschriebenen Zugriffsrechte Anwendungen. Die meisten
+ finden die vorher beschriebenen Zugriffsrechte Anwendung. Die meisten
Prozesse haben auch einen Elternprozeß, der sie gestartet hat.
Wenn Sie in der Shell Kommandos eingeben, dann ist die Shell ein
- Prozeß und jedes Kommando, das Sie starten ist auch ein
+ Prozeß und jedes Kommando, das Sie starten, ist auch ein
Prozeß. Jeder Prozeß, den Sie auf diese Weise starten,
besitzt den Shell-Prozeß als Elternprozeß. Die Ausnahme
hiervon ist ein spezieller Prozeß, der init
heißt. init ist immer der erste Prozeß
und hat somit die PID 1. init wird vom Kernel
beim Booten von FreeBSD gestartet.Die Kommandos &man.ps.1; und &man.top.1; sind besonders
nützlich, um sich die Prozesse auf einem System anzusehen.
&man.ps.1; zeigt eine statische Liste der laufenden Prozesse
und kann deren PID, Speicherverbrauch und die Kommandozeile, mit der
- sie gestartet wurden, usw. anzeigen. &man.top.1; zeigt alle
+ sie gestartet wurden und vieles mehr anzeigen. &man.top.1; zeigt alle
laufenden Prozesse an und aktualisiert die Anzeige, so daß
Sie Ihrem Computer bei der Arbeit zuschauen können.Normal zeigt Ihnen &man.ps.1; nur die laufenden Prozesse,
- die Ihnen gehören. Zum Beispiel:
+ die Ihnen gehören. Zum Beispiel:
&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfishWie Sie sehen, gibt &man.ps.1; mehrere Spalten aus. In der
PID Spalte findet sich die vorher besprochene
Prozeß-ID. PIDs werden von 1 beginnend bis 99999 zugewiesen
und fangen wieder von vorne an, wenn die Grenze überschritten
wird. TT zeigt den Terminal, auf dem das
- Programm läuft. STAT zeigt des Status
- des Programms und kann für die Zwecke dieser Diskussion ebenso
+ Programm läuft. STAT zeigt den Status
+ des Programms an und kann für die Zwecke dieser Diskussion ebenso
wie TT ignoriert werden. TIME
gibt die Zeit an, die das Programm auf der CPU gelaufen ist—
dies ist nicht unbedingt die Zeit, die seit dem Start des Programms
vergangen ist, da einige Programme viel Zeit mit dem Warten auf
bestimmte Dinge verbringen, bevor sie wirklich CPU-Zeit verbrauchen.
Unter der Spalte COMMAND finden Sie schließlich
die Kommandozeile, mit der das Programm gestartet wurde.&man.ps.1; besitzt viele Optionen, um die angezeigten Informationen
zu beeinflussen. Eine nützliche Kombination ist
auxww. Mit werden Information
über alle laufenden Prozesse und nicht nur Ihrer eigenen
angezeigt. Der Name des Besitzers des Prozesses, sowie Informationen
über den Speicherverbrauch werden mit
angezeigt. zeigt auch Dämonen-Prozesse an,
und vernlaßt &man.ps.1; die komplette
Kommandozeile anzuzeigen, anstatt sie abzuschneiden, wenn sie
zu lang für die Bildschirmausgabe wird.Die Ausgabe von &man.top.1; sieht ähnlich aus:&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...
- Die Ausgabe ist in zwei Abschnitte geteilt. Im Kopf in den ersten
- fünf Zeilen finden sich die zuletzt zugeteilte PID, die
- Systemauslastung (load average), die Systemlaufzeit
- (die Zeit seit dem letzten Reboot) und die momentane Zeit. Die weiteren
- Zahlen im Kopf beschreiben wieviele Prozesse momentan laufen (im
- Beispiel 47), wieviel Speicher und Swap verbraucht wurde und
- wieviel Zeit das System in den verschiedenen CPU-Modi verbringt.
+ Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten
+ fünf Kopfzeilen finden sich die zuletzt zugeteilte PID, die
+ Systemauslastung (engl. load average),
+ die Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
+ momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wieviele
+ Prozesse momentan laufen (im Beispiel 47), wieviel Speicher
+ und Swap verbraucht wurde und wieviel Zeit das System in den
+ verschiedenen CPU-Modi verbringt.Darunter befinden sich einige Spalten mit ähnlichen
Informationen wie in der Ausgabe von &man.ps.1;. Wie im vorigen
Beispiel können Sie die PID, den Besitzer, die verbrauchte
CPU-Zeit und das Kommando erkennen. &man.top.1; zeigt auch den
Speicherverbrauch des Prozesses an, der in zwei Spalten aufgeteilt
ist. Die erste Spalte gibt den gesamten Speicherverbrauch des
Prozesses an, in der zweiten Spalte wird der aktuelle Verbrauch
angegeben. Netscape hat im gezeigten
Beispiel insgesamt 30 MB Speicher verbraucht. Momentan benutzt
es allerdings nur 9 MB.Die Anzeige wird von &man.top.1; automatisch alle zwei Sekunden
aktualisiert. Der Zeitraum kann mit eingestellt
werden.Dämonen, Signale und Stoppen von ProzessenWenn Sie einen Editor starten, können Sie ihn leicht bedienen
und Dateien laden. Sie können das, weil der Editor dafür
Vorsorge getroffen hat und auf einem Terminal
läuft. Manche Programme erwarten keine Eingaben von einem
Benutzer und lösen sich bei erster Gelegenheit von ihrem
Terminal. Ein Web-Server zum Beispiel verbringt den ganzen Tag
damit, auf Anfragen zu antworten und erwartet keine Eingaben von Ihnen.
Programme, die E-Mail von einem Ort zu einem anderen Ort transportieren
sind ein weiteres Beispiel für diesen Typ von Applikationen.Wir nennen diese Programme Dämonen.
Dämonen stammen aus der griechischen Mythologie und waren
weder gut noch böse. Sie waren kleine dienstbare Geister,
die meistens nützliche Sachen für die Menschheit vollbrachten.
Ähnlich wie heutzutage Web-Server und Mail-Server nützliche
Dienste verrichten. Seit langer Zeit ist daher das BSD Maskottchen
dieser fröhlich aussehende Dämon mit Turnschuhen
und Dreizack.Programme, die als Dämon laufen, werden entsprechend einer
Konvention mit einem d am Ende benannt.
BIND ist der Berkeley Internet Name Daemon
und das tatsächlich laufende Programm heißt
named. Der Apache Webserver wird
httpd genannt, der Druckerspool-Dämon heißt
lpd usw. Dies ist allerdings eine Konvention
und keine unumstößliche Regel: Der Dämon der
Applikation sendmail heißt
sendmail und nicht maild, wie
Sie vielleicht gedacht hatten.Manchmal müssen Sie mit einem Dämon kommunizieren und
dazu benutzen Sie Signale. Sie können
mit einem Dämonen oder jedem anderen laufenden Prozeß
kommunizieren, indem Sie diesem ein Signal schicken. Sie können
verschiedene Signale verschicken—manche haben eine festgelegte
Bedeutung, andere werden von der Applikation interpretiert. Die
Dokumentation zur fraglichen Applikation wird erklären, wie
die Applikation Signale interpretiert. Sie können nur Signale
- zu Prozessen senden, die Ihnen gehören. Wenn Sie versuchen
- einem Prozeß, der nicht Ihnen gehört, ein Signal zu
- senden, so wird das Signal ignoriert. Der Benutzer
+ zu Prozessen senden, die Ihnen gehören. Normale Benutzer haben
+ nicht die Berechtigung, Prozessen anderer Benutzer mit &man.kill.1;
+ oder &man.kill.2; Signale zu schicken. Der Benutzer
root darf jedem Prozeß Signale schicken.In manchen Fällen wird FreeBSD Signale senden. Wenn eine
Applikation schlecht geschrieben ist und auf Speicher zugreift, auf
den sie nicht zugreifen soll, so sendet FreeBSD dem Prozeß
das Segmentation Violation Signal
(SIGSEGV). Wenn eine Applikation den &man.alarm.3;
Systemaufruf benutzt hat, um nach einiger Zeit benachrichtigt zu
werden, bekommt sie das Alarm Signal (SIGALRM)
gesendet.Zwei Signale können benutzt werden, um Prozesse zu stoppen:
SIGTERM und SIGKILL. Mit
SIGTERM fordern Sie den Prozeß höflich zum
Beenden auf. Der Prozeß kann das Signal abfangen und merken,
daß er sich beenden soll. Er hat dann Gelegenheit Logdateien
zu schließen und die Aktion, die er vor der Aufforderung
sich zu beenden durchführte, abzuschließen. Er kann
sogar SIGTERM ignorieren, wenn er eine Aktion
durchführt, die nicht unterbrochen werden darf.SIGKILL kann von keinem Prozeß ignoriert
werden. Das Signal läßt sich mit Mich interessiert
nicht, was du gerade machst, hör sofort auf damit!
umschreiben. Wenn Sie einem Prozeß SIGKILL
schicken, dann wird FreeBSD diesen sofort beenden
Das stimmt nicht ganz: Es gibt Fälle, in denen ein Prozeß
nicht unterbrochen werden kann. Wenn der Prozesß zum Beispiel
eine Datei von einem anderen Rechner auf dem Netzwerk liest und dieser
Rechner aus irgendwelchen Gründen nicht erreichbar ist
(ausgeschaltet, oder ein Netzwerkfehler), dann ist der Prozeß
nicht zu unterbrechen. Wenn der Prozeß den Lesezugriff
nach einem Timeout von typischerweise zwei Minuten aufgibt,
dann wir er beendet..Andere Signale, die Sie vielleicht verschicken wollen, sind
SIGHUP, SIGUSR1 und
SIGUSR2. Diese Signale sind für allgemeine
Zwecke vorgesehen und verschiedene Applikation werden unterschiedlich
auf diese Signale reagieren.Nehmen wir an, Sie haben die Konfiguration Ihres Webservers
verändert und möchten dies dem Server mitteilen. Sie
könnten den Server natürlich stoppen und
httpd wieder starten. Die Folge wäre eine
kurze Zeit, in der der Server nicht erreichbar ist. Die meisten
Dämonen lesen Ihre Konfigurationsdatei beim Empfang eines
SIGHUP neu ein. Da es keinen Standard gibt, der
vorschreibt, wie auf diese Signale zu reagieren ist, lesen
Sie bitte die Dokumentation zu dem in Frage kommenden Dämon.Mit &man.kill.1; können Sie, wie unten gezeigt, Signale
verschicken.Verschicken von SignalenDas folgende Beispiel zeigt, wie Sie &man.inetd.8; ein Signal
schicken. Die Konfigurationsdatei von &man.inetd.8; ist
/etc/inetd.conf und &man.inetd.8; liest die
Konfigurationsdatei erneut ein, wenn er ein SIGHUP
empfängt.Suchen Sie Prozeß-ID des Prozesses, dem Sie ein Signal
schicken wollen. Benutzen Sie dazu &man.ps.1; und &man.grep.1;.
Mit &man.grep.1; können Sie in einer Ausgabe nach einem
String suchen. Da &man.inetd.8; unter dem Benutzer
root läuft und Sie das Kommando als
normaler Benutzer absetzen, müssen Sie &man.ps.1; mit
aufrufen:&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wWDie Prozeß-ID von &man.inetd.8; ist 198. In einigen
Fällen werden Sie auch das grep inetd
Kommando in der Ausgabe sehen. Dies hat damit zu tun, wie
&man.ps.1; die Liste der laufenden Prozesse untersucht.Senden Sie das Signal mit &man.kill.1;. Da &man.inetd.8;
unter dem Benutzer root läuft, müssen
Sie zuerst mit &man.su.1; root werden:&prompt.user; suPassword:
&prompt.root; /bin/kill -s HUP 198&man.kill.1; wird, wie andere Unix Kommandos auch, keine Ausgabe
erzeugen, wenn das Kommando erfolgreich war. Wenn Sie versuchen,
einem Prozeß, der nicht Ihnen gehört, ein Signal zu
senden, dann werden Sie die Meldung
kill: PID: Operation not
permitted sehen. Wenn Sie sich bei der Eingabe der
PID vertippen, werden Sie das Signal dem falschen Prozeß
schicken, was schlecht sein kann. Wenn Sie Glück haben,
existiert der Prozeß nicht und Sie werden mit der Ausgabe
kill: PID: No such
process belohnt.Warum soll ich /bin/kill benutzen?Viele Shells stellen kill als internes
Kommando zur Verfügung, das heißt die Shell sendet
das Signal direkt, anstatt /bin/kill
zu starten. Das kann nützlich sein, aber die
unterschiedlichen Shells benutzen eine verschiedene Syntax,
um die Namen der Signale anzugeben. Anstatt jede Syntax zu
lernen, kann es einfacher sein, /bin/kill
... direkt aufzurufen.Andere Signale senden Sie auf die gleiche Weise, ersetzen
Sie nur TERM oder KILL
entsprechend.Es kann gravierende Auswirkungen haben, wenn Sie zufällig
Prozesse beenden. Insbesondere &man.init.8; mit der Prozeß-ID
ist ein Spezialfall. Mit /bin/kill -s KILL 1
können Sie Ihr System schnell herunterfahren.
Überprüfen Sie die Argumente von &man.kill.1;
immer zweimal bevor
Sie Return drücken.Anhängen und Abhängen von DateisystemenEin Dateisystem wird am besten als ein Baum mit der
Wurzel / veranschaulicht.
/dev, /usr, und
die anderen Verzeichnisse im Rootverzeichnis sind Zweige,
die wiederum eigene Zweige wie /usr/local
haben können.Root-DateisystemEs gibt verschiedene Gründe, bestimmte dieser Verzeichnisse
auf eigenen Dateisystemen anzulegen. /var
enthält log/, spool/
sowie verschiedene andere temporäre
Dateien und kann sich daher schnell füllen. Es empfiehlt sich,
/var von / zu trennen,
da es schlecht ist, wenn das Root-Dateisystem voll
läuft.Ein weiterer Grund bestimmte Verzeichnisbäume auf
andere Dateisysteme zu legen, ist gegeben, wenn sich die
Verzeichnisbäume auf gesonderten physikalischen oder
virtuellen Platten, wie
Network File System
oder CDROM Laufwerken, befinden.Die fstab DateiDateisystemefstabWährend des Boot Prozesses
werden in /etc/fstab aufgeführte
Verzeichnisse, sofern sie nicht mit der Option
versehen sind, automatisch angehangen.Die Zeilen in /etc/fstab haben das
folgende Format:device/mount-pointfstypeoptionsdumpfreqpassnodeviceEin existierender Gerätename
- wie oben in
+ wie in
Benennung von Laufwerken
beschrieben.mount-pointEin existierendes Verzeichnis,
an das das Dateisystem angehangen wird.fstypeDer Typ des Dateisystems,
der an &man.mount.8; weitergegeben wird. Das default
FreeBSD Dateisystem ist ufs.optionsEntweder
für beschreibbare Dateisysteme oder
für schreibgeschützte Dateisysteme, gefolgt von
weiteren benötigten Optionen. Eine häufig verwendete
Option ist für Dateisysteme,
die während der normalen Bootsequenz nicht angehangen
werden sollen. Weitere Optionen finden sich
in &man.mount.8;.dumpfreq
- Gibt die anzahl der Tage an, nachdem das
+ Gibt die Anzahl der Tage an, nachdem das
Dateisystem gesichert werden soll. Fehlt der Wert, wird
0 angenommen.passnoBestimmt die Reihenfolge, in der die Dateisysteme
überprüft werden sollen. Für Dateisysteme,
die übersprungen werden sollen, ist
passno auf null zu setzen. Für das
Root-Dateisystem, das vor allen anderen überprüft
werden muß, sollte der Wert von
passno eins betragen. Allen anderen
Dateisystemen sollten Werte größer eins zugewiesen
werden. Wenn mehrere Dateisysteme den gleichen Wert
besitzen, wird &man.fsck.8; versuchen, diese parallel zu
überprüfen.Das mount KommandoDateisystemeanhängen&man.mount.8; hängt schließlich Dateisysteme
an.In der grundlegenden Form wird es wie folgt benutzt:&prompt.root; mount devicemountpointViele Optionen werden in &man.mount.8; beschrieben,
die am häufigsten verwendeten sind:Mount Optionen
- Hängt alle Dateisysteme aus /etc/fstab
- an. Davon ausgenommen sind Dateisysteme, die mit
- noauto markiert sind, die mit der Option
- ausgeschlossen wurden und Dateisysteme,
- die schon angehangen sind.
+ Hängt alle Dateisysteme aus
+ /etc/fstab an. Davon ausgenommen
+ sind Dateisysteme, die mit noauto markiert
+ sind, die mit der Option ausgeschlossen
+ wurden und Dateisysteme, die schon angehangen sind.Führt den entsprechenden Systemcall nicht aus.
Nützlich ist diese Option in Verbindung
mit . Damit wird angezeigt, was
mount tatsächlich versuchen
würde, um das Dateisystem anzuhängen.Erzwingt das Anhängen eines unsauberen Dateisystems
oder erzwingt die Rücknahme des Schreibzugriffs, wenn
der Status des Dateisystems von beschreibbar auf
schreibgeschützt geändert wird.Hängt das Dateisystem schreibgeschützt an. Das
kann auch durch Angabe von zu der
Option erreicht werden.fstypeHängt das Dateisystem mit dem angebenen Typ an,
oder hängt nur Dateisysteme mit dem angegebenen Typ
an, wenn auch angegeben
wurde.Die Voreinstellung für den Typ des Dateisystems
ist ufs.Aktualisiert die Mountoptionen des Dateisystems.Geschwätzig sein.Hängt das Dateisystem beschreibbar an. erwartet eine durch Kommata separierte Liste
von Optionen, unter anderem die folgenden:nodevBeachtet keine Gerätedateien auf dem Dateisystem.
Dies ist ein nützliches Sicherheitsfeature.noexecVerbietet das Ausführen von binären
Dateien auf dem Dateisystem. Dies ist ein
nützliches Sicherheitsfeature.nosuidSetUID und SetGID Bits werden auf dem Dateisystem
nicht beachtet. Dies ist ein nützliches
Sicherheitsfeature.Das umount KommandoDateisystemeabhängen&man.umount.8; akzeptiert als Parameter entweder
einen Mountpoint, einen Gerätenamen, oder die
Optionen oder .Jede Form akzeptiert , um das
Abhängen zu erzwingen, und , um
etwas geschwätziger zu sein. Seien Sie bitte vorsichtig mit
: Ihr Computer kann abstürzen oder es
können Daten auf dem Dateisystem beschädigt werden, wenn
Sie das Abhängen erzwingen. und werden benutzt
um alle Dateisysteme, deren Typ durch
modifiziert werden kann, abzuhängen.
hängt das Rootdateisystem nicht ab.ShellsShellsKommandozeileVon der tagtäglichen Arbeit mit FreeBSD wird eine Menge
mit der Kommandozeilen Schnittstelle der Shell erledigt. Die
Hauptaufgabe einer Shell besteht darin, Kommandos der Eingabe
anzunehmen und diese auszuführen. Viele Shells haben
außerdem eingebaute Funktionen, um die tägliche
Arbeit zu erleichtern, wie Dateiverwaltung, Editieren von
Kommandozeilen, Makros und Umgebungsvariablen. FreeBSD
enthält die Shells sh (die Bourne Shell) und
tcsh (die verbesserte C-Shell) im Basissystem.
Viele andere Shells, wie zsh oder
bash, befinden sich in der Ports-Sammlung.Welche Shell soll ich benutzen? Das ist wirklich eine
Geschmacksfrage. Sind Sie ein C Programmierer, finden Sie
vielleicht eine C-artige Shell wie die tcsh
angenehmer. Kommen Sie von Linux oder Ihnen ist eine Unix Kommandozeile
neu, so könnten Sie die bash probieren.
Der Punkt ist, daß
jede Shell ihre speziellen Eigenschaften hat, die mit Ihrer
bevorzugten Arbeitsumgebung harmonieren können oder nicht.
Sie müssen sich eine Shell aussuchen.Ein verbreitetes Merkmal in Shells ist die
Dateinamen-Vervollständigung. Sie müssen nur einige
Buchstaben eines Kommandos oder eines Dateinamen eingeben und
die Shell vervollständigt den Rest automatisch durch
drücken der Tab-Taste. Hier ist ein Beispiel.
Angenommen, Sie
haben zwei Dateien foobar und
foo.bar. Die Datei
foo.bar möchten Sie löschen. Nun
würden Sie an der Tastatur eingeben:
rm fo[Tab].
[Tab].Die Shell würde dannrm
foo[BEEP].bar ausgeben.[BEEP] meint den Rechner-Piepser. Diesen gibt die Shell
aus, um anzuzeigen, daß es den Dateinamen nicht
vervollständigen konnte, da es mehrere Möglichkeiten
gibt. Beide Dateien foobar und
foo.bar beginnen mit fo,
so konnte nur bis foo ergänzt werden.
Nachdem Sie . eingaben und dann die
Tab-Taste
drückten, konnte die Shell den Rest für Sie
ausfüllen.UmgebungsvariablenEine andere Funktion der Shell sind die Umgebungsvariablen.
Das sind veränderbare Schlüsselpaare im Umgebungsraum
- der Shell. Diesen Umgebungsraum kann jedes von der Shell
- aufgerufene Programm lesen. So kommt es, daß viel
- Programmkonfiguration darin enthalten ist. Hier eine Liste
- verbreiteter Umgebungsvariablen und was sie bedeuten:
+ der Shell, die jedes von Shell aufgerufene Programm lesen kann.
+ Daher enthält der Umgebungsraum viele Konfigurationsdaten
+ für Programme. Die folgende Liste zeigt
+ verbreitete Umgebungsvariablen und was sie bedeuten:
UmgebungsvariablenVariableBeschreibungUSERName des zur Zeit angemeldeten Benutzers.PATHListe mit Verzeichnissen (getrennt durch Doppelpunkt)
zum Suchen nach Programmen.DISPLAYWenn gesetzt der Netzwerkname des X11 Bildschirms
für die Anzeige.SHELLDie aktuelle Shell.TERMName des Terminals des Benutzers. Benutzt, um die
Fähigkeiten des Terminals bestimmen.TERMCAPDatenbankeintrag der Terminal Escape Codes,
benötigt um verschieden Terminalfunktionen
auszuführen.OSTYPETyp des Betriebsystems. Z.B., FreeBSD.MACHTYPEDie CPU Architektur auf dem das System
läuft.EDITORVom Benutzer bevorzugter Text-Editor.PAGERVom Benutzer bevorzugter Text-Betrachter.MANPATHListe mit Verzeichnissen (getrennt durch Doppelpunkt)
- zum Suchen nach Man-Pages.
+ zum Suchen nach Manualpages.
Das Anzeigen oder Setzen von Umgebungsvariablen funktioniert
von Shell zu Shell unterschiedlich. Zum Beispiel benutzt man
in C-artigen Shells wie der tcsh dazu
setenv. Unter Bourne-Shells wie sh
- oder bash würde man
- set und export benutzen
- zum ansehen oder setzen von aktuellen Umgebungsvariablen. Um
+ oder bash benutzen Sie zum Ansehen und Setzen von
+ Umgebungsvariablen set und
+ export. Um
beispielsweise die Variable EDITOR mit
csh oder tcsh zu setzen,
würde folgendes Kommando die Variable
EDITOR auf
/usr/local/bin/emacs setzen:&prompt.user; setenv EDITOR /usr/local/bin/emacsUnter Bourne-Shells:&prompt.user; export EDITOR="/usr/local/bin/emacs"Sie können die meisten Shells Umgebungsvariablen
expandieren lassen, in dem Sie in der Kommandozeile ein
$ davor eingeben. Zum Beispiel gibt
echo $TERM aus, worauf $TERM
gesetzt ist, weil die Shell $TERM expandiert
und das Ergebnis an echo gibt.Shells behandeln eine Menge an Spezialzeichen, sogenannte
Metazeichen, als besondere Darstellungen für Daten.
Das allgemeinste ist das Zeichen *, das eine
beliebige Anzahl Zeichen in einem Dateinamen repräsentiert.
Das Kommando echo * liefert nahezu das gleiche
wie die Eingabe von ls, da die Shell alle
- Dateinamen die mit * übereinstimmen an
- echo weitergibt.
+ Dateinamen die mit * übereinstimmen, an
+ echo weitergibt.
Um zu verhindern, daß die Shell diese Sonderzeichen
interpretiert, kann man sie schützen, indem man ihnen einen
Backslash (\) voranstellt. echo
$TERM gibt aus, auf was auch immer Ihr Terminal
gesetzt ist. echo \$TERM gibt
$TERM genauso aus, wie es hier steht.Ändern der ShellDer einfachste Weg Ihre Shell zu ändern, ist das
Kommando chsh zu benutzen.
chsh platziert Sie im Editor, welcher durch
Ihre Umgebungsvariable EDITOR gesetzt ist,
im vi wenn die Variable nicht gesetzt ist.
Ändern Sie die Zeile mit Shell:
entsprechend Ihren Wünschen.Sie können auch chsh mit der Option
aufrufen, dann wird Ihre Shell gesetzt,
ohne dasß Sie in einen Editor gelangen. Um Ihre Shell
zum Beispiel auf die bash zu ändern, geben Sie das
folgende Kommando ein:&prompt.user; chsh -s /usr/local/bin/bash
- Einfach chsh ohne Optionen und mit
- Editieren der entsprechenden Zeile würde auch
- funktionieren.
+ Dasselbe Ergebnis hätten Sie erzielt, wenn Sie einfach
+ chsh ohne Optionen aufgerufen und die
+ entsprechende Zeile editiert hätten.Die von Ihnen gewünschte Shell
muß in /etc/shells
aufgeführt sein. Haben Sie eine Shell aus der
- Ports Sammlung installiert,
+ Ports Sammlung installiert,
sollte das schon automatisch erledigt werden. Installierten
Sie die Shell von Hand, so müssen Sie sie dort
eintragen.Haben Sie beispielsweise die bash nach
/usr/local/bin installiert, wollen Sie
dies tun:&prompt.root; echo "/usr/local/bin/bash" >> /etc/shellsDanach können Sie chsh aufrufen.Text EditorenText EditorenEditorenEine Menge der Konfiguration bei FreeBSD wird durch
das Editieren von Textdateien erledigt. Deshalb ist es eine
gute Idee, mit einem Texteditor vertraut zu werden. FreeBSD hat
ein paar davon im Basissystem und sehr viel mehr in der Ports
Sammlung.eeDer am leichtesten und einfachsten zu erlernende Editor nennt
sich ee, was für easy editor steht.
Um ee zu starten, gibt man in der
Kommandozeile ee filename ein, worin
filename der Name der zu editierenden Datei
ist. Um zum Beispiel /etc/rc.conf zu
editieren, tippen Sie ee /etc/rc.conf.
Einmal im Editor, finden Sie alle Editor-Funktionen oben im
Display aufgelistet. Das Einschaltungszeichen
^ meint die Control (oft Steuerung) Taste,
also ^e heißt, daß die Controltaste und dann der
Buchstabe e gedrückt werden. Um
- ee zu verlassen, einfach die
- Escapetaste drücken und leave editor wählen. Der
- Editor fragt Sie nach, ob Sie speichern möchten, wenn die
+ ee zu verlassen, drücken Sie
+ Esc und wählen dann aus. Der
+ Editor fragt nach, ob Sie speichern möchten, wenn die
Datei verändert wurde.viText EditorenviemacsText EditorenemacsFreeBSD verfügt über leistungsfähigere
Editoren wie vi als Teil des
Basissystems und emacs oder
vim als Teil der Ports Sammlung.
Diese Editoren bieten höhere Funktionalität und
Leistungsfähigkeit jedoch auf Kosten einer etwas
- schwierigeren Erlernbarkeit. Dennoch, wenn Sie viel
+ schwierigeren Erlernbarkeit. Wenn Sie viel
Textdateien editieren werden, sparen Sie auf lange Sicht mehr
- Zeit ein durch das Erlernen solcher Editoren wie
+ Zeit durch das Erlernen von Editoren wie
vim oder
- emacs.
+ emacs ein.
Geräte und GerätedateienDer Begriff Gerät wird meist in Verbindung mit Hardware
wie Laufwerken, Druckern, Grafikkarten oder Tastaturen gebraucht.
Der Großteil der Meldungen, die beim Booten von FreeBSD angezeigt
werden, beziehen sich auf gefundene Geräte. Sie können sich
die Bootmeldungen später in /var/run/dmesg.boot
ansehen.Gerätenamen, die Sie wahrscheinlich in den Bootmeldungen sehen
werden, sind zum Beispiel acd0, das erste
IDE CDROM oder kbd0, die Tastatur.Auf die meisten Geräte wird unter Unix über spezielle
Gerätedateien im /dev Verzeichnis
zugegriffen.Anlegen von GerätedateienWenn sie ein neues Gerät zu Ihrem System hinzufügen,
oder die Unterstützung für zusätzliche Geräte
kompilieren, muß oft ein Gerätetreiber erstellt
werden.MAKEDEV SkriptAuf Systemen ohne DEVFS müssen Gerätedateien mit
&man.MAKEDEV.8; wie unten gezeigt angelegt werden:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV ad1
Im Beispiel werden alle Gerätedateien für das
zweite IDE Laufwerk angelegt.devfs (Gerätedateisystem)Das Gerätedateisystem devfs ermöglicht durch den
Namensraum des Dateisystems Zugriff auf den Namensraum der
Geräte im Kernel. Damit müssen Gerätedateien
nicht mehr extra angelegt werden, sondern werden von devfs
verwaltet.Weitere Informationen finden Sie in &man.devfs.5;.In der Grundeinstellung benutzt FreeBSD 5.0 devfs.Weitere Informationen...
- Manual-Pages
- Manual-Pages
+ Manualpages
+ ManualpagesDie umfassendste Dokumentation rund um FreeBSD gibt es in
- Form von Manual-Pages. Annähernd jedes Programm im System
+ Form von Manualpages. Annähernd jedes Programm im System
bringt eine kurze Referenzdokumentation mit, die die
grundsätzliche Funktion und verschiedene Parameter
erklärt. Diese Dokumentationen kann man mit dem
man Kommando benutzen. Die Benutzung des
man Kommandos ist einfach:&prompt.user; man KommandoKommando ist der Name des Kommandos,
- über das Sie etwas erfahren wollen. Um beispielsweise
+ über das Sie etwas erfahren wollen. Um beispielsweise
mehr über das Kommando ls zu lernen,
geben Sie ein:&prompt.user; man lsDie Online-Dokumentation ist in nummerierte Sektionen
unterteilt:Benutzerkommandos.Systemaufrufe und Fehlernummern.Funktionen der C Bibliothek.Gerätetreiber.Dateiformate.Spiele und andere Unterhaltung.Verschiedene Informationen.Systemverwaltung und -Kommandos.Kernel Entwickler.In einigen Fällen kann dasselbe Thema in mehreren
Sektionen auftauchen. Es gibt zum Beispiel ein chmod
Benutzerkommando und einen chmod()
Systemaufruf. In diesem Fall können Sie dem
man Kommando
sagen, aus welcher Sektion Sie die Information erhalten
möchten, indem Sie die Sektion mit angeben:&prompt.user; man 1 chmod
- Dies wird Ihnen die Man-Page für das Benutzerkommando
+ Dies wird Ihnen die Manualpage für das Benutzerkommando
chmod zeigen. Verweise auf eine Sektion
- der Man-Pages werden traditionsgemäß in Klammern
+ der Manualpages werden traditionell in Klammern
gesetzt. So bezieht sich &man.chmod.1; auf das
Benutzerkommando chmod und mit
&man.chmod.2; ist der Systemaufruf gemeint.Das ist nett, wenn Sie den Namen eines Kommandos wissen,
- und lediglich wissen wollen, wie es zu benutzen ist. Aber was
+ und lediglich wissen wollen, wie es zu benutzen ist. Aber was
tun Sie, wenn Sie Sich nicht an den Namen des Kommandos
erinnern können? Sie können man
benutzen, um nach Schlüsselbegriffen in den
Kommandobeschreibungen zu suchen, indem Sie den Parameter
benutzen:&prompt.user; man -k mail Mit diesem Kommando bekommen Sie eine Liste der
Kommandos, deren Beschreibung das Schlüsselwort
mail enthält. Diese Funktionalität
erhalten Sie auch, wenn Sie das Kommando apropos
benutzen.Nun, Sie schauen Sich alle die geheimnisvollen Kommandos
in /usr/bin an, haben aber nicht den
blassesten Schimmer, wozu die meisten davon gut sind? Dann
- geben Sie doch einfach
+ rufen Sie doch einfach das folgende Kommando auf:&prompt.user; cd /usr/bin
&prompt.user; man -f *
- oder
+ Dasselbe erreichen Sie durch Eingabe von:
- &prompt.user; cd /usr/bin
+ &prompt.user; cd /usr/bin
&prompt.user; whatis *
- ein, beides tut dasselbeGNU Info DateienFreeBSD enthält viele Applikationen und Utilities
der Free Software Foundation (FSF). Zusätzlich zu den
- Manual-Pages bringen diese Programme ausführlichere
+ Manualpages bringen diese Programme ausführlichere
Hypertext-Dokumente (info genannt) mit,
welche man sich mit dem Kommando info
ansehen kann. Wenn Sie emacs
installiert haben, können Sie auch dessen info-Modus
benutzen.Um das Kommando &man.info.1; zu benutzen, geben Sie
einfach ein:&prompt.user; infoEine kurze Einführung gibt es mit
h; eine Befehlsreferenz erhalten Sie durch
Eingabe von: ?.
diff --git a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
index 941369054a..6eaf9687df 100644
--- a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
@@ -1,558 +1,555 @@
BibliografieÜbersetzt von &a.de.gruender;
- Während die Manual-Seiten die endgültige Auskunft
+ Während die Manualpages die endgültige Auskunft
über bestimmte Teile des FreeBSD Betriebssystems geben, so
können sie jedoch nicht darstellen, wie man die einzelnen Teile
zusammenfügt, um ein vollständig laufendes Betriebssystem
herzustellen. Daher gibt es keinen Ersatz für ein gutes Buch
über Unix System-Administration und ein gutes
Benutzerhandbuch.In der Regel handelt es sich im folgenden Kapitel um englische
- Ausgaben der genannten Werke. Übersetzungen oder Ausgaben in
+ Ausgaben der genannten Werke. Übersetzungen oder Ausgaben in
anderen Sprachen sind mit entsprechenden Hinweisen versehen.Bücher & Magazine speziell für FreeBSDInternationale Bücher &
Magazine:
Using FreeBSD (in chinesischer Sprache).FreeBSD for PC 98'ers (in japanischer Sprache), herausgegeben von
SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.FreeBSD (in japanischer Sprache), herausgegeben von CUTT. ISBN
4-906391-22-2 C3055 P2400E.
- Complete Introduction to FreeBSD (in japanischer Sprache),
- herausgegeben von
- Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E.
+ url="http://www.shoeisha.com/book/Detail.asp?bid=650">Complete Introduction to FreeBSD (in Japanese), published by Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E.
Personal UNIX Starter Kit FreeBSD (in japanischer Sprache),
herausgegeben von ASCII.
ISBN 4-7561-1733-3 P3000E.FreeBSD Handbook (japanische Übersetzung), herausgegeben
von ASCII.
ISBN 4-7561-1580-2 P3800E.BSD mit Methode (in deutscher Sprache), herausgegeben von
Computer und Literatur Verlag/Vertrieb Hanser, 1998.
ISBN 3-932311-31-0.
FreeBSD Install and Utilization Manual (in japanischer Sprache),
herausgegeben von
Mainichi Communications Inc..Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Building Internet Server with FreeBSD
(in indonesischer Sprache), herausgegeben von Elex Media Komputindo.Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Building Internet Server with
FreeBSD (auf indonesisch), herausgegeben
von Elex Media Komputindo.Englischsprachige Bücher &
Magazine:
The Complete FreeBSD, herausgegeben von BSDi.The
FreeBSD Corporate Networker's Guide, herausgegeben von
Addison-Wesley.HandbücherComputer Systems Research Group, UC Berkeley. 4.4BSD
User's Reference Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-075-9Computer Systems Research Group, UC Berkeley. 4.4BSD
User's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-076-7UNIX in a Nutshell. O'Reilly &
Associates, Inc., 1990. ISBN 093717520XMui, Linda. What You Need To Know When You Can't Find
Your UNIX System Administrator. O'Reilly &
Associates, Inc., 1995. ISBN 1-56592-104-6Die Ohio State
University hat ein UNIX
Introductory Course veröffentlicht, welcher auch
online im HTML- und Postscriptformat verfügbar ist.Jpman Project, Japan
FreeBSD Users Group. FreeBSD User's
Reference Manual (japanische Übersetzung). Mainichi Communications
Inc., 1998. ISBN4-8399-0088-4 P3800E.Edinburgh
University hat einen Online Guide für
Anfänger in Sachen UNIX geschrieben.Administrations-AnleitungenAlbitz, Paul and Liu, Cricket. DNS and
BIND, 4th Ed. O'Reilly & Associates, Inc., 2001.
ISBN 1-59600-158-4Computer Systems Research Group, UC Berkeley. 4.4BSD
System Manager's Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-080-5Costales, Brian, et al. Sendmail, 2nd Ed.
O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0Frisch, Æleen. Essential System
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1995. ISBN 1-56592-127-5Hunt, Craig. TCP/IP Network
Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997.
ISBN 1-56592-322-7Nemeth, Evi. UNIX System Administration
Handbook. 3rd Ed. Prentice Hall, 2000. ISBN
0-13-020601-6Stern, Hal Managing NFS and NIS O'Reilly
& Associates, Inc., 1991. ISBN 0-937175-75-7Jpman Project, Japan
FreeBSD Users Group. FreeBSD System
Administrator's Manual (japanische Übersetzung). Mainichi Communications
Inc., 1998. ISBN4-8399-0109-0 P3300E.Die Edinburgh
University hat eine Online Anleitung
(in englischer Sprache) für Neueinsteiger in die
UNIX-Umgebung bereitgestellt.ProgrammierhandbücherAsente, Paul, Paul, Converse, Diana, and Swick, Ralph.
X Window System Toolkit. Digital Press,
1998. ISBN 1-55558-178-1Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Reference Manual. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-078-3Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-079-1Harbison, Samuel P. and Steele, Guy L. Jr. C: A
Reference Manual. 4rd ed. Prentice Hall, 1995.
ISBN 0-13-326224-3Kernighan, Brian and Dennis M. Ritchie. The C
Programming Language.. PTR Prentice Hall, 1988.
ISBN 0-13-110362-9Lehey, Greg. Porting UNIX Software.
O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7Plauger, P. J. The Standard C Library.
Prentice Hall, 1992. ISBN 0-13-131509-9Stevens, W. Richard. Advanced Programming in the UNIX
Environment. Reading, Mass. : Addison-Wesley, 1992
ISBN 0-201-56317-7Stevens, W. Richard. UNIX Network
Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN
0-13-490012-XWells, Bill. Writing Serial Drivers for UNIX.
Dr. Dobb's Journal. 19(15), December 1994.
pp68-71, 97-99.Betriebssystem-InternaAndleigh, Prabhat K. UNIX System
Architecture. Prentice-Hall, Inc., 1990. ISBN
0-13-949843-5Jolitz, William. Porting UNIX to the 386.
Dr. Dobb's Journal. January 1991-July
1992.Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
John Quarterman The Design and Implementation of the
4.3BSD UNIX Operating System. Reading, Mass. :
Addison-Wesley, 1989. ISBN 0-201-06196-1Kapitel 2 dieses Buchs ist Teil des FreeBSD Documentation
Projects und on-line
erhältlich. Kapitel 9 findet sich
hier.Leffler, Samuel J., Marshall Kirk McKusick, The Design
and Implementation of the 4.3BSD UNIX Operating System: Answer
Book. Reading, Mass. : Addison-Wesley, 1991. ISBN
0-201-54629-9McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
John Quarterman. The Design and Implementation of the
4.4BSD Operating System. Reading, Mass. :
Addison-Wesley, 1996. ISBN 0-201-54979-4Stevens, W. Richard. TCP/IP Illustrated, Volume 1:
The Protocols. Reading, Mass. : Addison-Wesley,
1996. ISBN 0-201-63346-9Schimmel, Curt. Unix Systems for Modern
Architectures. Reading, Mass. : Addison-Wesley, 1994.
ISBN 0-201-63338-8Stevens, W. Richard. TCP/IP Illustrated, Volume 3:
TCP for Transactions, HTTP, NNTP and the UNIX Domain
Protocols. Reading, Mass. : Addison-Wesley, 1996.
ISBN 0-201-63495-3Vahalia, Uresh. UNIX Internals -- The New
Frontiers. Prentice Hall, 1996. ISBN
0-13-101908-2Wright, Gary R. and W. Richard Stevens. TCP/IP
Illustrated, Volume 2: The Implementation. Reading,
Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-XSicherheits-AnleitungCheswick, William R. and Steven M. Bellovin. Firewalls
and Internet Security: Repelling the Wily Hacker.
Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-63357-4Garfinkel, Simson and Gene Spafford.
Practical UNIX & Internet Security.
2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
1-56592-148-8Garfinkel, Simson. PGP Pretty Good
Privacy O'Reilly & Associates, Inc., 1995. ISBN
1-56592-098-8Hardware-AnleitungAnderson, Don and Tom Shanley. Pentium Processor
System Architecture. 2nd Ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-40992-5Ferraro, Richard F. Programmer's Guide to the EGA,
VGA, and Super VGA Cards. 3rd ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-62490-7Die Intel Corporation veröffentlicht Dokumentationen
Ihrer CPUs, Chipsets und Standards auf ihrer developer web site,
normalerweise als PDF-Dateien.Shanley, Tom. 80486 System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40994-1Shanley, Tom. ISA System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40996-8Shanley, Tom. PCI System Architecture.
4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN
0-201-30974-2Van Gilluwe, Frank. The Undocumented PC,
2nd Ed.
Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN
0-201-47950-8Messmer, Hans-Peter. The Indispensable PC Hardware
Book, 4th Ed.
Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
0-201-59616-4Unix GeschichteLion, John Lion's Commentary on UNIX, 6th Ed. With
Source Code. ITP Media Group, 1996. ISBN
1573980137Raymond, Eric S. The New Hacker's Dictionary, 3rd
edition. MIT Press, 1996. ISBN
0-262-68092-0. Auch bekannt als das Jargon
FileSalus, Peter H. A quarter century of UNIX.
Addison-Wesley Publishing Company, Inc., 1994. ISBN
0-201-54777-5Simon Garfinkel, Daniel Weise, Steven Strassmann. The
UNIX-HATERS Handbook. IDG Books Worldwide, Inc.,
1994. ISBN 1-56884-203-1Don Libes, Sandy Ressler Life with UNIX
— special edition. Prentice-Hall, Inc., 1989. ISBN
0-13-536657-7The BSD family tree. 1997.
ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree
oder lokal
auf einem FreeBSD Rechner.The BSD Release Announcements collection.
1997.
http://www.de.FreeBSD.org/de/ftp/releases/Networked Computer Science Technical Reports
Library. http://www.ncstrl.org/Old BSD releases from the Computer Systems Research
group (CSRG). http://www.mckusick.com/csrg/:
Das Paket mit 4 CDROM enthält alle BSD-Versionen von 1BSD
bis 4.4BSD und 4.4BSD-Lite2 (unglücklicherweise nicht
2.11BSD). Die letzte CD beinhaltet auch die finalen Sourcen
inclusive den SCCS Dateien.Magazine und JournaleThe C/C++ Users Journal. R&D
Publications Inc. ISSN 1075-2838Sys Admin — The Journal for UNIX System
Administrators Miller Freeman, Inc., ISSN
1061-2688
diff --git a/de_DE.ISO8859-1/books/handbook/book.sgml b/de_DE.ISO8859-1/books/handbook/book.sgml
index 12dd287a8e..5624529cef 100644
--- a/de_DE.ISO8859-1/books/handbook/book.sgml
+++ b/de_DE.ISO8859-1/books/handbook/book.sgml
@@ -1,189 +1,191 @@
%man;
%bookinfo;
%freebsd;
%translators;
%chapters;
%authors;
%mailing-lists;
%newsgroups;
+
]>
FreeBSD HandbuchThe FreeBSD German Documentation Projectde-bsd-translators@de.FreeBSD.orgFebruary 199919951996199719981999200020012002The FreeBSD German Documentation Project
&bookinfo.legalnotice;
Willkommen bei FreeBSD! Dieses Handbuch beschreibt die
Installation und den täglichen Umgang mit FreeBSD
&rel.current;-RELEASE.
Das Handbuch ist jederzeit unter Bearbeitung
- und die Arbeit vieler Einzelpersonen. Manche Kapitel existieren noch
+ und die Arbeit vieler Einzelpersonen. Manche Kapitel existieren noch
nicht und andere Kapitel müssen auf den neusten Stand
gebracht werden.
Wenn Sie an diesem Projekt mithelfen möchten, senden Sie bitte
- eine E-Mail an die Mailingliste &a.de.translators;. Die letzte Version des
- Handbuchs ist immer auf dem
+ eine E-Mail an die Mailingliste &a.de.translators;. Die letzte
+ Version des Handbuchs ist immer auf dem
FreeBSD Web
Server verfügbar.
Es kann außerdem in verschiedenen Formaten und in komprimierter
Form vom FreeBSD
FTP Server oder einer der vielen
Mirror
Seiten herunter geladen werden.
Vielleicht möchten Sie das Handbuch auch
durchsuchen.Erste SchritteDieser Teil des FreeBSD Handbuchs richtet sich an Benutzer
und Administratoren für die FreeBSD neu ist. Diese
Kapitelgeben Ihnen eine Einführung in FreeBSD,geleiten Sie durch den Installationsprozeß,erklären Ihnen einige Unix Grundlagen,zeigen Ihnen, wie Sie die Fülle der erhältlichen
Applikation Dritter installieren undführen Sie in X, der Unix Benutzeroberfläche
ein. Es wird gezeigt, wie Sie den Desktop konfigurieren, um
effektiver arbeiten zu können.Wir haben uns bemüht, Referenzen auf weiter vorne liegende
Textteile auf ein Minimum zu beschränken, so daß Sie
diesen Teil des Handbuchs ohne viel Blättern durcharbeiten
können.System AdministrationDie restlichen Kapitel behandeln alle Aspekte der FreeBSD
Systemadministration. Am Anfang jedes Kapitels finden Sie eine
Zusammenfassung, die beschreibt, was Sie nach dem Durcharbeiten des
Kapitels gelernt haben. Weiterhin werden die Voraussetzungen
beschrieben, die für das Durcharbeiten des Kapitels
erforderlich sind.Diese Kapitel sollten Sie lesen, wenn Sie die Informationen
darin benötigen. Sie brauchen Sie nicht in einer bestimmten
Reihenfolge zu lesen, noch müssen Sie sie lesen, bevor Sie
anfangen, FreeBSD zu benutzen.
+
Anhang
diff --git a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
index 0056d9da4a..d5ff67f1c5 100644
--- a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
@@ -1,746 +1,757 @@
+
+
+
+ Hans-Christian
+ Ebke
+ Übersetzt von
+
+
+ FreeBSDs BootvorgangÜbersichtBootenBootstrapDas Starten des Computers und das Laden des Betriebssystems
wird im Allgemeinen als Bootstrap Vorgang
- bezeichnet, oder einfach als Booten. FreeBSDs
+ bezeichnet, oder einfach als Booten. FreeBSDs
Bootvorgang ermöglicht große Flexibilität, was
das Anpassen dessen anbelangt, was passiert, wenn das System
- gestartet wird. Es kann zwischen verschiedenen Betriebssystemen,
+ gestartet wird. Es kann zwischen verschiedenen Betriebssystemen,
die auf demselben Computer installiert sind oder verschiedenen
Versionen desselben Betriebssystems oder installierten Kernels
gewählt werden.
-
- Dieses Kapitel zeigt die zur Verfügung stehenden Konfigurationsmöglichkeiten und
- wie man den Bootvorgang anpasst. Dies schließt alles ein, bis
- der Kernel gestartet worden ist, der dann alle Geräte
- gefunden hat und &man.init.8; gestartet hat. Falls Sie sich
- nicht ganz sicher sind, wann dies passiert: Es passiert, wenn
- die Farbe des Textes während des Bootvorgangs von weiß zu
- Hellgrau wechselt.
+ Dieses Kapitel zeigt die zur Verfügung stehenden
+ Konfigurationsmöglichkeiten und wie man den Bootvorgang anpasst.
+ Dies schließt alles ein, bis der Kernel gestartet worden ist,
+ der dann alle Geräte gefunden hat und &man.init.8; gestartet hat.
+ Falls Sie sich nicht ganz sicher sind, wann dies passiert:
+ Es passiert, wenn die Farbe des Textes während des Bootvorgangs
+ von weiß zu Hellgrau wechselt.Dieses Kapitel informiert über folgende Punkte:
- Die Komponenten des FreeBSD Bootstraps und deren Interaktion.
+ Die Komponenten des FreeBSD Bootstraps und deren
+ Interaktion.
- Die Optionen, die die Komponenten im FreeBSD Bootstrap zum Kontrollieren des Bootvorgangs nehmen.
+ Die Optionen, die die Komponenten im FreeBSD Bootstrap
+ zum Kontrollieren des Bootvorgangs nehmen.nur x86Dieses Kapitel erklärt den Bootvorgang von FreeBSD auf
Intel X86 Plattformen.Das Problem des Bootens
- Wenn der Computer Eingeschaltet wird und das Betriebssystem gestartet
+ Wenn der Computer eingeschaltet wird und das Betriebssystem gestartet
werden soll, entsteht ein interessantes Dilemma, denn der
- Computer weiß per Definition nicht, wie er irgendetwas tut, bis
- das Betriebssystem gestartet wurde. Das schließt das Starten von
- Programmen, die sich auf der Festplatte befinden, ein. Wenn nun
+ Computer weiß per Definition nicht, wie er irgendetwas tut, bis
+ das Betriebssystem gestartet wurde. Das schließt das Starten von
+ Programmen, die sich auf der Festplatte befinden, ein. Wenn nun
der Computer kein Programm von der Festplatte starten kann, sich
das Betriebssystem aber dummerweise genau dort befindet, wie
wird es dann gestartet?Dieses Problem ähnelt einer Geschichte des Barons von
- Münchhausen. Dort war eine Person in einen Sumpf gefallen
- und hat sich selbst an den Riemen seiner Stiefel (engl.:
- bootstrap) herausgezogen. In den jungen Jahren des
- Computerzeitalters wurde mit dem Begriff Bootstrap dann die
- Technik das Betriebssystem zu laden bezeichnet und wurde
- hinterher mit booten abgekürzt.
+ Münchhausen. Dort war eine Person in einen Sumpf gefallen
+ und hat sich selbst an den Riemen seiner Stiefel (engl.
+ bootstrap) herausgezogen. In den
+ jungen Jahren des Computerzeitalters wurde mit dem Begriff
+ Bootstrap dann die Technik das Betriebssystem zu laden bezeichnet
+ und wurde hinterher mit booten abgekürzt.Auf x86 Plattformen ist das BIOS (Basic Input/Output System)
- dafür verantwortlich das Betriebssystem zu laden. Dazu
+ dafür verantwortlich, das Betriebssystem zu laden. Dazu
liest das BIOS den Master Bootsektor (MBR; Master Boot Record)
aus, der sich an einer bestimmten Stelle auf der
- Festplatte/Diskette befinden muss. Das BIOS kann den MBR
+ Festplatte/Diskette befinden muss. Das BIOS kann den MBR
selbstständig laden und ausführen und geht davon aus,
dass der die restlichen Dinge, die für das Laden des
- Betriebssystems notwendig sind, selber erledigen kann.
+ Betriebssystems notwendig sind, selber erledigen kann.
BIOSBasic Input/Output SystemFalls nur ein Betriebssystem installiert ist, ist der
- standard MBR ausreichend. Dieser MBR sucht nach dem ersten
+ Standard MBR ausreichend. Dieser MBR sucht nach dem ersten
bootbaren Slice auf dem Laufwerk und führt ihn aus, um das
restliche Betriebssystem zu laden.Falls mehrere Betriebssysteme installiert sind, sollte
man einen anderen MBR installieren, der eine Liste der
verfügbaren Betriebssysteme anzeigt und einen wählen
- lässt, welches man booten möchte. FreeBSD liegt ein
+ lässt, welches man booten möchte. FreeBSD liegt ein
solcher MBR bei und andere Hersteller bieten Alternativen
an.Das restliche FreeBSD Bootstrap System ist in drei Phasen
- unterteilt. Die erste Phase wird vom MBR durchgeführt, der
+ unterteilt. Die erste Phase wird vom MBR durchgeführt, der
gerade genug Funktionalität besitzt um den Computer in
einen bestimmten Status zu verhelfen und die zweite Phase zu
- starten. Die zweite Phase führt ein wenig mehr Operationen
- durch und startet schließlich die dritte Phase, die das Laden
- des Betriebssystems abschließt. Der ganze Prozess wird in drei
- Phasen durchgeführt, weil der PC Standard die Größe
+ starten. Die zweite Phase führt ein wenig mehr Operationen
+ durch und startet schließlich die dritte Phase, die das Laden
+ des Betriebssystems abschließt. Der ganze Prozess wird in drei
+ Phasen durchgeführt, weil der PC Standard die Größe
der Programme, die in Phase eins und zwei ausgeführt
- werden, limitiert. Durch das Verketten der durchzuführenden
- Aufgaben wird es FreeBSD möglich ein sehr flexibles
+ werden, limitiert. Durch das Verketten der durchzuführenden
+ Aufgaben wird es FreeBSD möglich, ein sehr flexibles
Ladeprogramm zu besitzen.
- kernel
+ KernelinitAls nächstes wird der Kernel gestartet, der zunächst nach
Geräten sucht und sie für den Gebrauch
- initialisiert. Nach dem Booten des Kernels übergibt dieser
+ initialisiert. Nach dem Booten des Kernels übergibt dieser
die Kontrolle an den Benutzer Prozess &man.init.8;, der erst
sicherstellt, dass alle Laufwerke benutzbar sind und die
Ressourcen Konfiguration auf Benutzer Ebene startet. Diese
wiederum mountet Dateisysteme, macht die Netzwerkkarten für
die Kommunikation mit dem Netzwerk bereit und startet generell
alle Prozesse, die auf einem FreeBSD System normalerweise beim
Hochfahren gestartet werden.Der MBR, und die Boot-Phasen Eins, Zwei und DreiDer MBR, /boot/boot0Master Boot Record (MBR)Der Master Boot Record (MBR) von FreeBSD befindet sich im
Verzeichnis /boot/boot0. Allerdings ist dies
nur eine Kopie des MBR, da der eigentliche
- MBR auf einem Teil des Laufwerks gespeichert sein muss, der außerhalb
+ MBR auf einem Teil des Laufwerks gespeichert sein muss, der außerhalb
von FreeBSDs benutzbaren Bereich ist.boot0 ist ein ziemlich simples
Programm, und zwar aus dem einfachen Grund, dass der MBR nur
- 512 Bytes groß sein darf. Falls Sie den FreeBSD MBR
+ 512 Bytes groß sein darf. Falls Sie den FreeBSD MBR
installiert haben und sich mehrere Betriebssysteme auf Ihrer
Festplatte befinden, werden Sie beim Starten des Computers
eine Anzeige sehen, ähnlich der Folgenden:boot0 ScreenshotF1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2Diverse Betriebssysteme, insbesondere Windows 95 und
Nachfolger, überschreiben den MBR ungefragt mit ihrem
- eigenen. Falls einem dies passiert sein sollte, kann man mit
+ eigenen. Falls einem dies passiert sein sollte, kann man mit
folgendem Kommando den momentanen MBR durch den FreeBSD MBR
ersetzen:&prompt.root; fdisk -B -b /boot/boot0 GerätWobei Gerät das Gerät ist, von
dem gebootet wird, also z.B. ad0
für die erste IDE Festplatte,
ad2 für die erste IDE Festplatte
am zweiten IDE Controller, da0
für die erste SCSI Festplatte, usw.Wenn Sie auf demselben Rechner FreeBSD und Linux benutzen
möchten, können Sie den FreeBSD Boot-Manager oder
LILO benutzen. Wollen Sie den MBR von
LILO benutzen, wählen Sie
bei der FreeBSD Installation im Boot Manager Menü
aus. Damit
Sie das FreeBSD System aus LILO booten
können, tragen Sie in /etc/lilo.conf die
folgenden Zeilen Zeilen ein:other=/dev/diskXY
table=/dev/diskX
loader=/boot/chain.b
label=FreeBSDErsetzen Sie dabei diskXY mit
hdXY, wenn Sie
ein IDE-Laufwerk benutzen, oder mit
sdXY, wenn Sie
ein SCSI-Laufwerk benutzen. Mit
XY geben Sie die Slice des FreeBSD
Systems, zum Beispiel /dev/hdb1, an. Wenn sich
beide Betriebssysteme auf derselben Platte befinden, können
Sie auch weglassen. Mit
geben Sie das Gerät an, auf dem die
Partitionstabelle liegt, /dev/hdb bezeichnet
zum Beispiel das zweite IDE-Laufwerk. Die Änderungen
können Sie nun mit /sbin/lilo -v
aktivieren. Achten Sie dabei auf die Bildschirmausgabe, die den
Erfolg der Operation anzeigt.Phase Eins, /boot/boot1 und Phase Zwei,
/boot/boot2
- Im Prinzip sind die erste und die zweite Phase Teile des
- selben Programms, im selben Bereich auf der
- Festplatte. Aufgrund von Speicherplatz-Beschränkungen
+ Im Prinzip sind die erste und die zweite Phase Teile
+ desselben Programms, im selben Bereich auf der
+ Festplatte. Aufgrund von Speicherplatz-Beschränkungen
wurden sie aufgeteilt, aber man installiert sie eigentlich
generell zusammen.Sie befinden sich beide im Bootsektor des Boot-Slices,
wo boot0 und jedes andere
Programm im MBR das Programm erwartet, das
- den weiteren Bootvorgang durchführt. Die Dateien im
+ den weiteren Bootvorgang durchführt. Die Dateien im
Verzeichnis /boot sind nur Kopien der
- eigentlichen Dateien, die sich außerhalb FreeBSDs Dateisystems
+ eigentlichen Dateien, die sich außerhalb FreeBSDs Dateisystems
befinden.boot1 ist ebenfalls ein sehr simples
- Programm, da es auch nur 512 byte groß sein darf, und es
+ Programm, da es auch nur 512 byte groß sein darf, und es
besitzt gerade genug Funktionalität um FreeBSDs
disklabel, das Informationen über
den Slice enthält, auszulesen um
boot2 zu finden und
auszuführen.boot2 ist schon ein wenig
umfangreicher und besitzt genügend Funktionalität um
- Dateien in FreeBSDs Dateisystem zu finden. Außerdem hat es
+ Dateien in FreeBSDs Dateisystem zu finden. Außerdem hat es
eine einfache Schnittstelle, die es ermöglicht, den zu
ladenden Kernel oder Loader auszuwählen.
- Da der loader einen
- weitaus größeren Funktionsumfang hat und eine schöne
+ Da der Loader einen
+ weitaus größeren Funktionsumfang hat und eine schöne
und einfach zu bedienende Boot-Konfigurations-Schnitstelle zur
Verfügung stellt, wird er gewöhnlich von
boot2 anstatt des Kernels
- gestartet. Früher war es jedoch dazu da den Kernel direkt
+ gestartet. Früher war es jedoch dazu da den Kernel direkt
zu starten.boot2 Screenshot>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:Um das installierte
boot1 und boot2 zu
ersetzen, benutzt man &man.disklabel.8;:&prompt.root; disklabel -B Slice
- Wobei Slice Laufwerk und Slice
- darstellt, von dem gebootet wird, also
- z.B. ad0s1 für den ersten Slice
+ Wobei Slice das Laufwerk und die Slice
+ darstellt, von dem gebootet wird, beispielsweise
+ ad0s1 für die erste Slice
auf der ersten IDE Festplatte.Dangerously Dedicated ModeWenn man nur den Festplatten-Namen, also
z.B. ad0, in &man.disklabel.8;
benutzt wird eine "dangerously dedicated disk" erstellt,
ohne Slices. Das ist ein Zustand, den man meistens nicht
- hervorrufen möchte. Aus diesem Grund sollte man ein
+ hervorrufen möchte. Aus diesem Grund sollte man ein
&man.disklabel.8; Kommando noch einmal prüfen, bevor
man Return betätigt.Phase drei, /boot/loaderboot-loaderDer boot-loader ist der letzte von drei Schritten im
Bootstrap Prozess und kann im Dateisystem normalerweise unter
/boot/loader gefunden werden.
- Der Loader soll eine Benutzerfreundliche
+ Der Loader soll eine benutzerfreundliche
Konfigurations-Schnittstelle sein mit einem einfach zu
bedienenden eingebauten Befehlssatz, ergänzt durch einen
umfangreichen Interpreter mit einem komplexeren
Befehlssatz.Loader AblaufDer Loader sucht während seiner Initialisierung
- nach Konsolen und Laufwerke, findet heraus, von welchem
+ nach Konsolen und Laufwerken, findet heraus, von welchem
Laufwerk er gerade bootet und setzt dementsprechend
- bestimmte Variablen. Dann wird ein Interpreter gestartet,
+ bestimmte Variablen. Dann wird ein Interpreter gestartet,
der Befehle interaktiv oder von einem Skript empfangen
kann.loaderloader KonfigurationDanach liest der Loader die Datei
/boot/loader.rc aus, welche ihn
- standardmäßig anweist
+ standardmäßig anweist
/boot/defaults/loader.conf zu lesen, wo
sinnvolle Standardeinstellungen für diverse Variablen
festgelegt werden und wiederum
/boot/loader.conf für lokale
Änderungen an diesen Variablen ausgelesen
- wird. Anschließend arbeitet dann
+ wird. Anschließend arbeitet dann
loader.rc entsprechend dieser Variablen
und lädt die ausgewählten Module und den
gewünschten Kernel.
- Abschließend wartet der Loader standardmäßig 10
- Sekunden lang auf eine Tastatureingabe und bootet den
- Kernel, falls keine Taste betätigt wurde. Falls doch
+ In der Voreinstellung wartet der Loader
+ 10 Sekunden lang auf eine Tastatureingabe und bootet den
+ Kernel, falls keine Taste betätigt wurde. Falls doch
eine Taste betätigt wurde wird dem Benutzer eine
- Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu
+ Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu
bedienenden Befehlssatz entgegen, der es dem Benutzer
erlaubt, Änderungen an Variablen vorzunehmen, Module zu
- laden, alle Module zu entladen oder schließlich zu booten
+ laden, alle Module zu entladen oder schließlich zu booten
bzw. neu zu booten.Die eingebauten Befehle des LoadersHier werden nur die gebräuchlichsten Befehle
- bearbeitet. Für eine erschöpfende Diskussion aller
+ bearbeitet. Für eine erschöpfende Diskussion aller
verfügbaren Befehle konsultieren Sie bitte
&man.loader.8;.autoboot SekundenEs wird mit dem Booten des Kernels fortgefahren,
falls keine Taste in der gegebenen Zeitspanne
- betätigt wurde. Es wird ein Countdown angezeigt und
- die standardmässige Zeitspanne ist 10
- Sekunden.
+ betätigt wurde. In der gegebenen Zeitspanne, Vorgabe
+ sind 10 Sekunden, wird ein Countdown angezeigt.boot
-optionsKernelname
- Bewirkt das sofortige booten des Kernels mit den
+ Bewirkt das sofortige Booten des Kernels mit den
gegebenen Optionen, falls welche angegeben wurden, und
mit den angegebenen Kernel, falls denn einer angegeben
wurde.boot-confBewirkt die automatische Konfiguration der Module,
- abhängig von den entsprechenden Variablen. Dieser
+ abhängig von den entsprechenden Variablen. Dieser
Vorgang ist identisch zu dem Vorgang, den der Bootloader
ausführt und daher nur sinnvoll, wenn zuvor
unload benutzt wurde und Variablen
(gewöhnlich kernel) verändert
wurden.help
ThemaZeigt die Hilfe an, die zuvor aus der Datei
/boot/loader.help gelesen
- wird. Falls index als Thema angegeben
+ wird. Falls index als Thema angegeben
wird, wird die Liste der zur Verfügung stehenden
Hilfe-Themen angezeigt.include Dateiname
…
- Verarbeitet die angegebene Datei. Das Einlesen und
+ Verarbeitet die angegebene Datei. Das Einlesen und
Interpretieren geschieht Zeile für Zeile und wird im Falle eines
Fehlers umgehend unterbrochen.load TypDateinameLädt den Kernel, das Kernel-Modul, oder die Datei
- des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden
+ des angegebenen Typs. Optionen, die auf den Dateinamen folgen, werden
der Datei übergeben.ls PfadListet die Dateien im angegebenen Pfad auf, oder das
root-Verzeichnis(/), falls kein Pfad angegeben
- wurde. Die Option bewirkt, dass die
+ wurde. Die Option bewirkt, dass die
Dateigrössen ebenfalls angezeigt werden.lsdev Listet alle Geräte auf, für die Module geladen
- werden können. Die option bewirkt
+ werden können. Die Option bewirkt
eine detailreichere Ausgabe.lsmod
- Listet alle geladenen Module auf. Die option
+ Listet alle geladenen Module auf. Die Option
bewirkt eine detailreichere
Ausgabe.more DateinameZeigt den Dateinhalt der angegebenen Datei an, wobei
eine Pause alle LINES Zeilen gemacht
wird.rebootBewirkt einen umgehenden Neustart des Systems.set Variableset
Variable=WertSetzt die Umgebungsvariablen des Loaders.unloadEntlädt sämtliche geladenen Module.
- Beispiele für die Loader Bedienung.
+ Beispiele für die Loader Bedienung
- Hier ein paar praktische Beispiele für die Bedienung des Loaders.
+ Hier ein paar praktische Beispiele für die Bedienung
+ des Loaders.Single-User ModusUm den gewöhnlichen Kernel im Single-User Modus zu
starten:boot -sUm alle gewöhnlichen Kernelmodule zu entladen und dann
nur den alten (oder jeden beliebigen anderen) Kernel zu
laden:kernel.oldunloadload kernel.oldEs kann kernel.GENERIC verwendet
werden, um den allgemeinen, Kernel zu bezeichnen, der
- vorinstalliert wird. kernel.old
+ vorinstalliert wird. kernel.old
bezeichnet den Kernel, der vor dem aktuellen installiert
war (falls man einen neuen Kernel compiliert und
installiert hat, zum Beispiel).Der folgende Befehl lädt die gewöhnlichen Module mit
einem anderen Kernel:unloadset kernel="kernel.old"boot-confFolgendes lädt ein Kernel-Konfigurations-Skript (ein
- automatisiertes Skript, dass das Selbe tut, was der
+ automatisiertes Skript, dass dasselbe tut, was der
Benutzer normalerweise von Hand an der Eingabeaufforderung
durchführen würde):load -t userconfig_script /boot/kernel.confKernel Interaktion während des Bootprozesses
- kernel
+ Kernelboot interactionWenn der Kernel einmal geladen ist, entweder durch den Loader (die Standardmethode) oder
durch boot2 (den Loader
- umgehend), verhält sich gemäß seiner Boot-Flags, falls es
+ umgehend), verhält sich gemäß seiner Boot-Flags, falls es
welche gibt.
- kernel
+ KernelbootflagsKernel Boot-FlagsEs folgt eine Auflistung der gebräuchlichsten
Boot-Flags:Bewirkt, dass der Benutzer während der
Kernel-Initialisierung gefragt wird, welches Gerät als
Root-Dateisystem gemounted werden soll.Es wird von CDROM gebootet.UserConfig, das Boot-Zeit Konfigurationsprogramm,
wird gestartet.Bewirkt den Start des Single-User Modus.Zeigt mehr Informationen während des Starten des
Kernels an.Für Informationen über weitere Boot-Flags konsultieren
Sie bitte &man.boot.8;.initInit: Initialisierung der Prozess-Kontrolle
- Nachdem der Kernel den Bootprozess abgeschlossen hat
+ Nachdem der Kernel den Bootprozess abgeschlossen hat,
übergibt er die Kontrolle an den Benutzer-Prozess
- init. Dieses Programm befindet sich in
+ init. Dieses Programm befindet sich in
/sbin/init, oder dem Pfad, der durch die
Variable init_path im Loader
spezifiziert wird.Der automatische Reboot-VorgangDer automatische Reboot-Vorgang stellt sicher, dass alle
- Dateisysteme des Systems konsistent sind. Falls dies nicht der
+ Dateisysteme des Systems konsistent sind. Falls dies nicht der
Fall ist und die Inkonsistenz nicht durch
fsck behebbar ist, schaltet
init das System in den Single-User Modus, damit der
Systemadministrator sich des Problems annehmen kann.Der Single-User ModusSingle-User ModusconsoleDas Schalten in diesen Modus kann erreicht werden durch den automatischen
Reboot-Vorgang, durch das Booten mit der Option
oder das Setzen der
boot_single Variable in
Loader.Weiterhin kann der Single-User Modus aus dem Multi-User Modus heraus durch
+ linkend="boot-multiuser">Mehrbenutzer Modus heraus durch
den Befehl shutdown ohne die reboot
() oder halt () Option
erreicht werden.
Falls die System-Konsole (console) in
/etc/ttys auf insecure
- (dt.: unsicher) gesetzt ist fordert das System allerdings zur
- Eingabe des root Passworts auf, bevor es den Single-User Modus
- aktiviert.
+ (dt.: unsicher) gesetzt ist, fordert das System allerdings zur
+ Eingabe des Passworts von root auf,
+ bevor es den Single-User Modus aktiviert.
- Auf Insecure gesetzte Konsole in /etc/ttys
+ Auf insecure gesetzte Konsole in /etc/ttys# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off insecureEine Konsole sollte auf insecure
gesetzt sein, wenn die physikalische Sicherheit der Konsole
nicht gegeben ist und sichergestellt werden soll, dass nur
- Personen, die das root-Passwort kennen den Single-User Modus
- benutzen können. Es bedeutet nicht, dass die Konsole
- "unsicher" laufen wird. Daher sollte man
+ Personen, die das Passwort von root kennen, den Single-User Modus
+ benutzen können. Es bedeutet nicht, dass die Konsole
+ "unsicher" laufen wird. Daher sollte man
insecure wählen, wenn man auf Sicherheit
bedacht ist, nicht secure.
- Multi-User Modus
- Multi-User Modus
+ Mehrbenutzer Modus
+ Mehrbenutzer ModusStellt init fest, dass das Dateisystem
in Ordnung ist, oder der Benutzer den Single-User Modus beendet,
- schaltet das System in den Multi-User Modus, in dem dann die
+ schaltet das System in den Mehrbenutzer Modus, in dem dann die
Ressourcen Konfiguration des Systems gestartet wird.
- rc Dateien
- Ressourcen Konfiguration (engl.: resource configuration, rc)
+ rc-Dateien
+ Ressourcen Konfiguration, rc-Dateien
- Das Ressourcen Konfigurationssystem liest seine
- Standardkonfiguration von
+ Das Ressourcen Konfigurationssystem (engl.
+ resource configuration, rc)
+ liest seine Standardkonfiguration von
/etc/defaults/rc.conf und
System-spezifische Details von
- /etc/rc.conf. Dann mountet es das
- Dateisystem gemäß /etc/fstab, startet
+ /etc/rc.conf. Dann mountet es die
+ Dateisysteme gemäß /etc/fstab, startet
die Netzwerkdienste, diverse System Daemons und führt
- schließlich die Startup-Skripte der lokal installierten
- Programmpakete (packages) aus.
+ schließlich die Start-Skripten der lokal installierten
+ Anwendungen aus.Die &man.rc.8; Handbuch Seite ist eine gute Quelle für
Informationen über das Ressourcen Konfigurationssystem und
ebenso über die Skripte ansich.Der Shutdown VorgangshutdownIm Falle eines kontrollierten Herunterfahrens durch
- shutdown führt init das
- /etc/rc.shutdown Skript aus, sendet dann
+ shutdown führt init
+ /etc/rc.shutdown aus, sendet dann
sämtlichen Prozessen ein TERM Signal und
- schließlich ein KILL Signal an alle Prozesse,
+ schließlich ein KILL Signal an alle Prozesse,
die sich nicht schnell genug beendet haben.
diff --git a/de_DE.ISO8859-1/books/handbook/chapters.ent b/de_DE.ISO8859-1/books/handbook/chapters.ent
index e9644ee9e1..a4fa497b2d 100644
--- a/de_DE.ISO8859-1/books/handbook/chapters.ent
+++ b/de_DE.ISO8859-1/books/handbook/chapters.ent
@@ -1,30 +1,31 @@
+
diff --git a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
index 6cfca30145..f38f2324f0 100644
--- a/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/config/chapter.sgml
@@ -1,1295 +1,1313 @@
ChernLeeGeschrieben von MikeSmithNach einem Tutorium von MattDillonBasiert ebenfalls auf tuning(7) von
+
+
+ Martin
+ Heinen
+ Übersetzt von
+
+ Konfiguration und TuningÜbersichtSystem-Konfiguration/OptimierungEin korrekt konfiguriertes System kann die Arbeit,
die bei der zukünftigen Pflege und bei Migrationen des Systems
entsteht, erheblich reduzieren.
Dieses Kapitel beschreibt Aspekte der administrativen
Konfiguration von FreeBSD Systemen.Es werden zudem einige Parameter beschrieben, die gesetzt
werden können, um aus einem FreeBSD System die optimale
Leistung zu holen.Nachdem Sie dieses Kapitel durchgearbeitet haben,
werden Sie folgendes wissen:Warum und wie Sie effizient Dateisysteme und
Swap-Partitionen auf Ihrer Festplatte einrichten.Die Grundlagen der Konfiguration mit
rc.conf und des Systems zum Starten
von Applikationen in /usr/local/etc/rc.d.Wie Sie virtuelle Hosts und Netzwerkgeräte
konfigurieren.Wie Sie die verschiedenen Konfigurationsdateien
in /etc benutzen.
- Wie Sie mit sysctl Variablen FreeBSD
+ Wie Sie mit sysctl-Variablen FreeBSD
einstellen können.Wie Sie die Platten Performance einstellen und Kernel Parameter
modifizieren können.Bevor Sie dieses Kapitel lesen, sollten Siedie Grundlagen von Unix und FreeBSD ()
verstehen.Damit vertraut sein, wie Sie die FreeBSD-Quellen aktuell
halten
und wissen, wie Sie einen
Kernel konfigurieren und kompilieren () .Vorbereitende KonfigurationLayout von PartitionenLayout von Partitionen/etc/var/usrPartitionenWenn Sie Dateisysteme mit &man.disklabel.8; oder
&man.sysinstall.8; anlegen, sollten Sie beachten, daß
Festplatten auf Daten in den äußeren Spuren
schneller zugreifen können als auf Daten in den
inneren Spuren. Daher sollten die kleineren oft benutzten
Dateisysteme, wie das Root-Dateisystem oder die Swap-Partition,
an den äußeren Rand der Platte gelegt werden.
Die größeren Partitionen wie /usr
sollten in die inneren Bereiche gelegt werden.
Es empfiehlt sich, die Partitionen in einer ähnlichen
Reihenfolge wie Root-Partition, Swap, /var
und /usr anzulegen.Die Größe der /var-Partition
ist abhängig vom Zweck der Maschine.
/var enthält hauptsächlich
Postfächer, den Spoolbereich zum Drucken und Logdateien.
Abhängig von der Anzahl der Systembenutzer und der
Aufbewahrungszeit für Logdateien, können gerade
die Postfächer und Logdateien zu ungeahnten Größen
wachsen. Wenn Sie beabsichtigen, einen Mailserver zu betreiben,
kann eine /var-Partition mit einer
Größe von einem Gigabyte und mehr passend sein.
Zudem sollte /var/tmp groß genug sein,
um Pakete, die Sie installieren wollen, aufzunehmen.Die /usr-Partition enthält den
Hauptteil der Dateien des Systems und das darin enthaltene
Unterverzeichnis /usr/local enthält
den Hauptteil der Dateien, die aus der &man.ports.7;
Hierarchie installiert wurden. Wenn Sie nicht vorhaben,
viele Ports zu benutzen und nicht beabsichtigen, den
Quellcode des Systems in /usr/src zu halten,
dann reicht eine 1 Gigabyte große
/usr-Partition. Wenn Sie aber viele
Ports, insbesondere Fenstermanager und die Linux-Emulation,
installieren, dann empfehlen wir mindestens eine zwei Gigabyte
große Partition für /usr.
Wenn Sie außerdem noch den Quellcode für das
System installieren, empfehlen wir eine drei Gigabyte
/usr-Partition. Unterschätzen
Sie bitte nicht den Platz, den Sie für diese Partition
brauchen, sie kann unmerklich anwachsen und Sie
überraschen.Wenn Sie die Größe der Partitionen festlegen,
beachten Sie bitte das Wachstum Ihres Systems. Es kann
sehr frustrierend sein, wenn Sie den Platz in einer Partition
vollständig verbraucht haben, dagegen in einer
anderen Partition noch sehr viel Platz zur Verfügung
haben.Einige Benutzer, die in &man.sysinstall.8; die
Partitionen mit Auto-defaults automatisch
angelegt haben, wurden später von einer zu kleinen
Root- oder /var-Partition überrascht.
Partitionieren Sie weise und großzügig.Swap PartitionGröße der
Swap-PartitionSwap-PartitionAls Daumenregel sollten Sie doppelt soviel Speicher
für die Swap-Partition vorsehen, als Sie Hauptspeicher
haben. Verfügt die Maschine beispielsweise über
128 Megabyte Hauptspeicher, sollten Sie 256 Megabyte für
den Swap-Bereich vorsehen. Systeme mit weniger Speicher
werden wahrscheinlich mit viel mehr Swap mehr leisten. Es
wird nicht empfohlen, weniger als 256 Megabyte Swap einzurichten.
Außerdem sollten Sie künftige Speichererweiterungen
beachten, wenn Sie die Swap-Partition einrichten. Die
VM-Paging-Algorithmen im Kernel sind so eingestellt, daß
Sie am besten laufen, wenn die Swap-Partition mindestens
doppelt so groß wie der Hauptspeicher ist. Zu wenig
Swap kann zu einer Leistungsverminderung im
- VM page scanning
- Code führen sowie Probleme verursachen, wenn Sie später
+ VM page scanning
+ Code führen, sowie Probleme verursachen, wenn Sie später
mehr Speicher in Ihre Maschine bauen.Auf größeren Systemen mit mehreren SCSI-Laufwerken
(oder mehreren IDE-Laufwerken an unterschiedlichen Controllern)
empfehlen wir Ihnen wärmstens, Swap-Bereiche auf bis zu
vier Laufwerken einzurichten. Diese Swap-Partitionen sollten
ungefähr dieselbe Größe haben. Der Kernel
kann zwar mit beliebigen Größen umgehen, aber
die internen Datenstrukturen skalieren bis zur vierfachen
Größe der größten Partition. Ungefähr
gleich große Swap-Partitionen erlauben es dem Kernel,
den Swap-Bereich optimal über die Laufwerke zu verteilen.
Machen Sie sich keine Gedanken, etwas zu übertreiben,
ausreichend Swap kann unter Unix die Lage retten. Ausreichend
Swap, auch wenn Sie ihn normal nicht brauchen, kann Ihnen
die Zeit geben, sich von einem wild gewordenen Programm
zu erholen, bevor Sie zu einem Reboot gezwungen werden.Warum partitionieren?Warum soll ich überhaupt partitionieren? Eine
- große Root-Partition reicht doch und man kann
+ große Root-Partition reicht doch auch und man kann
sich bei den Größen nicht verschätzen!Dagegen sprechen mehrere Gründe. Jede Partition
hat im Betrieb unterschiedliche Eigenschaften und die
Trennung der Partitionen erlaubt es, die Dateisysteme
an diese Eigenschaften anzupassen. Die Root- und
/usr-Partitionen weisen meist nur
lesende Zugriffe auf, während /var
und /var/tmp hauptsächlich
beschrieben werden.Indem Sie Ihr System richtig partitionieren, verhindern
Sie, daß eine Fragmentierung in den häufig beschriebenen
Partitionen auf die meist nur gelesenen Partitionen
übergreift. Wenn Sie weiterhin die häufig beschriebenen
Partitionen an den Rand der Platte, z.B. vor die wirklich
großen Partitionen, legen, dann wird die I/O-Leistung
auf den Partitionen, auf denen sie am meisten gebraucht wird,
steigen. Natürlich brauchen Sie die I/O-Leistung auch auf
den größeren Partitionen, aber da diese so groß
sind, bringt es keine signifikante Steigerung der Leistung,
wenn Sie sie an den Rand schieben. Im Gegensatz dazu, kann
es einen großen Einfluß haben, wenn Sie
/var an den Rand der Platte legen.
Schließlich sollten Sie noch die Sicherheit beachten.
Eine kleine Root-Partition, auf die meist nur lesend
zugegriffen wird, überlebt einen schlimmen Absturz
wahrscheinlich eher als eine große Partition.Basiskonfigurationrc Dateienrc.confInformationen zur Systemkonfiguration sind hauptsächlich
in /etc/rc.conf, die meist beim Start
des Systems verwendet wird, abgelegt. Der Name der Datei zeigt
ihren Zweck an: Sie enthält die Konfigurationen für
die rc* Dateien.In rc.conf werden die Vorgabewerte aus
/etc/defaults/rc.conf überschrieben.
Die Vorgabedatei sollte nicht nach /etc
kopiert werden, da sie die Vorgabewerte und keine Beispiele
enthält. Jede systemspezifische Änderung wird
in rc.conf vorgenommen.Um den administrativen Aufwand gering zu halten, existieren
in geclusterten Applikationen mehrere Strategien,
globale Konfigurationen von systemspezifischen Konfigurationen
zu trennen. Der empfohlene Weg hält die globale Konfiguration
in einer separaten Datei z.B. rc.conf.site.
Diese Datei wird dann in /etc/rc.conf,
die nur systemspezifische Informationen enthält, eingebunden.Da rc.conf von &man.sh.1; gelesen
wird, ist das einfach zu erreichen:rc.conf: . rc.conf.site
hostname="node15.example.com"
network_interfaces="fxp0 lo0"
ifconfig_fxp0="inet 10.1.1.1"rc.conf.site: defaultrouter="10.1.1.254"
saver="daemon"
blanktime="100"rc.conf.site kann dann auf jedes
System mit rsync verteilt werden,
rc.conf bleibt dabei systemspezifisch.Bei einem Upgrade des Systems mit &man.sysinstall.8; oder
make world wird rc.conf
nicht überschrieben, so daß die Systemkonfiguration
erhalten bleibt.Konfiguration von ApplikationenInstallierte Applikationen haben typischerweise
eigene Konfigurationsdateien, die eine eigene Syntax
verwenden. Damit diese Dateien leicht von der
Paketverwaltung gefunden und verwaltet werden können,
ist es wichtig, sie vom Basissystem zu trennen./usr/local/etcFür gewöhnlich werden diese Dateien in
/usr/local/etc installiert. Besitzt
eine Applikation viele Konfigurationsdateien, werden
diese in einem separaten Unterverzeichnis abgelegt.Wenn ein Port oder ein Paket installiert wird, werden
normalerweise auch Beispiele für die Konfigurationsdateien
installiert. Diese erkennt man gewöhnlich an dem
Suffix .default. Wenn keine Konfigurationsdateien
für eine Applikation existieren, werden sie durch
Kopieren der .default Dateien erstellt.Als Beispiel sei /usr/local/etc/apache
gezeigt:-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.defaultAnhand der Dateigröße erkennen Sie, daß sich
nur srm.conf geändert hat. Ein
späterer Update des Apache Ports würde diese
Datei nicht überschreiben.Start von DienstenDiensteEs ist üblich, daß ein System mehrere Dienste
zur Verfügung stellt. Diese können auf verschiedene
Weisen, die jeweils andere Vorteile haben, gestartet werden./usr/local/etc/rc.dSoftware, die von einem Port oder einem Paket installiert
wurde, wird oft ein Skript in /usr/local/etc/rc.d
stellen. Dieses wird beim Hochfahren des Systems mit dem
Argument und beim Herunterfahren mit
dem Argument aufgerufen. Das ist der empfohlene
Weg, systemweite Dienste, die unter root laufen
oder unter root gestartet werden, zu starten.
- Die Skripte werden bei der Installation des Paketes registriert
+ Die Skripten werden bei der Installation des Paketes registriert
und entfernt, wenn das Paket entfernt wird.Ein typisches Skript in /usr/local/etc/rc.d
sieht wie folgt aus:#!/bin/sh
echo -n ' FooBar'
case "$1" in
start)
/usr/local/bin/foobar
;;
stop)
kill -9 `cat /var/run/foobar.pid`
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
- Um die passenden Aktionen auszuführen, wird das Skript
- beim Start des Systems mit
- und mit beim Herunterfahren aufgerufen.
+ Die Startskripten von FreeBSD suchen in
+ /usr/local/etc/rc.d nach Dateien mit dem Suffix
+ .sh, die von root
+ ausgeführt werden können. Die gefundenen Skripten werden
+ beim Hochfahren des Systems mit der Option und
+ beim Herunterfahren mit der Option aufgerufen,
+ damit sie die passenden Aktionen ausführen können. Wenn
+ Sie das vorige Beispiel beim Systemstart verwenden wollen, sollten
+ Sie es also als FooBar.sh in
+ /usr/local/etc/rc.d speichern und sicherstellen,
+ das das Skript ausführbar ist. Benutzen Sie &man.chmod.1;, um
+ das Skript ausführbar zu machen:
+
+ &prompt.root; chmod 755 FooBar.shManche Dienste werden von &man.inetd.8; aufgerufen, wenn
eine Verbindung auf dem passenden Port aufgebaut wird. Üblich
ist das für Server von Mail-Clients (POP, IMAP, usw.). Diese
Dienste werden durch das Editieren von
/etc/inetd.conf aktiviert. Details dazu
finden sich in &man.inetd.8;.Weitere Systemdienste werden vielleicht nicht von
/etc/rc.conf abgedeckt. Diese werden
traditionell durch Kommandos in /etc/rc.local
aktiviert. Seit FreeBSD 3.1 existiert keine Vorgabe für
/etc/rc.local mehr. Wenn die Datei allerdings
von einem Administrator angelegt wird, so wird sie auch
ausgeführt. Beachten Sie bitte, daß
/etc/rc.local als der letzte Weg, einen
Dienst zu starten, angesehen wird. Wenn es eine andere
Möglichkeit gibt, den Dienst zu starten, nehmen Sie diese
bitte wahr.Fügen Sie bitte keine Kommandos
in /etc/rc.conf ein. Starten Sie stattdessen
Dæmons oder Kommandos beim Hochfahren mit Skripten in
/usr/local/etc/rc.d.Systemdienste können auch mit &man.cron.8; gestartet
werden. Dieser Ansatz hat einige Vorteile; nicht zuletzt, weil
&man.cron.8; die Prozesse unter dem Eigentümer der
crontab startet, ist es möglich, daß
Dienste von nicht-root Benutzern gestartet
und gepflegt werden können.Dies nutzt eine Eigenschaft von &man.cron.8;:
Für die Zeitangabe kann @reboot
eingesetzt werden. Damit wird das Kommando gestartet, wenn
&man.cron.8; kurz nach dem Systemboot gestartet wird.Virtual Hostsvirtual hostsIP AliaseEin gebräuchlicher Zweck von FreeBSD ist das
virtuelle Hosting, bei dem ein Server im Netzwerk wie
mehrere Server aussieht. Dies wird dadurch erreicht,
daß einem Netzwerkinterface mehrere Netzwerk-Adressen
zugewiesen werden.Ein Netzwerkinterface hat eine echte
Adresse und kann beliebig viele alias Adressen
haben. Die Aliase werden durch entsprechende alias Einträge
in /etc/rc.conf festgelegt.Ein alias Eintrag für das Interface
fxp0 sieht wie folgt aus:ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"Beachten Sie, daß die alias Einträge mit alias0
anfangen müssen und dann weiter hochgezählt werden,
das heißt _alias1, _alias2, usw.
Die Konfiguration der Aliase hört bei der ersten
fehlenden Zahl auf.Die Berechnung der Alias-Netzwerkmasken ist wichtig, doch
zum Glück einfach. Für jedes Interface muß es
eine Adresse geben, die die Netzwerkmaske des Netzwerkes richtig
beschreibt. Alle anderen Adressen in diesem Netzwerk haben dann
eine Netzwerkmaske, die mit 1 gefüllt ist.Als Beispiel betrachten wir den Fall, in dem
fxp0 mit zwei Netzwerken verbunden
ist: dem Netzwerk 10.1.1.0 mit der Netzwerkmaske 255.255.255.0
und dem Netzwerk 202.0.75.16 mit der Netzwerkmaske 255.255.255.240.
Das System soll die Adressen 10.1.1.1 bis 10.1.1.5 und
202.0.75.17 bis 202.0.75.20 belegen.Die folgenden Einträge konfigurieren den Adapter
entsprechend dem Beispiel: ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"Konfigurationsdateien/etc LayoutKonfigurationsdateien finden sich in einigen Verzeichnissen
unter anderem in:/etcEnthält generelle Konfigurationsinformationen,
die Daten hier sind systemspezifisch./etc/defaultsDefault Versionen der Konfigurationsdateien./etc/mailEnthält die &man.sendmail.8; Konfiguration
und weitere MTA Konfigurationsdateien./etc/pppHier findet sich die Konfiguration für
die User- und Kernel-ppp Programme./etc/namedbDas Vorgabeverzeichnis, in dem Daten von
&man.named.8; gehalten werden. Normalerweise
steht hier die Bootdatei, die mittels einer Direktive
auf weitere Daten in /var/db
verweist./usr/local/etcInstallierte Applikationen legen hier ihre
Konfigurationsdateien ab. Dieses Verzeichnis kann
Unterverzeichnisse für bestimmte Applikationen
enthalten./usr/local/etc/rc.d
- Ort für Start- und Stopskripte installierter
+ Ort für Start- und Stopskripten installierter
Applikationen./var/dbBeständige systemspezifische Daten z.B.
&man.named.8; Zonendaten, Datenbanken usw.HostnamenhostnameDNS/etc/resolv.confresolv.confWie der FreeBSD Resolver auf das Internet Domain Name
System (DNS) zugreift, wird in /etc/resolv.conf
festgelegt.Die gebräuchlichsten Einträge in
/etc/resolv.conf sind:nameserverDie IP-Adresse eines Nameservers, den
der Resolver abfragen soll. Bis zu drei Server werden
in der Reihenfolge, in der sie aufgezählt
sind, abgefragt.
searchSuchliste mit Domain-Namen zum Auflösen von
Hostnamen. Die Liste wird normalerweise durch den
Domain-Teil des lokalen Hostnamens festgelegt.
domain
- Der lokale Domain-Name
+ Der lokale Domain-Name.Beispiel für eine typische
resolv.conf:search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30Nur eine der Anweisungen search
oder domain sollte benutzt werden.Wenn Sie DHCP benutzen, überschreibt &man.dhclient.8;
für gewöhnlich resolv.conf
mit den Informationen vom DHCP-Server./etc/hostshosts/etc/hosts ist eine einfache textbasierte
Datenbank, die aus alten Internetzeiten stammt. Zusammen
mit DNS und NIS stellt sie eine Abbildung zwischen Namen und
IP-Adressen zur Verfügung. Anstatt &man.named.8;
zu konfigurieren, können hier lokale Rechner, die über
ein LAN verbunden sind, eingetragen werden. Lokale Einträge
für gebräuchliche Internet-Adressen in
/etc/hosts verhindern die Abfrage eines
externen Servers und beschleunigen die Namensauflösung.# $FreeBSD$
#
# Host Database
# This file should contain the addresses and aliases
# for local hosts that share this file.
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1 localhost localhost.my.domain myname.my.domain
127.0.0.1 localhost localhost.my.domain myname.my.domain
#
# Imaginary network.
#10.0.0.2 myname.my.domain myname
#10.0.0.3 myfriend.my.domain myfriend
#
# According to RFC 1918, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers. PLEASE PLEASE PLEASE do not try
# to invent your own network numbers but instead get one from your
# network provider (if any) or from the Internet Registry (ftp to
# rs.internic.net, directory `/templates').
#/etc/hosts hat ein einfaches Format:[Internet Adresse] [Offizieller Hostname] [Alias1] [Alias2] ...Zum Beispiel:10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2Weitere Informationen entnehmen Sie bitte &man.hosts.5;.Konfiguration von LogdateienLogdateiensyslog.confsyslog.confsyslog.conf ist die Konfigurationsdatei
- von &man.syslogd.8;. Sie legt fest, welche syslog
- Meldungen in welche Logdateien geschrieben werden.
+ von &man.syslogd.8;. Sie legt fest, welche
+ syslog Meldungen in welche
+ Logdateien geschrieben werden.
# $FreeBSD$
#
# Spaces ARE valid field separators in this file. However,
# other *nix-like systems still insist on using tabs as field
# separators. If you are sharing this file between systems, you
# may want to use only tabs as field separators here.
# Consult the syslog.conf(5) manpage.
*.err;kern.debug;auth.notice;mail.crit /dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
cron.* /var/log/cron
*.err root
*.notice;news.err root
*.alert root
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
#*.* /var/log/all.log
# uncomment this to enable logging to a remote log host named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.logWeitere Informationen enthält &man.syslog.conf.5;.newsyslog.confnewsyslog.confDie Konfigurationsdatei für &man.newsyslog.8;, das
normalerweise von &man.cron.8; aufgerufen wird, ist
newsyslog.conf. &man.newsyslog.8;
stellt fest, ob Logdateien archiviert oder verschoben
werden müssen. So wird logfile
nach logfile.0 geschoben und
logfile.0 nach logfile.1
usw. Zudem können Logdateien mit &man.gzip.1;
komprimiert werden. Die Namen der Logdateien sind dann
logfile.0.gz, logfile.1.gz
usw.newsyslog.conf legt fest, welche
Logdateien bearbeitet werden, wie viele Dateien behalten werden
und wann die Dateien angefaßt werden. Logdateien
können auf Basis ihrer Größe oder zu
einem gewissen Zeitpunkt archiviert bzw. umbenannt werden.# configuration file for newsyslog
# $FreeBSD$
#
# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
/var/log/cron 600 3 100 * Z
/var/log/amd.log 644 7 100 * Z
/var/log/kerberos.log 644 7 100 * Z
/var/log/lpd-errs 644 7 100 * Z
/var/log/maillog 644 7 * @T00 Z
/var/log/sendmail.st 644 10 * 168 B
/var/log/messages 644 5 100 * Z
/var/log/all.log 600 7 * @T00 Z
/var/log/slip.log 600 3 100 * Z
/var/log/ppp.log 600 3 100 * Z
/var/log/security 600 10 100 * Z
/var/log/wtmp 644 3 * @01T05 B
/var/log/daily.log 640 7 * @T00 Z
/var/log/weekly.log 640 5 1 $W6D0 Z
/var/log/monthly.log 640 12 * $M1D0 Z
/var/log/console.log 640 5 100 * ZUm mehr zu erfahren, lesen Sie bitte &man.newsyslog.8;.sysctl.confsysctl.confsysctlsysctl.conf sieht ähnlich
wie rc.conf aus. Werte werden in der
Form Variable=Wert gesetzt.
Die angegebenen Werte werden
- gesetzt, nachdem sich das System im Multi-User Modus befindet,
+ gesetzt, nachdem sich das System im Mehrbenutzer Modus befindet,
das heißt nicht alle Werte können in
diesem Modus gesetzt werden.In der folgenden sysctl.conf wird das
Loggen von fatalen Signalen abgestellt und Linux Programmen
wird klar gemacht, daß sie in Wirklichkeit unter
FreeBSD laufen.kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11)
compat.linux.osname=FreeBSD
compat.linux.osrelease=4.3-STABLEEinstellungen mit sysctlsysctlEinstellungen mit sysctlMit &man.sysctl.8; können Sie Änderungen an
einem laufenden FreeBSD System vornehmen. Unter anderem
können Optionen des TCP/IP-Stacks oder des
virtuellen Speichermanagements verändert werden. Unter
der Hand eines erfahrenen Systemadministrators kann dies
die Systemperformance erheblich verbessern. Über 500
Variablen können mit &man.sysctl.8; gelesen und gesetzt
werden.Der Hauptzweck von &man.sysctl.8; besteht darin, Systemeinstellungen
zu lesen und zu verändern.Alle auslesbaren Variablen werden wie folgt angezeigt:&prompt.user; sysctl -aSie können auch eine spezielle Variable, z.B.
kern.maxproc lesen:&prompt.user; sysctl kern.maxproc
kern.maxproc: 1044Um eine Variable zu setzen, benutzen Sie die Syntax
Variable=
Wert:&prompt.root; sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000Mit sysctl können Sie Strings, Zahlen oder
Boolean-Werte setzen. Bei Boolean-Werten setzen sie 1
für wahr und 0 für falsch.Tuning von LaufwerkenSysctl Variablenvfs.vmiodirenablevfs.vmiodirenableDie Variable vfs.vmiodirenable besitzt
in der Voreinstellung den Wert 1. Die Variable kann auf den Wert
0 (ausgeschaltet) oder 1 (angeschaltet) gesetzt werden. Sie
kontrolliert, wie Verzeichnisse vom System zwischengespeichert
werden. Die meisten Verzeichnisse sind klein und nutzen
nur ein einzelnes Fragment, typischerweise 1K, im Dateisystem.
Im Buffer-Cache verbrauchen sie mit 512 Bytes noch weniger
Platz. In der Voreinstellung wird der Buffer-Cache nur
eine limitierte Anzahl Verzeichnisse zwischenspeichern, auch
wenn das System über sehr viel Speicher verfügt.
Wenn Sie diese Variable aktivieren, kann der Buffer-Cache den
VM-Page-Cache benutzen, um Verzeichnisse zwischenzuspeichern.
Der ganze Speicher steht damit zum Zwischenspeichern von
Verzeichnissen zur Verfügung. Der Nachteil bei dieser
Vorgehensweise ist, daß zum Zwischenspeichern eines
Verzeichnisses mindestens eine physikalische Seite im Speicher,
die normalerweise 4K groß ist, anstelle von 512 Bytes
gebraucht wird. Wir empfehlen diese Option zu aktivieren,
wenn Sie Dienste zur Verfügung stellen, die eine
große Zahl von Dateien manipulieren. Beispiele für
solche Dienste sind Web-Caches, große Mail-Systeme oder
Netnews. Trotz des verschwendeten Speichers vermindert
das Aktivieren dieser Variable in aller Regel nicht die
Leistung des Systems, obwohl Sie das nachprüfen sollten.hw.ata.wchw.ata.wcIn FreeBSD 4.3 wurde versucht, den IDE Schreib-Zwischenspeicher
abzustellen. Obwohl dies die Bandbreite zum Schreiben auf
IDE-Platten verringerte, wurde es aus Gründen der
Datenkonsistenz als notwenig angesehen. Der Kern des
Problems ist, daß IDE-Platten keine zuverlässige
Aussage über das Ende eines Schreibvorgangs treffen.
Wenn der Schreib-Zwischenspeicher aktiviert ist, werden die Daten
nicht in der Reihenfolge ihres Eintreffens geschrieben. Es kann
sogar passieren, daß das Schreiben mancher Blöcke
im Fall von starker Plattenaktivität auf unbefristete
Zeit verzögert wird. Ein Absturz oder Stromausfall
zu dieser Zeit kann die Dateisysteme erheblich beschädigen.
Wir entschieden uns daher für die sichere Variante
und stellten den Schreib-Zwischenspeicher ab. Leider war
damit auch ein großer Leistungsverlust verbunden, so
daß wir die Variable
nach dem Release wieder aktiviert haben. Sie sollten den
Wert der Variable hw.ata.wc auf Ihrem
System überprüfen. Wenn der Schreib-Zwischenspeicher
abgestellt ist, können Sie ihn aktivieren, indem Sie die
Variable auf den Wert 1 setzen. Dies muß zum Zeitpunkt
des Systemstarts im Boot-Loader geschehen. Eine Änderung
der Variable, nachdem der Kernel gestartet ist, hat keine
Auswirkungen.Weitere Informationen finden Sie in &man.ata.4;.Soft UpdatesSoft UpdatestunefsMit &man.tunefs.8; lassen sich Feineinstellungen an
Dateisystemen vornehmen. Das Programm hat verschiedene Optionen,
von denen hier nur Soft Updates betrachtet werden. Soft Updates
werden wie folgt ein- und ausgeschaltet:&prompt.root; tunefs -n enable /filesystem
&prompt.root; tunefs -n disable /filesystemEin eingehängtes Dateisystem kann nicht mit &man.tunefs.8;
modifiziert werden. Soft Updates werden am besten im Single-User
Modus aktiviert, bevor Partitionen eingehangen sind.Ab FreeBSD 4.5 können Sie Soft Updates mit der
Option -U von &man.newfs.8; beim Anlegen der
Dateisysteme aktivieren.Durch Einsatz eines Zwischenspeichers wird die Performance
im Bereich der Metadaten, vorwiegend beim Anlegen und Löschen
von Dateien, gesteigert. Wir empfehlen, Soft Updates auf allen
Dateisystemen zu aktivieren. Allerdings sollten Sie sich über
die zwei Nachteile von Soft Updates bewußt sein:
Erstens garantieren Soft Updates zwar die Konsistenz der Daten
im Fall eines Absturzes, aber es kann leicht passieren, daß
das Dateisystem über mehrere Sekunden oder gar eine Minute
nicht synchronisiert wurde. Im Fall eines Absturzes verlieren
Sie mit Soft Updates unter Umständen mehr Daten als ohne.
Zweitens verzögern Soft Updates die Freigabe von
Datenblöcken. Eine größere Aktualisierung
- eines fast vollen Dateisystems, wie dem root-Dateisystem,
+ eines fast vollen Dateisystems, wie dem Root-Dateisystem,
z.B. während eines make installworld,
kann das Dateisystem vollaufen lassen. Dadurch würde
die Aktualisierung fehlschlagen.Details über Soft UpdatesSoft Updates (Details)Es gibt zwei klassische Herangehensweisen, wie
man die Metadaten des Dateisystems (also Daten
über Dateien, wie inode Bereiche oder Verzeichniseinträge)
aktualisiert auf die Platte zurückschreibt:Das historisch übliche Verfahren waren synchrone
Updates der Metadaten, d. h. wenn eine Änderung an
einem Verzeichnis nötig war, wurde anschließend
gewartet, bis diese Änderung tatsächlich auf die
Platte zurückgeschrieben worden war. Der
Inhalt der Dateien wurde im
Buffer Cache zwischengespeichert und
asynchron irgendwann später auf die Platte geschrieben.
Der Vorteil dieser Implementierung ist, daß sie
sicher funktioniert. Wenn während eines Updates ein
Ausfall erfolgt, haben die Metadaten immer einen
konsistenten Zustand. Eine Datei ist entweder komplett
angelegt oder gar nicht. Wenn die Datenblöcke einer
Datei im Fall eines Absturzes noch nicht den Weg aus dem
Buffer Cache auf die Platte gefunden haben,
kann &man.fsck.8; das Dateisystem reparieren, indem es die
Dateilänge einfach auf 0 setzt. Außerdem
ist die Implementierung einfach und überschaubar. Der
Nachteil ist, daß Änderungen der Metadaten sehr
langsam vor sich gehen. Ein rm -r
beispielsweise faßt alle Dateien eines Verzeichnisses
der Reihe nach an, aber jede dieser Änderungen am
Verzeichnis (Löschen einer Datei) wird einzeln synchron
auf die Platte geschrieben. Gleiches beim Auspacken
großer Hierarchien (tar -x).Der zweite Fall sind asynchrone Metadaten-Updates. Das
ist z. B. der Standard bei Linux/ext2fs oder die Variante
mount -o async für *BSD UFS. Man
schickt die Updates der Metadaten einfach auch noch
über den Buffer Cache, sie werden also
zwischen die Updates der normalen Daten eingeschoben.
Vorteil ist, daß man nun nicht mehr auf jeden Update
warten muß, Operationen mit vielen
Metadatenänderungen werden also viel schneller. Auch
hier ist die Implementierung sehr einfach und wenig
anfällig für Fehler. Nachteil ist, daß
keinerlei Konsistenz des Dateisystems mehr gesichert ist.
Wenn mitten in einer Operation, die viele Metadaten
ändert, ein Ausfall erfolgt (Stromausfall, drücken
des Reset-Tasters), dann ist das Dateisystem
anschließend in einem unbestimmten Zustand. Niemand
kann genau sagen, was noch geschrieben worden ist und was
nicht mehr; die Datenblöcke einer Datei können
schon auf der Platte stehen, während die inode Tabelle
oder das zugehörige Verzeichnis nicht mehr aktualisiert
worden ist. Man kann praktisch kein fsck
mehr implementieren, das diesen Zustand
wieder reparieren kann, da die dazu nötigen
Informationen einfach auf der Platte fehlen. Wenn ein
Dateisystem derart beschädigt worden ist, kann man es
nur neu erzeugen (newfs) und die Daten
vom Backup zurückspielen.
Der historische Ausweg aus diesem Dilemma war ein
- dirty region logging (auch als
- Journalling bezeichnet, wenngleich
- dieser Begriff nicht immer gleich benutzt und manchmal auch
- für andere Formen von Transaktionsprotokollen gebraucht
- wird). Man schreibt die Metadaten-Updates zwar synchron,
- aber nur in einen kleinen Plattenbereich, die
- logging area. Von da aus werden sie
- dann asynchron auf ihre eigentlichen Bereiche verteilt. Da
- die logging area ein kleines
- zusammenhängendes Stückchen ist, haben die
- Schreibköpfe der Platte bei massiven Operationen auf
- Metadaten keine allzu großen Wege zurückzulegen,
- so daß alles ein ganzes Stück schneller geht als
- bei klassischen synchronen Updates. Die Komplexität
- der Implementierung hält sich ebenfalls in Grenzen,
- somit auch die Anfälligkeit für Fehler. Als
- Nachteil ergibt sich, daß Metadaten zweimal auf die
- Platte geschrieben werden müssen (einmal in die
- logging area, einmal an die richtige
- Stelle), so daß das im Falle regulärer
- Arbeit (also keine gehäuften Metadatenoperationen) eine
- Pessimisierung des Falls der synchronen
- Updates eintritt, es wird alles langsamer. Dafür hat man
- als Vorteil, daß im Falle eines Crashes der
- konsistente Zustand dadurch erzielbar ist, daß die
- angefangenen Operationen aus dem dirty region
- log entweder zu Ende ausgeführt oder
- komplett verworfen werden, wodurch das Dateisystem schnell
- wieder zur Verfügung steht.
-
+ dirty region logging (auch als
+ Journalling bezeichnet, wenngleich
+ dieser Begriff nicht immer gleich benutzt und manchmal auch
+ für andere Formen von Transaktionsprotokollen gebraucht
+ wird). Man schreibt die Metadaten-Updates zwar synchron,
+ aber nur in einen kleinen Plattenbereich, die
+ logging area. Von da aus werden sie
+ dann asynchron auf ihre eigentlichen Bereiche verteilt. Da
+ die logging area ein kleines
+ zusammenhängendes Stückchen ist, haben die
+ Schreibköpfe der Platte bei massiven Operationen auf
+ Metadaten keine allzu großen Wege zurückzulegen,
+ so daß alles ein ganzes Stück schneller geht als
+ bei klassischen synchronen Updates. Die Komplexität
+ der Implementierung hält sich ebenfalls in Grenzen,
+ somit auch die Anfälligkeit für Fehler. Als
+ Nachteil ergibt sich, daß Metadaten zweimal auf die
+ Platte geschrieben werden müssen (einmal in die
+ logging area, einmal an die richtige
+ Stelle), so daß das im Falle regulärer
+ Arbeit (also keine gehäuften Metadatenoperationen) eine
+ Pessimisierung des Falls der synchronen
+ Updates eintritt, es wird alles langsamer. Dafür hat man
+ als Vorteil, daß im Falle eines Crashes der
+ konsistente Zustand dadurch erzielbar ist, daß die
+ angefangenen Operationen aus dem dirty region
+ log entweder zu Ende ausgeführt oder
+ komplett verworfen werden, wodurch das Dateisystem schnell
+ wieder zur Verfügung steht.
Die Lösung von Kirk McKusick, dem Schöpfer von
- Berkeley FFS, waren Soft Updates: die
- notwendigen Updates der Metadaten werden im Speicher
- gehalten und dann sortiert auf die Platte geschrieben
- (ordered metadata updates). Dadurch hat man
- den Effekt, daß im Falle massiver
- Metadaten-Änderungen spätere Operationen die
- vorhergehenden, noch nicht auf die Platte geschriebenen
- Updates desselben Elements im Speicher
- einholen. Alle Operationen, auf ein
- Verzeichnis beispielsweise, werden also in der Regel noch im
- Speicher abgewickelt, bevor der Update überhaupt auf
- die Platte geschrieben wird (die dazugehörigen
- Datenblöcke werden natürlich auch so sortiert,
- daß sie nicht vor ihren Metadaten auf der Platte
- sind). Im Fall eines Absturzes hat man ein implizites log
- rewind: alle Operationen, die noch nicht den Weg auf
- die Platte gefunden haben, sehen danach so aus, als
- hätten sie nie stattgefunden. Man hat so also den
- konsistenten Zustand von ca. 30 bis 60 Sekunden früher
- sichergestellt. Der verwendete Algorithmus garantiert
- dabei, daß alle tatsächlich benutzten Ressourcen
- auch in den entsprechenden Bitmaps (Block- und inode
- Tabellen) als belegt markiert sind. Der einzige Fehler, der
- auftreten kann, ist, daß Ressourcen noch als
- belegt markiert sind, die tatsächlich
- frei sind. &man.fsck.8; erkennt dies und
- korrigiert diese nicht mehr belegten Ressourcen. Die
- Notwendigkeit eines Dateisystem-Checks darf aus diesem
- Grunde auch ignoriert und das Dateisystem mittels
- mount -f zwangsweise eingebunden werden.
- Um noch allozierte Ressourcen freizugeben muß
- später ein &man.fsck.8; nachgeholt werden. Das ist
- dann auch die Idee des background fsck:
- beim Starten des Systems wird lediglich ein
- Schnappschuß des Filesystems
- gemacht, mit dem &man.fsck.8; dann später arbeiten
- kann. Alle Dateisysteme dürfen unsauber
- eingebunden werden und das System kann sofort in den
- Multiuser-Modus gehen. Danach wird ein
- Hintergrund-fsck für die
- Dateisysteme gestartet, die dies benötigen, um
- möglicherweise irrtümlich belegte Ressourcen
- freizugeben. (Dateisysteme ohne Soft
- Updates benötigen natürlich immer noch
- den üblichen (Vordergrund-)fsck,
- bevor sie eingebunden werden können.)
+ Berkeley FFS, waren Soft Updates: die
+ notwendigen Updates der Metadaten werden im Speicher
+ gehalten und dann sortiert auf die Platte geschrieben
+ (ordered metadata updates). Dadurch hat man
+ den Effekt, daß im Falle massiver
+ Metadaten-Änderungen spätere Operationen die
+ vorhergehenden, noch nicht auf die Platte geschriebenen
+ Updates desselben Elements im Speicher
+ einholen. Alle Operationen, auf ein
+ Verzeichnis beispielsweise, werden also in der Regel noch im
+ Speicher abgewickelt, bevor der Update überhaupt auf
+ die Platte geschrieben wird (die dazugehörigen
+ Datenblöcke werden natürlich auch so sortiert,
+ daß sie nicht vor ihren Metadaten auf der Platte
+ sind). Im Fall eines Absturzes hat man ein implizites log
+ rewind: alle Operationen, die noch nicht den Weg auf
+ die Platte gefunden haben, sehen danach so aus, als
+ hätten sie nie stattgefunden. Man hat so also den
+ konsistenten Zustand von ca. 30 bis 60 Sekunden früher
+ sichergestellt. Der verwendete Algorithmus garantiert
+ dabei, daß alle tatsächlich benutzten Ressourcen
+ auch in den entsprechenden Bitmaps (Block- und inode
+ Tabellen) als belegt markiert sind. Der einzige Fehler, der
+ auftreten kann, ist, daß Ressourcen noch als
+ belegt markiert sind, die tatsächlich
+ frei sind. &man.fsck.8; erkennt dies und
+ korrigiert diese nicht mehr belegten Ressourcen. Die
+ Notwendigkeit eines Dateisystem-Checks darf aus diesem
+ Grunde auch ignoriert und das Dateisystem mittels
+ mount -f zwangsweise eingebunden werden.
+ Um noch allozierte Ressourcen freizugeben muß
+ später ein &man.fsck.8; nachgeholt werden. Das ist
+ dann auch die Idee des background fsck:
+ beim Starten des Systems wird lediglich ein
+ Schnappschuß des Filesystems
+ gemacht, mit dem &man.fsck.8; dann später arbeiten
+ kann. Alle Dateisysteme dürfen unsauber
+ eingebunden werden und das System kann sofort in den
+ Multiuser-Modus gehen. Danach wird ein
+ Hintergrund-fsck für die
+ Dateisysteme gestartet, die dies benötigen, um
+ möglicherweise irrtümlich belegte Ressourcen
+ freizugeben. (Dateisysteme ohne Soft
+ Updates benötigen natürlich immer noch
+ den üblichen (Vordergrund-)fsck,
+ bevor sie eingebunden werden können.)
Der Vorteil ist, daß die Metadaten-Operationen
- beinahe so schnell ablaufen wie im asynchronen Fall (also
- durchaus auch schneller als beim logging, das
- ja die Metadaten immer zweimal schreiben muß). Als
- Nachteil stehen dem die Komplexität des Codes (mit
- einer erhöhten Fehlerwahrscheinlichkeit in einem
- bezüglich Datenverlust hoch sensiblen Bereich) und ein
- erhöhter Speicherverbrauch entgegen. Außerdem
- muß man sich an einige Eigenheiten
- gewöhnen: Nach einem Absturz ist ein etwas älterer
- Stand auf der Platte — statt einer leeren, aber bereits
- angelegten Datei (wie nach einem herkömmlichen
- fsck Lauf) ist auf einem Dateisystem mit
- Soft Updates keine Spur der
- entsprechenden Datei mehr zu sehen, da weder die Metadaten
- noch der Dateiinhalt je auf die Platte geschrieben wurden.
- Weiterhin kann der Platz nach einem rm -r
- nicht sofort wieder als verfügbar markiert werden,
- sondern erst dann, wenn der Update auch auf die Platte
- vermittelt worden ist. Dies kann besonders dann Probleme
- bereiten, wenn große Datenmengen in einem Dateisystem
- ersetzt werden, das nicht genügend Platz hat, um alle
- Dateien zweimal unterzubringen.
+ beinahe so schnell ablaufen wie im asynchronen Fall (also
+ durchaus auch schneller als beim logging, das
+ ja die Metadaten immer zweimal schreiben muß). Als
+ Nachteil stehen dem die Komplexität des Codes (mit
+ einer erhöhten Fehlerwahrscheinlichkeit in einem
+ bezüglich Datenverlust hoch sensiblen Bereich) und ein
+ erhöhter Speicherverbrauch entgegen. Außerdem
+ muß man sich an einige Eigenheiten
+ gewöhnen: Nach einem Absturz ist ein etwas älterer
+ Stand auf der Platte — statt einer leeren, aber bereits
+ angelegten Datei (wie nach einem herkömmlichen
+ fsck Lauf) ist auf einem Dateisystem mit
+ Soft Updates keine Spur der
+ entsprechenden Datei mehr zu sehen, da weder die Metadaten
+ noch der Dateiinhalt je auf die Platte geschrieben wurden.
+ Weiterhin kann der Platz nach einem rm -r
+ nicht sofort wieder als verfügbar markiert werden,
+ sondern erst dann, wenn der Update auch auf die Platte
+ vermittelt worden ist. Dies kann besonders dann Probleme
+ bereiten, wenn große Datenmengen in einem Dateisystem
+ ersetzt werden, das nicht genügend Platz hat, um alle
+ Dateien zweimal unterzubringen.
Einstellungen von Kernel LimitsEinstellungen von Kernel LimitsDatei und Prozeß Limitskern.maxfileskern.maxfilesAbhängig von den Anforderungen Ihres Systems
kann kern.maxfiles erhöht oder
erniedrigt werden. Die Variable legt die maximale
Zahl von Dateideskriptoren auf Ihrem System fest. Wenn
die Dateideskriptoren aufgebraucht sind, werden Sie
die Meldung file: table is full
wiederholt im Puffer für Systemmeldungen sehen. Den
Inhalt des Puffers können Sie sich mit dmesg
anzeigen lassen.Jede offene Datei, jedes Socket und jede FIFO verbraucht
einen Dateideskriptor. Auf dicken Produktionsservern
können leicht Tausende Dateideskriptoren benötigt
werden, abhängig von der Art und Zahl der gleichzeitig
laufenden Dienste.Die Voreinstellung von kern.maxfile
wird von aus Ihrer Kernelkonfiguration
bestimmt. kern.maxfiles wächst
proportional mit dem Wert von .
Wenn Sie einen angepaßten Kernel kompilieren, empfiehlt es sich
diese Option entsprechend der maximalen Benutzerzahl Ihres
Systems einzustellen. Obwohl auf einer Produktionsmaschine
vielleicht nicht 256 Benutzer gleichzeitig angemeldet sind,
können die benötigten Ressourcen ähnlich denen
eines großen Webservers sein.Ab FreeBSD 4.5 können Sie
in der Kernelkonfiguration auf 0 setzen. Das
System setzt dann automatisch einen passenden Wert, der von der
Größe Ihres Hauptspeichers abhängt,
ein.Netzwerk LimitsDie Kerneloption schreibt
die Anzahl der Netzwerkpuffer (MBUFs) fest, die das System besitzt.
Eine zu geringe Zahl MBUFs auf einem Server mit viel Netzwerkverkehr
verringert die Leistung von FreeBSD. Jeder MBUF Cluster nimmt
- ungefähr 2K Speicher in Anspruch, so daß ein Wert
+ ungefähr 2 kB Speicher in Anspruch, so daß ein Wert
von 1024 insgesamt 2 Megabyte Speicher für Netzwerkpuffer
im System reserviert. Wieviele Cluster benötigt werden,
läßt sich durch eine einfache Berechnung herausfinden.
Wenn Sie einen Webserver besitzen, der maximal 1000 gleichzeitige
Verbindungen servieren soll und jede der Verbindungen je einen
- 16 K großen Puffer zum Senden und Empfangen braucht, brauchen
+ 16 kB großen Puffer zum Senden und Empfangen braucht, brauchen
Sie ungefähr 32 MB Speicher für Netzwerkpuffer. Als
Daumenregel multiplizieren Sie diese Zahl mit 2, so daß sich
für NMBCLUSTERS der Wert
- 32MBx2 = 64MB/2K = 32768 ergibt.
+ 2x32 MB / 2 kB = 64 MB / 2kB = 32768 ergibt.
Hinzufügen von Swap-Bereichen
- Egal wie vorausschauend Sie planen, entspricht ein System
- manchmal nicht Ihren Erwartungen. Es ist leicht, mehr Swap-Bereiche
+ Egal wie vorausschauend Sie planen, manchmal entspricht ein System
+ einfach nicht Ihren Erwartungen. Es ist leicht, mehr Swap-Bereiche
hinzuzufügen. Dazu stehen Ihnen drei Wege offen: Sie
können eine neue Platte einbauen, den Swap-Bereich über NFS
ansprechen oder eine Swap-Datei auf einer existierenden Partition
einrichten.Swap auf einer neuen FestplatteDer einfachste Weg, zusätzlich einen Swap-Bereich
einzurichten, ist der Einbau einer neuen Platte, da Sie ja immer
eine neue Platte einbauen können. Nachdem Sie das getan
haben, lesen Sie bitte noch einmal den Abschnitt
Swap
Partition aus dem Kapitel Vorbereitende Konfiguration
des Handbuchs. Dort finden Sie Vorschläge, wie Sie den
Swap-Bereich am besten einrichten.Swapping over NFSSwap-Bereiche über NFS sollten Sie nur dann nutzen, wenn
Sie über keine lokale Platte verfügen. In FreeBSD
Versionen vor 4.X ist dies zudem sehr langsam und nicht effizient.
Ab FreeBSD 4.0 ist das Nutzen von Swap über NFS genügend
schnell und effizient, doch wird es durch die zur Verfügung
stehende Bandbreite limitiert und belastet zusätzlich den
NFS-Server.Swap-DateienSie können eine Datei festgelegter Größe als
Swap-Bereich nutzen. Im folgenden Beispiel werden wir eine 64 MB
große Datei mit dem Namen /usr/swap0
benutzen, Sie können natürlich einen beliebigen Namen
für den Swap-Bereich benutzen.Erstellen einer Swap-DateiZuerst stellen Sie bitte sicher, daß Ihr Kernel den
vnode-Treiber enthält. In neueren Versionen von
- GENERIC ist dieser
+ GENERIC ist dieser
nicht enthalten.pseudo-device vn 1 #Vnode driver (turns a file into a device)Erstellen Sie das vn-Gerät:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV vn0Legen Sie die Swap-Datei /usr/swap0
an:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64Setzen Sie die richtigen Berechtigungen für
/usr/swap0:&prompt.root; chmod 0600 /usr/swap0Aktivieren Sie die Swap-Datei in
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.Um die Swap-Datei zu aktivieren, führen Sie
entweder einen Reboot durch oder geben das folgende Kommando
ein:&prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap
diff --git a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
index f261fc4b7e..1bb36edc23 100644
--- a/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -1,2467 +1,2484 @@
+
+
+
+ Bernd
+ Warken
+ Übersetzt von
+
+
+
+ Martin
+ Heinen
+
+
+
+
SpeichermedienÜbersichtDieses Kapitel behandelt die Benutzung von Laufwerken unter
FreeBSD. Laufwerke können speichergestützte Laufwerke,
Netzwerklaufwerke oder normale SCSI/IDE Geräte sein.Nachdem Sie dieses Kapitel gelesen haben, werden Sie folgendes
wissen:Die Begriffe, die FreeBSD verwendet, um die Organisation
der Daten auf einem physikalischen Laufwerk zu beschreiben
(Partitionen und Slices).Wie Sie Dateisysteme an- und abhängen.Wie Sie ein weiteres Laufwerk zu Ihrem System
hinzufügen.
- Wie virtuelle Dateisysteme, wie speichergestützte
- Laufwerke, aufgesetzt werden.
+ Wie virtuelle Dateisysteme, zum Beispiel RAM-Disks,
+ aufgesetzt werden.Wie Sie mit Quotas die Benutzung von Laufwerken
einschränken können.Wie unter FreeBSD CDs und DVDs gebrannt werden.Sie werden die Speichermedien, die Sie für
Backups einsetzen können, kennen.Wie Sie die unter FreeBSD erhältlichen Backup
Programme nutzen.Wie Sie ein Backup mit Disketten erstellen.GerätenamenDie folgende Tabelle zeigt die von FreeBSD unterstützten
Speichergeräte und deren Gerätenamen.
Namenskonventionen von physikalischen LaufwerkenLaufwerkstypGerätenameIDE-FestplattenadIDE-CDROM LaufwerkeacdSCSI-Festplatten und USB-SpeichermediendaSCSI-CDROM LaufwerkecdVerschiedene proprietäre CDROM-Laufwerkemcd Mitsumi CD-ROM,
scd Sony CD-ROM,
matcd Matsushita/Panasonic CD-ROM
DiskettenlaufwerkefdSCSI-BandlaufwerkesaIDE-BandlaufwerkeastFlash-Laufwerkefla für DiskOnChip Flash device
RAID-Laufwerkemyxd für Mylex,
amrd für AMI MegaRAID,
idad für Compaq Smart RAID.
DavidO'BrianIm Original von Hinzufügen von LaufwerkenLaufwerkehinzufügenAngenommen, Sie wollen ein neues SCSI-Laufwerk zu einer Maschine
hinzufügen, die momentan nur ein Laufwerk hat. Dazu schalten
Sie zuerst den Rechner aus und installieren das Laufwerk entsprechend
der Anleitungen Ihres Rechners, Ihres Controllers und Laufwerk
Herstellers. Wegen der großen Abweichungen in der genauen
Vorgehensweise würde eine detaillierte Beschreibung den Rahmen
dieses Dokumentes sprengen.Nachdem Sie das Laufwerk installiert haben, melden Sie sich als
Benutzer root an und kontrollieren Sie
/var/run/dmesg.boot, um sicherzustellen,
daß das neue Laufwerk gefunden wurde. Das neue Laufwerk
wird, um das Beispiel fortzuführen, da1
heißen und soll unter /1 angehangen
werden. Fügen Sie eine IDE-Platte hinzu, wird sie
- wd1 auf pre-4.0 Systemen und
+ wd1 auf FreeBSD Systemen vor 4.0 und
ad1
auf den meisten 4.X Systemen heißen.PartitionenSlicesfdiskDa FreeBSD auf IBM-PC kompatiblen Rechnern läuft, muß
es die PC BIOS-Partitionen, die verschieden von den traditionellen
BSD-Partitionen sind, berücksichtigen. Eine PC Platte kann
bis zu vier BIOS-Partitionen enthalten. Wenn die Platte
ausschließlich für FreeBSD verwendet wird, können
Sie den dedicated Modus benutzen, ansonsten
muß FreeBSD in eine der BIOS-Partitionen installiert werden.
In FreeBSD heißen die PC BIOS-Partitionen
Slices, um sie nicht mit den traditionellen
BSD-Partitionen zu verwechseln. Sie können auch Slices auf
einer Platte verwenden, die ausschließlich von FreeBSD benutzt wird,
sich aber in einem Rechner befindet, der noch ein anderes Betriebssystem
installiert hat. Dadurch stellen Sie sicher, daß Sie
fdisk des anderen Betriebssystems noch
benutzen können.Im Fall von Slices wird die Platte als
/dev/da1s1e hinzugefügt. Das heißt:
SCSI-Platte, Einheit 1 (die zweite SCSI-Platte), Slice 1
(PC BIOS-Partition 1) und die e BSD-Partition.
Wird die Platte ausschließlich für FreeBSD verwendet
(dangerously dedicated), wird sie einfach als
/dev/da1e hinzugefügt.Verwenden von &man.sysinstall.8;sysinstallhinzufügen von LaufwerkensuDas sysinstall MenüUm ein Laufwerk zu partitionieren und zu labeln, kann das
menügestützte /stand/sysinstall
benutzt werden. Dazu melden Sie sich als root
an oder benutzen su, um
root zu werden. Starten Sie
/stand/sysinstall und wählen das
Configure Menü, wählen Sie dort
den Punkt Fdisk aus.Partitionieren mit fdiskInnerhalb von fdisk geben Sie
A ein, um die ganze Platte für
FreeBSD zu nutzen. Beantworten Sie die Frage remain
cooperative with any future possible operating systems mit
YES. W schreibt die
Änderung auf die Platte, danach können Sie
fdisk mit q
verlassen. Da Sie eine Platte zu einem schon laufenden System
hinzugefügt haben, beantworten Sie die Frage nach dem
Master Boot Record mit None.Disk Label EditorBSD PartitionenAls nächstes müssen Sie
sysinstall verlassen und es erneut
starten. Folgen Sie dazu bitte den Anweisungen von oben, aber
wählen Sie dieses Mal die Option Label,
um in den Disk Label Editor zu gelangen.
Hier werden die traditionellen BSD-Partitionen erstellt.
Ein Laufwerk kann acht Partitionen, die mit den Buchstaben
a-h gekennzeichnet werden,
besitzen. Einige Partitionen sind für spezielle Zwecke
reserviert. Die a Partition ist für die
Root-Partition (/) reserviert. Deshalb
sollte nur das Laufwerk, von dem gebootet wird, eine
a Partition besitzen. Die b
Partition wird für Swap-Partitionen benutzt, wobei Sie
diese auf mehreren Platten benutzen dürfen.
Im dangerously dedicated Modus spricht
die c Partition die gesamte Platte an,
werden Slices verwendet, wird damit die ganze Slice angesprochen.
Die anderen Partitionen sind für allgemeine Zwecke
verwendbar.Der Label Editor von sysinstall
bevorzugt die e
Partition für Partitionen, die weder Root-Partitionen noch
Swap-Partitionen sind. Im Label
Editor können Sie ein einzelnes Dateisystem
mit C erstellen. Wählen Sie
FS, wenn Sie gefragt werden, ob Sie ein
FS (Dateisystem) oder Swap erstellen wollen, und geben Sie einen
Mountpoint z.B. /mnt an. Wenn Sie nach einer
FreeBSD Installation ein Dateisystem mit
sysinstall erzeugen,
so werden die Einträge in /etc/fstab
nicht erzeugt, so daß die Angabe des Mountpoints nicht
wichtig ist.Sie können nun das Label auf das Laufwerk schreiben und
das Dateisystem erstellen, indem Sie W
drücken. Ignorieren Sie die Meldung von
sysinstall, daß
die neue Partition nicht angehangen werden konnte, und verlassen
Sie den Label Editor sowie sysinstall.EndeIm letzten Schritt fügen Sie noch in
/etc/fstab den Eintrag für das neue
Laufwerk ein.Die KommandozeileAnlegen von SlicesMit der folgenden Vorgehensweise wird eine Platte mit
anderen Betriebssystemen, die vielleicht auf Ihrem Rechner
installiert sind, zusammenarbeiten und nicht das
fdisk Utility anderer Betriebssysteme
stören. Bitte benutzen
Sie den dedicated Modus nur dann, wenn
Sie dazu einen guten Grund haben!&prompt.root; dd if=/dev/zero of=/dev/rda1 bs=1k count=1
&prompt.root; fdisk -BI da1 # Initialisieren der neuen Platte
&prompt.root; disklabel -B -w -r da1s1 auto # Labeln
&prompt.root; disklabel -e da1s1 # Editieren des Disklabels und Hinzufügen von Partitionen
&prompt.root; mkdir -p /1
&prompt.root; newfs /dev/da1s1e # Wiederholen Sie diesen Schritt für jede Partition
&prompt.root; mount -t ufs /dev/da1s1e /1 # Anhängen der Partitionen
&prompt.root; vi /etc/fstab # Ändern sie /etc/fstab entsprechendWenn Sie ein IDE-Laufwerk besitzen, ändern Sie
da in ad. Auf
Systemen vor 4.0 benutzen Sie wd.DedicatedOS/2Wenn das neue Laufwerk nicht von anderen Betriebssystemen
benutzt werden soll, können Sie es im
dedicated Modus betreiben. Beachten Sie bitte,
daß Microsoft Betriebssysteme mit diesem Modus eventuell nicht
zurechtkommen, aber es entsteht kein Schaden am Laufwerk. Im
Gegensatz dazu wird IBMs OS/2 versuchen, jede ihm nicht bekannte
Partition zu reparieren.&prompt.root; dd if=/dev/zero of=/dev/rda1 bs=1k count=1
&prompt.root; disklabel -Brw da1 auto
&prompt.root; disklabel -e da1 # Erstellen der `e' Partition
&prompt.root; newfs -d0 /dev/rda1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Eine alternative Methode:&prompt.root; dd if=/dev/zero of=/dev/rda1 count=2
&prompt.root; disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin
&prompt.root; newfs /dev/rda1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # /dev/da1e hinzufügen
&prompt.root; mount /1Netzwerk-, Speicher- und dateibasierte DateisystemeLaufwerkevirtuelleNeben Laufwerken, die sich physikalisch im Rechner befinden
wie Floppylaufwerke, CDs, Festplatten usw., kann FreeBSD auch
mit anderen Laufwerken, den virtuellen Laufwerken,
umgehen.NFSCodaLaufwerkespeicherbasierte
+
+ Laufwerke
+ RAM-Disks
+ Diese beinhalten Netzwerkdateisysteme wie
Network Filesystem und Coda,
speicherbasierte Dateisysteme wie
md und auf Dateien basierende
Dateisysteme, die mit vnconfig
oder mdconfig erstellt wurden.vnconfig: dateibasierte DateisystemeLaufwerkedateibasierteMit &man.vnconfig.8; werden vnode Pseudo-Platten
konfiguriert und aktiviert. Ein vnode
stellt eine Datei dar, auf der Dateioperationen ablaufen.
Das bedeutet, daß &man.vnconfig.8; Dateien benutzt,
um ein Dateisystem zu erstellen und zu verwalten. Damit
ist es z.B. möglich, Dateien, die Images von Floppies
oder CDs enthalten, anzuhängen.Um ein existierendes Image eines Dateisystems
anzuhängen:Anhängen eines existierenden Images mit vnconfig&prompt.root; vnconfig vn0diskimage
&prompt.root; mount /dev/vn0c /mntUm ein neues Dateisystem mit vnconfig anzulegen:Anlegen eines dateibasierten Laufwerks&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; vnconfig -s labels -c vn0newimage
&prompt.root; disklabel -r -w vn0 auto
&prompt.root; newfs vn0c
Warning: 2048 sector(s) in last cylinder unallocated
/dev/rvn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
32
&prompt.root; mount /dev/vn0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/vn0c 4927 1 4532 0% /mnt
- md: Dateisysteme im Speicher
+ md: RAM-DisksLaufwerkespeicherbasierte
+
+ Laufwerke
+ RAM-Disks
+ md ist ein einfaches und effizientes Mittel
- um mit speicherbasierten Dateisystemen zu arbeiten.
+ um RAM-Disks zu erstellen.
Nehmen Sie einfach ein Dateisystem, daß Sie
z.B. mit &man.vnconfig.8; vorbereitet haben:md Speicher Laufwerk&prompt.root; dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
&prompt.root; mount /dev/md0c/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mntDateisystem Quotas
- accounting
+ AccountingPlattenplatzDisk QuotasQuotas sind ein optionales Feature des Betriebssystems,
die es Ihnen erlauben, den Plattenplatz und/oder die Anzahl
der Dateien eines Benutzers oder der Mitglieder einer Gruppe,
auf Dateisystemebene zu beschränken. Oft wird dies
auf Timesharing-Systemen (Mehrbenutzersystemen) genutzt, da
es dort erwünscht ist, die Ressourcen, die ein Benutzer oder
eine Gruppe von Benutzern belegen können, zu limitieren. Das
verhindert, daß ein Benutzer oder eine Gruppe von Benutzern
den ganzen verfügbaren Plattenplatz belegt.Konfiguration des Systems, um Quotas zu
aktivierenBevor Quotas benutzt werden können, müssen
sie im Kernel konfiguriert werden, wozu die folgende Zeile
der Kernel Konfiguration hinzugefügt wird:options QUOTAIm gewöhnlichen GENERIC Kernel
sind Quotas nicht aktiviert, so daß Sie einen angepaßten
Kernel konfigurieren und bauen müssen, um Quotas zu
benutzen. Weitere Informationen
finden Sie in .Durch Hinzufügen der folgenden Zeile in
/etc/rc.conf wird das Quota-System
aktiviert:enable_quotas=YESDisk QuotasüberprüfenUm den Start des Quota-Systems zu beeinflussen, steht
eine weitere Variable zur Verfügung. Normalerweise
wird beim Booten die Integrität der Quotas auf
allen Dateisystemen mit quotacheck
überprüft. quotacheck stellt
sicher, daß die Quota-Datenbank mit den Daten auf
einem Dateisystem übereinstimmt. Dies ist allerdings
ein sehr zeitraubender Prozeß, der die Zeit, die
das System zum Booten braucht, signifikant beeinflußt.
Eine Variable in /etc/rc.config erlaubt es Ihnen,
diesen Schritt zu überspringen:check_quotas=NOWenn Sie ein FreeBSD vor 3.2-RELEASE benutzen, ist
die Konfiguration einfacher. In /etc/rc.conf
setzen Sie nur eine Variable:check_quotas=YESSchließlich müssen Sie noch in
/etc/fstab die Plattenquotas auf
Dateisystemebene aktivieren. Dort können Sie
für alle Dateisysteme Quotas für Benutzer, Gruppen
oder für beide aktivieren.Um Quotas pro Benutzer für ein Dateisystem zu
aktivieren, geben Sie für dieses Dateisystem die
Option userquota im Feld Optionen von
/etc/fstab an. Beispiel:/dev/da1s2g /home ufs rw,userquota 1 2Um Quotas für Gruppen einzurichten, verwenden
Sie groupquota anstelle von
userquota. Um Quotas für Benutzer
und Gruppen einzurichten, ändern Sie den Eintrag
wie folgt ab:/dev/da1s2g /home ufs rw,userquota,groupquota 1 2Die Quotas werden jeweils im Rootverzeichnis des Dateisystems
unter dem Namen quota.user für
Benutzer-Quotas und quota.group für
Gruppen-Quotas abgelegt. Obwohl &man.fstab.5; beschreibt,
daß diese Dateien an anderer Stelle gespeichert werden
können, wird das nicht empfohlen, da es den Anschein hat,
daß die verschiedenen Quota-Utilities das nicht richtig
unterstützen.Jetzt sollten Sie Ihr System mit dem neuen Kernel booten.
/etc/rc wird dann automatisch die
richtigen Kommandos aufrufen, die die Quota-Dateien für
alle Quotas, die Sie in /etc/fstab
definiert haben, anlegen. Deshalb müssen vorher auch keine
leeren Quota-Dateien angelegt werden.Normalerweise brauchen Sie die Kommandos
quotacheck, quotaon oder
quotaoff nicht händisch aufzurufen,
obwohl Sie vielleicht die entsprechenden Seiten im
Manual lesen sollten, um sich mit ihnen vertraut
zu machen.Setzen von Quota-LimitsDisk QuotasLimitsNachdem Sie Quotas in Ihrem System aktiviert haben, sollten
Sie überprüfen, daß Sie auch tatsächlich
aktiviert sind. Führen Sie dazu einfach den folgenden
Befehl aus:&prompt.root; quota -vFür jedes Dateisystem, auf dem Quotas aktiviert sind,
sollten Sie eine Zeile mit der Plattenauslastung und den
aktuellen Quota-Limits sehen.Mit edquota können Sie nun
Quota-Limits setzen.Sie haben mehrere Möglichkeiten, die Limits für
den Plattenplatz, den ein Benutzer oder eine Gruppe verbrauchen
kann, oder die Anzahl der Dateien, die angelegt werden dürfen,
festzulegen. Die Limits können auf dem Plattenplatz
(Block-Quotas) oder der Anzahl der Dateien (Inode-Quotas) oder
einer Kombination von beiden basieren.
Jedes dieser Limits wird weiterhin in zwei Kategorien geteilt:
Hardlimits und Softlimits.HardlimitEin Hardlimit kann nicht überschritten werden.
Hat der Benutzer einmal ein Hardlimit erreicht, so kann er
auf dem betreffenden Dateisystem keinen weiteren Platz mehr
beanspruchen. Hat ein Benutzer beispielsweise ein Hardlimit
von 500 Blöcken auf einem Dateisystem und benutzt davon
490 Blöcke, so kann er nur noch 10 weitere Blöcke
beanspruchen. Der Versuch, weitere 11 Blöcke zu beanspruchen,
wird fehlschlagen.SoftlimitIm Gegensatz dazu können Softlimits für eine
befristete Zeit überschritten werden. Diese Frist
- (engl. grace period) beträgt in der Grundeinstellung
+ beträgt in der Grundeinstellung
eine Woche. Hat der Benutzer das Softlimit über die
Frist hinaus überschritten, so wird das Softlimit in
ein Hardlimit umgewandelt und der Benutzer kann
keinen weiteren Platz mehr beanspruchen. Wenn er einmal
das Softlimit unterschreitet, wird die Frist wieder
zurückgesetzt.Das folgende Beispiel zeigt die Benutzung von
edquota. Wenn edquota
aufgerufen wird, wird ein Editor, der durch EDITOR
gegeben ist, oder vi falls EDITOR
nicht gesetzt ist, gestartet, in dem Sie die Limits eingeben
können.&prompt.root; edquota -u testQuotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)Für jedes Dateisystem, auf dem Quotas aktiv sind,
sehen Sie zwei Zeilen, eine für die Block-Quotas und die
andere für die Inode-Quotas. Um ein Limit zu modifizieren,
ändern Sie einfach den angezeigten Wert. Um beispielsweise
das Blocklimit dieses Benutzers von einem Softlimit von 50
und einem Hardlimit von 75 auf ein Softlimit von 500 und
ein Hardlimit von 600 zu erhöhen, ändern Sie
die Zeile/usr: blocks in use: 65, limits (soft = 50, hard = 75)zu: /usr: blocks in use: 65, limits (soft = 500, hard = 600)Die neuen Limits sind wirksam, wenn Sie den
Editor verlassen.Manchmal ist es erwünscht, die Limits für einen
Bereich von UIDs zu setzen. Dies kann mit der
Option von edquota bewerkstelligt werden.
Weisen Sie dazu die Limits einem Benutzer zu und rufen danach
edquota -p protouser startuid-enduid auf.
Besitzt beispielsweise der Benutzer test
die gewünschten Limits, können diese mit
dem folgenden Kommando für die UIDs 10.000 bis 19.999
dupliziert werden:&prompt.root; edquota -p test 10000-19999Weitere Informationen erhalten Sie in &man.edquota.8;.Überprüfen von Quota-Limits und PlattennutzungDisk QuotasüberprüfenSie können quota oder
repquota benutzen, um Quota-Limits
und Plattennutzung zu überprüfen. Um die Limits
oder die Plattennutzung individueller Benutzer und Gruppen
zu überprüfen, kann quota
benutzt werden. Ein Benutzer kann nur die eigenen Quotas und die
Quotas der Gruppe, der er angehört untersuchen. Nur der
Superuser darf sich alle Limits ansehen.
Mit repquota erhalten Sie eine Zusammenfassung
von allen Limits und der Plattenausnutzung für alle
Dateisysteme, auf denen Quotas aktiv sind.Das folgende Beispiel zeigt die Ausgabe von
quota -v für einen Benutzer, der
Quota-Limits auf zwei Dateisystemen besitzt:Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60Disk QuotasFristIm Dateisystem /usr liegt der Benutzer
momentan 15 Blöcke über dem Softlimit von
50 Blöcken und hat noch 5 Tage seiner Frist übrig.
Der Stern * zeigt an, daß der
Benutzer sein Limit überschritten hat.In der Ausgabe von quota werden Dateisysteme,
auf denen ein Benutzer keinen Platz verbraucht, nicht angezeigt,
auch wenn diesem Quotas zugewiesen wurden. Mit
werden diese Dateisysteme, wie /usr/var
im obigen Beispiel, angezeigt.Quotas über NFSNFSQuotas werden von dem Quota-Subsystem auf dem NFS Server
erzwungen. Der &man.rpc.rquotad.8; Dæmon stellt
&man.quota.1; die Quota Informationen auf dem NFS Client
zur Verfügung, so daß Benutzer auf diesen
Systemen ihre Quotas abfragen können.Aktivieren Sie rpc.rquotad in
/etc/inetd.conf wie folgt:rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotadAnschließend starten Sie inetd
neu:&prompt.root; kill -HUP `cat /var/run/inetd.pid`MikeMeyerBeigesteuert von Handhabung von optischen Speichermedien (CDs & DVDs)CDROMserstellenEinführungCDs besitzen einige Eigenschaften, die sie von
konventionellen Laufwerken unterscheiden. Zuerst konnten
sie nicht beschrieben werden. Sie wurden so entworfen, daß
sie ununterbrochen, ohne Verzögerungen durch Kopfbewegungen
zwischen den Spuren, gelesen werden können. Sie konnten
früher auch leichter als vergleichbar große Medien zwischen
Systemen bewegt werden.CDs besitzen Spuren, aber damit ist der Teil Daten
gemeint, der ununterbrochen gelesen wird, und nicht eine
physikalische Eigenschaft der CD. Um eine CD mit FreeBSD
zu erstellen, werden die Daten jeder Spur der CD in
Dateien vorbereitet und dann die Spuren auf die CD
geschrieben.ISO 9660DateisystemeISO-9660Das ISO 9660-Dateisystem wurde entworfen, um mit diesen
Unterschieden umzugehen. Leider hat es auch damals übliche
Grenzen für Dateisysteme implementiert. Glücklicherweise
existiert ein Erweiterungsmechanismus, der es korrekt
geschriebenen CDs erlaubt, diese Grenzen zu überschreiten
und dennoch auf Systemen zu funktionieren, die diese
Erweiterungen nicht unterstützen.mkisofsMit mkisofs
wird eine Datei erstellt, die ein ISO 9660-Dateisystem enthält.
Das Kommando hat Optionen, um verschiedene Erweiterungen
zu unterstützen, und wird unten beschrieben. Sie
können es aus dem sysutils/mkisofs
Port installieren.CD BrennerATAPIWelches Tool Sie zum Brennen von CDs benutzen, hängt davon
ab, ob Ihr CD Brenner ein ATAPI Gerät ist oder nicht.
Mit ATAPI CD Brennern wird burncd benutzt, das Teil des Basissystems ist.
SCSI und USB CD-Brenner werden mit
cdrecord aus
sysutils/cdrtools
benutzt.Von burncd wird nur eine beschränkte
Anzahl von Laufwerken unterstützt. Um herauszufinden, ob
ein Laufwerk unterstützt wird, sehen Sie bitte unter
CD-R/RW supported drives
nach.mkisofsmkisofs erstellt ein ISO 9660-Dateisystem,
das ein Abbild eines Verzeichnisbaumes des Unix-Dateisystems
ist. Die einfachste Anwendung ist wie folgt:
- &prompt.root; mkisofs Imagedatei.iso/path/to/tree
+ &prompt.root; mkisofs Imagedatei/path/to/treeDateisystemeISO-9660Dieses Kommando erstellt eine Imagedatei,
die ein ISO 9660-Dateisystem enthält, das eine Kopie des
Baumes unter /path/to/tree ist.
Dabei werden die Dateinamen auf Namen abgebildet, die den
Restriktionen des ISO 9660-Dateisystems entsprechen. Dateien
mit Namen, die im ISO 9660-Dateisystem nicht gültig sind,
bleiben unberücksichtigt.DateisystemeHFSDateisystemeJolietEs einige Optionen, um diese Beschränkungen
zu überwinden. Die unter Unix-Systemen üblichen
Rock Ridge Erweiterungen werden durch
aktiviert, aktiviert die von Microsoft
Systemen benutzten Joliet Erweiterungen und
dient dazu, um das von MacOS benutzte HFS zu erstellen.
Für CDs, die nur auf FreeBSD-Systemen verwendet werden
sollen, kann genutzt werden, um alle
Beschränkungen für Dateinamen aufzuheben. Zusammen
mit wird ein identisches Abbild des
Dateisystems, ausgehend von dem Startpunkt im FreeBSD-Dateibaum,
erstellt, obwohl dies den ISO 9660 Standard
verletzen kann.CDROMsbootbare erstellenDie letzte übliche Option ist .
Sie wird benutzt, um den Ort eines Bootimages einer
El Torito bootbaren CD anzugeben. Das Argument
zu dieser Option ist der Pfad zu einem Bootimage ausgehend
von der Wurzel des Baumes, der auf die CD geschrieben werden
soll. Wenn /tmp/myboot ein bootbares
FreeBSD-System enthält, dessen Bootimage sich in
/tmp/myboot/boot/cdboot befindet, können
Sie ein Abbild eines ISO 9660-Dateisystems in
/tmp/bootable.iso wie folgt
erstellen:&prompt.root; mkisofs boot/cdboot/tmp/bootable.iso/tmp/mybootWenn Sie vn in Ihrem Kernel
konfiguriert haben, können Sie danach das Dateisystem
anhängen:&prompt.root; vnconfig vn0c/tmp/bootable.iso
&prompt.root; mount cd9660 /dev/vn0c/mntJetzt können Sie überprüfen, daß
/mnt und /tmp/myboot
identisch sind.Sie können das Verhalten von mkisofs
mit einer Vielzahl von Optionen beeinflussen. Insbesondere können
Sie das ISO-9660 Dateisystem modifizieren und Joliet- oder
HFS-Dateisysteme brennen. Details dazu entnehmen Sie
bitte &man.mkisofs.8;.burncdCDROMsbrennenWenn Sie einen ATAPI CD Brenner besitzen, können
Sie burncd benutzen, um ein ISO-Image
auf CD zu brennen. burncd ist Teil
des Basissystems und unter /usr/sbin/burncd
installiert. Da es nicht viele Optionen hat, ist es leicht
zu benutzen:&prompt.root; burncd cddevice data imagefile.iso fixateDieses Kommando brennt eine Kopie von
imagefile.iso auf das Gerät
cddevice. In der Grundeinstellung
wird das Gerät /dev/acd0c benutzt.
&man.burncd.8; beschreibt, wie die Schreibgeschwindigkeit
gesetzt wird, die CD ausgeworfen wird und Audio Daten
geschrieben werden.cdrecordWenn Sie keinen ATAPI CD Brenner besitzen, benutzen Sie
cdrecord, um CDs zu brennen.
cdrecord ist nicht Bestandteil des Basissystems.
Sie müssen es entweder aus den Ports in
sysutils/cdrtools oder dem
passenden Paket installieren. Änderungen im Basissystem
können Fehler im binären Programm verursachen und
führen möglicherweise dazu, daß Sie einen
Untersetzer brennen. Sie sollten
daher den Port aktualisieren, wenn Sie Ihr System aktualisieren
bzw. wenn Sie Stable verfolgen,
den Port aktualisieren, wenn es eine neue Version gibt.Obwohl cdrecord viele Optionen besitzt,
ist die grundlegende Anwendung einfacher als burncd.
Ein ISO 9660 Image erstellen Sie mit:&prompt.root; cdrecord deviceimagefile.isoDer Knackpunkt in der Benutzung von cdrecord
besteht darin, das richtige Argument zu zu
finden. Benutzen Sie dazu den Schalter
von cdrecord, der eine ähnliche Ausgabe
wie die folgende produziert:CDROMsbrennen&prompt.root; cdrecord
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *Für die aufgeführten Geräte in der Liste
wird das passende Argument zu gegeben.
Benutzen Sie die drei Komma separierten Zahlen, die zu
Ihrem CD Brenner angegeben sind, als Argument für
. Im Beispiel ist das CDRW Gerät
1,5,0, so daß die passende Eingabe
=1,5,0 wäre.
Einfachere Wege das Argument anzugeben, sind in &man.cdrecord.1;
beschrieben. Dort sollten Sie auch nach
Informationen über Audio Spuren, das Einstellen der
Geschwindigkeit und ähnlichem suchen.Kopieren von Daten-CDsSie können eine Daten-CD in eine Datei kopieren, die einem
Image entspricht, das mit mkisofs erstellt
wurde. Mit Hilfe dieses Images können Sie jede Daten-CD
kopieren. Das folgende Beispiel verwendet
acd0 für das CDROM Gerät. Wenn
Sie ein anderes Laufwerk benutzen, setzen Sie bitte den richtigen
Namen ein. An den Gerätenamen muß ein
c angehangen werden, um die ganze Partition,
in diesem Fall ist das die ganze CDROM, anzusprechen.&prompt.root; dd if=/dev/acd0c of=file.iso bs=2048Danach haben Sie ein Image, das Sie wie oben beschrieben, auf
eine CD brennen können.Dieses Verfahren funktioniert nicht mit Audio-CDs!Einhängen von Daten-CDsNachdem Sie eine Daten-CD gebrannt haben, wollen Sie
wahrscheinlich auch die Daten auf der CD lesen. Dazu müssen
Sie die CD in den Dateibaum einhängen. Die Voreinstellung
für den Typ des Dateisystems von &man.mount.8; ist
- UFS. Wenn Sie einfach das Kommando
+ UFS. Das System wird die Fehlermeldung
+ Incorrect super block ausgeben, wenn Sie
+ versuchen, die CD mit dem folgenden Kommando
+ einzuhängen:
&prompt.root; mount /dev/cd0c/mnt
- versuchen, wird Ihr System die Fehlermeldung Incorrect
- super block ausgeben und die CD nicht einhängen.
- Auf der CD befindet sich ja kein UFS
+ Auf der CD befindet sich ja kein UFS
Dateisystem, so daß der Versuch, die CD einzuhängen
fehlschlägt. Sie müssen &man.mount.8; sagen, daß
es ein Dateisystem vom Typ ISO9660 verwenden
soll. Dies erreichen Sie durch die Angabe von auf der Kommandozeile. Wenn Sie also die CDROM
/dev/cd0c in /mnt
einhängen wollen, führen Sie folgenden Befehl aus:&prompt.root; mount -t cd9660 /dev/cd0c /mntAbhängig vom verwendeten CDROM kann der Gerätename
von dem im Beispiel (/dev/cd0c)
abweichen. Die Angabe von führt
- &man.mount.cd9660.8; aus, so daß das Beispiel auf
+ &man.mount.cd9660.8; aus, so daß das Beispiel verkürzt
+ werden kann:&prompt.root; mount_cd9660 /dev/cd0c /mnt
- verkürzt werden kann. Auf diese Weise können Sie
+ Auf diese Weise können Sie
Daten-CDs von jedem Hersteller verwenden. Es kann allerdings zu
Problemen mit CDs kommen, die verschiedene ISO 9660 Erweiterungen
benutzen. So speichern Joliet CDs alle Dateinamen unter Verwendung
von zwei Byte langen Unicode Zeichen. Der FreeBSD Kernel
unterstützt zur Zeit noch kein Unicode und manche
Sonderzeichen werden als Fragezeichen dargestellt. Ab
FreeBSD 4.3 sind im CD9660-Treiber Möglichkeiten vorgesehen,
eine Konvertierungstabelle zur Laufzeit zu laden. Module für
die gebräuchlisten Kodierungen finden Sie im Port
sysutils/cd9660_unicode.Manchmal werden Sie die Meldung Device
not configured erhalten, wenn Sie versuchen, eine
CDROM einzuhängen. Für gewöhnlich liegt das daran,
daß das Laufwerk meint es sei keine CD eingelegt, oder
daß das Laufwerk auf dem Bus nicht erkannt wird. Es kann
einige Sekunden dauern, bevor das Laufwerk merkt, daß eine CD
- eingelegt wurde. Seien Sie also geduldig.
+ eingelegt wurde. Seien Sie also geduldig.Manchmal wird ein SCSI-CDROM nicht erkannt, weil es keine Zeit
hatte, auf das Zurücksetzen des Busses zu antworten. Wenn Sie
- ein SCSI-CDROM besitzen sollten Sie die folgende Zeile in Ihre
+ ein SCSI-CDROM besitzen, sollten Sie die folgende Zeile in Ihre
Kernelkonfiguration aufnehmen und einen neuen Kernel bauen:options SCSI_DELAY=15000Die Zeile bewirkt, daß nach dem Zurücksetzen des
SCSI-Busses beim Booten 15 Sekunden gewartet wird, um dem
CDROM-Laufwerk genügend Zeit zu geben, darauf zu
antworten.Brennen von rohen CDsSie können eine Datei auch direkt auf eine CD brennen,
ohne vorher auf ihr ein ISO 9660 Dateisystem einzurichten.
Einige Leute nutzen dies, um Datensicherungen durchzuführen.
Diese Vorgehensweise hat den Vorteil, daß Sie schneller als
das Brennen einer normalen CD ist.&prompt.root; burncd -f /dev/acd1c -s 12 data archive.tar.gz fixateWenn Sie die Daten von einer solchen CD wieder
zurückbekommen wollen, müssen Sie sie direkt von dem
rohen Gerät lesen:&prompt.root; tar xzvf /dev/acd1cEine auf diese Weise gefertigte CD können Sie nicht in das
Dateisystem einhängen. Sie können Sie auch nicht auf
einem anderen Betriebssystem lesen. Wenn Sie die erstellten CDs in
das Dateisystem einhängen oder mit anderen Betriebssystemen
austauschen wollen, müssen Sie
sysutils/mkisofs,
wie oben beschrieben, benutzen.RAIDSoftware RAID
-
+ ChristopherShumwayGeschrieben von
-
+
ValentinoVaschettoMark Up von ccd (Concatenated Disk Configuration)Heutzutage scheint jeder eine Sammlung von Multimedia-Dateien,
von MP3s bis hin zu Video-Clips, zu besitzen. Das meiste meiner
CDROM Sammlung habe ich nach MP3 konvertiert. Da sich meine
Musik nun an einem zentralen Ort befindet, brauche ich nicht mehr
die Audio-CD zu dem Lied, das ich gerade im Sinn habe, zu suchen.
Allerdings mußte ich mich fragen, wo ich denn die ganzen
Dateien speichern wollte.Die wichtigsten Faktoren bei der Auswahl von Massenspeichern sind
Geschwindigkeit, Zuverlässigkeit und der Preis. Selten findet
sich eine ausgewogene Mischung aller drei Faktoren. Schnelle und
zuverlässige Massenspeicher sind für gewöhnlich teuer.
Um die Kosten zu senken, muß entweder an der Geschwindigkeit
oder an der Zuverlässigkeit gespart werden. Bei der Planung
meines Systems habe ich die Faktoren nach ihrer Wichtigkeit geordnet.
Der wichtigste Faktor waren die Kosten, da ich sehr viel Speicher zu
einem guten Preis brauchte. Der nächste Faktor,
Geschwindigkeit, war nicht so wichtig, da auf die Daten über
ein geswitchtes 100 Mbit Ethernet, das wahrscheinlich den Engpaß
darstellen würde, zugegriffen werden sollte. Die
Möglichkeit, die Ein- und Ausgabeoperationen auf mehrere
Platten zu verteilen, sollte für dieses Netzwerk mehr als
schnell genug sein. Die Frage nach der Zuverlässigkeit war
leicht zu beantworten, da sich die Daten ja schon auf CD-Rs
befanden und der Massenspeicher nur für den leichteren Zugriff
auf die Daten sorgen sollte. Wenn ein Laufwerk kaputt geht, kann
es leicht ersetzt werden und die Daten können nach dem
Wiederherstellen des Dateisystems von CD-Rs wieder kopiert
werden.Unter dem Strich wollte ich also möglichst viel Speicher
für mein Geld. Große IDE-Laufwerke sind heutzutage billig:
Ich fand IDE-Laufwerke von Western Digital mit 30,7 GB und 5400 RPM
für 130 US Dollars, von denen ich drei und damit ungefähr
neunzig Gigabyte Speicher kaufte.Installation der HardwareDie Laufwerke wurden in ein System eingebaut, das schon ein
IDE-Laufwerk als Systemplatte besaß. Es wäre ideal
gewesen, für jedes IDE-Laufwerk einen eigenen Controller
und ein eigenes Kabel zu haben, doch haben das die damit verbundenen
Kosten verboten. Zwei Platten wurden als Slave und eine als
Master konfiguriert. An den ersten IDE-Controller schloß ich
eine als Slave konfigurierte Platte zusätzlich zur Systemplatte
an. Die beiden anderen Platten wurden als Master und Slave an den
zweiten Controller angeschlossen.Beim Reboot wurde das BIOS so konfiguriert, daß es
die angeschlossenen Platten automatisch erkennt und FreeBSD
erkannte die Platten ebenfalls:ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33Wenn FreeBSD die Platten jetzt nicht erkennt,
überprüfen Sie, ob die Jumper korrekt konfiguriert sind.
Ich habe von vielen Problemen gehört, die dadurch entstanden
sind, daß die Platten mit cable select anstatt
richtig als Master und Slave konfiguriert waren.Die nächste Überlegung war, wie die Platten in
das Dateisystem eingebunden werden sollten. Ich schaute mir
&man.vinum.8;
und FreeBSDs &man.ccd.4; im Hinblick auf meine
Konfiguration an. Die Entscheidung fiel zugunsten von &man.ccd.4;,
da es aus weniger Teilen besteht und weniger Teile häufig
eine höhere Stabilität anzeigen. Vinum schien für
meine Zwecke ein bißchen zuviel zu sein.Konfiguration von CCDMit ccd können mehrere
identische Platten zu einem logischen Dateisystem
zusammengefaßt werden. Um ccd
zu nutzen, muß der Kernel mit der entsprechenden
Unterstützung übersetzt werden. Ich fügte die
folgende Zeile zu meiner Konfigurationsdatei hinzu und übersetzte
den Kernel neu:pseudo-device ccd 4In FreeBSD 4.0 und späteren Versionen kann
ccd auch als Kernelmodul geladen
werden.Um ccd zu nutzen, müssen
die Laufwerke zuerst mit einem Label versehen werden. Die Label
erstellte ich mit den folgenden Kommandos:disklabel -r -w ad1 auto
disklabel -r -w ad2 auto
disklabel -r -w ad3 autoDamit wurden die Label ad1c,
ad2c und ad3c
erstellt, die jeweils das gesamte Laufwerk umfassen.Im nächsten Schritt muß der Typ des Labels
geändert werden. Zum Editieren der Lables benutzte ich
folgende Kommandos:disklabel -e ad1
disklabel -e ad2
disklabel -e ad3Für jedes Label startete dies den durch
EDITOR gegebenen Editor, in meinem Fall &man.vi.1;,
der dann einen Abschnitt, wie den folgenden zeigte:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)Für ccd mußte ich eine
e Partition erstellen. Diese kann durch Kopieren
der c Partition erstellt werden, allerdings muß
auf 4.2BSD
gesetzt werden. Der editierte Label sah dann wie folgt aus:8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)Erstellen des DateisystemsNachdem die Label erstellt waren, mußte ich
ccd konfigurieren. Dazu dient
&man.ccdconfig.8;, das als ersten Parameter das zu konfigurierende
Gerät, in meinem Fall /dev/ccd0c,
erwartet. Wenn die Gerätedatei für
ccd0c noch nicht existiert, können
Sie diese mit den folgenden Kommandos erstellen:cd /dev
sh MAKEDEV ccd0Das nächste Argument, das ccdconfig
- erwartet, ist der Interleave für das Dateisystem. Der
+ erwartet, ist der Interleave für das Dateisystem. Der
Interleave definiert die Größe eines Streifens in
Blöcken, die normal 512 Bytes groß sind. Ein
Interleave von 32 ist demnach 16384 Bytes groß.Nach der Angabe des Interleaves können Sie Optionen
für ccdconfig angeben. Wenn Sie gespiegelte
Laufwerke einrichten möchten, müssen Sie an dieser Stelle
eine Option angeben.
Da ich keinen Spiegel erstellen wollte, habe ich
0 eingesetzt.Zum Schluß werden die Geräte des Verbundes angegeben.
Die komplette Kommandozeile sieht dann wie folgt aus:ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3eDamit ist ccd konfiguriert und
mit &man.newfs.8; kann nun ein Dateisystem angelegt werden:newfs /dev/ccd0cAutomatisierungDamit ccd beim Start automatisch
aktiviert wird, ist die Datei /etc/ccd.conf
mit dem folgenden Kommando zu erstellen:ccdconfig -g > /etc/ccd.confWenn /etc/ccd.conf existiert, wird beim
Reboot ccdconfig -C von
/etc/rc aufgerufen. Damit wird
ccd eingerichtet und die darauf
befindlichen Dateisysteme können angehängt
werden.Wenn Sie in den Single-User Modus booten, müssen Sie
den Verbund erst konfigurieren, bevor Sie darauf befindliche
Dateisysteme anhängen können:ccdconfig -CIn /etc/fstab ist noch ein Eintrag für
das auf dem Verbund befindliche Dateisystem zu erstellen, damit
dieses beim Start des Systems immer angehängt wird:/dev/ccd0c /media ufs rw 2 2vinum (Logical Volume Manager)XXXHardware RAIDRAIDHardwareFreeBSD unterstützt eine Reihe von RAID-Controllern
von populären Herstellern wie Adaptec, 3Ware, Mylex, DPT, AMI,
Dell, HP, IBM und weiteren. Die Liste der unterstützten
Adapter wächst ständig, lesen Sie bitte die Release-Notes,
um eine vollständige Aufzählung zu erhalten.
-
-
-
- Bernd
- Warken
- Übersetzt von
-
-
-
- BandmedienBandmedienDie wichtigsten Bandmedien sind 4mm, 8mm, QIC,
Mini-Cartridge und DLT.4mm (DDS: Digital Data Storage)BandmedienDDS (4mm) BänderBandmedienQIC BänderDie 4mm-Bänder ersetzen mehr und mehr das QIC-Format als
Backupmedium der Wahl für Workstations. Dieser Trend nahm stark
zu, als Conner die Firma Archive, einen führenden Hersteller von
QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken
stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den
gleichen Ruf der Zuverlässigkeit, den die 8mm-Laufwerke
genießen. Die 4mm-Kassetten sind preiswerter und mit den
Maßen 76,2 x 50,8 x 12,7 mm (3 x 2 x 0,5 Inch) kleiner als die
8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetköpfe
haben eine relativ kurze Lebensdauer, weil beide die gleiche
Helical-Scan-Technologie benutzen.Der Datendurchsatz dieser Laufwerke beginnt bei etwa 150
kByte/s, Spitzenwerte liegen bei etwa 500 kByte/s. Die
Datenkapazität liegt zwischen 1,3 GB und 2 GB. Die meisten
Geräte haben eine Hardwarekompression eingebaut, die die
Kapazität ungefähr verdoppelt. Es gibt
Multi-Drive-Einheiten für Bandbibliotheken mit bis zu 6
Laufwerken in einem Gehäuse und automatischem Bandwechsel. Die
Kapazität einer solchen Bibliothek liegt bei 240 GB.Der Standard DDS-3 unterstützt nun Bandkapazitäten bis
zu 12 GB (oder komprimiert 24 GB).4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan.
Alle Vor- und Nachteile von Helical-Scan gelten sowohl für 4mm-
als auch für 8mm-Laufwerke.Bänder sollten nach 2.000 Banddurchläufen oder 100
vollen Backups ersetzt werden.8mm (Exabyte)BandmedienExabyte (8mm) Bänder8mm-Bänder sind die verbreitetsten SCSI-Bandlaufwerke; sie
sind das geeignetste Bandformat zum Austausch von Bändern. Fast
an jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB.
8mm-Bänder sind zuverlässig, gut zu handhaben und arbeiten
leise. Bandkassetten sind preiswert und klein mit 122 x 84 x 15 mm
(4,8 x 3,3 x 0,6 Inch). ein Nachteil der 8mm-Technologie ist die
relativ kurze Lebensdauer des Schreib-/Lesekopfs und der Bänder
auf Grund der hohen Relativgeschwindigkeit des Bandes über die
Köpfe hinweg.Der Datendurchsatz liegt ungefähr zwischen 250 kByte/s und
500 kByte/s. Die Datenkapazität beginnt bei 300 MB und erreicht
bis zu 7 GB bei den Spitzengeräten. Die meisten Geräte
haben eine Hardwarekompression eingebaut, die die Kapazität
ungefähr verdoppelt. Diese Laufwerke sind erhältlich in
Form von Einzelgeräten oder als Multi-Drive-Bandbibliotheken mit
6 Laufwerken und 120 Bändern in einem Gehäuse. Die
Bänder werden von der Geräteeinheit automatisch gewechselt.
Die Kapazität einer solchen Bibliothek liegt bei 840 GB und
mehr.Das Exabyte-Modell Mammoth unterstützt 12 GB
auf einem Band (24 GB mit Kompression) und kostet etwa doppelt so viel
wie ein konventionelles Bandlaufwerk.Die Daten werden mittels Helical-Scan auf das Band
aufgezeichnet, die Köpfe sind leicht schräg zum Medium
angebracht (mit einem Winkel von etwa 6 Grad). Das Band wickelt sich
270 Grad um die Spule, die die Köpfe trägt. Die Spule dreht
sich, während das Band darüberläuft. Das Resultat ist
eine hohe Datendichte und eng gepackte Spuren, die von einem Rand des
Bands zum gegenüberliegenden quer über das Band abgewinkelt
verlaufen.QICBandmedienQIC-150QIC-150-Bänder und -Laufwerke sind wohl der am weitesten
verbreitete Bandtyp überhaupt. QIC-Bandlaufwerke sind die
preiswertesten seriösen Backupgeräte,
die angeboten
werden. Der Nachteil dabei ist der hohe Preis der Bänder.
QIC-Bänder sind im Vergleich zu 8mm- oder 4mm-Bändern bis zu
5 Mal teurer, wenn man den Preis auf 1 GB Datenkapazität
umrechnet. Aber wenn Ihr Bedarf mit einem halben Dutzend Bänder
abgedeckt werden kann, mag QIC die richtige Wahl sein.QIC ist der gängigste
Bandlaufwerkstyp. Jeder Standort hat ein QIC-Laufwerk der einen oder
anderen Dichte. Aber gerade das ist der Haken an der Sache, QIC
bietet eine große Anzahl verschiedener Datendichten auf
physikalisch ähnlichen (manchmal identischen) Bändern.
QIC-Laufwerke sind nicht leise. Diese Laufwerke suchen lautstark die
richtige Bandstelle, bevor sie mit der Datenaufzeichnung beginnen.
Sie sind während des Lesens, Schreibens und Suchens deutlich
hörbar.Die Abmessungen der QIC-Kassetten betragen 152.4 x 101.6 x 17.78
mm (6 x 4 x 0,7 Inch), die QIC-Bandbreite beträgt 6,35 mm (1/4
Inch). Mini-Cartridges, die die
gleiche Bandbreite verwenden, werden gesondert vorgestellt.
Bandbibliotheken und Bandwechselgeräte gibt es im QIC-Format
keine.Der Datendurchsatz liegt ungefähr zwischen 150 kByte/s und
500 kByte/s. Die Datenkapazität reicht von 40 MB bis zu 15 GB.
Hardwarekompression ist in vielen der neueren QIC-Laufwerke eingebaut.
QIC-Laufwerke werden heute seltener eingesetzt; sie werden von den
DAT-Laufwerken abgelöst.Die Daten werden auf dem Band in Spuren aufgezeichnet. Die
Spuren verlaufen entlang der Längsachse des Bandmediums von einem
Ende zum anderen. Die Anzahl der Spuren, und damit auch die Breite
einer Spur, variiert mit der Kapazität des Laufwerks. Die
meisten, wenn nicht alle neueren Laufwerke sind
rückwärtskompatibel, zumindest zum Lesen (aber oft auch zum
Schreiben). QIC hat einen guten Ruf bezüglich der
Datensicherheit (die Mechanik ist einfacher und robuster als diejenige
der Helical-Scan-Laufwerken).Bänder sollten nach 5,000 Backups ersetzt werden.XXX* Mini-CartridgeDLTBandmedienDLTDLT hat die schnellste Datentransferrate von allen hier
aufgelisteten Gerätetypen. Das 1/2-Inch-Band (12,7 mm) befindet
sich in einer Spulkassette mit den Abmessungen 101,6 x 101,6 x 25,4 mm
(4 x 4 x 1 Inch). Die eine Seite der Kassette hat eine bewegliche
Abdeckung. Der Laufwerksmechanismus öffnet diese Abdeckung und
zieht die Bandführung heraus. Die Bandführung trägt
ein ovales Loch, die das Laufwerk zum Einhängen
des Bandes
benutzt. Die Aufwickelspule befindet sich im Innern des
Bandlaufwerks. Bei allen anderen hier besprochenen Bandkassetten
(9-Spur-Bänder sind die einzige Ausnahme) befinden sich sowohl
die Auf- als auch die Abwickelspule im Inneren der
Bandkassette.Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache
Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die
Datenkapazität reicht von 10 GB bis 20 GB für
Einfachlaufwerke. Auch Mehrfachbandgeräte sind erhältlich,
sowohl als Bandwechsler wie auch als Multi-Drive-Bandbibliotheken, die
Platz für 5 bis 900 Bänder verteilt auf 1 bis 20 Laufwerke
enthalten, mit einer Speicherkapazität von 50 GB bis 9 TB.Mit Kompression unterstützt das Format DLT Type IV bis zu
70 GB Kapazität.Die Daten werden auf dem Band in Spuren aufgezeichnet, die
parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den
QIC-Bändern). Zwei Spuren werden dabei gleichzeitig beschrieben.
Die Lebenszeit der Lese- und Schreibköpfe sind relativ lang; denn
sobald das Band anhält, gibt es keine Relativbewegung mehr
zwischen den Köpfen und dem Band.AITBandmedienAITAIT ist ein neues Format von Sony, das (mit Kompression) bis zu
50 GB pro Band speichern kann. Die Bänder haben einen
Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt.
Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der Lage
von Dateien auf dem Band benutzt werden, während andere
Bänder einige Minuten zur Lokalisierung benötigen.Entsprechende Software wie etwa SAMS:Alexandria
können 40 oder mehr AIT-Bandbibliotheken verarbeiten, indem sie
direkt mit dem Speicherchip des Bandes kommunizieren, wenn der
Bandinhalt am Bildschirm dargestellt werden soll oder bestimmt werden
soll, welche Dateien auf welchem Band gespeichert sind, oder um das
richtige Band zu lokalisieren, zu laden und Daten vom Band
zurückzuspielen. Bibliotheken dieser Art liegen in der
Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt
herausfallen.Die erste Benutzung eines neuen BandsDer Versuch ein neues, vollkommen leeres Band ohne weiteres zu
lesen oder zu beschreiben wird schiefgehen. Auf der Konsole werden
dann Meldungen ähnlich wie folgt ausgegeben:sa0(ncr1:4:0): NOT READY asc:4,1
0(ncr1:4:0): Logical unit is in process of becoming readyDas Band enthält nämlich keinen Identifier-Block
(Blocknummer 0). Alle QIC-Bandlaufwerke seit der Einführung des
QIC-525-Standards schreiben einen Identifier-Block auf das Band. Es
gibt zwei Lösungen:mt fsf 1 veranlasst das Bandlaufwerk einen
Identifier-Block auf das Band zu schreiben.Das Band durch Drücken des Bandauswurfknopfs an der
Vorderseite des Bandgeräts auswerfen.Danach das Band wieder einlegen und Daten auf das Band
übertragen wie in dump beschrieben.
- Das Kommando dump.8 gibt die Meldung
+ Das Kommando dump gibt die Meldung
DUMP: End of tape detected zurück und die
Konsole zeigt:
HARDWARE FAILURE info:280 asc:80,96.Das Band zurückspulen mit dem Kommando: mt
rewind.Nachfolgende Bandoperationen werden dann erfolgreich
ausgeführt.Backup-ProgrammeBackup SoftwareDie drei wichtigsten Programme sind
&man.dump.8;,
&man.tar.1;,
and
&man.cpio.1;.Aufspielen und WiederherstellenBackup SoftwareSichern / Wiederherstellendumprestoredump und restore sind die
traditionellen
- Backupprogramme in UNIX. Sie betrachten das Laufwerk als eine
+ Backupprogramme in Unix. Sie betrachten das Laufwerk als eine
Ansammlung von Blöcken, operieren also unterhalb dem
Abstraktionslevel von Dateien, Links und Verzeichnissen, die die
- Grundlage des Dateisystemkonzepts bilden. dump
+ Grundlage des Dateisystemkonzepts bilden. dump
sichert ein ganzes Dateisystem auf einem Gerät, es ist nicht
möglich nur einen Teil des Dateisystems, oder einen
Verzeichnisbaum, der mehr als ein Dateisystem umfaßt zu
sichern. dump schreibt keine Dateien oder
Verzeichnisse auf das Band, sondern die Blöcke, aus denen
Dateien und Verzeichnisse bestehen.Wenn Sie mit dump das Root-Verzeichnis
sichern, werden /home, /usr
und viele andere Verzeichnisse nicht gesichert, da dies normalerweise
Mountpunkte für andere Dateisysteme oder symbolische Links
zu diesen Dateisystemen sind.dump hat einige Eigenarten, die noch aus den
frühen
- Tagen der Version 6 von ATT UNIX (ca. 1975) stammen. Die Parameter
+ Tagen der Version 6 von ATT Unix (ca. 1975) stammen. Die Parameter
sind für 9-Spur-Bänder (6250 bpi) voreingestellt, nicht auf
die heute üblichen Medien hoher Dichte (bis zu 62.182 ftpi). Bei
der Verwendung der Kapazitäten moderner Bandlaufwerke muss diese
Voreinstellung auf der Kommandozeile überschrieben werden.
- rhosts
+ .rhostsrdump und rrestore
können Daten über
Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen
Computers befindet, überspielen. Beide Programme benutzen die
Befehle rcmd und ruserok zum
Zugriff auf das entfernte
Bandlaufwerk. Daher muss der Anwender, der das Backup
- durchführt, auf dem entfernten Computer eine Zugangsberechtigung
- für rhosts haben.
+ durchführt, auf dem entfernten in
+ .rhosts eingetragen sein.
Die Argumente zu rdump und
rrestore müssen
zur Verwendung auf dem entfernten Computer geeignet sein.
(Z.B. lautet das Kommando zum Aufrufen von rdump
von einem FreeBSD-Computer aus auf ein Exabyte-Bandlaufwerk auf einer
Sun namens komodo: /sbin/rdump 0dsbfu 54000
- 13000 126 komodo:/dev/nrsa8 /dev/rda0a 2>&1). Man
- beachte, dass bei der Ausführung die Sicherheitsvorkehrungen wie
- beim Aufruf des Kommandos rhosts gelten.
- Erkundigen Sie sich nach Ihrer Zugangsberechtigung.
+ 13000 126 komodo:/dev/nrsa8 /dev/rda0a 2>&1).
+ Zum Ausführen dieses Kommandos müssen Sie auf dem
+ entfernten Rechner in .rhosts eingetragen
+ sein. Die r-Kommandos sind ein großes Sicherheitsrisiko,
+ daher sollten Sie deren Verwendung sorgfältig
+ abwägen.
Es ist auch möglich dump und
restore über eine gesicherte Verbindung
mit ssh einzusetzen.rdump mit ssh
benutzen&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh1 -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gztarBackup Softwaretar&man.tar.1; stammt ebenfalls aus Version 6 von ATT Unix
(ca. 1975). tar arbeitet mit dem Dateisystem,
denn es schreibt Dateien und Verzeichnisse auf das Band.
tar unterstützt zwar nicht den vollen Umfang
von Optionen, die bei
&man.cpio.1; zur Verfügung stehen, aber dafür erfordert
tar nicht die ungewöhnliche Kommando-Pipeline,
die cpio verwendet.tarDie meisten Versionen von tar unterstützen
keine Backups über das Netzwerk. Die GNU-Version von
tar die in FreeBSD verwendet wird, unterstüzt
jedoch entfernte Geräte mit der gleichen Syntax wie
rdump. Um tar
für ein Exabyte-Bandlaufwerk auf einer Sun
namens komodo auszuführen, muss folgendes
Kommando aufgerufen werden: /usr/bin/tar cf komodo:/dev/nrsa8
- . 2>&1. Bei den Versionen ohne Unterstützung
+ . 2>&1. Bei den Versionen ohne Unterstützung
für entfernte Geräte kann man die Daten über eine
Pipeline und rsh an ein entferntes Laufwerk
senden.&prompt.root; tar cf - . | rsh hostname dd of=tape-device obs=20bWenn Sie Bedenken bezüglich der Sicherheit beim Backup
- über's Netz haben, sollten Sie ssh anstatt
+ über das Netz haben, sollten Sie ssh anstatt
rsh benutzen.CpioBackup Softwarecpio&man.cpio.1; ist das ursprüngliche Unix-Programm zum
Dateitransfer mit magnetischen Medien. cpio
hat (neben vielen
anderen Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben
einer Anzahl verschiedener Archivformate und zum Weiterleiten von
Daten an andere Programme über Pipeline. Dieses letztes
Leistungsmerkmal macht cpio zu einer
ausgezeichneten Wahl für Installationsmedien. Leider kann
cpio keine
Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden
Dateien über stdin angegeben werden
muss.cpio unterstützt keine Backups
über das Netzwerk. Man kann aber eine Pipeline und
rsh verwenden, um
Daten an ein entferntes Bandlaufwerk zu senden.&prompt.root; for f in directory_list; dofind $f >> backup.listdone
&prompt.root; cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"Dabei steht directory_list für
eine Aufzählung der Verzeichnisse, die Sie sichern wollen.
user@host
gibt den Benutzer auf dem Zielrechner an, der die Sicherung
laufen läßt. Der Ort der Sicherung wird durch
backup_device angegeben
(z.B. /dev/nrsa0).paxBackup SoftwarepaxpaxPOSIXIEEE&man.pax.1; ist die Antwort von IEEE/POSIX auf
tar und cpio.
Über die Jahre hinweg sind die verschiedenen
Versionen von tar und cpio leicht
inkompatibel geworden. Daher hat POSIX, statt eine Standardisierung
zwischen diesen auszufechten, ein neues Archivprogramm geschaffen.
pax versucht viele der unterschiedlichen
cpio- und tar-Formate zu lesen
und zu schreiben, außerdem einige neue, eigene Formate. Die
- Kommandostruktur ähnelt eher cpioals
+ Kommandostruktur ähnelt eher cpio als
tar.AmandaBackup SoftwareAmandaAmandaAmanda
(Advanced Maryland Network Disk Archiver) ist ein
Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein
Amanda-Server kann auf einem einzigen Bandlaufwerk Datensicherungen
von jeder beliebigen Anzahl von Computern speichern, sofern auf diesen
jeweils ein Amanda-Client läuft und sie über Netzwerk mit
dem Amanda-Server verbunden sind.Ein häufiges Problem bei Standorten mit einer Anzahl
großer Festplatten ist, dass das Kopieren der Daten auf Band
langsamer vor sich geht als solche Daten anfallen. Amanda löst
dieses Problem durch Verwendung einer Holding Disk,
einer Festplatte
zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.Für Datensicherungen über einen längeren Zeitraum
erzeugt Amanda Archivsets von allen Dateisystemen,
die in Amanda's
Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe von
Bändern mit vollen Backups und Reihen von inkrementellen (oder
differentiellen) Backups, die jeweils nur die Unterschiede zum vorigen
Backup enthalten. Zur Wiederherstellung von beschädigten
Dateissystemen benötigt man das letzte volle Backup und alle
darauf folgenden inkrementellen Backups.Die Konfigurationsdatei ermöglicht die Feineinstellung der
Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum
Schreiben der Daten auf das Band jedes der oben beschriebenen
- Backuprogramme verwenden. Amanda ist erhältlich als Portierung
- oder als Softwarepaket, es ist nicht von vorne herein auf dem System
- installiert.
+ Backuprogramme verwenden. Amanda ist nicht Teil des Basissystems,
+ Sie müssen Amanda über die Ports-Sammlung oder als Paket
+ installieren.
Tue nichtsTue nichts ist kein Computerprogramm, sondern die
am häufigsten angewendete Backupstrategie. Diese kostet nichts,
man muss keinen Backupplan befolgen, einfach nur nein sagen. Wenn
etwas passiert, einfach grinsen und ertragen!Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist
die Strategie Tue nichts das geeignetste Backupprogramm
für Ihren Computer. Aber Unix ist ein nützliches Werkzeug,
Sie müssen damit rechnen, dass Sie innerhalb von sechs Monaten eine
Sammlung von Dateien haben, die für Sie wertvoll geworden
sind.Tue nichts ist die richtige Backupmethode für
/usr/obj und andere Verzeichnisbäume, die
vom Computer exakt wiedererzeugt werden können. Ein Beispiel
sind die Dateien, die diese Handbuchseiten darstellen — sie
wurden aus Quelldateien im Format SGML erzeugt. Es
ist nicht nötig, Sicherheitskopien der Dateien in den
sekundären Formaten wie etwa HTML zu
erstellen. Die Quelldateien in SGML sollten jedoch
in die regelmäßigen Backups mit einbezogen werden.Welches Backup-Programm ist am Besten?LISAdump, Punkt und Schluss.
Elizabeth D. Zwicky hat alle hier genannten Backup-Programme bis zur
Erschöpfung ausgetestet. Ihre eindeutige Wahl zur Sicherung
aller Daten mit Berücksichtigung aller Besonderheiten von
- UNIX-Dateisystemen ist dump.
+ Unix-Dateisystemen ist dump.
Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt
ungewöhnlicher Bedingungen (und einiger gar nicht so
ungewöhnlicher) und testete jedes Programm durch ein Backup und
eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten
waren Dateien mit Löchern, Dateien mit Löchern und einem
Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im
Dateinamen, unlesbare und nichtschreibbare Dateien,
Gerätedateien, Dateien, deren Länge sich während des
Backups ändert, Dateien, die während des Backups erzeugt und
gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse
in LISA V im Oktober 1991, s. Torture-testing
Backup and Archive Programs.Die Wiederherstellung in einem NotfallVor dem UnglückEs sind nur vier Vorkehrungen zu treffen, um auf jedes
erdenkliche Unglück vorbereitet zu sein.disklabelAls erstes drucken Sie das Disklabel jeder Ihrer Festplatten
(z.B. mittels disklabel da0 | lpr), die
Partitions- und Dateisystemtabelle jeder Festplatte (mit
/etc/fstab) sowie alle Bootmeldungen, jeweils
in zweifacher Ausfertigung.fix-it floppiesZweitens, überzeugen Sie sich, dass sowohl die
Bootdiskette als auch die Reparaturdiskette
(boot.flp bzw. fixit.flp)
all Ihre Geräte ansprechen können. Die einfachste Methode
- dies nach zu prüfen ist, Ihren Rechner mit der Boot-Diskette im
+ dies nachzuprüfen ist, Ihren Rechner mit der Boot-Diskette im
Floppylaufwerk neu zu starten und die Bootmeldungen zu durchzusehen.
Wenn all Ihre Geräte aufgelistet sind und funktionieren,
können Sie weiter zu Schritt drei gehen.Ist das nicht der Fall, müssen Sie sich eine eigene
Version der beiden zum Booten benötigten Disketten erstellen.
Diese müssen einen Kernel enthalten, der all Ihre Platten
mounten kann und Zugriff auf Ihr Bandlaufwerk gestattet. Diese
Disketten müssen ferner folgende Programme enthalten:
fdisk, disklabel,
newfs, mount sowie
jedes Backup-Programm, das Sie verwenden. Diese Programme
müssen statisch gelinkt sein. Falls Sie dump
verwenden, muss die Diskette auch restore
enthalten.Drittens, machen Sie oft Backups auf Band. Jede Änderung
seit Ihrem letzten Backup kann unwiederbringlich verloren gehen.
Versehen Sie die Backup-Bänder mit Schreibschutz.Viertens, testen Sie aus, wie die Disketten (entweder
boot.flp und fixit.flp
oder Ihre beiden eigenen Disketten aus Schritt zwei) und die
Bänder mit den Backups zu behandeln sind. Machen Sie sich
Notizen zu diesem Test. Bewahren Sie diese Notizen zusammen mit den
Bootdisketten, den Ausdrucken und den Bändern mit den Backups
auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt
- sein, dass Sie ohne Ihre Notizen evt. das Backup auf Ihren
+ sein, dass Sie ohne Ihre Notizen vielleicht das Backup auf Ihren
Bändern zerstören. (Wie das geht? Man braucht nur
unglücklicherweise den Befehl tar cvf
/dev/rsa0 einzugeben um ein Band zu
überschreiben).Als zusätzliche Sicherheitsvorkehrung, kann man jeweils
die Disketten und Bänder zweifach erstellen. Eine der Kopien
sollte an einem entfernten Standort aufbewahrt werden. Ein
entfernter Standort ist NICHT der Keller im gleichen
Bürogebäude. Eine Anzahl von Firmen im World Trade Center
musste diese Lektion auf die harte Tour lernen. Ein entfernter
Standort sollte von Ihrem Computer und Ihren Festplatten
physikalisch durch eine erhebliche Entfernung getrennt sein.Ein Beispielskript zum Erstellen eigener Bootdisketten /mnt/sbin/init
gzip -c -best /sbin/fsck > /mnt/sbin/fsck
gzip -c -best /sbin/mount > /mnt/sbin/mount
gzip -c -best /sbin/halt > /mnt/sbin/halt
gzip -c -best /sbin/restore > /mnt/sbin/restore
gzip -c -best /bin/sh > /mnt/bin/sh
gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# Geraetedateien erstellen
#
cd /mnt/dev
./MAKEDEV std
./MAKEDEV da0
./MAKEDEV da1
./MAKEDEV da2
./MAKEDEV sa0
./MAKEDEV pty0
cd /
#
# Minimale Dateisystemtabelle erstellen
#
cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd <Nach dem UnglückDie Schlüsselfrage ist, ob Ihre Hardware überlebt
hat. Denn da Sie ja regelmäßig Backups angefertigt
haben, brauchen Sie sich um die Software keine Sorgen zu
machen.Falls die Hardware beschädigt wurde, ersetzen Sie zuerst
die defekten Teile.Falls die Hardware funktioniert, überprüfen Sie die
Disketten. Wenn Sie eigene Bootdisketten verwenden, booten Sie im
Single-User-Modus (geben dazu Sie -s am
Boot-Prompt boot: ein). Überspringen Sie den
folgenden Paragrafen.Wenn Sie die Standarddisketten boot.flp
und fixit.flp verwenden, lesen Sie hier weiter.
Legen Sie die Bootdiskette boot.flp in das
erste Floppylaufwerk ein und starten Sie den Computer. Wie
üblich wird dann das originale Installationsmenü von
FreeBSD gestartet. Wählen Sie die Option
Fixit--Repair mode with CDROM or floppy.. Legen
Sie die Diskette fixit.flp ein, wenn danach
gefragt wird. restore und die anderen Programme,
die Sie benötigen, befinden sich dann in
/mnt2/stand.Stellen Sie die Dateisysteme nacheinander, getrennt von
einander, wieder her.mountRoot-PartitiondisklabelnewfsVersuchen Sie die Root-Partition Ihrer ersten Festplatte
einzuhängen (z.B. mit mount /dev/sd0a
/mnt). Wenn das Disklabel beschädigt wurde, benutzen
Sie disklabel um die Platte neu zu partitionieren
und zu
benennen und zwar so, dass die Festplatte mit dem Label
übereinstimmt, das Sie ausgedruckt und aufbewahrt haben.Verwenden Sie newfs um neue Dateisysteme
auf den
Partitionen anzulegen. Hängen Sie nun die Root-Partition der
Festplatte mit Schreibzugriff ein (mit mount -u -o rw
/mnt). Benutzen Sie Ihr Backup-Programm um die Daten
für das jeweilige Dateisystem aus den Backup-Bändern
wieder her zu stellen (z.B. durch restore vrf
/dev/sta). Hängen Sie das Dateisystem wieder aus
(z.B. durch umount /mnt). Wiederholen Sie diesen
Ablauf für jedes betroffene Dateisystem.Sobald Ihr System wieder läuft, machen Sie gleich wieder
ein vollständiges Backup auf neue Bänder. Denn die
Ursache für den Absturz oder den Datenverlust kann wieder
zuschlagen. Eine weitere Stunde, die Sie jetzt noch
dranhängen, kann Ihnen später ein weiteres Missgeschick
ersparen.* Ich habe mich nicht auf Missgeschicke vorbereitet - was
nun?
]]>
JulioMerinoBeigetragen von DiskettenHeutzutage sind Disketten kein geeignetes Speichermedium mehr.
Trotzdem werden sie manchmal noch verwendet, wenn zum Beispiel kein
anderes Medium zur Verfügung steht und auf Daten eines anderen
Rechners zugegriffen werden muß.Dieser Abschnitt zeigt Ihnen, wie Sie Disketten formatieren, Daten
auf Disketten schreiben und Daten von Disketten lesen.
Tatsächlich habe ich diesen Abschnitt geschrieben, um Ihnen zu
zeigen, wie Sie die Kapazität Ihrer Disketten erhöhen
können.Die GerätedateienWie auf jedes andere Gerät auch, greifen Sie auf Disketten
über Einträge im Verzeichnis /dev
zu. Um auf das rohe Gerät zuzugreifen, benutzen Sie
/dev/rfdX, wobei
Sie für X die Gerätenummer,
normalerweise 0, einsetzen. Auf eine formatierte
Diskette greifen Sie über das Gerät
/dev/fdX zu. Sie
können dazu auch die Einträge
/dev/fdXY, wobei
Y ein Buchstabe ist, benutzen.Die Einträge der Form
/dev/fdX.
Größe werden
genutzt, um Disketten zu formatieren.
Größe gibt die Kapazität
der Diskette in Kilobytes an.Manchmal müssen Sie diese Einträge in
/dev anlegen oder wiederherstellen. Dazu
können Sie das folgende Kommando benutzen:&prompt.root; cd /dev && ./MAKEDEV "fd*"FormatierenBevor eine Diskette benutzt werden kann, muß Sie
(low-level) formatiert werden, was normalerweise der Hersteller
schon gemacht hat. Sie können sie allerdings noch einmal
formatieren, um das Medium zu überprüfen, oder die
Kapazität zu erhöhen.Um eine Diskette zu formatieren, benutzen Sie
fdformat. Dieses Utility erwartet
die Angabe eines Gerätenamens der Form
/dev/fdX.
Größe aus
/dev, mit dem Sie die Kapazität der
Diskette steuern können. Legen Sie eine 3,5 Zoll Diskette in
Ihr Laufwerk ein und führen das folgende Kommando aus:&prompt.root; /usr/sbin/fdformat /dev/rfd0.1440Das Formatieren dauert eine Weile und hier auftauchende Fehler
zeigen schlechte Medien an.Um eine andere Kapazität zu erzwingen, nehmen Sie
einen anderen Eintrag aus /dev. Benutzen Sie
dieselbe Diskette mit folgendem Befehl:&prompt.root; /usr/sbin/fdformat /dev/rfd0.1720Das Formatieren mit einer höheren Kapazität nimmt
etwas mehr Zeit in Anspruch als das vorige Beispiel. Nachdem der
Befehl ausgeführt ist, haben Sie eine Diskette mit 1720 KB
Kapazität. Sie können auch andere Einträge aus
/dev verwenden, doch sind 1720 KB für 3,5
Zoll Disketten am besten geeignet.Das DisklabelNach dem Formatieren muß auf der Diskette ein Disklabel
erstellt werden. Das Disklabel wird später zerstört, ist
aber notwendig, um die Größe und Geometrie der Diskette
zu erkennen.Das Disklabel gilt für die ganze Diskette und enthält
alle Informationen über die Geometrie der Diskette. Eine
Liste der möglichen Geometrien finden Sie in
/etc/disktab.Erstellen Sie nun das Label mit
disklabel:&prompt.root; /sbin/disklabel -B -r -w /dev/rfd0 fdsizeWenn Sie eine andere Kapazität nutzen wollen, ersetzen Sie
fdsize mit dem passenden Wert
(beispielsweise fd1440 oder
fd1720). Damit bestimmen Sie, welchen Eintrag
disklabel aus
/etc/disktab benutzt.Das DateisystemAuf der Diskette muß nun ein Dateisystem erstellt werden
(high-level Formatierung), damit FreeBSD von der Diskette lesen und
auf sie schreiben kann. Das Disklabel wird durch das Anlegen eines
Dateisystems zerstört. Falls Sie die Diskette später erneut
formatieren wollen, müssen Sie dann auch ein neues Disklabel
anlegen.Für das zu erstellende Dateisystem haben Sie die Wahl
zwischen UFS und FAT. Da UFS für Disketten weniger geeignet
ist, nehmen Sie bitte FAT.Das folgende Kommando legt ein Dateisystem auf der Diskette
an:&prompt.root; /sbin/newfs_msdos /dev/fd0Durch das Disklabel erkennt newfs
den Diskettentyp und ist in der Lage, ein neues Dateisystem
anzulegen. Die Diskette kann nun benutzt werden.Verwenden der DisketteSie können die Diskette mit
mount_msdos in Ihren Dateibaum
einhängen oder mit den Mtools aus
der Ports-Sammlung darauf zugreifen.Wenn Sie die Mtools benutzen und die
Diskette mit einer erhöhten Kapazität formatiert haben,
sollte mdir diese Kapazität
anzeigen.Disketten mit erhöhter Kapazität lassen sich praktisch
mit allen anderen Betriebssystemen ohne zusätzliche Utilities
verwenden. Microsoft-Systeme können mit ihnen ohne Probleme
umgehen. Es kann allerdings sein, daß ältere Laufwerke
nicht mit diesen Disketten zurechtkommen.Was ist mit Backups auf Disketten?Kann ich Disketten zum Backup meiner Daten verwenden?Backup DiskettenDiskettenDisketten sind kein wirklich geeignetes Medium für Backups
aus folgenden Gründen:Disketten sind unzuverlässig, besonders
langfristig.Speichern und Wiederherstellen ist sehr langsam.Sie haben eine sehr eingeschränkte Kapazität (Die
Zeiten sind längst vorbei, wo eine ganze Festplatte auf ein
Dutzend Floppies oder so gespeichert werden konnte).Wenn jedoch keine andere Möglichkeit zum Datenbackup
vorhanden ist, dann sind Disketten immer noch besser als gar kein
Backup.Wenn man gezwungen ist Disketten zu verwenden, dann sollte man
auf eine gute Qualität achten. Floppies, die schon einige Jahre
im Büro herumgelegen haben, sind eine schlechte Wahl. Ideal sind
neue Disketten von einem renommierten Hersteller.Wie mache ich ein Backup auf Disketten?Die beste Art eines Diskettenbackups ist der Befehl
tar
mit der Mehrfachband-Option , die es
ermöglicht ein Backup über mehrere Floppies zu
verteilen.Ein Backup aller Dateien im aktuellen Verzeichnis
einschließlich aller Unterverzeichnisse wird durch den folgenden
- Befehl veranlasst (als root):
+ Befehl veranlasst (als root):
&prompt.root; tar Mcvf /dev/rfd0 *Wenn die erste Floppy voll ist, meldet sich tar
und verlangt einen Diskettenwechsel (weil tar
unabhängig vom
- Medium arbeitet, wird der nächste Band (Volume) verlangt, was in
+ Medium arbeitet, wird das nächste Band (Volume) verlangt, was in
diesem Zusammenhang eine Diskette bedeutet), in etwa wie folgt:Prepare volume #2 for /dev/rfd0 and hit return:Dies wird mit steigender Volumenzahl wiederholt, bis alle
angebenen Dateien archiviert sind.Können Diskettenbackups komprimiert werden?targzipKompressionLeider erlaubt es tar nicht, die Option
für Multi-Volume-Archive zu verwenden. Man
kann natürlich alle Dateien mit gzip
komprimieren, sie mit tar auf die Floppies
aufspielen, und dann die Dateien wieder gunzip
entkomprimieren!
- Wie werden Diskettenbackups wieder her gestellt?
+ Wie werden Diskettenbackups wieder hergestellt?Zur Wiederherstellung des gesamten Archivs verwendet man:&prompt.root; tar Mxvf /dev/fd0Eine Methode um nur bestimmte Dateien wieder her zu stellen ist
mit der ersten Diskette den folgenden Befehl auszuführen:&prompt.root; tar Mxvf /dev/fd0 filenametar wird dann die folgenden Disketten anfordern,
bis die benötigte Datei gefunden ist.Wenn man die Diskette kennt auf der sich die Datei befindet,
kann man alternativ diese Diskette auch direkt einlegen und den
gleichen Befehl wie oben verwenden. Man beachte, dass, falls die
erste Datei eine Fortsetzung einer Datei von einer
der vorigen Disketten ist, tar die Warnung ausgibt,
dass diese Datei nicht wiederhergestellt werden kann, selbst dann,
wenn dies gar nicht verlangt wurde!
diff --git a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
index 03b72dfe0d..c0a5e972c8 100644
--- a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1475 +1,1477 @@
JimMock
- Erweitert und neustrukturiert von
+ Erweitert und neu strukturiert von JakeHambyUrsprünglich veröffentlicht von RobertAltschaffelÜbersetzt von Konfiguration des FreeBSD KernelsÜbersichtKernelErstellen eines angepaßten KernelsDer Kernel ist das Herz des FreeBSD Betriebssystems. Er ist
verantwortlich für die Speicherverwaltung, das Durchsetzen
von Sicherheitsdirektiven, Netzwerkfähigkeit, Festplattenzugriffen
und vieles mehr. Obwohl FreeBSD es immer mehr ermöglicht, dynamisch
konfiguriert zu werden, ist es ab und an notwendig, den Kernel
neu zu konfigurieren und zu kompilieren.Nachdem Sie dieses Kapitel gelesen haben, werden Sie folgendes
wissen:Wieso Sie Ihren Kernel neu konfigurieren sollten.Wie Sie eine Kernel-Konfigurationsdatei erstellen oder
verändern.Wie Sie mit der Konfigurationsdatei einen neuen Kernel
kompilieren.Wie Sie den neuen Kernel installieren.Wie sie die benötigten Einträge in
/dev erstellen.Was zu tun ist, falls etwas schiefgeht.Wieso einen eigenen Kernel bauen?Traditionell besaß FreeBSD einen monolithischen Kernel. Das
bedeutet, daß der Kernel ein einziges großes Programm war,
daß eine bestimmte Auswahl an Hardware unterstützte.
Also mußte man immer, wenn man das Kernelverhalten verändern
wollte, zum Beispiel wenn man neue Hardware hinzufügen wollte,
einen neuen Kernel kompilieren, installieren und das System neu
starten.Heutzutage vertritt FreeBSD immer mehr die Idee eines modularen
Kernels, bei dem bestimmte Funktionen, je nach Bedarf, als Module
- geladen werden können. Ein Bekanntes Beispiel dafür sind
+ geladen werden können. Ein bekanntes Beispiel dafür sind
die Module für die PCMCIA-Karten in Laptops, die zum Starten
nicht zwingend benötigt werden, und erst bei Bedarf geladen werden.
- Diese Module nennt man KLDs (kernel loadable modules).
+ Diese Module nennt man KLDs
+ (kernel loadable modules).
Trotzdem ist es noch immer nötig, einige statische
Kernelkonfigurationen durchzuführen. In einigen Fällen
ist die Funktion zu systemnah, um durch ein Modul zu realisiert werden.
In anderen Fällen hat eventuell noch niemand ein ladbares
Kernelmodul für diese Funktion geschrieben.Das Erstellen eines angepaßten Kernels ist eines der
wichtigsten Rituale, das nahezu jeder Unix Benutzer erdulden
muß. Obwohl dieser Prozeß recht viel Zeit in Anspruch nimmt,
bringt er doch viele Vorteile für Ihr FreeBSD System. Der
GENERIC Kernel muß eine große Zahl
- unterschiedlicher Hardware unterstützen. Im Gegensatz dazu
+ unterschiedlicher Hardware unterstützen, im Gegensatz dazu
unterstützt ein angepaßter Kernel nur
Ihre Hardware. Dies hat einige Vorteile:Schnellerer Bootvorgang. Da der Kernel nach weniger Geräten
sucht, ist die Boot-Sequenz weitaus schneller.Geringere Speicherausnutzung. Ein eigener Kernel benötigt
in der Regel weniger Speicher als ein GENERIC
Kernel, was vorteilhaft ist, da der Kernel immer im RAM verweilt.
Insbesondere profitieren Systeme mit wenig RAM davon.Zusätzliche Hardwareunterstützung. Ein
angepaßter Kernel kann Unterstützung für Geräte
wie Soundkarten bieten, die im GENERIC Kernel nicht unterstützt
werden.Erstellen und Installation eines angepaßten
KernelsKernelErstellen und InstallationZuerst erläutern wir die Verzeichnisstruktur, in der der
Kernel gebaut wird. Die im folgenden genannten Verzeichnisse sind
relativ zu /usr/src/sys angegeben, das Sie auch
über /sys erreichen können. Es existieren
mehrere Unterverzeichnisse, die bestimmte Teile des Kernels
darstellen, aber die für uns wichtigsten sind
arch/conf, in dem
Sie die Konfigurationsdatei für den angepaßten Kernel
erstellen werden, und compile, in dem der Kernel
gebaut wird. arch kann entweder
i386, alpha oder
pc98 (eine in Japan beliebte Architektur) sein.
Alles in diesen Verzeichnissen ist nur für die jeweilige
Architektur relevant, während der Rest des Codes für alle
Plattformen, auf die FreeBSD portiert werden kann, gleich ist.
Beachten Sie die Verzeichnisstruktur, die jedem unterstützten
Gerät, jedem Dateisystem und jeder Option ein eigenes
Verzeichnis zuordnet.Falls Sie kein /usr/src/sys Verzeichnis
vorfinden, so sind die Kernelquellen nicht installiert. Der
einfachste Weg dies nachzuholen, ist
/stand/sysinstall als root
auszuführen. Dort wählen Sie Configure,
dann Distributions, dann src
und schließlich sys. Wenn Sie eine
Aversion gegen sysinstall haben und eine
offizielle FreeBSD CDROM besitzen, können Sie
die Kernelquellen auch von der Kommandozeile installieren:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/sys/ssys.[a-d]* | tar -xzvfAls nächstes wechseln sie in das Verzeichnis, in dem die
GENERIC Konfigurationsdatei liegt und kopieren
diese in eine Datei mit dem Namen, den Sie Ihrem Kernel geben
wollen:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNELTraditionell ist der Name des Kernels immer in Großbuchstaben.
Wenn Sie mehrere FreeBSD mit unterschiedlicher Hardware warten, ist
es nützlich, wenn Sie Konfigurationsdatei nach dem Hostnamen der
Maschinen benennen. Im Beispiel verwenden wir den Namen
MYKERNEL.Es ist nicht zu empfehlen die Konfigurationsdatei direkt
unterhalb von /usr/src abzuspeichern. Wenn
Sie Probleme haben, könnten Sie der Versuchung erliegen,
/usr/src einfach zu löschen und wieder
von vorne anzufangen. Fünf Sekunden später werden Sie
dann feststellen, daß Sie soeben Ihre
Kernel-Konfigurationsdatei gelöscht haben.Sie sollten die Konfigurationsdatei an anderer Stelle aufheben
und in i386 einen Link auf die Datei
erstellen.Beispiel:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNELDiese und die folgenden Kommandos müssen Sie als
root ausführen, da Sie sonst
permission denied Fehler erhalten.Jetzt editieren Sie MYKERNEL mit einem
Texteditor Ihres Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen
vielleicht nur der vi Editor bekannt,
der allerdings zu komplex ist, um hier erklärt zu werden.
Er wird aber in vielen Büchern aus der
Bibliographie gut erklärt. FreeBSD bietet aber auch
einen leichter zu benutzenden Editor, den ee
an, den Sie, wenn Sie Anfänger sind, benutzen sollten. Sie
können die Kommentare am Anfang der Konfigurationsdatei
ändern, um die Änderungen gegenüber
GENERIC zu dokumentieren.SunOSFalls Sie schon einmal einen Kernel unter SunOS oder einem
anderen BSD kompiliert haben, werden Sie diese Konfigurationsdatei
bereits kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS
vertraut sind, könnte die GENERIC
Konfigurationsdatei Sie verschrecken. In diesen Fall sollten Sie
den Beschreibungen im Abschnitt über die
Konfigurationsdatei
langsam und vorsichtig folgen.Wenn Sie die FreeBSD Quellen synchronisieren, sollten Sie immer
/usr/src/UPDATING durchlesen, bevor Sie etwas
verändern. In dieser Datei finden Sie wichtige Informationen
zum Update Prozeß.
Da /usr/src/UPDATING immer zu Ihrer Version
der FreeBSD Quellen paßt, sind die Informationen dort genauer,
als in diesem Handbuch.Nun müssen Sie die Kernelquellen kompilieren. Dazu gibt es
zwei Verfahren. Welches Verfahren Sie nehmen, hängt davon ab,
warum Sie den Kernel neu bauen und welche Version von FreeBSD Sie
verwenden.Wenn Sie nur die Kernelquellen
installiert haben, benutzen Sie das Verfahren 1.Wenn Sie eine FreeBSD Version vor 4.0 benutzen und
nicht auf FreeBSD 4.0 oder höher mit
make world migrieren, benutzen Sie
Verfahren 1.Wenn Sie einen neuen Kernel bauen wollen, ohne dabei den
Quellcode zu aktualisieren, weil Sie vielleicht nur eine neue
Option wie IPFIREWALL hinzugefügt haben,
können Sie jedes der Verfahren einsetzen.Wenn Sie als Teil eines make world den
Kernel aktualisieren, benutzen Sie das Verfahren 2.Verfahren 1. Bau eines Kernels mit der alten
MethodeGenerieren Sie die Kernel Quellen mit &man.config.8;.&prompt.root; /usr/sbin/config MYKERNELWechseln Sie in das Bauverzeichnis.&prompt.root; cd ../../compile/MYKERNELKompilieren Sie den Kernel.&prompt.root; make depend
&prompt.root; makeInstallieren Sie den neuen Kernel.&prompt.root; make installVerfahren 2. Bau eines Kernels mit der neuen
MethodeWechseln Sie in das usr/src
Verzeichnis.&prompt.root; cd /usr/srcKompilieren Sie den Kernel.&prompt.root; make buildkernel KERNCONF=MYKERNELInstallieren Sie den neuen Kernel.&prompt.root; make installkernel KERNCONF=MYKERNELMit FreeBSD 4.2 und älteren Versionen müssen Sie
- KERNCONF= durch KERNEL=
+ KERNCONF durch KERNEL
ersetzen. 4.2-STABLE nach dem 2. Februar 2001 erkennt die
- Option KERNCONF=.
+ Option KERNCONF.
cvsupanonymous CVSCTMCVSanonymousWenn Sie die Quellen nicht auf irgendeine
Weise aktualisiert haben, das heißt, Sie haben nicht
CVSup, CTM oder
anoncvs benutzt, dann können Sie
die Sequenz config,
make depend, make,
make install nutzen.kernel.oldDer neue Kernel wird nach /kernel kopiert,
während der alte Kernel nach /kernel.old
verschoben wird. Um den neuen Kernel zu benutzen, sollten Sie die
Maschine jetzt rebooten. Falls etwas schief geht, sehen Sie bitte
in dem Abschnitt zur
Fehlersuche am Ende dieses Kapitels nach. Dort sollten Sie
auch unbedingt den Abschnitt lesen, der erklärt, was zu tun
ist, wenn der neue Kernel nicht
bootet.Wenn Sie neue Geräte, wie Soundkarten, hinzugefügt haben,
müssen Sie unter Umständen Gerätedateien in
/dev erstellen, bevor Sie diese benutzen
können. Weitere Informationen finden Sie in Erstellen von Gerätedateien
später in diesem Kapitel.Die Kernel-KonfigurationsdateiKernelLINTLINTKernelKonfigurationsdateiDas Format der Konfigurationsdatei ist recht einfach. Jede Zeile
enthält ein Schlüsselwort und ein oder mehrere Argumente.
Eine Zeile, die von einen # eingeleitet wird, gilt
als Kommentar und wird ignoriert. Die folgenden Abschnitte
beschreiben jedes Schlüsselwort in der Reihenfolge, in der es
in GENERIC auftaucht. Manche zusammengehörende
Schlüsselwörter werden in einem Abschnitt beschrieben,
obwohl Sie über GENERIC verstreut sind.
Eine ausführliche Liste aller
Optionen mit detailierten Erklärungen finden Sie in der
Konfigurationsdatei LINT, die sich in demselben
Verzeichnis wie GENERIC befindet. Wenn Sie sich
über den Zweck oder die Notwendigkeit einer Zeile im Unklaren
sind, überprüfen Sie bitte diese bitte zuerst in
LINT.Zahlen und HochkommasBis einschließlich FreeBSD 3.X forderte &man.config.8;,
daß jede Zeichenkette, die Zahlen, die wiederum als Text
interpretiert werden sollten, enthielt, in der Konfigurationsdatei
in doppelte Hochkommas eingeschlossen werden mußten.Im 4.X Zweig, den dieses Buch behandelt, wurde diese Forderung
entfernt. Wenn Sie ein System vor dem 4.X Zweig benutzen, finden
Sie Beispiele in /usr/src/sys/i386/conf/LINT und
/usr/src/sys/i386/conf/GENERIC.KernelBeispiel KonfigurationsdateiDas folgende Beispiel zeigt eine GENERIC
Konfigurationsdatei, die, wo notwendig, zusätzliche Kommentare
enthält. Sie sollte der Datei
/usr/src/sys/i386/conf/GENERIC auf Ihrem System
sehr ähnlich sein. Für detailierte Informationen über
alle möglichen Optionen sehen Sie sich bitte
/usr/src/sys/i386/conf/LINT an.#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
# http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $Die folgenden Schlüsselwörter sind für
jeden Kernel, den Sie bauen, zwingend
erforderlich:Kernel Optionenmachinemachine i386Gibt die Architektur der Maschine an und muß entweder
i386, alpha oder
pc98 sein.Kernel Optionencpucpu I386_CPU
cpu I486_CPU
cpu I586_CPU
cpu I686_CPUDie vorigen Zeilen geben den Typ der CPU Ihres Systems an. Sie
können mehrere CPU Typen angeben, wenn Sie sich zum Beispiel
nicht sicher sind, ob Sie I586_CPU oder
I686_CPU benutzen sollen. Für einen
angepaßten Kernel ist es aber am besten, wenn Sie nur die CPU
angeben, die sich in der Maschine befindet. Der CPU-Typ wird in den
Boot-Meldungen, die Sie sich mit dmesg ansehen
- können. ausgegeben.
+ können, ausgegeben.
Kernel Optionencpu typeDie Alpha Architektur besitzt verschiedene CPU-Typen:cpu EV4
cpu EV5Wenn Sie eine Alpha Maschine benutzen, sollten Sie einen der
obigen Typen angeben.Kernel Optionenidentident GENERICGibt den Namen Ihres Kernels an. Hier sollten Sie den Namen
einsetzen, den Sie Ihrer Konfigurationsdatei gegeben haben. In
unserem Beispiel ist das MYKERNEL. Der Wert, den
Sie ident zuweisen, wird beim Booten des neuen
Kernels ausgegeben. Wenn Sie den Kernel von Ihrem normal verwendeten
Kernel unterscheiden wollen, weil Sie zum Beispiel einen Kernel zum
Testen bauen, ist es nützlich, hier einen anderen Namen
anzugeben.Kernel Optionenmaxusersmaxusers nDie Größe wichtiger Systemtabellen wird von
maxusers bestimmt. Der Wert dieser Variablen
sollte ungefähr der Anzahl der Benutzer des Systems
entsprechen.Ab FreeBSD 4.5 kann das System diesen Wert selbst setzen, wenn
Sie in der Konfigurationsdatei den Wert 0Der verwendete Algorithmus setzt maxuser
auf die Speichergröße des Systems. Der minimale Wert
beträgt dabei 32, das Maximum ist
384.
angeben. Wenn Sie eine frühere Version von FreeBSD
einsetzen, oder den Wert selbst bestimmen wollen, sollten Sie
maxusers mindestens auf 4 setzen,
- sollte, insbesondere wenn Sie beabsichtigen, das X Window System zu
+ insbesondere wenn Sie beabsichtigen, das X Window System zu
benutzen oder Software zu kompilieren. Der Grund dafür ist,
daß der wichtigste Wert, der von maxusers
bestimmt wird, die maximale Anzahl an Prozessen ist, die auf
20 + 16 * maxusers gesetzt wird. Wenn Sie also
maxusers auf 1 setzen, können gleichzeitig
nur 36 Prozesse laufen, von denen ungefähr 18 schon beim Booten
des Systems gestartet werden und nochmal etwa 15 Prozesse dazukommen,
wenn Sie das X Window System starten. Selbst eine einfache Aufgabe,
- wie das Lesen einer Manual-Seite, braucht neun Prozesse zum Filtern,
+ wie das Lesen einer Manualpage, braucht neun Prozesse zum Filtern,
Dekomprimieren und Anschauen. Für die meisten Benutzer sollte
es ausreichen, maxusers auf 64 zu setzen, womit
1044 gleichzeitige Prozesse zur Verfügung stehen.Wenn Sie
allerdings den gefürchteten proc table full
Fehler, beim Versuch ein Programm zu starten oder auf einem Server
mit einer großen Benutzerzahl (wie
ftp.FreeBSD.org) sehen, dann
sollten Sie den Wert erhöhen und den Kernel neu bauen.maxusers begrenzt nicht
die Zahl der Benutzer, die sich auf Ihrer Maschine anmelden
können. Die Variable legt nur die Größe von
verschiedenen Tabellen unter Berücksichtigung der
Benutzeranzahl auf den System und der Anzahl der Prozesse, die
jeder Benutzer laufen läßt, fest. Mit pseudo-device pty
16 können Sie die Zahl der erlaubten
Anmeldungen von entfernten Systemen festlegen.# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13npx0 ist die Schnittstelle zur
Fließkomma-Einheit in FreeBSD. Dies kann entweder ein
Coprozessor oder eine mathematische Software-Emulation sein. Die
Angabe dieser Option ist verpflichtend.# Pseudo devices - the number indicates how many units to allocate.
pseudo-device loop # Network loopback
- TCP/IPs Loopback Device. Wenn Sie eine Telnet oder FTP
+ Das TCP/IP Loopback Device. Wenn Sie eine Telnet oder FTP
Verbindung zu localhost (a.k.a., 127.0.0.1) aufbauen, erstellen Sie eine
Verbindung zu sich selbst durch dieses Pseudo-Device. Die Angabe
dieser Option ist verpflichtend.Das folgende ist mehr oder weniger optional. Mehr Informationen
enthalten die Anmerkungen unter oder neben den diskutierten
Optionen.#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options MATH_EMULATE #Support for x87 emulationDiese Zeile schaltet die Software-Emulation eines mathematischen
Coprozessors für den Fall, das Ihre Maschine keinen besitzt (386
or 486SX), ein. Wenn Sie einen 386 oder 486SX mit dem
dazugehörigen Coprozessor (387 oder 487), einen 486DX oder
besser (Pentium, Pentium II, etc.) besitzen, können Sie diese
Zeile auskommentieren.Die normalen Emulationsroutinen für den Coprozessor in
FreeBSD sind nicht sehr genau. Wenn Sie
keinen Coprozessor besitzen, sollten Sie hier
GPL_MATH_EMULATE einsetzen, um die
Unterstützung der GNU Routinen zu aktivieren. Wegen der damit
verbundenen Lizenz, ist diese Option in der Voreinstellung nicht
aktiviert.options INET #InterNETworkingNetzwerkunterstützung. Auch wenn Sie nicht planen, den
Rechner mit einem Netzwerk zu verbinden, sollten Sie diese Option
aktiviert lassen. Die meisten Programme sind mindestens auf die
Loopback Unterstützung (Verbindungen mit sich selbst)
angewiesen. Damit ist diese Option im Endeffekt
notwendig.options INET6 #IPv6 communications protocolsAktiviert die Unterstützung für das IPv6
Protokoll.options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]Das Dateisystem für Festplatten. Wenn Sie von einer
Festplatte booten wollen, lassen Sie diese Option aktiviert.options UFS_DIRHASH #Improve performance on big directoriesDiese Option steigert die Geschwindigkeit von Plattenzugriffen
auf großen Verzeichnissen. Dadurch verbraucht das System etwas
mehr Speicher als vorher. Für stark beschäftigte Server
oder Arbeitsplatzrechner sollten Sie diese Option aktiviert lassen.
Auf kleineren Systemen, bei denen Speicher eine kostbare Ressource
darstellt oder Systemen, auf denen die Geschwindigkeit der
Plattenzugriffe nicht wichtig ist, wie Firewalls, können Sie
diese Option abstellen.options SOFTUPDATES #Enable FFS soft updates supportMit dieser Option wird die Unterstützung für Soft
Updates, die Plattenzugriffe beschleunigen, in den Kernel eingebunden.
In den FreeBSD 4.X Versionen ist diese Option voreingestellt, sie wird
aber vielleicht nicht von Ihrem System genutzt. Überprüfen
Sie mit &man.mount.8;, ob die Dateisysteme Soft Updates benutzen. Wenn
nicht, können Sie die Option nachträglich mit
&man.tunefs.8; aktivieren. Für neue Dateisysteme können
Sie Option beim Anlegen mit &man.newfs.8; aktivieren.options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root deviceDas speicherbasierte Dateisystem. Dies ist eine RAM-Disk, die
zum schnellen Zugriff auf temporäre Dateien dient und
nützlich ist, wenn Sie über viel Speicher verfügen.
Eine MFS-Partition eignet sich sehr gut für das
/tmp Verzeichnis, da dort sehr viele Programme
temporäre Daten speichern. Um eine MFS RAM-Disk auf
/tmp einzurichten, fügen Sie die folgende
Zeile in /etc/fstab hinzu:/dev/ad1s2b /tmp mfs rw 0 0Um das Dateisystem einzuhängen, können Sie nun booten
oder rufen das Kommando mount /tmp auf.Kernel OptionenNFSKernel OptionenNFS_ROOToptions NFS #Network Filesystem
options NFS_ROOT #NFS usable as root device, NFS requiredDas Network Filesystem. Wenn Sie keine Partitionen von einem
Unix File-Server über TCP/IP einhängen wollen, können
Sie diese Zeile auskommentieren.Kernel OptionenMSDOSFSoptions MSDOSFS #MSDOS FilesystemDas MS-DOS Dateisystem. Sie können diese Zeile
auskommentieren, wenn Sie nicht vorhaben, eine DOS-Partition beim
Booten einzuhängen. Das nötige Modul wird ansonsten
- automatisch geladen, wenn sie das erste mal eine DOS-Partition
+ automatisch geladen, wenn Sie das erste mal eine DOS-Partition
einhängen. Außerdem können Sie mit den
ausgezeichneten mtools aus der
Ports-Sammlung auf DOS-Floppies zugreifen, ohne diese an- und
abhängen zu müssen (MSDOSFS wird in
diesem Fall nicht benötigt).options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 requiredDas ISO-9660 Dateisystem für CDROMs. Sie können diese
Zeile auskommentieren, wenn Sie kein CDROM-Laufwerk besitzen oder
nur ab und an CDs einhängen. Das Modul wird automatisch
geladen, sobald Sie das erste Mal eine CD einhängen. Für
Audio-CDs benötigen Sie dieses Dateisystem nicht.options PROCFS #Process filesystemDas Prozeß-Dateisystem. Dies ist ein Pseudo-Dateisystem,
das auf /proc eingehangen wird und es Programmen
wie &man.ps.1; erlaubt, mehr Informationen über laufende Prozesse
auszugeben.options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]Stellt die Kompatibilität zu 4.3BSD sicher. Belassen Sie
diese Option, da sich manche Programme recht sonderbar verhalten
werden, wenn Sie diese auskommentieren.options SCSI_DELAY=15000 #Delay (in ms) before probing SCSIDies weist den Kernel an, 15 Sekunden zu warten, bevor er
anfängt nach SCSI-Geräten auf dem System zu suchen. Wenn
- Sie nur IDE-Geräte besizten, können Sie die Anweisung
+ Sie nur IDE-Geräte besitzen, können Sie die Anweisung
ignorieren. Ansonsten können Sie versuchen, den Wert auf 5
Sekunden zu ändern, um das Booten schneller zu machen. Hat
FreeBSD dann Schwierigkeiten Ihre SCSI-Geräte zu erkennen,
sollten Sie den Wert natürlich wieder erhöhen.options UCONSOLE #Allow users to grab the consoleErlaubt es Benutzern, die Konsolenausgabe umzulenken. Starten
Sie einen xterm mit
xterm -C, um Ausgaben von write,
talk oder Kernelmeldungen auf der Konsole darin zu
sehen.options USERCONFIG #boot -c editorDiese Option erlaubt es Ihnen, den Konfigurationseditor aus dem
Bootmenü zu starten.options VISUAL_USERCONFIG #visual boot -c editorDiese Option erlaubt es Ihnen, den Visual-Konfigurationseditor
aus dem Bootmenü zu starten.options KTRACE #ktrace(1) support
- Dies schaltet die Kernel-Prozeßverfolgung (engl. kernel
- process tracing) ein, die sehr nützlich bei der Fehlersuche
- ist.
+ Dies schaltet die Kernel-Prozeßverfolgung
+ (engl. kernel process tracing) ein,
+ die sehr nützlich bei der Fehlersuche ist.options SYSVSHM #SYSV-style shared memoryDiese Option aktiviert die Unterstützung für System V
Shared-Memory. Die XSHM-Erweiterung von X benötigt diese Option
und viele Programme, die Graphik intensiv nutzen, werden die
Erweiterung automatisch benutzen und schneller laufen. Wenn Sie X
benutzen, sollten Sie diese Option auf jeden Fall aktivieren.options SYSVSEM #SYSV-style semaphoresUnterstützung für System V Semaphoren. Dies wird
selten gebraucht, vergrößert aber den Kernel nur um einige
hundert Bytes.options SYSVMSG #SYSV-style message queuesUnterstützung für System V Messages.
Vergrößert den Kernel wiederum nur um einige hundert
Bytes.Programme, die diese System V Erweiterungen benutzen,
können Sie sich mit &man.ipcs.1; anzeigen lassen.options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULINGEchtzeit-Erweiterungen, die 1993 zu POSIX hinzugefügt
wurden. Bestimmte Programme wie Star
Office benutzen diese Erweiterungen.Kernel OptionenICMP_BANDLIMDenial of Service (DoS)options ICMP_BANDLIM #Rate limit bad repliesDiese Option aktiviert die ICMP Bandbreitenbegrenzung für
Antworten. Diese Option sollten Sie aktiviert lassen, da sie Ihre
Maschine vor Denial of Service Angriffen schützt.Kernel OptionenSMP# To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/OBeide Option werden für SMP Unterstützung
benötigt.device isaAlle von FreeBSD unterstützten PCs benötigen diese
Zeile. Zur Zeit können Sie FreeBSD nicht auf einem IBM PS/2
(Microchannel Architektur) laufen lassen, aber an der
Unterstützung für Microchannel wird gearbeitet.device eisaFügen Sie diese Zeile ein, wenn Sie ein EISA-Motherboard
besitzen. Dies aktiviert die Erkennung und Konfiguration von allen
Geräten auf dem EISA Bus.device pciWenn Sie ein PCI-Motherboard besitzen, fügen Sie diese Zeile
ein. Dies aktiviert die Erkennung von PCI-Karten und die PCI-ISA
bridge.# Floppy drives
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1Der Floppy-Controller. fd0 ist das
A: Laufwerk und fd1 ist
das B: Laufwerk.device ata
- Dieser Treiber unterstützt alle ARA und ATAPI Geräte.
+ Dieser Treiber unterstützt alle ATA und ATAPI Geräte.
Eine device ata Zeile reicht aus und der
Kernel wird auf modernen Maschinen alle PCI ATA/ATAPI Geräte
entdecken.device atadisk # ATA disk drivesFür ATAPI Plattenlaufwerke brauchen Sie diese Zeile zusammen
mit device ata.
device atapicd # ATAPI CDROM drivesZusammen mit device ata wird dies für
ATAPI CDROM Laufwerke benötigt.device atapifd # ATAPI floppy drivesZusammen mit device ata wird dies für
ATAPI Floppy Laufwerke benötigt.device atapist # ATAPI tape drivesZusammen mit device ata wird dies für
ATAPI Bandlaufwerke benötigt.options ATA_STATIC_ID #Static device numberingErzwingt wie der alte Treiber eine statische Gerätenummer
für den Controller. Ist diese Option nicht aktiviert, werden
die Gerätenummern dynamisch zugeordnet.# ATA and ATAPI devices
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15Benutzen Sie die obigen Zeilen für ältere Systeme ohne
einen PCI Bus.# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device amd # AMD 53C974 (Teckram DC-390(T))
device dpt # DPT Smartcache - See LINT for options!
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?SCSI Controller. Kommentieren Sie alle Controller aus, die sich
nicht in Ihrem System befinden. Wenn Sie ein IDE-System besitzen,
können Sie alle Einträge entfernen.# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI
access)SCSI Peripheriegeräte. Kommentieren Sie wieder alle
Geräte aus, die Sie nicht besitzen. Besitzer von IDE-Systemen
können alle Einträge entfernen.# RAID controllers
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 familyUnterstützte RAID Controller. Wenn Sie keinen der
aufgeführten Controller besitzen, kommentieren Sie die
Einträge aus oder entfernen sie.# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBDDer Tastatur-Controller (atkbdc) ist für
die Ein- und Ausgabe von AT-Tastaturen und PS/2 Zeigegeräten (z.B.
einer Maus) verantwortlich. Dieser Controller wird vom
Tastaturtreiber (atkbd) und dem PS/2
Gerätetreiber (psm) benötigt.device atkbd0 at atkbdc? irq 1Zusammen mit dem atkbdc Controller bietet der
atkbd Treiber Zugriff auf AT-Tastaturen.device psm0 at atkbdc? irq 12Benutzen Sie dieses Gerät, wenn Sie eine Maus mit PS/2
Anschluß besitzen.device vga0 at isa?Der Grafikkartentreiber.# splash screen/screen saver
pseudo-device splashZeigt einen Splash Screen beim Booten. Diese
Zeile wird auch von den Bildschirmschonern benötigt.# syscons is the default console driver, resembling an SCO console
device sc0 at isa?sc0 ist in der Voreinstellung der Treiber
für die Konsole, die der SCO-Konsole ähnelt. Da die
meisten bildschirmorientierten Programme auf die Konsole mit Hilfe
einer Datenbank wie termcap zugreifen, sollte es
keine Rolle spielen, ob Sie diesen Treiber oder
vt0, den VT220 kompatiblen
Konsolentreiber einsetzen. Wenn Sie Probleme mit
bildschirmorientierten Anwendungen unter dieser Konsole haben, setzen
Sie beim Anmelden die Variable TERM auf den Wert
VT220.# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device vt0 at isa?
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-stdDer VT220 kompatible Konsolentreiber ist kompatibel zu VT100/102.
Auf einigen Laptops, die aufgrund der Hardware inkompatibel zum
sc0 Treiber sind, funktioniert dieser Treiber gut.
Beim Anmelden sollten Sie die Variable TERM auf den
Wert vt100 setzen. Dieser Treiber kann sich als
nützlich erweisen, wenn Sie sich über das Netzwerk auf
vielen verschiedenen Maschinen anmelden, da dort oft Einträge in
termcap oder terminfo
für das sc0 Gerät fehlen. Dagegen
sollte vt100 auf jeder Plattform unterstützt
werden.# Power management support (see LINT for more options)
device apm0 at nexus? disable flags 0x20 # Advanced Power ManagementUnterstützung zur Energieverwaltung. Nützlich für
Laptops.# PCCARD (PCMCIA) support
device card
device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disablePCMCIA Unterstützung. Wenn Sie einen Laptop benutzen,
brauchen Sie diese Zeile.# Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9Es gibt vier serielle Schnittstellen, die in der MS-DOS/Windows
Welt COM1 bis COM4 genannt werden.Wenn Sie ein internes Modem, das COM4 benutzt, besitzen und
eine serielle Schnittstelle haben, die auf COM2 liegt, müssen
Sie den IRQ des Modems auf 2 setzen (wegen undurchsichtigen
technischen Gründen ist IRQ2 =IRQ9). Wenn Sie eine serielle
Multiport-Karte besitzen, sehen Sie die korrekten Werte für
diese Zeilen in &man.sio.4; nach. Einige Graphikkarten, besonders
die auf S3-Chips basierten, benutzen IO-Adressen der Form
0x*2e8 und manche billige serielle Karten
dekodieren den 16-Bit IO-Adreßraum nicht sauber. Dies führt
zu Konflikten und blockiert dann die COM4 Schnittstelle.Jeder seriellen Schnittstelle muß ein eigener IRQ zugewiesen
werden (wenn Sie eine Multiport-Karte verwenden, bei der das Teilen
von Interrupts unterstützt wird, muß das nicht der Fall
sein), daher können in der Voreinstellung COM3 und COM4 nicht
benutzt werden.# Parallel port
device ppc0 at isa? irq 7Die parallele Schnittstelle auf dem ISA Bus.device ppbus # Parallel port bus (required)Unterstützung für den Bus auf der parallelen
Schnittstelle.device lpt # PrinterUnterstützung für Drucker über die parallele
Schnittstelle.Sie brauchen jede der drei Zeilen, um die Unterstützung
für einen Drucker an der parallelen Schnittstelle zu
aktivieren.device plip # TCP/IP over parallelDer Treiber für das Netzwerkinterface über die
parallele Schnittstelle.device ppi # Parallel port interface deviceAllgemeine I/O (geek port) und IEEE1284 I/O
Unterstützung.#device vpo # Requires scbus and daZip LaufwerkDies aktiviert den Treiber für ein Iomega Zip Laufwerk.
Zusätzlich benötigen Sie noch die Unterstützung
für scbus und da. Die
beste Performance erzielen Sie, wenn Sie die Schnittstelle im EPP 1.9
Modus betreiben.# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip)
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device tx # SMC 9432TX (83c170 EPIC)
device vx # 3Com 3c590, 3c595 (Vortex)
device wx # Intel Gigabit Ethernet Card (Wiseman)Verschiedene Treiber für PCI-Netzwerkkarten. Geräte,
die sich nicht in Ihrem System befinden, können Sie entfernen oder
auskommentieren.# PCI Ethernet NICs that use the common MII bus controller code.
device miibus # MII bus supportEinige PCI 10/100 Ethernet Netzwerkkarten, besonders die, die
MII-fähige Transceiver verwenden oder Transceiver-Steuerungen
implementieren, die ähnlich wie MII funktionieren,
benötigen die Unterstützung für den MII-Bus. Die
Zeile device miibus fügt dem Kernel die
Unterstützung für das allgemeine miibus API und allen
PHY-Treibern hinzu.device dc # DEC/Intel 21143 and various workalikes
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Treiber, die den MII Bus Controller Code benutzen.# ISA Ethernet NICs.
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
device fe0 at isa? port 0x300
device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# requires PCCARD (PCMCIA) support to be activated
#device xe0 at isa?Treiber für ISA Ethernet Karten. Schauen Sie in
/usr/src/sys/i386/conf/LINT nach, um zu sehen,
welche Karte von welchem Treiber unterstützt wird.pseudo-device ether # Ethernet supportether brauchen Sie nur, wenn Sie eine
Ethernet-Karte besitzen. Der Treiber unterstützt das
Ethernet-Protokoll.pseudo-device sl 1 # Kernel SLIPsl aktiviert die SLIP Unterstützung.
SLIP ist fast vollständig von PPP verdrängt worden, da
letzteres leichter zu konfigurieren, besser geeignet für Modem
- zu Modem Kommunikation und mächtiger ist. Die
+ zu Modem Kommunikation und mächtiger ist. Die
Zahl hinter sl gibt der
Anzahl der gleichzeitigen SLIP-Verbindungen an, die unterstützt
werden.pseudo-device ppp 1 # Kernel PPPDies ist Kernel Unterstützung für PPP
Wählverbindungen. Es existiert auch eine PPP Version im
Userland, die den tun Treiber benutzt. Die
Userland Version ist flexibler und bietet mehr Option wie die Auswahl
auf Anforderung. Die Zahl hinter
ppp gibt die Anzahl gleichzeitiger PPP
Verbindungen an, die unterstützt werden.pseudo-device tun # Packet tunnel.Dies wird vom der Userland PPP benutzt. Die
Zahl hinter tun gibt
die Anzahl der unterstützten gleichzeitigen Verbindungen an.
Weitere Informationen erhalten Sie im Abschnitt PPP
dieses Handbuchs.
pseudo-device pty # Pseudo-ttys (telnet etc)Dies ist ein Pseudo-Terminal oder simulierter
Login-Terminal. Er wird von einkommenden telnet
und rlogin Verbindungen,
xterm und anderen Anwendungen wie
emacs benutzt. Eine
Zahl hinter pty gibt
die Anzahl der zu erstellenden ptys an. Wenn Sie
mehr Verbindungen als die 16 erlaubten in der Voreinstellung brauchen,
erhöhen Sie diesen Wert bis zu einem Maximum von 256.pseudo-device md # Memory disksPseudo-Gerät für Speicher-Laufwerke.pseudo-device gifoderpseudo-device gif 4 # IPv6 and IPv4 tunnelingDieses Gerät tunnelt IPv6 über IPv4, IPv4 über
IPv6, IPv4 über IPv4 oder IPv6 über IPv6. Ab FreeBSD 4.4
kann die Zahl der benötigten Geräte vom System bestimmt
werden, so daß Sie die erste Zeile (ohne eine Zahl hinter
gif) verwenden sollten. Auf früheren
Systemen ist die Angabe der Anzahl der Geräte verpflichtend.pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)Dieses Pseudo-Gerät fängt zu ihm gesendete Pakete ab
und leitet Sie zu einem Dæmon weiter, der Verkehr zwischen IPv4
und IPv6 vermittelt.# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device bpf # Berkeley packet filterDas ist der Berkeley Paketfilter. Dieses Pseudo-Gerät kann
Netzwerkkarten in den promiscuous Modus setzen und
erlaubt es damit, Pakete auf einem Broadcast Netzwerk (z.B. einem
Ethernet) einzufangen. Die Pakete können auf der Festplatte
gespeichert und mit &man.tcpdump.1; untersucht werden.Das bpf Pseudo-Gerät wird von
&man.dhclient.8; genutzt, um die IP-Adresse des Default-Routers
zu bekommen. Wenn Sie DHCP benutzen, lassen Sie diese Option bitte
aktiviert.# USB support
#device uhci # UHCI PCI->USB interface
#device ohci # OHCI PCI->USB interface
#device usb # USB Bus (required)
#device ugen # Generic
#device uhid # Human Interface Devices
#device ukbd # Keyboard
#device ulpt # Printer
#device umass # Disks/Mass storage - Requires scbus and da
#device ums # Mouse
# USB Ethernet, requires mii
#device aue # ADMtek USB ethernet
#device cue # CATC USB ethernet
#device kue # Kawasaki LSI USB ethernetUnterstützung für verschiedene USB Geräte.Mehr Informationen und weitere von FreeBSD unterstützte
Geräte entnehmen Sie bitte
/usr/src/sys/i386/conf/LINT.Gerätedateien erstellen
- Gerätedateien
+ GerätedateiMAKEDEVZu fast jedem Gerät gehört eine Datei in
/dev, die zwar wie eine reguläre Datei
aussieht,tatsächlich aber eine Schnittstelle zum Kernel ist, die
Programme benutzen, um Zugriff auf das Gerät zu erlangen.
Das Shellskript /dev/MAKEDEV, das auch bei der
Installation des Systems ausgeführt wird, erstellt fast alle
unterstützten Gerätedateien. Es legt aber nicht
alle Gerätedateien an, das heißt, wenn
Sie im Kernel Unterstützung für ein neues Gerät
hinzugefügt haben, sollten Sie überprüfen, ob die
entsprechenden Einträge in dev vorhanden
sind. Wenn nicht, dann legen Sie sie, wie im folgenden Beispiel einfach
- an:
+ an.
Angenommen, Sie wollen den Kernel um Unterstützung für
IDE-CDROMs erweitern. Dann müssen Sie folgende Zeile in der
Konfigurationsdatei einfügen:device acd0Nun suchen Sie in /dev nach Dateien, die
mit acd0 beginnen, möglicherweise mit
c enden oder ein r vorgestellt
haben (der Eintrag für das rohe Gerät).
Wenn Sie die Einträge nicht finden, wechseln Sie in
/dev und führen dort das folgende Kommando
aus:MAKEDEV&prompt.root; sh MAKEDEV acd0Nun sollten die Einträge acd0c und
racd0c in /dev vorhanden
sein.Das folgende Kommando legt die passenden Einträge für
Soundkarten an:&prompt.root; sh MAKEDEV snd0Wenn Sie Gerätedateien für Geräte wie
Soundkarten erstellen und andere Leute Zugriff auf Ihren Rechner
haben, wollen Sie vielleicht diese Geräte vor Zugriffen von
außen schützen. Sie erreichen dies, in dem Sie das
Gerät in /etc/fbtab aufnehmen. Weitere
Informationen stellt &man.fbtab.5; zur Verfügung.Folgen Sie dieser Prozedur für alle Geräte, die nicht
in GENERIC eingetragen sind.Da alle SCSI Controller die gleichen Einträge in
/dev benutzen, brauchen Sie diese nicht erstellen.
Weiterhin haben Netzwerkkarten sowie SLIP/PPP-Pseudo-Geräte keine
Einträge in /dev.
Wenn etwas schiefgehtEs gibt fünf Hauptfehlerquellen beim Erstellen eines
angepaßten Kernels:config verursacht Fehler:Wenn config mißlingt, liegen
Fehler in der Kernelkonfigurationsdatei vor. Zum Glück
gibt config die die Zeilennummer der
Fehlerstelle an, so daß Sie diese schnell in
vi finden können. Beispielsweise
könnten Sie folgende Fehlermeldung sehen:config: line 17: syntax errorIm Befehlsmodus von vi können Sie
sofort zur fraglichen Stelle springen, in dem Sie
17G eingeben. Überprüfen Sie
dort durch Vergleichen mit GENERIC,
ob das Schlüsselwort richtig geschrieben ist.make verursacht Fehler:Wenn make mißlingt, liegen meistens
ebenfalls Fehler in der Konfigurationsdatei vor, die aber so
- speziell sind, daß config sie nicht
- findet. Überprüfen Sie wiederum Ihre Konfiguration
+ speziell sind, daß config sie nicht
+ findet. Überprüfen Sie wiederum Ihre Konfiguration
und wenn Sie keinen Fehler entdecken können, schicken Sie
- eine Mail mit Ihrer Kernelkonfiguration an die Mailingliste &a.de.questions;. Sie
- sollten dann schnell Hilfe erhalten.
+ eine Mail mit Ihrer Kernelkonfiguration an die Mailingliste
+ &a.de.questions;. Sie sollten dann schnell Hilfe erhalten.
Der neue Kernel läßt sich nicht
installieren:Wenn das Übersetzen des Kernels geklappt hat aber die
Installation nicht, weil make install oder
make installkernel fehlgeschlagen ist,
sollten Sie zuerst überprüfen, ob Ihr System in der
- Sicherheitsstufe 1 (engl. secure level) läuft (siehe
+ Sicherheitsstufe 1 (engl.
+ secure level) läuft (siehe
&man.init.8;). Ihr alter Kernel ist durch die Immutable Option
vor Veränderungen geschützt und die
Installationsprozedur versucht, diese Option vom alten Kernel
zu entfernen und auf den neuen Kernel zu setzen. Da in der
Sicherheitsstufe 1 die Immutable Option nicht gesetzt werden
kann, muß die Installation des Kernels in der
Sicherheitsstufe 0 oder einer niedrigeren stattfinden.Der Kernel bootet nicht:Wenn der Kernel nicht booten will, ist das noch lange kein
Grund zur Panik. Denn BSD besitzt exzellente Mechanismen zur
Wiederherstellung nach dem Einsatz inkompatibler Kernel.
Den Kernel, mit dem Sie booten wollen, können Sie sich
im FreeBSD Boot Loader aussuchen. In den Loader gelangen Sie,
in dem Sie einfach eine Taste außer
Enter drücken, wenn das System von 10
herunterzählt. Geben Sie dann unload
ein und mit boot kernel.old booten Sie den alten Kernel. Sie können hier
natürlich auch den Dateinamen eines anderen Kernels, der
sauber bootet angeben. Für alle Fälle sollten Sie
immer einen Kernel, der garantiert bootet, bereit
halten.Nun können Sie die Konfiguration noch einmal
überprüfen und den Kernel neu kompilieren. Dazu
ist /var/log/messages sehr nützlich,
da hier sämtliche Kernelmeldungen von jedem erfolgreichen
Bootvorgang gespeichert werden. &man.dmesg.8; gibt Ihnen die
Kernelmeldungen vom letzten Bootvorgang aus.Heben Sie sich immer einen GENERIC
oder einen anderen Kernel, der garantiert bootet, für
den Fall, daß Sie Probleme bei dem Bau des Kernels
bekommen, auf. Der Name dieses Kernels sollte so
gewählt sein, daß er beim nächsten Bau nicht
überschrieben wird. Sie können sich nicht auf
kernel.old verlassen, da dieser Kernel
durch den zuletzt installierten Kernel, der vielleicht schon
kaputt war, ersetzt wird, wenn Sie installieren. Kopieren
Sie einen laufenden Kernel so schnell wie möglich an die
richtige Stelle (/kernel), oder Kommandos
wie &man.ps.1; werden nicht richtig funktionieren. Um einen
anderen Kernel an die richtige Stelle zu schieben,
müssen Sie zuerst die Immutable Option von dem Kernel
entfernen, den make installiert
hat:&prompt.root; chflags noschg /kernelWenn Sie den Befehl nicht ausführen können,
befinden Sie sich in einer höheren Sicherheitsstufe als 0.
Setzen Sie in /etc/rc.conf die Variable
kern_securelevel auf -1
und booten Sie danach. Wenn der neue Kernel funktioniert,
können Sie die Variable wieder auf Ihren alten Wert
zurücksetzen.Wenn Sie den neuen Kernel, oder allgemein eine Datei,
mit der Immutable Option versehen wollen, um sie vor
Veränderungen zu schützen, führen Sie
folgenden Befehl aus:&prompt.root; chflags schg /kernelDer Kernel ist in Ordnung, aber ps geht
nicht mehr!:Wenn Sie eine andere Version des Kernels installiert haben
als die, mit der Ihre Systemwerkzeuge gebaut wurden
(beispielsweise einen 4.X Kernel auf einem 3.X System), werden
Programme wie &man.ps.1; und &man.vmstat.8; nicht mehr
funktionieren. Sie müssen nun die
libkvm und die entsprechenden Programme
neu kompilieren. Das ist ein Grund dafür, warum man nie
einen Kernel, der nicht zur Systemversion paßt, benutzten
sollte.
diff --git a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
index 72702ce399..24d3e5d1bf 100644
--- a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
@@ -1,959 +1,959 @@
Lokalisierung - I18N/L10N Einrichtung und BenutzungGeschrieben von &a.ache;Überarbeitet von Michael Chin-Yuan Wu
keichii@mail.utexas.edu, 6 März 2000.Übersetzt von &a.alex;, Juli 2000.ÜbersichtDieser Teil des Handbuchs behandelt die Internationalisierung
und die lokale Anpassung von FreeBSD and die Bedürfnisse der
verschiedenen Länder und deren Gegebenheiten.
Wenn der Benutzer eine andere Sprache als die vorgegebene
Standard-Einstellung, Englisch, benutzen möchte, muß
er das System entsprechend einrichten. Bitte beachten Sie,
daß Unterstützung für verschiedene Sprachen im
Umfang variiert. Von daher sollte jeder FreeBSD Benutzer sich
mit der Gruppe in Verbindung setzen, die für die
Sprachünterstütung für seine Sprache
zuständig ist.Der Autor bemerkt, daß seine Beschreibung des i18n
Prozesses eventuell unvollständig sein kann. Wegen der
Unterschiede unter den einzelnen Sprachanpassungen empfehlen wir
Ihnen, Dokumentation, die direkt auf Ihre Sprache zugeschnitten
- ist, wie Manpages, READMEs usw., zu konsultieren.
+ ist, wie Manualpages, READMEs usw., zu konsultieren.
Sollten Sie weitere Fragen oder Vorschläge haben,
schreiben Sie bitte dem Autor.GrundlagenWas ist i18n/l10n?Entwickler kürzen das Wort internationalization
(englisch für Internationalisierung) auf
die Buchstaben i18n ab, wobei 18
die Anzahl der Buchstaben zwischen erstem und letzten
Buchstaben des Wortes ist. l10n benutzt die gleiche
Namensgebung, eine Abkürzung des Wortes
localization (englisch für
Lokalisierung, lokale Anpassung).
Kombiniert erlauben die i18n/l10n Methoden den Benutzern,
Protokolle und Anwendungen an Ihre Vorlieben
anzupassen.I18n Anwendungen wurden programmiert mit Hilfe von i18n
Bibliotheken. Diese erlauben es Entwicklern, eine einfache
Sprach-Datei zu schreiben und Menüleisten und Texte
so an jede Sprache anzupassen.
Wir möchten Programmierern empfehlen,
für ihre eigenen Anwendungen auf diese Techniken
zurückzugreifen.Wieso soll ich i18n/l10n Benutzen?I18n/l10n wird immer dann benutzt, wenn Sie Anzeigen,
Eingaben oder die Verarbeitung von Daten in Sprachen anders
als Englisch wünschen.Welche Sprachen werden von i18n unterstützt?I18n and l10n sind nichts FreeBSD spezifisches.
Momentan können Sie unter den meisten der verbreitetsten
Sprachen der Welt wählen, unter anderen Chinesisch,
Japanisch, Französisch, Russisch, aber auch
Deutsch.Lokale Anpassungen benutzenIn seiner ganzen Schönheit ist l10n nichts, was auf
FreeBSD alleine beschränkt ist, im Gegenteil, es ist eine
Konvention, an die sich viele Programme für verschiedene
Betriebssysteme halten. Wir möchten Sie anregen, FreeBSD
bei der Unterstützung dieser Konvention zu helfen.Lokale Anpassungen basieren auf drei Schlagwörtern:
Language Code, Country Code und Kodierung. Locale Namen (die
verschiedenen Anpassungen an eine Sprache werden
Locale genannt) werden aus den oben genannten
Schlagwärtern wie folgt zusammengesetzt:LanguageCode_CountryCode.KodierungLanguage und Country Codes
- Um ein FreeBSD (oder ein anderes UNIX, das i18n unterstützt)
+ Um ein FreeBSD (oder ein anderes Unix, das i18n unterstützt)
an lokale Gegenheiten und Sprachen anzupassen, muß der
Benutzer herausfinden, welche Codes für sein Land
(Country) und seine Sprache
(Language) benutzt werden. Country Codes geben
den Anwendungen dabei vor, welche Variation einer bestimmten
Sprache zu benutzen ist. Eine Variation von Deutsch wäre
z.B. de_CH, das eine lokale Anpassung an das in der Schweiz
gesprochene Deutsch meint.
Außerdem benutzen Webbrowser, SMTP/POP Server, Webserver
usw. diese, um Entscheidungen über die Sprache zu
fällen. Im Folgenden sind einzige Beispiele für
Language/Country Codes aufgelistet:Language/Country CodeBeschreibungen_USEnglish - United Statesru_RURussisch für Russlandzh_TWTraditionelles Chinesich für TaiwanKodierungenEinige Sprachen benutzen Kodierungen, die nicht dem 7-bit
breitem ASCII-Standard entsprechend, so wie 8-bit Kodierungen
oder wide- oder multibyte Characters. &man.mulltibyte.3;
geht darauf näher ein. Ältere Anwendungen erkennen
diese Zeichen nicht und halten sie fälschlicherweise
für Kontroll-Zeichen. Neuere Anwendungen erkennen 8-bit
Zeichen für gewöhnlich. Es hängt allerdings
von der Implementierung ab, ob man eine Anwendung neu
kompilieren muß, um in den Genuß von lokalen
Zeichensätzen kommt, oder ob man es sie nur
nachträglich konfigurieren muß.
Um es möglich zu machen, wide oder multibyte Zeichen
einzugeben und zu verarbeiten, unterstützt die FreeBSD Ports Collection
verschiedene Sprachen für diverse Programme. Bitte
konsultieren Sie die i18n Dokumentation des entsprechenden
FreeBSD-Ports.In den meisten Fällen muß der Benutzer in die
Dokumentation des Programmes schauen, um herauszufinden, wie
man es entsprechend für die eigene Sprache und
Zeichensätze konfiguriert, oder welche Optionen beim
Compilieren zu setzen sind.Einige Dinge, die man im Hinterkopf behalten sollte, sind:Sprach-bezogene einzelne Zeichensätze
(siehe &man.multibyte.3;), d.h. ISO_8859-1, KOI8-R, CP437.Wide oder multibyte Kodierungen, d.h. EUC, Big5.Eine aktuelle Liste der Zeichensätze ist
verfügbar in der
IANA Registry.I18n AnwendungenIm FreeBSD Ports und Paket-System werden i18n Anwendungen
mit einem i18n im Namen gekennzeichnet,
damit man sie leicht identifizieren kann. Trotzdem kann es
vorkommen, dass die benötigte Sprache nicht immer
unterstützt wird.Einstellen der LocaleTheoretisch muß man nur den Wert der
LANG variable in der Loginshell setzen, was
normalerweise in der ~/.login_conf des
users oder in der Login-Shell-Konfiguration
configuration (~/.profile,
~/.bashrc, ~/.cshrc)
passiert.
Dieses sollte alle spezielleren Variablen, wie
LC_CTYPE, LC_CTIME usw.,
setzen. Sie sollten sprach-bezogene FreeBSD Dokumentation
zu Rate ziehen, wenn Sie mehr Informationen wünschen.Sie sollten die zwei folgenden Variablen in Ihren
Konfigurations-Dateien setzen:LANG für Funktionen der
POSIX &man.setlocale.3; FamilieMM_CHARSET für den MIME
Zeichensatz der AnwendungenDieses schließt die Shell-Konfiguration, die
Konfiguration jeder Anwendung und die X11 Konfiguration ein.Einstellen der Locale - MethodenEs gibt zwei Wege, die Locale zu setzen, und beide
werden im Folgenden beschrieben.
Die erste (und empfohlene) Methode ist, die
Umgebungsvariablen in der
Login-Klasse
zu setzen, die zweite ist, sie in den
Start-Dateien
der Shell zu setzen.Login Classes MethodThis method allows environment variables needed for locale
name and MIME character sets to be assigned once for every
possible shell instead of adding specific shell assignments to
each shell's startup file. User
Level Setup can be done by an user himself and Administrator Level Setup require
superuser privileges.User Level SetupHere is a minimal example of a
.login_conf file in user's home
directory which has both variables set for Latin-1
encoding:
me:My Account:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO_8859-1:See Administrator Level
Setup and &man.login.conf.5; for more details.Administrator Level SetupCheck that /etc/login.conf have the
correct language user's class. Make sure these settings
appear in /etc/login.conf:language_name:accounts_title:\
:charset=MIME_charset:\
:lang=locale_name:\
:tc=default:So sticking with our previous example using Latin-1, it
would look like this:
german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO_8859-1:\
:tc=default:Changing Login Classes with &man.vipw.8;Use vipw to add new users, and make
the entry look like this:
user:password:1111:11:language:0:0:User Name:/home/user:/bin/shChanging Login Classes with &man.adduser.8;Use adduser to add new users, and do
the following:Set defaultclass =
language in
/etc/adduser.conf. Keep in mind
you must enter a default class for
all users of other languages in this case.An alternative variant is answering the specified
language each time that
Enter login class: default []:
appears from &man.adduser.8;Another alternative is to use the following for each
user of a different language that you wish to
add:&prompt.root; adduser -class languageChanging Login Classes with &man.pw.8;If you use &man.pw.8; for adding new users, call it in
this form:&prompt.root; pw useradd user_name -L languageShell Startup File MethodThis method is not recommended because it requires a
different setup for each possible login program chosen. Use
the Login Class Method
instead.To add the locale name and MIME character set, just set
the two environment variables shown below in the
/etc/profile and/or
/etc/csh.login shell startup files. We
will use the German language as an example below:In /etc/profile:LANG=de_DE.ISO_8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETOr in /etc/csh.login:setenv LANG de_DE.ISO_8859-1setenv MM_CHARSET ISO-8859-1Alternatively, you can add the above instructions to
/usr/share/skel/dot.profile (similar to
what was used in /etc/profile above), or
/usr/share/skel/dot.login (similar to
what was used in /etc/csh.login
above).For X11:In $HOME/.xinitrc:LANG=de_DE.ISO_8859-1; export LANGOr:setenv LANG de_DE.ISO_8859-1Depending on your shell (see above).Console SetupFor all single C chars character sets, set the correct
console fonts in /etc/rc.conf for the
language in question with:
font8x16=font_name
font8x14=font_name
font8x8=font_nameThe font_name here is taken from
the /usr/share/syscons/fonts directory,
without the .fnt suffix.Also be sure to set the correct keymap and screenmap for your
single C chars character set through
/stand/sysinstall.
Once inside sysinstall, choose Configure, then
Console. Alternatively, you can add the
following to /etc/rc.conf:
scrnmap=screenmap_name
keymap=keymap_name
keychange="fkey_number sequence"The screenmap_name here is taken
from the /usr/share/syscons/scrnmaps
directory, without the .scm suffix. A
screenmap with a corresponding mapped font is usually needed as a
workaround for expanding bit 8 to bit 9 on a VGA adapter's font
character matrix in pseudographics area, i.e., to move letters out
of that area if screen font uses a bit 8 column.If you have the following settings, insert the
kernel config specified in the paragraph after the list.Console uses a screen font that utilizes 8-bit column font
character.The moused daemon is enabled by setting the following in
your /etc/rc.conf:moused_enable="YES"A workaround for expanding 8-bit to 9-bit on a VGA adapter
is usually needed for the above settings. This workaround
disables 8-bit to 9-bit expansion of the font character with the
mouse cursor the sc0 console driver. To enable the workaround,
insert the following line into the kernel config.
options SC_MOUSE_CHAR=0x03The keymap_name here is taken from
the /usr/share/syscons/keymaps directory,
without the .kbd suffix.The keychange is usually needed to program
function keys to match the selected terminal type because
function key sequences can not be defined in the key map.Also be sure to set the correct console terminal type in
/etc/ttys for all ttyv*
entries. Current pre-defined correspondences are:Character SetTerminal TypeISO-8859-1 or ISO-8859-15cons25l1ISO-8859-2cons25l2KOI8-Rcons25rCP437 (hardware default)cons25For wide or multibyte characters languages, use the correct
FreeBSD port in your
/usr/ports/language
directory. Some ports appear as console while the system sees it
as serial vtty's, hence you must reserve enough vtty's for both
X11 and the pseudo-serial console. Here is a partial list of
applications for using other languages in console:LanguageLocationTraditional Chinese (BIG-5)/usr/ports/chinese/big5conJapanese/usr/ports/japanese/ja-kon2-* or
/usr/ports/japanese/Mule_WnnKorean/usr/ports/korean/ko-hanX11 SetupAlthough X11 is not part of the FreeBSD Project, we have
included some information here for FreeBSD users. For more
details, refer to the XFree86
web site or whichever X11 Server you use.In ~/.Xresources, you can additionally
tune application specific i18n settings (e.g., fonts, menus,
etc.).Displaying FontsInstall the X11 True Type-Common server (XTT-common) and
install the language truetype fonts. Setting the correct
locale should allow you to view your selected language in menus
and such.Inputting Non-English CharactersThe X11 Input Method (XIM) Protocol is a new standard for
all X11 clients. All X11 applications should be written as XIM
clients that take input from XIM Input servers. There are
several XIM servers available for different languages.Printer SetupSome single C chars character sets are usually hardware
coded into printers. Wide or multibyte
character sets require special setup and we recommend using
apsfilter. You may also convert the
document to Postscript or PDF formats using language specific
converters.Kernel and File SystemsThe FreeBSD FFS filesystem is 8-bit clean, so it can be used
with any single C chars character set (see &man.multibyte.3;),
but there is no character set
name stored in the filesystem; i.e., it is raw 8-bit and does not
know anything about encoding order. Officially, FFS does not
support any form of wide or multibyte character sets yet. However, some
wide or multibyte character sets have independent patches for FFS
enabling such support. They are only temporary unportable
solutions or hacks and we have decided to not include them in the
source tree. Refer to respective languages' web sites for more
informations and the patch files.The FreeBSD MS-DOS filesystem has the configurable ability to
convert between MS-DOS, Unicode character sets and chosen
FreeBSD filesystem character sets. See &man.mount.msdos.8; for
details.Advanced TopicsIf you wish to compile i18n applications or program i18n
compliant applications, please read this section.Compiling i18n ProgramsMany FreeBSD Ports have been ported with i18n support. Some
of them are marked with -i18n in the port name. These and many
other programs have built in support for i18n and need no special
consideration.However, some applications such as MySQL need to be have the
Makefile configured with the specific
charset. This is usually done in the
Makefile or done by passing a value to
configure in the source.Programming i18n Compliant ApplicationsTo make your application more useful for speakers of other
languages, we hope that you will program i18n compliant. The GNU
gcc compiler, GUI Libraries like QT and GTK support i18n through
special handling of strings. Making a program i18n compliant is
very easy. It allows contributors to port your application to
other languages quickly. Refer to library specific i18n
documentation for more details.To the contrary of common perception, i18n compliant code is
easy to write. Usually, it only involves wrapping your strings
with library specific functions. In addition, please be sure to
allow for wide or multibyte characters support.A Call to Unify the i18n effortIt has come to our attention that the individual i18n/l10n
efforts for each country has been repeating each others'
efforts. Many of us have been reinventing the wheel repeatedly
and inefficiently. We hope that the various major groups in
i18n could congregate into a group effort similar to the Core
Team's responsibility.Currently, we hope that, when you write or port i18n
programs, you would send it out to each country's related
FreeBSD mailing lists for testing. In the future, we hope to
create applications that work in all the languages
out-of-the-box without dirty hacks.Perl and PythonPerl and Python have i18n and wide characters handling
libraries. Please use them for i18n compliance.In older FreeBSD versions,
Perl may gives warning about not having a wide characters locale
that is already installed in your system. You can set the
environmental variable LD_PRELOAD to
/usr/lib/libxpg4.so in your shell.In sh-based shells:LD_PRELOAD=/usr/lib/libxpg4.soIn C-based shells:setenv LD_PRELOAD /usr/lib/libxpg4.soLocalizing FreeBSD to Specific LanguagesRussian Language (KOI8-R encoding)Originally contributed by
&a.ache;.For more information about KOI8-R encoding, see the KOI8-R References
(Russian Net Character Set).Locale SetupPut the following lines into your
~/.login_conf file:
me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:See earlier in this chapter for examples of setting up the
locale.Console SetupAdd the following to your kernel configuration
file:
options SC_MOUSE_CHAR=0x03Use following settings in
/etc/rc.conf:
keymap="ru.koi8-r"
keychange="61 ^[[K"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"Note that the ^[ here stands for a
real Escape character (\033) entered directly in
/etc/rc.conf, not for sequence of two
characters '^' and '['.For each ttyv* entry in
/etc/ttys, use
cons25r as the terminal type.See earlier in this chapter for examples of setting up the
console.Printer SetupSince most printers with Russian characters come with
hardware code page CP866, a special output filter is needed for
KOI8-R -> CP866 conversion. Such a filter is installed by
default as /usr/libexec/lpr/ru/koi2alt.
A Russian printer /etc/printcap entry
should look like:
lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:See &man.printcap.5; for a detailed description.MS-DOS FS and Russian FilenamesThe following example &man.fstab.5; entry enables support
for Russian filenames in mounted MS-DOS filesystems:
/dev/ad0s2 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0See &man.mount.msdos.8; for a detailed description of the
and options.X11 SetupDo non-X locale
setup first as described.The Russian KOI8-R locale
may not work with old XFree86 releases (lower than 3.3).
The XFree86 port from
/usr/ports/x11/XFree86 already is the
most recent XFree86 version, so it will work if you
install XFree86 from the port. This should not be an
issue unless you are using an old version of
FreeBSD.Go to the
/usr/ports/russian/X.language directory
and issue the following command:&prompt.root; make installThe above port installs the latest version of the KOI8-R
fonts. XFree86 3.3 already has some KOI8-R fonts, but these
are scaled better.Check the "Files" section
in your /etc/XF86Config file.
The following
lines must be added before any other
FontPath entries:
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"If you use a high resolution video mode, swap the 75 dpi
and 100 dpi lines.To activate a Russian keyboard, add the following to the
"Keyboard" section of your
XF86Config file:
XkbLayout "ru"
XkbOptions "grp:caps_toggle"Also make sure that XkbDisable is
turned off (commented out) there.The RUS/LAT switch will be CapsLock.
The old CapsLock function is still
available via Shift+CapsLock (in LAT mode
only).If you have Windows keys on your keyboard,
and notice that some non-alphabetical keys are mapped
incorrectly in RUS mode, add the following line in your
XF86Config file:
XkbVariant "winkeys"The Russian XKB keyboard may not work with old XFree86
versions, see the above
note for more information. The Russian XKB
keyboard may also not work with non-localized
applications as well. Minimally localized applications
should call a XtSetLanguageProc (NULL, NULL,
NULL); function early in the program.
See
KOI8-R for X-Window for more instructions on
localizing X11 applications.Traditional Chinese Localization for TaiwanThe FreeBSD-Taiwan Project has an i18n/l10n tutorial for
FreeBSD at http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html
using many /usr/ports/chinese/* applications.
The editor for the zh-l10n-tut is Clive Lin
Clive@CirX.org. You can also cvsup the following
collections at freebsd.sinica.edu.tw:CollectionDescriptionoutta-port tag=.Beta-quality Ports Collection for Chinesezh-l10n-tut tag=.Localizing FreeBSD Tutorial in BIG-5 Traditional
Chinesezh-doc tag=.FreeBSD Documentation Translation to BIG-5 Traditional
ChineseChuan-Hsing Shen s874070@mail.yzu.edu.tw has
created the Chinese
FreeBSD Collection (CFC) using FreeBSD-Taiwan's
zh-l10n-tut. The packages and the script files
are available at ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/.German Language Localization (For All ISO 8859-1
Languages)Slaven Rezic eserte@cs.tu-berlin.de wrote a
tutorial how to use umlauts on a FreeBSD machine. The tutorial
is written in German and available at http://www.de.FreeBSD.org/de/umlaute/.Japanese and Korean Language LocalizationFor Japanese, refer to http://www.jp.FreeBSD.org/,
and for Korean, refer to http://www.kr.FreeBSD.org/.Non-English FreeBSD DocumentationSome FreeBSD contributors have translated parts of FreeBSD to
other languages. They are available through links on the main site or in
/usr/share/doc.
diff --git a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
index c25640603a..961e8cd9fe 100644
--- a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
@@ -1,633 +1,659 @@
MosesMooreVon BenediktKöhlerÜbersetzt von UwePierau
- Übersetzt von SoundZusammenfassungFreeBSD unterstützt viele unterschiedliche Soundkarten,
die Ihnen den Genuss von Highfidelity-Klängen auf Ihrem
Computer ermöglichen. Dazu gehört unter anderem die
Möglichkeit, Tonquellen in den Formaten MPEG Audio Layer 3
(MP3), WAV, Ogg Vorbis und vielen weiteren Formaten aufzunehmen
und wiederzugeben. Darüber hinaus enthält die FreeBSD
- Ports Collection Anwendungen, die Ihnen das Bearbeiten Ihrer
+ Ports-Sammlung Anwendungen, die Ihnen das Bearbeiten Ihrer
aufgenommenen Tonspuren, das Hinzufügen von Klangeffekten
und die Kontrolle der angeschlossenen MIDI-Geräte
erlauben.Nach dem Lesen dieses Kapitels werden Sie wissen:
- Wie Sie Ihre Soundkarte
+ Wie Sie Ihre Soundkarte
bestimmen.Wie Sie Ihr System so einstellen, dass die
Soundkarte richtig erkannt wird.Einige Methoden und Beispielanwendungen, mit
denen Sie das korrekte Funktionieren Ihrer Soundkarte
überprüfen können.Wie Sie Fehler in Ihren
Soundkarten-Einstellungen finden.Wie Sie MP3s wiedergeben und
erzeugen.Wie Sie CD-Tonspuren in Dateien
rippen.Bevor Sie dieses Kapitel leben, sollten Sie:Wissen, wie Sie einen neuen Kernel
konfigurieren und installieren ().Bestimmen des korrekten GerätsPCIISASoundkartenZunächst sollten Sie in Erfahrung bringen, welches
- Modell Ihrer Soundkarte Sie haben, welcher Chip sie benutzt und
+ Modell Ihrer Soundkarte Sie haben, welchen Chip sie benutzt und
ob es sich um eine PCI- oder ISA-Karte handelt. FreeBSD
unterstützt eine ganze Reihe sowohl von PCI- als auch von
ISA-Karten. Wenn Ihre Soundkarte in der folgenden Liste nicht
- auftaucht, konsultieren Sie die &man.pcm.4; Manual-Seite. Diese
+ auftaucht, konsultieren Sie die &man.pcm.4; Manualpage. Diese
Liste ist zwar nicht vollständig, deckt jedoch einige der
verbreitetsten Karten ab.Crystal 4237, 4236, 4232, 4231Yamaha OPL-SAxOPTi931Ensoniq AudioPCI 1370/1371ESS Solo-1/1ENeoMagic 256AV/ZXSound Blaster Pro, 16, 32, AWE64, AWE128, LiveCreative ViBRA16Advanced Asound 100, 110, and Logic ALS120ES 1868, 1869, 1879, 1888Gravis UltraSoundAureal Vortex 1 or 2KernelKonfigurationUm Ihre Soundkarte benutzen zu können, müssen Sie
den richtigen Gerätetreiber laden. Dafür gibt es mehrere
Möglichkeiten: Am einfachsten ist es, mit &man.kldload.8; das
entsprechende Kernel-Modul für Ihre Soundkarte zu laden. Sie
können aber auch die Unterstützung Ihrer Soundkarte
statisch in den Kernel hineinkompilieren. Der folgende Abschnitt
erklärt diese Methode. Weitere Informationen über das
Kompilieren eines Kernels erhalten sie in dem Kapitel Kernelkonfiguration.Creative, Advance und ESS Soundkarten
- Haben Sie eine dieser Karten, müssen Sie
+ Für jede dieser Karten fügen Sie die folgende Zeile
+ zu Ihrer Kernelkonfiguration hinzu:device pcm
- zu Ihrer Kernelkonfiguration hinzufügen. Wenn Ihre
- Karte eine PnP ISA-Karte ist, fügen Sie
- zusätzlich
+ ISA-Karten benötigen zusätzlich noch die
+ Zeile:device sbc
- hinzu. Für eine nicht-PnP ISA-Karte muss
+ Nicht-PnP fähige ISA-Karten benötigen die Zeilen:device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15
- in Ihre Kernelkonfiguration. Dies sind die
+ Dies sind die
Voreinstellungen. Sie werden unter Umständen den IRQ oder
andere Einstellungen anpassen müssen. In der &man.sbc.4;
- Manual-Seite finden Sie weitere Informationen dazu.
+ Manualpage finden Sie weitere Informationen dazu.Die Karte Sound Blaster Live wird unter FreeBSD 4.0
nicht unterstützt. Dazu benötigen Sie einen Patch,
der in diesem Dokument nicht behandelt wird. Es ist deshalb
empfehlenswert, dass Sie in diesem Fall Ihr System auf den
neuesten -STABLE Stand aktualisieren, bevor Sie diese Karte
benutzen können.Gravis UltraSound Karten
- Für eine PnP ISA-Karte, müssen Sie
+ Eine PnP ISA-Karte benötigt die folgenden Zeilen in der
+ Kernelkonfiguration:device pcm
device gusc
- zu Ihrer Kernelkonfiguration zufügen. Wenn Sie eine
- nicht-PnP ISA-Karte besitzen, ergänzen Sie
+ Wenn Sie eine nicht-PnP fähige ISA-Karte besitzen,
+ fügen Sie die folgenden Zeilen ein:device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
- in Ihrer Kernelkonfiguration. Es kann sein, dass Sie den
+ Es kann sein, dass Sie den
IRQ oder andere Einstellungen Ihrer Karte anpassen
- müssen. Lesen Sie dazu die &man.gusc.4; Manual-Seite
+ müssen. Lesen Sie dazu die &man.gusc.4; Manualpage
für weitere Informationen.Crystal Soundkarten
- Für Crystal Karten, brauchen Sie die beiden
- Zeilen
+ In der Kernelkonfiguration geben Sie für Crystal Karten
+ die beiden folgenden Zeilen an:device pcm
device csa
-
- in Ihrer Kernelkonfiguration.Allgemeine Unterstützung
- Für PnP ISA- oder PCI-Karten fügen Sie
+ Für PnP ISA- oder PCI-Karten fügen Sie die folgende
+ Zeile zu Ihrer Kernelkonfiguration hinzu:device pcm
- zu Ihrer Kernelkonfiguration hinzu. Wenn Sie eine
- nicht-PnP ISA-Karte besitzen, die keinen bridge driver hat,
- geben Sie zusätzlich
+ Wenn Sie eine nicht-PnP ISA-Karte besitzen, die keinen
+ Bridge-Treiber hat, geben Sie zusätzlich die folgende Zeile
+ an:device pcm0 at isa? irq 10 drq 1 flags 0x0
- in Ihrer Kernelkonfiguration an. Ändern Sie IRQ oder
+ Ändern Sie den IRQ oder
andere Einstellungen so, dass sie Ihrer Soundkarte
entsprechen.Onboard SoundEinige Systeme besitzen direkt auf dem Motherboard
eingebaute Soundgeräte. Diese benötigen die folgende
Angabe in Ihrer Kernelkonfiguration:options PNPBIOSErstellen und Testen der Device Nodes
- Device Nodes
+ Device Node
+ GerätedateiNach einem Neustart loggen Sie sich ein und geben
dmesg | grep pcm ein. Sie sollten etwas wie das
folgende sehen:&prompt.root; dmesg | grep pcm
pcm0: <SB16 DSP 4.11> on sbc0Die Ausgabe Ihres Systems kann anders aussehen. Erscheinen
keine pcm Geräte, dann ist zuvor
ein Fehler aufgetreten. Wenn das passiert, schauen Sie sich Ihre
Kernelkonfiguration noch einmal an und vergewissern Sie sich,
dass Sie den richtigen Treiber gewählt haben. Lesen Sie den
- Abschnitt Fehlersuche für weitere Möglichkeiten
+ Abschnitt Fehlersuche für weitere Hinweise.
Ergab der vorige Befehl pcm0 als
- Ausgabe, dann müssen Sie folgendes als root
+ Ausgabe, dann müssen Sie folgendes als root
ausführen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Wenn auf den vorigen Befehl pcm1
- als Ausgabe erschienen ist, dann müssen Sie die selben
+ als Ausgabe erschienen ist, dann müssen Sie dieselben
Befehle ausführen, nur dass Sie
snd0 durch
snd1 ersetzen.Die obigen Kommandos legen kein/dev/snd Device an.Der Befehl MAKEDEV erzeugt eine Gruppe
von Device Nodes, darunter:DeviceBeschreibung/dev/audioSPARC-compatible audio device/dev/dspDigitized voice device/dev/dspW/dev/dsp-ähnliches
Device mit 16 bits pro Sample/dev/midiRaw midi access device/dev/mixerControl port mixer device/dev/musicLevel 2 sequencer interface/dev/sequencerSequencer device/dev/pssProgrammable device interfaceWenn alles geklappt hat, haben Sie jetzt eine
funktionierende Soundkarte. Nun können Sie eine Anwendung
- wie audio/mpg123 installieren, um Audiodateien
- anhören zu können.
+ wie audio/mpg123 installieren,
+ um Audiodateien anhören zu können.
Häufige Probleme
-
+
FehlerLösungDevice Node
+ Gerätedateiunsupported subdevice XXEin oder mehrere Device Nodes wurden nicht
korrekt angelegt. Wiederholen Sie die oben angegebenen
Schritte.I/O portsb_dspwr(XX) timed outDer I/O Port ist nicht korrekt angegeben.IRQbad irq XXDer IRQ ist falsch angegeben. Stellen Sie
sicher, dass der angegebene IRQ mit dem Sound IRQ
übereinstimmt.xxx: gus pcm not attached, out of
- memory
+ memory
Es ist nicht genug Speicher verfügbar,
um das Gerät betreiben zu können.
+
+ DSP
+
+ xxx: can't open /dev/dsp!
+ Überprüfen Sie mit fstat |
+ grep dsp ob eine andere Anwendung das
+ Gerät geöffnet hat. Häufige
+ Störenfriede sind esound
+ oder die Sound-Unterstützung von KDE.
+ ChernLeeEin Beitrag von BenediktKöhlerÜbersetzt von MP3 AudioMP3 (MPEG Layer 3 Audio) ermöglicht eine
Klangwiedergabe in CD-ähnlicher Qualität, was Sie sich
auf Ihrem FreeBSD Rechner nicht entgehen lassen sollten.MP3-PlayerXMMS (X Multimedia System) ist
bei weitem der beliebteste XFree86 MP3-Player.
WinAmp-Skins können auch mit
XMMS genutzt werden, da die
Benutzerschnittstelle fast identisch mit der von Nullsofts
WinAmp ist. Daneben
unterstützt XMMS auch eigene
Plugins.XMMS kann als
audio/xmms Port oder Package installiert
werden.Die Benutzerschnittstelle von
XMMS ist leicht zu erlernen und
beinhaltet eine Playlist, einen graphischen Equalizer und
vieles mehr. Diejenigen, die mit WinAmp vertraut sind, werden
XMMS sehr leicht zu benutzen
finden.
- Der Port audio/mpg123 ist ein alternativer,
- kommandozeilenorientierter MP3-Player.
+ Der Port audio/mpg123 ist
+ ein alternativer, kommandozeilenorientierter MP3-Player.mpg123 kann ausgeführt
werden, in dem man das zu benutzende Sound Device und die
abzuspielende MP3-Datei in der Kommandozeile wie unten
angibt:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from BT - Foobar-GreastHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 sollten Sie dabei mit dem
dsp-Device Ihres Systems ersetzen.CD-Audio Tracks rippenBevor man eine ganze CD oder einen CD-Track in das
MP3-Format umwandeln kann, müssen die Audiodaten von der
CD auf die Festplatte gerippt werden. Dabei werden die CDDA
(CD Digital Audio) Rohdaten in WAV-Dateien kopiert.Die Anwendung cdda2wav die in dem
- sysutils/cdrtools Paket enthalten ist, kann zum
- Rippen der Audiodaten und anderen Informationen von CDs
+ sysutils/cdrtools Paket enthalten
+ ist, kann zum Rippen der Audiodaten und anderen Informationen von CDs
genutzt werden.Wenn die Audio CD in dem Laufwerk liegt, können Sie
mit folgenden Befehl (als root) eine
ganze CD in einzelne WAV-Dateien (eine Datei für jeden
Track) rippen:&prompt.root; cdda2wav -D 0,1,0 -BDer Schalter bezieht sich auf
das SCSI Device 0,1,0, dass sich aus
dem Ergebnis des Befehls cdrecord -scanbus
ergibt.Um einzelne Tracks zu rippen, benutzen Sie den
Schalter wie folgt:&prompt.root; cdda2wav -D 0,1,0 -t 7Dieses Beispiel rippt den siebten Track der Audio
CDROM. Um mehrere Tracks zu rippen, zum Beispiel die Tracks
eins bis sieben, können Sie wie folgt einen Bereich
angeben:&prompt.root; cdda2wav -D 0,1,0 -t 1+7
- Mit cdda2wav können nur
- SCSI-CDROM-Laufwerke verwendet werden. Besitzen Sie ein
- IDE-Laufwerk, dann probieren Sie audio/cdd oder
- eine der vielen anderen Anwendungen in der
- audio-Ports Collection.
+ cdda2wav unterstützt auch ATAPI
+ (IDE) CDROM Laufwerke. Wenn Sie ein IDE Laufwerk benutzen, geben
+ Sie beim Aufruf von cdda2wav den
+ Gerätenamen anstelle der SCSI Gerätenummern an. Um den
+ siebten Track eines IDE Laufwerkes zu rippen, benutzen Sie das
+ folgende Kommando:
+
+ &prompt.root; cdda2wav -D /dev/acd0a -t 7MP3-Dateien kodierenGegenwärtig ist lame der
meistbenutzte mp3-Encoder. Lame
- finden Sie unter audio/lame in dem
- Ports-Verzeichnis finden.
+ finden Sie unter audio/lame im
+ Ports-Verzeichnis.
Benutzen Sie die WAV-Dateien, die sie von CD gerippt
haben, und wandeln sie mit dem folgenden Befehl die Datei
audio01.wav in
audio01.mp3 um:&prompt.root; lame -h -b 128 \
--tt "Foo Liedtitel" \
--ta "FooBar Künstler" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Geripped und kodiert von Foo" \
--tg "Musikrichtung" \
audio01.wav audio01.mp3128 kbits ist die gewöhnliche MP3 Bitrate. Viele
bevorzugen mit 160 oder 192 eine höhere Qualität. Je
höher die Bitrate ist, desto mehr Speicherplatz
benötigt die resultierende MP3-Datei, allerdings wird die
Qualität dadurch auch besser. Der Schalter
verwendet den higher quality but a
little slower (höhere Qualität, aber etwas
langsamer) Modus. Die Schalter, die mit
beginnen, sind ID3-Tags, die in der Regel
Informationen über das Lied enthalten und in die
MP3-Datei eingebettet sind. Weitere Optionen können in
- der lame-Manualseite nachgelesen werden.
+ der lame-Manualpage nachgelesen werden.
MP3-Dateien dekodierenUm aus MP3-Dateien eine Audio CD zu erstellen, müssen
diese in ein nicht komprimiertes WAV-Format umgewandelt
werden. Sowohl XMMS als auch
mpg123 unterstützen die Ausgabe
der MP3-Dateien in unkomprimierte Dateiformate.Dekodieren mit XMMS:Starten Sie XMMS.Klicken Sie mit der rechten Maustaste, um das
XMMS-Menu zu öffnen.Wählen Sie Preference im
Untermenü Options.Ändern Sie das Output-Plugin in Disk
Writer Plugin.Drücken Sie Configure.Geben Sie ein Verzeichnis ein (oder wählen Sie
browse), in das Sie die unkomprimierte Datei schreiben
wollen.Laden Sie die MP3-Datei wie gewohnt in
XMMS mit einer Lautstärke
von 100% und einem abgeschalteten EQ.Drücken Sie Play und es wird
so aussehen, als spiele XMMS
die MP3-Datei ab, aber keine Musik ist zu hören. Der
Player überspielt die MP3-Datei in eine Datei.Vergessen Sie nicht, das Output Plugin wieder in den
Ausgangszustand zurückzusetzen um wieder MP3-Dateien
anhören zu können.Mit mpg123 nach stdout schreiben:Geben Sie mpg123 -s
audio01.mp3 > audio01.pcm
einXMMS schreibt die Datei in dem
WAV-Formal während mpg123 die
MP3-Datei in rohe PCM Audiodaten umwandelt. Beide Formate
können von cdrecord oder
burncd verwendet werden, um Audio
CDs zu schreiben.Lesen Sie in diesem Handbuch,
um mehr Informationen zur Benutzung von CD-Brennern mit FreeBSD zu
erhalten.
+
+
+
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
index 36f2b7df77..7fa5c7a8f3 100644
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1608 +1,1609 @@
UwePierauÜbersetzt von Installieren von Anwendungen: Pakete und PortsÜbersichtPortsPaketeFreeBSD enthält sehr viele Systemwerkzeuge, die Teil des
Basissystems sind. Allerdings sind Sie früher oder später
auf Software Dritter angewiesen, damit Sie bestimmte Arbeiten
durchführen können. Um diese Software zu installieren,
stellt FreeBSD zwei, sich ergänzende, Methoden zur
Verfügung: Die Ports-Sammlung und binäre Softwarepakete.
Sie können beide Methoden benutzen, um Ihre Lieblingsanwendungen
von lokalen Medien oder über das Netzwerk zu
installieren.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
wissenwie Sie binäre Softwarepakete installieren,wie Sie Software Dritter mit der Ports-Sammlung bauen
undwie Sie zuvor installierte Pakete oder Ports von einem
System entfernen.Installation von SoftwareWenn Sie schon einmal ein Unix System benutzt haben, werden Sie
wissen, daß zusätzliche Software meist wie folgt
installiert wird:Download der Software, die als Quelltext oder im
Binärformat vorliegen kann.Auspacken der Software, die typischerweise ein mit
&man.compress.1; oder &man.gzip.1; komprimiertes Tar-Archiv
enthält.Durchsuchen der Dokumentation, meist eine Datei namens
README oder mehrere Dateien im Verzeichnis
doc/, nach Informationen, wie die Software
zu installieren ist.Kompilieren der Software wenn sie als Quelltext vorliegt.
Dazu müssen Sie vielleicht das Makefile
anpassen, oder configure laufen lassen, oder
andere Arbeiten durchführen.Testen und installieren der Software.Das beschreibt aber nur den optimalen Fall. Wenn Sie
Software installieren, die nicht speziell für FreeBSD
geschrieben wurde, müssen Sie vielleicht sogar den Quelltext
anpassen, damit die Software funktioniert.Wenn Sie unbedingt wollen, können Sie mit FreeBSD Software
nach der althergebrachten Methode installieren. Mit
Paketen oder Ports bietet Ihnen FreeBSD allerdings zwei Methoden an,
die Ihnen sehr viel Zeit sparen können. Zur Zeit werden über
&os.numports; Anwendungen Dritter über diese Methoden zur
Verfügung gestellt.Das FreeBSD Paket einer Anwendung besteht aus einer einzigen
Datei, die Sie sich herunterladen müssen. Das Paket
enthält schon übersetzte Kommandos der Anwendung, sowie
zusätzliche Konfigurationsdateien oder Dokumentation. Zur
Handhabung der Pakete stellt FreeBSD Kommandos wie &man.pkg.add.1;,
&man.pkg.delete.1; oder &man.pkg.info.1; zur Verfügung.Mit diesem System können neue Anwendungen mit einem
Kommando, pkg_add, installiert werden.Der FreeBSD Port einer Anwendung ist eine Sammlung von Dateien,
die das Kompilieren der Quelltexte einer Anwendung
automatisieren.Die Dateien eines Ports führen für Sie alle oben
aufgeführten Schritte zum Installieren einer Anwendung durch.
Mit einigen wenigen Kommandos wird der Quellcode der Anwendung
automatisch heruntergeladen, ausgepackt, gepatcht, übersetzt und
installiert.Tatsächlich kann das Portsystem auch dazu benutzt werden,
Pakete zu generieren, die Sie mit den gleich beschriebenen Kommandos,
wie pkg_add, manipulieren können.Pakete und Ports beachten Abhängigkeiten zwischen
Anwendungen. Angenommen, Sie wollen eine Anwendung installieren,
die von einer Bibliothek abhängt und die Anwendung wie die
Bibliothek sind als Paket oder Port für FreeBSD verfügbar.
Wenn Sie pkg_add oder das Portsystem benutzen,
um die Anwendung zu installieren, werden Sie bemerken, daß
die Bibliothek zuerst installiert wird, wenn sie nicht schon vorher
installiert war.Sie werden sich fragen, warum FreeBSD Pakete und Ports
unterstützt, wo doch beide Methoden fast gleiches leisten.
Beide Methoden haben ihre Stärken und welche Sie einsetzen,
hängt letztlich von Ihren Vorlieben ab.Vorteile von PaketenDas komprimierte Paket einer Anwendung ist normalerweise
kleiner als das komprimierte Archiv der Quelltexte.Pakete müssen nicht mehr kompiliert werden. Dies ist
ein Vorteil, wenn Sie große Pakete, wie
Mozilla, KDE
oder GNOME auf langsamen Maschinen
installieren.Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen,
wie Sie Software unter FreeBSD kompilieren.Vorteile von PortsDa die Pakete auf möglichst vielen System laufen sollen,
werden Optionen beim Übersetzen zurückhaltend gesetzt.
Wenn Sie eine Anwendung über die Ports installieren,
können Sie die Angabe der Optionen optimieren. Zum Beispiel
können Sie spezifischen Code für Pentium III oder
Athlon Prozessoren erzeugen.Die Eigenschaften einiger Anwendungen werden über
Optionen zum Zeitpunkt des Übersetzens festgelegt.
Apache kann zum Beispiel über
viele eingebaute Optionen konfiguriert werden. Wenn Sie das
Portsystem benutzen, können Sie die Vorgaben für die
Optionen überschreiben.Für einige Fälle existieren verschiedene
Pakete einer Anwendung, die beim Übersetzen
unterschiedlich konfiguriert wurden. Für
Ghostscript gibt es ein
ghostscript-Paket und ein
ghostscript-nox11-Paket, die sich durch die
X11 Unterstützung unterscheiden. Diese grobe Unterscheidung
ist mit dem Paketsystem möglich, wird aber schnell
unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen
zum Zeitpunkt des Übersetzens besitzt.Die Lizenzbestimmungen mancher Software verbietet ein
Verbreiten in binärer Form. Diese Software muß als
Quelltext ausgeliefert werden.Einige Leute trauen binären Distributionen nicht. Wenn
Sie den Quelltext besitzen, können Sie sich diesen
(zumindest theoretisch) durchlesen und nach möglichen Problemen
durchsuchen.Wenn Sie eigene Anpassungen besitzen, benötigen Sie den
Quelltext, um diese anzuwenden.Manch einer besitzt gerne den Quelltext, um ihn zu lesen,
wenn es einmal langweilig ist, ihn zu hacken, oder sich einfach
ein paar Sachen abzugucken (natürlich nur, wenn es die
Lizenzbestimmungen erlauben).Wenn Sie über aktualisierte Ports informiert sein wollen,
lesen Sie bitte die Mailingliste &a.ports;.Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit
Paketen oder Ports auf einem FreeBSD System installieren und
verwalten.Suchen einer AnwendungBevor Sie eine Anwendung installieren, müssen Sie deren
Art und Namen kennen.Die Zahl der nach FreeBSD portierten Anwendungen steigt
ständig. Zum Glück gibt es einige Wege, die richtige zu
finden.Eine aktuelle Liste verfügbarer Anwendungen, die sich
auch durchsuchen läßt, finden Sie unter http://www.FreeBSD.org/ports/.
Die Anwendungen sind in Kategorien unterteilt und Sie
können sich alle Anwendungen einer Kategorie anzeigen
lassen. Wenn Sie den Namen der Anwendung kennen, können
Sie natürlich auch direkt nach dem Namen suchen.FreshPortsFreshPorts, das von Dan Langille gepflegt wird, erreichen Sie
unter
http://www.FreshPorts.org/. FreshPorts verfolgt
Änderungen an Anwendungen aus den Ports. Mit FreshPorts
können Sie ein oder mehrere Ports beobachten und sich eine
E-Mail schicken lassen, wenn ein Port aktualisiert wird.FreshMeatWenn Sie den Namen einer Anwendung nicht kennen, versuchen
Sie eine Webseite wie FreshMeat (http://www.freshmeat.net/),
um eine passende Anwendung zu finden. Schauen Sie dann auf der
FreeBSD Webseite nach, ob die Anwendung schon portiert
wurde.ChernLeeBeigesteuert von Benutzen des PaketsystemsInstallieren eines PaketsPaketeinstallierenpkg_addMit &man.pkg.add.1; können Sie ein FreeBSD Paket von einer
lokalen Datei oder über das Netzwerk installieren.Download und Installation eines Paketes&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzWenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel
auf den FreeBSD CDROMs), ist es wahrscheinlich einfacher den
Schalter von &man.pkg.add.1; zu verwenden. Das
Werkzeug bestimmt dann automatisch das nötige Objektformat und
die richtige Version des Pakets, lädt dieses dann von einem
FTP-Server und installiert das Paket.pkg_add&prompt.root; pkg_add -r lsof-4.56.4Das obige Beispiel würde ohne weitere Interaktion das
richtige Paket herunterladen und installieren.Pakete werden im .tgz Format ausgeliefert.
Sie finden Sie unter
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/ oder
auf der FreeBSD CDROM Distribution. Jede CD der FreeBSD
Distribution (oder des PowerPaks) enthält Pakete im
Verzeichnis /packages. Die Struktur des
Paketbaums entspricht dem /usr/ports Baum.
Jede Kategorie besitzt ein eigenes Verzeichnis und alle
Pakete befinden sich im Verzeichnis
All.Die Verzeichnisstruktur des Paketbaums ist ein Abbild der
Ports, da beide Systeme eng zusammenarbeiten.Entfernen eines Paketspkg_deletePaketeentfernenUm ein zuvor installiertes Paket zu entfernen, benutzen Sie das
Werkzeug &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1Verwalten von PaketenPaketeverwalten&man.pkg.info.1; zeigt alle installierten Pakete und deren
Beschreibung an.pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; vergleicht die Version installierter Pakete
mit der Version aus der Ports-Sammlung.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Die Symbole in der zweiten Spalte zeigen das Alter des Pakets
im Vergleich zu der lokalen Version aus der Ports-Sammlung an.
SymbolBedeutung
-
-
+
+ =Die Version des installierten Paketes stimmt mit der
Version aus der lokalen Ports-Sammlung überein.
-
+
<Die installierte Version ist älter als die der
verfügbaren Version aus der Ports-Sammlung.>Die installierte Version ist neuer als die aus der
Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung
veraltet).?Das installierte Paket konnte in der Ports-Sammlung
nicht gefunden werden.*In der Ports-Sammlung befinden sich mehrere Versionen
der Anwendung.VerschiedenesInformationen über alle installierte Pakete werden in
/var/db/pkg abgelegt. Das Verzeichnis
enthält Dateien, in denen sich die Beschreibungen der Pakete
und Listen von Dateien, die zu einem Paket gehören,
befinden.Benutzen der Ports-SammlungDie folgenden Abschnitte stellen die grundlegenden Anweisungen
vor, um Anwendungen aus der Ports-Sammlung auf
Ihren Rechner zu installieren oder zu löschen.Installation der Ports-SammlungBevor Sie einen Port installieren können, müssen Sie
zuerst die Ports-Sammlung installieren, die aus Makefiles, Patches
und Beschreibungen besteht. Die Ports-Sammlung wird
für gewöhnlich unter /usr/ports
installiert.Bei der FreeBSD Installation hatten Sie in
Sysinstall die Möglichkeit, die
Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht
installiert haben, können Sie das mit den folgenden
Anweisungen nachholen:Installieren mit SysinstallSie können die Ports-Sammlung nachträglich mit
sysinstall installieren.Führen Sie als root/stand/sysinstall aus:&prompt.root; /stand/sysinstallWählen Sie den Punkt Configure
aus und drücken Sie Enter.Wählen Sie dann Distributions aus
und drücken Sie Enter.In diesem Menü wählen Sie
ports aus und drücken die
Leertaste.Danach wählen Sie Exit aus und
drücken Enter.Legen Sie nun ein geeignetes Installationsmedium, wie CDROM
oder FTP, fest.Verlassen Sie sysinstall.Alternativ können Sie die Ports-Sammlung auch mit
CVSup installieren und aktualisieren.
Ein Beispiel für die Konfiguration von
CVSup finden Sie in
/usr/share/examples/cvsup/ports-supfile.
Weitere Informationen über CVSup
finden Sie in Benutzen von CVSup
.Installieren mit CVSupDies ist eine schnelle Methode um die Ports-Sammlung zu
aktualisieren.Installieren Sie den net/cvsup Port. Weitere
Informationen finden Sie in Benutzen von CVSup.Kopieren Sie als root/usr/share/examples/cvsup/ports-supfile an
einen neuen Ort, beispielsweise nach /root
oder in Ihr Heimatverzeichnis.Editieren Sie die Kopie von
ports-supfile.Ersetzen Sie
CHANGE_THIS.FreeBSD.org durch einen
CVSup-Server in Ihrer Nähe.
Eine vollständige Liste der
CVSup-Spiegel finden Sie in
CVSup Spiegel.Führen Sie cvsup aus:&prompt.root; cvsup -g -L 2 /root/ports-supfileBenutzen Sie dieses Kommando regelmäßig, um die
Ports-Sammlung zu aktualisieren.Ports installierenPortsinstallierenWas ist mit einem Gerüst im Zusammenhang
mit der Ports-Sammlung gemeint? In aller Kürze: ein
Gerüst eines Ports ist ein minimaler Satz von Dateien, mit
denen das FreeBSD System eine Anwendung sauber übersetzen und
installieren kann. Ein jeder Port beinhaltet:Eine Datei Makefile. Das
Makefile enthält verschiedene
Anweisungen, die spezifizieren, wie eine Anwendung kompiliert
wird und wo sie auf Ihrem System installiert werden
sollte.Eine Datei distinfo. Diese
enthält Informationen, welche Dateien heruntergeladen
werden müssen, sowie Prüfsummen, um sicher zu gehen,
daß diese Dateien während des Herunterladens nicht
beschädigt wurden.Ein files Verzeichnis. Hierin
liegen Patches, welche das Übersetzen und Installieren
der Anwendung ermöglichen. Patches sind im Wesentlichen
kleine Dateien, die Änderungen an speziellen Dateien
spezifizieren. Sie liegen als reiner Text vor und sagen
ungefähr:
Lösche Zeile 10 oder
Ändere Zeile 26 zu .... Patches sind
auch bekannt unter dem Namen diffs, weil
Sie mit dem Programm diff
erstellt werden.Dieses Verzeichnis kann auch noch andere Dateien enthalten,
welche zum Bauen des Ports benutzt werden.
- Eine Datei pkg-comment. Eine
+ Eine Datei pkg-comment. Eine
einzeilige Beschreibung der Anwendung.Eine Datei pkg-descr. Eine
ausführlichere, oft mehrzeilige Beschreibung der
Anwendung.Eine Datei pkg-plist. Das ist eine
Liste aller Dateien, die durch diesen Port installiert werden.
Außerdem sind hier Informationen enthalten, die zum
Entfernen des Ports benötigt werden.Einige Ports besitzen noch andere Dateien, wie
pkg-message, die vom Portsystem benutzt
werden, um spezielle Situationen zu handhaben. Wenn Sie mehr
über diese Dateien oder das Port-System erfahren sollen, lesen
Sie bitte im FreeBSD
Handbuch für Portierer weiter.Nun haben Sie genug Hintergrund Informationen über
die Ports-Sammlung und Sie können Ihren ersten Port
installieren. Es gibt dazu zwei Möglichkeiten, die
im folgenden erläutert werden.Bevor Sie damit beginnen, müssen Sie sich natürlich
einen Port zum Installieren aussuchen. Sie können
dazu mehrere Wege gehen, als einfachste Methode gibt es die
Liste aller Ports auf
dem FreeBSD Web-Server. Sie können dort suchen
oder in der Liste schmökern. Jeder Port enthält
außerdem eine Beschreibung, so daß Sie sich vor der
Entscheidung, welchen Port Sie installieren wollen, über den Port
informieren können.Eine andere Methode bietet das Kommando whereis.
Um whereis zu benutzen, geben Sie einfach
whereis Datei ein.
Setzen Sie für Datei den Namen des
Programms ein, das Sie suchen:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofDamit haben wir herausgefunden, daß sich
lsof, ein Systemwerkzeug, in
/usr/ports/sysutils/lsof befindet.Ein weiterer Weg, einen bestimmten Port zu finden, ist es,
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
Dazu müssen Sie im Verzeichnis /usr/ports
sein. Darin geben Sie
make search name=Anwendungsname ein, worin Anwendungsname
der Name der von Ihnen gesuchten Anwendung ist. Wenn Sie
zum Beispiel nach lsof suchen:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
mit Path: beginnt, weil sie Ihnen sagt, wo der Port
zu finden ist. Die anderen Informationen werden zum Installieren
des Ports nicht direkt benötigt, Sie brauchen sich darum
jetzt nicht weiter zu kümmern.Mit make search key=Text können Sie erweiterte Suchen durchführen.
Damit werden Portnamen, Kommentare, Beschreibungen und
Abhängigkeiten nach Text
durchsucht. Dies kann sehr nützlich sein, wenn Sie den Namen
des Programms, nach dem Sie suchen, nicht kennen.In beiden Fällen wird Groß- und Kleinschreibung bei
der Suche ignoriert. Die Suche nach LSOF wird
dieselben Ergebnisse wie die Suche nach lsof
liefern.Zum Installieren von Ports müssen Sie als Benutzer
root angemeldet sein.Jetzt, wo Sie den gewünschten Port gefunden haben, kann es
mit der eigentlichen Installation losgehen. Der Port enthält
Anweisungen, wie der Quelltext zu bauen ist, enthält aber
nicht den Quelltext selber. Den Quelltext erhalten Sie von einer
CDROM oder aus dem Internet. Quelltexte werden in einem Format
nach Wahl des jeweiligen Software-Autors ausgeliefert. Häufig
ist dies ein gezipptes Tar-Archiv, aber es kann auch mit einem
anderen Tool komprimiert oder gar nicht komprimiert sein. Der
Quelltext, in welcher Form er auch immer vorliegen mag, wird
Distfile genannt.Installation von einer CDROMPortsInstallation von einer CDROMDie offiziellen FreeBSD CDROMs enthalten keine Distfiles
mehr, da diese sehr viel Platz beanspruchen, der besser von
vorkompilierten Paketen genutzt werden kann. Andere FreeBSD CDROMs,
wie der FreeBSD PowerPak, enthalten Distfiles.
Diese CDROMs können Sie über einen Händler wie
FreeBSD Mall
beziehen. Dieser Abschnitt geht davon aus, daß Sie eine
solche CDROM Distribution besitzen.&prompt.root; cd /usr/ports/sysutils/lsofIm Verzeichnis lsof kann man das
Gerüst erkennen. Der
nächste Schritt ist das Übersetzen (auch Bauen genannt)
des Ports. Dies wird durch Eingabe von make
getan. Haben Sie das eingegeben, so werden Sie etwas lesen
wie:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
&prompt.root;Ist die Übersetzungsprozedur beendet, sind Sie wieder
in der Kommandozeile und der nächste Schritt ist das
Installieren. Dazu hängen Sie einfach ein Wort an das
make-Kommando, und dieses Wort ist
install:&prompt.root; make install
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Wenn Sie wieder den Prompt haben, sollten Sie in der Lage
sein, die gerade installierte Anwendung laufen zu lassen. Da
lsof eine Anwendung ist, die mit erhöhten
Rechten läuft, wird eine Sicherheitswarnung angezeigt. Sie
sollten alle Warnungen während des Baus und der Installation
eines Ports beachten.Sie können einen Schritt sparen, wenn Sie gleich
make install anstelle von
make und dem anschließenden
make install eingeben.Beachten Sie bitte, daß die Lizenzen einiger Ports
die Einbeziehung auf der CDROM verbieten. Das könnte
aufgrund verschiedener Gründe der Fall sein, beispielsweise
weil man sich vor dem Herunterladen registrieren lassen
muß oder eine Weiterverteilung verboten ist u.s.w.
Wünschen Sie einen Port zu installieren, der nicht auf
der CDROM enthalten ist, so müssen Sie online gehen und
mit Hilfe des nächsten
Abschnitts den Port installieren.Ports vom Internet installierenDieser Abschnitt setzt voraus, daß Sie eine Verbindung
mit dem Internet haben. Haben Sie dies nicht, müssen Sie
eine CDROM Installation
durchführen.Das Installieren eines Ports vom Internet wird genauso
durchgeführt wie das Installieren von CDROM. Der einzige
Unterschied zwischen beiden ist, daß das Distfile des
Ports vom Internet heruntergeladen und nicht von der CDROM
genommen wird.Die durchgeführten Schritte sind identisch:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Wie Sie sehen können, besteht der einzige Unterschied in
der Zeile, die Ihnen sagt, woher das System den Quellcode
holt.Sie wissen nun, wie Sie Ports auf Ihrem Computer
installieren können. Jetzt lernen Sie, wie Sie einen
Port wieder von Ihrem System löschen.Entfernen installierter PortsPortsentfernenDa Sie nun wissen, wie man einen Port installiert, wollen Sie
sicher auch wissen, wie man einen Port entfernt, für den
Fall, daß Sie versehentlich einen falschen installiert haben.
Nun wollen wir mal unser vorheriges Beispiel wieder
löschen (für alle die nicht aufgepaßt haben, das
war lsof).
Wie beim Installieren wechseln Sie zuerst in das Verzeichnis des
Ports /usr/ports/sysutils/lsof. Nachdem Sie
das Verzeichnis gewechselt haben, können Sie
lsof mit make deinstall
entfernen:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57Das war leicht, Sie haben lsof
von Ihrem System entfernt. Möchten Sie den Port doch
wieder neu installieren, geben Sie
make reinstall im Verzeichnis
/usr/ports/sysutils/lsof ein.make deinstall und make
reinstall funktionieren nicht mehr, wenn Sie einmal
make clean ausgeführt haben. Wenn Sie
dennoch einen Port nach einem make clean
entfernen möchten, benutzen Sie pkg_delete
wie im Abschnitt Benutzen des
Paketsystems beschrieben.Nach der InstallationNach der Installation einer neuen Anwendung wollen Sie
wahrscheinlich die mitgelieferte Dokumentation lesen und die
Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung
ein Dæmon ist, sollten Sie sicherstellen, daß die
Anwendung beim Booten startet.Die einzelnen Schritte sind natürlich von Anwendung zu
Anwendung verschieden. Wenn Sie sich allerdings nach der Installation
einer Anwendung die Frage Was nun? stellen, helfen die
folgenden Hinweise vielleicht weiter.Finden Sie mit &man.pkg.info.1; heraus, welche Dateien die
Anwendung wo installiert hat. Wenn Sie beispielsweise gerade
die Version 1.0.0 von FooPackage installiert haben, zeigt Ihnen
das folgende Kommando alle installierten Dateien des
Pakets:&prompt.root; pkg_info -L foopackage-1.0.0 | less
- Achten Sie besonders auf die Manual-Seiten, die Sie in
+ Achten Sie besonders auf die Manualpages, die Sie in
man/ Verzeichnissen finden und auf
Konfigurationsdateien, die in etc/ abgelegt
werden. Manche Pakete enthalten in doc/
zusätzliche Dokumentation.Wenn Sie sich nicht sicher sind, welche Version einer
Anwendung Sie gerade installiert haben, können Sie mit dem
folgenden Kommando nach der Anwendung suchen:&prompt.root; pkg_info | grep foopackageDas Kommando zeigt alle installierten Pakete, deren
Paketname foopackage enthält.
Ersetzen Sie foopackage durch den
Namen der Anwendung, die Sie suchen.
- Nachdem Sie die Manual-Seiten der Anwendung gefunden haben,
+ Nachdem Sie die Manualpages der Anwendung gefunden haben,
lesen Sie diese bitte mit &man.man.1;. Schauen Sie sich auch die
Beispiele für Konfigurationsdateien und die zusätzliche
Dokumentation, wenn es welche gibt, an.Wenn es für die Anwendung eine Webseite gibt, suchen
Sie dort nach zusätzlicher Dokumentation wie FAQs
(häufig gestellte Fragen). Wenn Sie die Adresse der Webseite
nicht kennen, versuchen Sie das folgende Kommando:&prompt.root; pkg_info foopackage-1.0.0Die Ausgabe enthält oft eine Zeile, die mit
WWW: beginnt und die URL der Webseite
enthält.Fehlersuche und -behebungDer folgende Abschnitt beschreibt einige einfache
Fehlerbehebungsmöglichkeiten beim Benutzen der Ports-Sammlung
und ein paar Fehlerbehandlungen, falls ein Port kaputt ist.Einige Fragen und AntwortenIch dachte hierbei ging es um Modems??!Ah, Sie müssen an die serielle Schnittstelle auf der
- Rückseite Ihres Computers gedacht haben (engl. port). Wir
+ Rückseite Ihres Computers gedacht haben (engl.
+ port). Wir
benutzen hier Port als Ergebnis des
Portierens einer Anwendung von einer Unix-Variante
zu einer anderen.Was ist ein Patch?Ein Patch ist eine kleine Datei, die beschreibt, wie man
von einer Version einer Datei zu einer anderen kommt. Sie
enthält reinen Text und sagt im Prinzip Dinge wie
lösche Zeile 23,
füge diese zwei Zeilen hinter Zeile 468 an,
oder ändere Zeile 197 hierzu. Sie sind
auch bekannt als diffs, weil sie mit der Anwendung
diff erstellt werden.TarballWorum gehts eigentlich bei diesen
Tarballs?Das ist eine Datei mit der Endung .tar
oder als Varianten mit .tar.gz,
.tar.Z, .tar.bz2,
oder auch .tgz.Vereinfacht ist das ein Verzeichnisbaum, welcher in eine
einzelne Datei (.tar) archiviert und
optional gepackt (.gz) wurde. Diese
Technik wurde ursprünglich für
Tape ARchives
benutzt (daher der Name tar), aber stellt
heute einen weit verbreiteten Weg da, im Internet Quellcode
zu verbreiten und zu verteilen.Sie können nachsehen, welche Dateien im Archiv
enthalten sind oder diese auspacken, indem Sie das Unix-Programm
tar, das Teil des FreeBSD Basissystems ist,
benutzen. Das sähe in etwa so aus:&prompt.user; tar tvzf foobar.tar.gz
&prompt.user; tar xzvf foobar.tar.gz
&prompt.user; tar tvf foobar.tar
&prompt.user; tar xvf foobar.tarPrüfsummeEine Prüfsumme?Das ist eine Zahl, die dadurch generiert wird, indem man
die ganzen Daten einer Datei aufaddiert. Ändert sich ein
Zeichen in dieser Datei, ist die Prüfsumme nicht mehr die
gleiche und ein einfacher Vergleich ermöglicht das
Erkennen des Unterschieds.Ich tat, was ihr zum Übersetzen von Ports von der
CDROM geschrieben habt und es funktionierte auch prima, bis ich
zum Port kermit kam.&prompt.root; make install
>> cku190.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.Warum kann die Datei nicht gefunden werden? Habe ich eine kaputte
CDROM?Wie im Abschnitt Installation von
CDROM erläutert, dürfen einige Ports wegen
Lizenz-Beschränkungen nicht auf CDROM veröffentlicht
- werden. Kermit ist ein solches Beispiel. Die Lizenz-Bestimmungen
+ werden. Kermit ist ein solches Beispiel. Die Lizenz-Bestimmungen
verbieten uns das Brennen des Tarballs auf CDROM, leider
müssen Sie es sich von Hand aus dem Netz
herunterladen — sorry!Der Grund für die ganzen Fehlermeldungen liegt darin,
daß Sie zu diesem Zeitpunkt nicht mit dem Internet verbunden
waren. Haben Sie den Tarball von einer der
MASTER_SITES (aufgeführt im
Makefile) gezogen, können Sie die
Installation erneut starten.
- Das habe ich getan, aber als ich ihn ins Verzeichnis
+ Das habe ich getan, aber als ich ihn in das Verzeichnis
/usr/ports/distfiles legen wollte, erhielt
ich eine Fehlermeldung bezüglich der Zugriffsrechte.Der Port-Mechanismus versucht heruntergeladene Tarballs in
/usr/ports/distfiles abzulegen. Dieses
Verzeichnis verweist aber oft auf ein Verzeichnis eines
Fileservers oder eine CDROM, die nur gelesen werden
können. Wenn dies der Fall ist, können Sie einen
anderen Ort zum Speichern der Tarballs angeben:&prompt.root; make DISTDIR=/Verzeichnis/mit/Schreibberechtigung installFunktioniert das Konzept der Ports nur, wenn alles in
/usr/ports abläuft? Mein
Systemadministrator sagt, daß ich alles unter
/u/people/guests/wurzburger haben
muß, aber das scheint nicht zu klappen.Sie können die Variablen PORTSDIR
und PREFIX benutzen, um dem Ports-System zu
sagen, daß es andere Verzeichnisse nutzen soll. Zum
Beispiel würde,&prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports installden Port in
/u/people/guests/wurzburger/ports
kompilieren und alles unter /usr/local
installieren.&prompt.root; make PREFIX=/u/people/guests/wurzburger/local installkompiliert in /usr/ports und
installiert ihn in
/u/people/guests/wurzburger/local.Und natürlich&prompt.root; make PORTSDIR=../ports PREFIX=../local installkombiniert die beiden Sachen. (Es ist aber ein wenig lang,
um es hier komplett aufzuschreiben. Sie sollten aber die
zugrunde liegende Idee erkennen.)imakeEinige Ports, welche &man.imake.1; (Teil des X Window
Systems) benutzen, funktionieren nicht gut mit
PREFIX und bestehen darauf, unter
- /usr/X11R6 installiert zu werden. In
+ /usr/X11R6 installiert zu werden. In
ähnlicher Weise verhalten sich einige Perl Ports, die
PREFIX ignorieren und sich in den Perl
Verzeichnisbaum installieren. Zu erreichen, daß solche
Ports PREFIX beachten, ist schwierig oder
sogar unmöglich.Wenn Sie keine Lust haben, dies jedesmal zu tippen,
sollten Sie diese Variablen als Umgebungsvariablen setzen.
- Lesen Sie die Manual-Seite Ihrer Shell, um zu erfahren, wie man
+ Lesen Sie die Manualpage Ihrer Shell, um zu erfahren, wie man
das anstellt.Ich habe keine FreeBSD CDROM, würde aber gerne die
Tarballs auf meinem Rechner liegen haben, damit ich nicht
jedesmal auf das Herunterladen warten muß, wenn ich mal einen
Port installieren will. Gibt es einen Weg, alle auf einmal
zu holen?Um jeden einzelnen Tarball für die Ports-Sammlung zu
holen geben Sie ein:&prompt.root; cd /usr/ports
&prompt.root; make fetchFür alle Tarballs eines Ports-Verzeichnis:&prompt.root; cd /usr/ports/Verzeichnis
&prompt.root; make fetchund für nur einen Port — gut, das haben Sie sicher
schon erraten.Ich weiß, das es wohl schneller geht, wenn ich die
Tarballs von einem FreeBSD Mirror in der Nähe hole. Kann
ich sagen, daß andere als in MASTER_SITES angegebene
Server genommen werden sollen?Ja. Zum Beispiel, wenn ftp.FreeBSD.org näher bei Ihnen
ist, als der in MASTER_SITES angegebene,
machen Sie das wie folgt:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIch würde gerne vorher wissen, welche Dateien
make holen wird, bevor es das versucht.make fetch-list gibt aus, welche Dateien
für den Port benötigt werden.Gibt es einen Weg einen Port am Kompilieren zu hindern? Ich
möchte gerne vor der Installation etwas im Quellcode hacken.
Es ist aber etwas nervig, immer aufzupassen und im richtigen
Moment mit
CtrlC
abzubrechen.Die Eingabe von make extract erreicht,
daß der Port Quellcode nur geholt und entpackt wird.Ich versuche einen eigenen Port zu erstellen und will,
daß der Port vor dem Übersetzen anhält, damit
ich eine Chance habe zu sehen, ob meine Patches sauber
funktionieren. Gibt es etwas wie make
extract für Patches?Klar, make patch ist alles was Sie
wünschen. Sie werden wahrscheinlich die Variable
PATCH_DEBUG auch recht nützlich finden.
Ach ja, und vielen Dank für Ihre Bemühungen!Stimmt es, daß einige Compiler Fehler machen? Wie
kann ich sicher gehen, daß ich mit den richtigen
Einstellungen übersetze?Ja, in der Version 2.6.3 des gcc (diese
Version ist bei FreeBSD 2.1.0 und 2.1.5 dabei) kann die Option
fehlerhafte Ergebnisse liefern, sofern man
nicht auch die Option
benutzt. (Die meisten Ports benutzen
nicht). Sie sollten die Compiler-Optionen
etwa wie folgt spezifizieren können:&prompt.root; make CFLAGS='-O2 -fno-strength-reduce' installDie Compiler-Optionen können Sie auch in
/etc/make.conf angeben,
allerdings beachten das nicht alle Ports. Der sicherste Weg ist,
nach einem make configure in das Verzeichnis
mit dem Quellcode zu gehen und dort die Makefiles von Hand zu
untersuchen. Das kann aber sehr mühselig werden, da es
oft sehr viele Unterverzeichnisse mit eigenen Makefiles geben
kann.Die bei FreeBSD voreingestellten Compiler Optionen sind
recht konservativ, Sie sollten eigentlich keine Probleme
bekommen, wenn Sie diese nicht verändert haben.Das sind aber ganz schön viele Ports und es ist nicht
leicht, den einen zu finden, den ich gerade möchte. Gibt es
eine Liste der erhältlichen Ports?Schauen Sie in die Datei INDEX im
Verzeichnis /usr/ports. Sie können
auch die Ports-Sammlung nach einem Stichwort durchsuchen.
Wollen Sie zum Beispiel alle Ports finden, die mit der
Programmiersprache LISP zu tun haben, geben Sie ein:&prompt.user; cd /usr/ports
&prompt.user; make search key=lispAls ich den Port bla installieren
wollte, hört das System auf einmal mit dem Kompilieren auf
und fing an, den Port sülz zu
erstellen. Was ist hier los?Der Port bla braucht etwas aus dem
Port sülz — beispielsweise,
wenn bla Grafik benutzt, könnte der Port
sülz eine Bibliothek mit
nützlichen grafischen Routinen enthalten. Oder
sülz könnte ein Werkzeug sein, das zum
Übersetzen des Ports bla notwendig
ist. Ich habe aus der Ports-Sammlung die
Anwendung grizzle installiert und nun
festgestellt, daß es reine Verschwendung von Plattenplatz
ist. Ich will ihn wieder löschen, weiß aber nicht
wohin der Port seine Dateien installiert hat. Tips?Alles kein Problem, tippen Sie einfach:&prompt.root; pkg_delete grizzle-6.5Sie können alternativ auch eingeben:&prompt.root; cd /usr/ports/somewhere/grizzle
&prompt.root; make deinstallMoment, man muß die Versionsnummer wissen, um das
Kommando benutzen zu können. Es wird aber nicht wirklich
erwartet, daß ich mich daran noch erinnere, oder?Nein, Sie finden diese Nummer durch folgende Eingabe heraus:&prompt.root; pkg_info -a | grep 'grizzle*'
Information for grizzle-6.5:
grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
arcade game.Die Versionsnummer finden Sie auch mit
pkg_info heraus, oder indem Sie
ls /var/db/pkg eingeben.Apropos Plattenplatz, die Ports-Sammlung scheint recht viel
Platz einzunehmen. Ist es gefährlich darin
Sachen zu löschen?Nun, wenn Sie Anwendungen installiert haben und sicher sind,
daß Sie den Quellcode nicht benötigen, gibt es
keinen Grund diesen herumliegen zu haben. Der sicherste Weg
aufzuräumen ist:&prompt.root; cd /usr/ports
&prompt.root; make cleanDas geht durch alle Ports-Verzeichnisse und löscht
für jeden Port alles bis auf das Gerüst.Dasselbe können Sie auch erreichen, ohne
rekursiv jedes Makefile aufzurufen. Die
work/ Verzeichnisse können Sie auch
mit dem folgenden Kommando löschen:
&prompt.root; find /usr/ports -depth -name work -exec rm -rf {} \;Das habe ich probiert, aber da liegen immer noch diese
Tarballs (oder wie die genannt werden) im Verzeichnis
distfiles herum. Darf ich die auch
löschen?Ja, wenn Sie mit denen fertig sind, können die auch
verschwinden. Man kann sie von Hand löschen oder das
Kommando make distclean benutzen.Ich finde es toll, tierisch viele Anwendungen zu haben und
damit rumzuspielen. Gibt es einen Weg alle Ports auf einmal
zu installieren?Machen Sie einfach:&prompt.root; cd /usr/ports
&prompt.root; make installVorsicht: Einige Ports könnten Dateien mit dem
gleichen Namen installieren. Wenn man zwei grafische Ports
installiert und beide eine Datei
/usr/local/bin/plot anlegen, haben Sie
ein Problem.Okay, das habe ich gemacht und da ich dachte, daß das
sicherlich ziemlich lange dauert, ging ich zu Bett. Als ich heute
morgen zum Computer kam, waren erst dreieinhalb Ports
installiert. Hat da etwas nicht geklappt?Nein, das Problem ist, daß es Ports gibt, die Ihnen
Fragen stellen, auf die wir die Antworten nicht für Sie
geben konnten (z.B. Drucken Sie auf Papier im A4 oder US
Letter Format?). In solchen Fällen muß
jemand da sein und die Fragen beantworten.Ich möchte aber nicht wirklich einen ganzen Tag damit
verbringen, auf den Monitor zu starren. Irgendeine bessere
Idee?
- Klar, bevor Sie ins Bett/zur Arbeit/in den Park gehen,
+ Klar, bevor Sie zu Bett/zur Arbeit/in den Park gehen,
geben Sie ein:&prompt.root; cd /usr/ports
&prompt.root; make -DBATCH installDas installiert Ihnen alle Ports, die
keine Eingaben des Benutzers erfordern.
Die restlichen Ports installieren Sie, wenn Sie zurück
sind, mit dem Kommando:&prompt.root; cd /usr/ports
&prompt.root; make -DINTERACTIVE installAuf der Arbeit benutzen wir die Anwendung
frobble, die in der Ports-Sammlung ist. Wir
haben sie aber etwas auf unsere Bedürfnisse angepaßt.
Können wir irgendwie eigene Pakete erstellen, so
daß wir die Anwendung auf unseren Rechnern leichter
verteilen können?Kein Problem. Angenommen Sie wissen, wie Sie für Ihre
Anpassungen Patches erzeugen:&prompt.root; cd /usr/ports/somewhere/frobble
&prompt.root; make extract
&prompt.root; cd work/frobble-2.8
[Ihre patche einspielen]
&prompt.root; cd ../..
&prompt.root; make packageDiese Geschichte mit den Ports ist wirklich clever. Ich
habe keine Ahnung, wie ihr das hinbekommen habt. Was ist das
Geheimnis dahinter?Keine Geheimnisse. Sehen Sie einfach in die Dateien
bsd.port.mk und
bsd.port.subdir.mk im Verzeichnis
/usr/ports/Mk/.
- Lesern mit einer Aversion gegen komplizierte Shell-Skripte
+ Lesern mit einer Aversion gegen komplizierte Shell-Skripten
wird geraten, dieses Verzeichnis nicht zu besuchen.Hilfe! Dieser Port ist kaputt!Stolpern Sie mal über einen Port, der bei Ihnen nicht
funktioniert, könnten Sie zum Beispiel folgendes tun:Reparieren Sie ihn! Das Handbuch der
Portierer enthält eine detaillierte Beschreibung
des Portsystems. Damit sind Sie in der Lage, einen gelegentlich
kaputten Port zu reparieren oder einen eigenen Port zu
erstellen.Rummeckern — nur mittels E-Mail!
Senden Sie zuerst eine E-Mail an den Betreuer des Ports. Geben
Sie dazu make maintainer ein oder lesen Sie das
Makefile im Verzeichnis des Ports, um an
die E-Mail-Adresse zu kommen. Vergessen Sie nicht den Namen und
die Version des Ports (schicken Sie die Zeile mit
$FreeBSD: aus dem
Makefile)
und die Ausgabe bis zur Fehlermeldung mitzuschicken. Erhalten
Sie vom Betreuer keine Resonanz, können Sie auch das
send-pr Kommando benutzen, um einen
Fehler-Report einzusenden.Holen Sie sich das Paket von einem FTP-Server in Ihrer
Nähe. Die Basis Sammlung aller Pakete
liegt auf ftp.de.FreeBSD.org im
Verzeichnis packages.
Aber versuchen Sie zuerst einen Mirror in
Ihrer Nähe! Benutzen Sie das Programm &man.pkg.add.1;, um
Pakete auf Ihrem Rechner zu installieren. Dies hat zudem den
Vorteil, daß es schneller geht.
diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
index 329ecaba72..7b57328ef1 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -1,3700 +1,3712 @@
MatthewDillonViel von diesem Kapitel stammt aus der security(7)
- Manual-Seite von
+ Manualpage von
+
+
+
+
+ Martin
+ Heinen
+ Übersetzt von SicherheitSicherheitÜbersichtDieses Kapitel bietet eine Einführung in die Konzepte
der Systemsicherheit. Neben einigen Daumenregeln werden fortgeschrittene
Themen wie S/Key, OpenSSL und Kerberos diskutiert. Die meisten
der hier besprochenen Punkte treffen sowohl auf die Systemsicherheit
sowie die Internetsicherheit zu. Das Internet hat aufgehört
ein friedlicher Ort zu sein, an dem Sie nur nette
Leute finden werden. Es ist unumgänglich, daß Sie
Ihre Daten, Ihr geistiges Eigentum, Ihre Zeit und vieles mehr vor
dem Zugriff von Hackern schützen.FreeBSD besitzt eine Reihe von Werkzeugen und Mechanismen, um die
Integrität und die Sicherheit Ihrer Systeme und Netzwerke
zu gewährleisten.Nach dem Sie dieses Kapitel durchgearbeitet haben, werden
Sie:Grundlegende auf FreeBSD bezogene Sicherheitsaspekte
kennen.Die verschiedenen Verschlüsselungsmechanismen von FreeBSD,
wie DES oder MD5, kennen.
- Wissen, wie Sie S/Key ein Einmal-Paßwort
+ Wissen, wie Sie S/Key, ein Einmal-Paßwort
Authentifizierungssystem aufsetzen.Wissen, wie Sie Kerberos, ein weiteres Authentifizierungssystem,
aufsetzen.Firewalls mit IPFW erstellen können.Wissen, wie Sie IPSec konfigurieren.OpenSSH, FreeBSDs Implementation von ssh, konfigurieren
und benutzen können.Bevor Die dieses Kapitel lesen, sollten SieGrundlegende Konzepte von FreeBSD und dem Internet
verstehen.EinführungSicherheit ist ein Konzept, das beim Systemadministrator anfängt
und aufhört. Obwohl alle BSD Unix Mehrbenutzersysteme über
Sicherheitsfunktionen verfügen, ist es wohl eine der
größten Aufgaben eines Systemadministrators zusätzliche
Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind
nur so sicher wie sie gemacht werden und Sicherheitsanforderungen
stehen oft der Benutzerfreundlichkeit entgegen. Auf Unix Systemen
können sehr viele Prozesse gleichzeitig laufen und viele dieser
Prozesse sind Server, das heißt von außen kann auf sie
zugegriffen werden. In einer Zeit, in der die Minicomputer und
Mainframes von gestern die Desktops von heute sind und Rechner
immer mehr vernetzt werden, kommt der Sicherheit eine große
Bedeutung zu.Sicherheit wird am besten in mehreren Schichten implementiert.
Kurz gesagt wollen Sie eine angemessene Zahl an Schichten einrichten,
und dann das System auf Einbrüche hin beobachten. Die
Sicherheitsmaßnahmen sollten nicht überzogen werden,
da sie sonst das Entdecken von Einbrüchen stören und die
Möglichkeit, Einbrüche zu entdecken, ist einer der wichtigsten
Aspekte einer Sicherheitsmaßnahme. Es macht zum Beispiel wenig
Sinn, jedes Programm mit der schg Option (siehe auch
&man.chflags.1;) zu schützen, weil dies verhindert, daß ein
Angreifer eine leicht zu entdeckende Veränderung vornimmt und
vielleicht dazu führt, daß Ihre Sicherheitsvorkehrungen den
Angreifer überhaupt nicht entdecken.Zur Systemsicherheit gehört auch die Beschäftigung mit
verschiedenen Arten von Angriffen, auch solchen, die versuchen,
ein System still zu legen, oder sonst unbrauchbar zu machen ohne
root zu kompromittieren. Sicherheitsaspekte
lassen sich in mehrere Kategorien unterteilen:Denial of Service Angriffe.Kompromittierte Benutzeraccounts.Kompromittierter root-account durch
zugreifbare Server.Kompromittierter root-account durch
kompromittierte Benutzeraccounts.Einrichten von Hintertüren.DoS AngriffeDenial of Service (DoS)SicherheitDoS AngriffeDenial of Service (DoS)Denial of Service (DoS)Ein Denial of Service (Verhinderung von Diensten, DoS) Angriff
entzieht einer Maschine Ressourcen, die sie zur Bereitstellung
von Diensten benötigt. Meist versuchen Denial of Service Angriffe
die Dienste oder den Netzwerkstack einer Maschine zu überlasten,
um so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige
Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die
Maschine mit einem einzigen Paket auszuschalten. Diese Art des
Angriffs kann nur verhindert werden, indem der entsprechende Fehler
im Kernel behoben wird. Oft können Angriffe auf Dienste durch
die Angabe von Optionen verhindert werden, die die Last, die ein
Dienst auf das System unter widrigen Umständen ausüben kann,
begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen.
Außer durch Trennen der Internetverbindung ist zum Beispiel
einem Angriff mit gefälschten Paketen nicht zu begegnen.
Diese Art von Angriff wird Ihr System zwar nicht unbrauchbar machen,
kann aber die Internetverbindung sättigen.Sicherheitkompromittierte AccountsKompromittierte Benutzeraccounts kommen noch häufiger als
DoS Angriffe vor. Viele Systemadministratoren lassen auf ihren
Maschinen noch die Dienste telnetd,
rlogind, rshd
und ftpd laufen. Verbindungen zu diesen
Servern werden nicht verschlüsselt. Wenn Sie eine
größere Benutzerzahl auf Ihrem System haben, die sich von
einem entfernten System anmelden, ist die Folge davon, daß
das Paßwort eines oder mehrerer Benutzer ausgespäht wurde.
Ein aufmerksamer Systemadministrator wird die Logs über Anmeldungen
von entfernten Systemen auf verdächtige Quelladressen, auch
für erfolgreiche Anmeldungen, untersuchen.Es ist immer davon auszugehen, daß ein Angreifer, der
Zugriff auf einen Benutzeraccount hat, Zugang zum
root-Account erlangt. Allerdings gibt der
Zugriff auf einen Benutzeraccount auf einem gut gesicherten und
gepflegten System nicht notwendig Zugriff auf den
root-Account. Diese Unterscheidung ist wichtig,
da ein Angreifer, der keinen Zugang zu root
besitzt, seine Spuren nicht verwischen kann. Er kann höchstens
die Dateien des betreffenden Benutzers verändern oder die
Maschine stillegen. Kompromittierte Benutzeraccounts sind sehr
häufig, da Benutzer meist nicht dieselben Vorsichtsmaßnahmen
wie Administratoren treffen.SicherheitHintertürenEs gibt viele Wege, Zugang zum root-Account
eines Systems zu bekommen: Ein Angreifer kann das Paßwort von
root kennen, er kann einen Fehler in einem
Server entdecken, der unter root läuft und
dann über eine Netzwerkverbindung zu diesem Server einbrechen.
Oder er kennt einen
Fehler in einem SUID-root Programm, der es
ihm erlaubt, root zu werden, wenn er einmal
einen Benutzeraccount kompromittiert hat. Wenn ein Angreifer einen
Weg gefunden hat, root zu werden, braucht er
vielleicht keine Hintertür auf dem System installieren.
Viele der heute
bekannten und geschlossenen Sicherheitslöcher, die zu einem
root Zugriff führen, verlangen vom Angreifer
einen erheblichen Aufwand, um seine Spuren zu verwischen. Aus diesem
Grund wird er sich wahrscheinlich entschließen, eine Hintertür
- (engl. Backdoor) zu installieren. Eine Hintertür erlaubt es
+ (engl. Backdoor) zu installieren.
+ Eine Hintertür erlaubt es
dem Angreifer leicht auf den root-Account
zuzugreifen. Einem klugen Systemadministrator erlaubt sie allerdings
auch, den Einbruch zu entdecken. Wenn Sie es einem Angreifer verwehren,
Hintertüren zu installieren, kann das schädlich für
Ihre Sicherheit sein, da es vielleicht verhindert, daß die
Lücke, die der Angreifer für den Einbruch ausgenutzt hat,
entdeckt wird.Sicherheitsmaßnahmen sollten immer in mehreren Schichten
angelegt werden. Die Schichten können wie folgt eingeteilt
werden:Absichern von root und
Benutzeraccounts.Absichern von unter root laufenden
Servern und SUID/SGID Programmen.Absichern von Benutzeraccounts.Absichern der Paßwort-Datei.Absichern des Kernels, der Geräte und von
Dateisystemen.Schnelles Aufdecken von unbefugten Veränderungen des
Systems.Paranoia.Die einzelnen Punkte der obigen Liste werden im nächsten
Abschnitt genauer behandelt.SicherheitAbsichernAbsichern von FreeBSDKommandos und ProtokolleIn diesem Abschnitt wird fett verwendet,
um Kommandos oder Applikationen zu kennzeichnen. Zum Beispiel
wird ssh so gekennzeichnet, da es
sowohl ein Protokoll wie auch ein Kommando ist.Die folgenden Abschnitte behandeln die im
letzten Abschnitt erwähnten
Methoden Ihr FreeBSD-System zu sichern.Absichern von root und
- Benutzeraccounts.
+ Benutzeraccounts
suZuallererst, kümmern Sie sich nicht um die Absicherung
von Benutzeraccounts, wenn Sie root
noch nicht abgesichert haben. Auf den meisten Systemen ist
root ein Paßwort zugewiesen. Sie
sollten immer davon ausgehen, daß
dieses Paßwort kompromittiert ist. Das heißt nicht,
daß Sie das Paßwort entfernen sollten, da es meist
für den Konsolenzugriff notwendig ist. Vielmehr heißt
es, daß Sie das Paßwort nicht außerhalb der
Konsole, auch nicht zusammen mit &man.su.1;, verwenden sollten.
Stellen Sie sicher, das Ihre PTYs in ttys als
unsicher markiert sind und damit Anmeldungen von
root mit telnet oder
rlogin verboten sind. Wenn Sie andere
Applikationen wie sshd zum Anmelden
benutzen, vergewissern Sie sich, daß dort ebenfalls
Anmeldungen als root verboten sind. Für
ssh editieren Sie
/etc/ssh/sshd_config und überprüfen,
daß PermitRootLogin auf NO
gesetzt ist. Beachten Sie jede Zugriffsmethode – Dienste
wie FTP werden oft vergessen. Nur an der Systemkonsole sollte
ein direktes Anmelden als root möglich
sein.wheelNatürlich müssen Sie als Systemadministrator
root-Zugriff erlangen können. Dieser
sollte aber durch zusätzliche Paßwörter
geschützt sein. Ein Weg, Zugang zu root
zu ermöglichen, ist es, berechtigte Mitarbeiter in
/etc/group in die Gruppe
wheel aufzunehmen. Die Personen, die
Mitglieder in der Gruppe wheel sind,
können mit su zu root
wechseln. Ihre Mitarbeiter sollten niemals die Gruppe
wheel als primäre Gruppe in
/etc/passwd besitzen. Mitarbeiter sollten
der Gruppe staff angehören und über
/etc/group in wheel
aufgenommen werden. Es sollten auch nur die Mitarbeiter, die
wirklich root Zugriff benötigen in
wheel aufgenommen werden. Mit anderen
Authentifizierungsmethoden müssen Sie niemanden in
wheel aufnehmen. Wenn Sie z.B.
Kerberos nutzen, wechseln Sie mit
&man.ksu.1; zu root und der Zugriff wird
mit der Datei .k5login geregelt. Dies ist
vielleicht eine bessere Lösung, da es der
wheel-Mechanismus einem Angreifer immer
noch möglich macht, den root-Account
zu knacken, nachdem er einen Mitarbeiter-Account geknackt hat.
Obwohl der wheel-Mechanismus besser als
gar nichts ist, ist er nicht unbedingt die sicherste Lösung.Indirekt können Sie die Accounts von Mitarbeitern und
damit auch den Zugriff auf root schützen,
indem Sie eine alternative Zugangsmethode verwenden und die
Accounts der Mitarbeiter mit einem ungültigen verschlüsselten
- Paßwort versehen. Mit &man.vipw.8; können Sie jedes
+ Paßwort versehen. Mit &man.vipw.8; können Sie jedes
verschlüsselte Paßwort mit einem
* Zeichen ersetzen. Das Kommando
wird /etc/master.passwd und die
Benutzer/Paßwort Datenbank aktualisieren und die Paßwort
Authentifizierung abstellen.Ein Account wie der folgendefoobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshsollte wie folgt abgeändert werden:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshDa ein verschlüsseltes Paßwort niemals
ein * sein kann, verhindert dies
die normale Anmeldung. Damit müssen sich die Mitarbeiter
mit anderen Mechanismen wie &man.kerberos.1; oder &man.ssh.1;
authentifizieren. Wenn Sie etwas wie
Kerberos benutzen, müssen Sie
die Maschinen, die die Kerberos-Server
beheimaten und die Maschinen der Benutzer absichern. Wenn Sie
öffentliche/private Schlüssel mit
ssh benutzen, muß die Maschine
von der die Anmeldung gestartet wird, gesichert
werden. Als zusätzliche Sicherheitsschicht können Sie
das Schlüsselpaar beim Erstellen mit &man.ssh-keygen.1; durch
ein Paßwort schützen. Dadurch, daß Sie die
Paßwörter Ihrer Mitarbeiter als ungültig markiert
haben, stellen Sie sicher, daß sich die Mitarbeiter nur mit
den sicheren Methoden, die Sie aufgesetzt haben, anmelden können.
Dies zwingt alle Mitarbeiter, verschlüsselte Verbindungen
für ihre Sitzungen zu verwenden, und schließt ein
wichtiges Loch, daß gerne von Angreifern ausgenutzt wird:
Das Abhören des Netzwerks von einer anderen weniger gesicherten
Maschine.Die indirekten Sicherheitsmechanismen setzen voraus, daß
Sie sich von einer restriktiven Maschine auf einer weniger restriktiven
Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle
möglichen Arten von Servern laufen, so sollten auf Ihrer
Workstation keine Server laufen. Um Ihre Workstation vernünftig
abzusichern, sollten auf Ihr so wenig Server wie möglich bis hin
zu keinem Server laufen. Sie sollten zudem über einen
Bildschirmschoner verfügen, der mit einem Paßwort
gesichert ist. Natürlich kann ein Angreifer, der physikalischen
Zugang zu einer Maschine hat, jede Art von Sicherheitsmechanismen
- umgehen. Dieses Problem sollten Sie daher auch in Ihren
+ umgehen. Dieses Problem sollten Sie daher auch in Ihren
Überlegungen berücksichtigen. Beachten Sie dabei aber,
daß der Großteil der Einbrüche über das
Netzwerk erfolgt und die Einbrecher keinen Zugang zu der Maschine
besitzen.KerberosMit Kerberos können Sie das
Paßwort eines Mitarbeiters an einer Stelle ändern
und alle Maschinen, auf denen der Mitarbeiter einen Account hat,
beachten die Änderung sofort. Wird der Account eines
Mitarbeiter einmal kompromittiert, so sollte die Fähigkeit, das
Paßwort mit einem Schlag auf allen Maschinen zu ändern,
nicht unterschätzt werden. Mit einzelnen Paßwörtern
wird es schwierig, das Paßwort auf N Maschinen zu ändern.
Mit Kerberos können Sie auch
Beschränkungen für Paßwörter festlegen:
Nicht nur das Ticket kann nach einiger Zeit ungültig werden,
Sie können auch festlegen, daß der Benutzer nach einer
bestimmten Zeit, z.B. nach einem Monat, das Paßwort wechseln
muß.Absichern von unter root laufenden
Servern und SUID/SGID ProgrammenntalkcomsatfingerSandkästensshdtelnetdrshdrlogindEin kluger Systemadministrator läßt nur die
Dienste, die er wirklich braucht, laufen; nicht mehr und auch
nicht weniger. Beachten Sie, daß Server von Dritten die
fehleranfälligsten sind. Wenn Sie z.B. eine alte Version von
imapd oder popper
laufen lassen, ist das so, als würden Sie der ganzen Welt
freien Zugang zu root geben. Lassen Sie keine
Server laufen, die Sie vorher nicht genau überprüft haben.
Viele Server müssen nicht unter root
laufen, zum Beispiel können ntalk,
comsat und finger
in speziellen Sandkästen unter
einem Benutzer laufen. Ein Sandkasten ist keine perfekte Lösung,
wenn Sie nicht eine Menge Arbeit in die Konfiguration investieren,
doch bewährt sich hier das Prinzip, die Sicherheit in Schichten
aufzubauen. Wenn es einem Angreifer gelingt, in einen Server,
der in einem Sandkasten läuft, einzubrechen, dann muß
er immer noch aus dem Sandkasten selber ausbrechen. Je mehr Schichten
der Angreifer zu durchbrechen hat, desto kleiner sind seine Aussichten
auf Erfolg. In der Vergangenheit wurden praktisch in jedem
Server, der unter root läuft, Lücken
gefunden, die zu einem root Zugriff führten.
Dies betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine
Maschine betreiben, auf der man sich nur mit
sshd anmelden kann, dann stellen Sie die
Dienste telnetd,
rshd oder rlogind
ab!In der Voreinstellung laufen unter FreeBSD
ntalkd, comsat
und finger nun in einem Sandkasten. Ein
weiteres Programm, das in einem Sandkasten laufen sollte, ist
&man.named.8;. In /etc/defaults/rc.conf sind
die notwendigen Argumente, um named in
einem Sandkasten laufen zu lassen, in kommentierter Form schon
enthalten. Abhängig davon, ob Sie ein neues System installieren
oder ein altes System aktualisieren, sind die hierfür
benötigten Benutzer noch nicht installiert.
Ein kluger Systemadministrator sollte immer nach Möglichkeiten
suchen, Server in einem Sandkasten laufen zu lassen.sendmailEinige Server wie sendmail,
popper, imapd
und ftpd werden normalerweise nicht in
Sandkästen betrieben. Zu einigen Servern gibt es Alternativen,
aber diese wollen Sie vielleicht wegen der zusätzlich nötigen
Arbeit nicht installieren (ein weiteres Beispiel für den
Widerspruch zwischen Sicherheit und Benutzerfreundlichkeit).
In diesem Fall müssen Sie die
Server unter root laufen lassen und auf die
eingebauten Mechanismen vertrauen, Einbrüche zu entdecken.Weitere potentielle Löcher, die zu einem
root-Zugriff führen können, sind
die auf dem System installierten SUID- und SGID-Programme. Die
meisten dieser Programme wie rlogin stehen
in /bin, /sbin,
/usr/bin, oder /usr/sbin.
Obwohl nichts 100% sicher ist, können Sie davon ausgehen,
daß die SUID- und SGID-Programme des Basissystems ausreichend
sicher sind. Allerdings werden ab und an in diesen Programmen
Löcher gefunden. 1998 wurde in Xlib ein
Loch gefunden, das xterm, der
normal mit SUID installiert wird, verwundbar machte. Es ist besser
auf der sicheren Seite zu sein, als sich später zu beklagen,
- darum wird der kluge Systemadministrator den Zugriff auf
+ darum wird ein kluger Systemadministrator den Zugriff auf
SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter zugreifen
können, beschränken. SUID-Programme, die niemand benutzt,
sollten mit chmod 000 deaktiviert werden. Zum
Beispiel braucht ein Server ohne Bildschirm kein
xterm Programm. SGID-Programme sind
vergleichbar gefährlich. Wenn ein Einbrecher Zugriff auf
SGID-kmem Programm erhält, kann er
vielleicht /dev/kmem und damit die
verschlüsselte Paßwortdatei lesen. Dies kompromittiert
unter Umständen jeden Account, der mit einem Paßwort
geschützt ist. Alternativ kann ein Einbrecher, der in die
Gruppe kmem eingebrochen ist, die
Tastendrücke auf PTYs verfolgen. Dies schließt
auch PTYs mit ein, auf denen sich ein Benutzer mit sicheren
Methoden anmeldet. Ein Einbrecher, der Zugriff auf die
tty Gruppe hat, kann auf fast jeden Terminal
anderer Benutzer schreiben. Wenn der Benutzer einen Terminal-Emulator
benutzt, der über eine Tastatur-Simulation verfügt,
könnte der Angreifer Daten generieren, die den Terminal
veranlassen, ein Kommando unter diesem Benutzer laufen zu lassen.Absichern von BenutzeraccountsBenutzeraccounts sind für gewöhnlich sehr schwierig
abzusichern. Während Sie drakonische Beschränkungen
für Ihre Mitarbeiter einrichten und deren Paßwörter
als ungültig markieren können, werden Sie das
vielleicht bei den normalen Benutzeraccounts nicht durchsetzen.
Wenn Sie über ausreichend Macht verfügen, gelingt es Ihnen
vielleicht doch, ansonsten müssen Sie diese Benutzeraccounts
aufmerksam überwachen. Wegen der zusätzlichen
Administrationsarbeit und der nötigen technischen
Unterstützung ist die Verwendung von
ssh und Kerberos
mit normalen Benutzeraccounts erschwert, obwohl das natürlich
sicherer als die Verwendung von verschlüsselten
Paßwörtern ist.
- Absichern der Paßwort-Datei.
+ Absichern der Paßwort-DateiDer einzig sichere Weg ist, soviele Accounts wie möglich als
ungültig zu markieren und ssh oder
Kerberos zu benutzen, um auf sie
zuzugreifen. Obwohl die Datei /etc/spwd.db,
die die verschlüsselten Paßwörter enthält,
nur von root gelesen werden kann, mag ein
Angreifer lesenden Zugriff auf diese Datei erlangen, ohne die
Fähigkeit sie auch zu beschreiben.
- Ihre Überwachungsskripte sollten Änderungen
+ Ihre Überwachungsskripten sollten Änderungen
an der Paßwort-Datei melden (siehe Überprüfen der
Integrität von Dateien weiter unten).Absichern des Kernels, der Geräte und von
- Dateisystemen.
+ Dateisystemen
Wenn ein Angreifer root-Zugriff erlangt,
kann er so ziemlich alles mit Ihrem System anstellen, doch sollten Sie
es ihm nicht zu leicht machen. Die meisten modernen Kernel haben
zum Beispiel einen Gerätetreiber, der es erlaubt, Pakete
abzuhören. Unter FreeBSD wird das Gerät
bpf genannt. Für gewöhnlich
wird ein Angreifer versuchen, dieses Gerät zu nutzen, um
Pakete abzuhören. Sie sollten ihm diese Gelegenheit nicht
geben und auf den meisten Systemen ist das Gerät
bpf nicht nötig.sysctlAuch wenn Sie bpf nicht verwenden,
müssen Sie sich immer noch um /dev/mem
und /dev/kmem sorgen. Außerdem
- kann der Angreifer immer noch auf die rohen Geräte (raw devices)
+ kann der Angreifer immer noch auf die rohen Geräte
+ (raw devices)
schreiben. Weiterhin gibt es ein Programm zum Nachladen von
Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger
Angreifer kann dies benutzen, um sein eigenes
bpf oder ein anderes zum Abhören
geeignetes Gerät in den laufenden Kernel einzubringen. Um diese
Probleme zu vermeiden, müssen Sie den Kernel auf einer
höheren Sicherheitsstufe, mindestens 1,
laufen lassen. Die Sicherheitsstufe wird durch die Variable
kern.securelevel, die mit sysctl
gesetzt werden kann, angegeben. Nachdem Sie die Sicherheitsstufe
auf 1 gesetzt haben, sind schreibende Zugriffe
auf rohe Geräte verboten und die speziellen
chflags Optionen, wie schg
werden erzwungen. Sie müssen sicherstellen, daß die
schg Option auf allen kritischen Programmen,
Verzeichnissen und Skripten, die bis zum Setzen der Option laufen,
aktiviert ist. Das mag übertrieben sein da eine Migration
des Systems erschwert wird, wenn Sie auf einer höheren
Sicherheitsstufe arbeiten. Sie können einen Kompromiß
erreichen, indem Sie das System auf einer erhöhten
Sicherheitsstufe laufen lassen, aber die schg
Option nicht für jede Datei und jedes Verzeichnis auf der Welt
setzen. Eine andere Möglichkeit besteht darin,
/ und /usr einfach
schreibgeschützt einzuhängen. Bedenken Sie, daß
Sie das Aufdecken eines Einbruchs vielleicht verhindern, wenn
Sie zu drastische Maßnahmen zum Schutz Ihres Systems
verwenden.Überprüfen der Integrität von DateienSie können die Systemkonfiguration und die Dateien
nur so weit schützen, wie es die Benutzbarkeit des
Systems nicht einschränkt. Wenn Sie zum Beispiel
mit chflags die Option schg
auf die meisten Dateien in / und
/usr setzen, kann das Ihre Arbeit mehr behindern
als nützen. Die Maßnahme schützt zwar die
Dateien, schließt aber auch eine Möglichkeit,
Veränderungen zu entdecken, aus. Die letzte Schicht des
Sicherheitsmodells — das Aufdecken von Einbrüchen —
ist sicherlich die wichtigste. Alle Sicherheitsmaßnahmen sind
nichts wert, oder wiegen Sie in falscher Sicherheit, wenn Sie
nicht in der Lage sind, einen möglichen Einbruch zu entdecken.
Die Hälfte der Sicherheitsmaßnahmen hat die Aufgabe,
einen Einbruch zu verlangsamen, um es zu ermöglichen, den
Einbrecher auf frischer Tat zu ertappen.Der beste Weg, einen Einbruch zu entdecken, ist es, nach
veränderten, fehlenden oder unerwarteten Dateien zu suchen.
Der wiederum beste Weg, nach veränderten Dateien zu suchen, ist
es, die Suche von einem anderen (oft zentralen) besonders
geschützten System durchzuführen. Es ist wichtig, daß
Ihre Sicherheitsüberprüfungen vor einem Angreifer
verborgen bleiben und daher sind sie auf einem besonders
geschützten System gut aufgehoben. Um dies optimal auszunutzen,
müssen Sie dem besonders geschützten System Zugriffsrechte
auf die zu schützenden Systeme geben. Sie können die
Dateisysteme der zu schützenden Systeme schreibgeschützt
für das besonders geschützte System exportieren, oder
Sie können der besonders geschützten Maschine
ssh auf die anderen Maschinen erlauben,
indem Sie ssh Schlüsselpaare
installieren. Mit Ausnahme des verursachten Netzwerkverkehrs
- ist die NFS-Methode die am wenigsten sichtbare. Sie erlaubt es Ihnen
+ ist die NFS-Methode die am wenigsten sichtbare. Sie erlaubt es Ihnen,
nahezu unentdeckt die Dateisysteme der Clients zu beobachten. Wenn
Ihr besonders geschütztes System mit den Clients über
einen Switch verbunden ist, ist die NFS-Methode oft das Mittel der
Wahl. Wenn das besonders geschützte System allerdings
mit einem Hub verbunden ist, oder der Zugriff über mehrere
Router geschieht, ist die NFS-Methode aus der Netzwerksicht zu
unsicher. In einem solchen Fall ist ssh
besser geeignet, auch wenn es deutliche Spuren
hinterläßt.Wenn das besonders geschützte System lesenden Zugriff
- auf die Clients hat, müssen Sie Skripte schreiben, die die
+ auf die Clients hat, müssen Sie Skripten schreiben, die die
Überwachung durchführen. Wenn Sie die NFS-Methode
verwenden, können Sie dazu einfache Systemwerkzeuge wie
&man.find.1; und &man.md5.1; benutzen. Am besten berechnen
Sie einmal am Tag MD5-Prüfsummen der Dateien, Konfigurationsdateien
in /etc und /usr/local/etc
sollten öfter überprüft werden. Wenn Unstimmigkeiten
zwischen den auf der besonders geschützten Maschine gehaltenen
MD5-Prüfsummen und den ermittelten Prüfsummen festgestellt
werden, sollte Ihr System einen Systemadministrator benachrichtigen,
der den Unstimmigkeiten dann nachgehen sollte. Ein gutes Skript
überprüft das System auch auf verdächtige
SUID-Programme sowie gelöschte oder neue Dateien in
/ und /usr.Wenn Sie ssh anstelle von NFS
- benutzen, wird das Erstellen der Skripte schwieriger. Sie müssen
- die Skripte und die Programme wie find mit
+ benutzen, wird das Erstellen der Skripten schwieriger. Sie müssen
+ die Skripten und die Programme wie find mit
scp auf den Client kopieren. Damit machen
Sie die Überprüfung für einen Angreifer sichtbar.
Außerdem kann der ssh-Client auf dem
Zielsystem schon kompromittiert sein. Zusammenfassend, kann der
Einsatz von ssh nötig sein,
wenn Sie über ungesicherte Verbindungen arbeiten, aber
der Umgang mit dieser Methode ist auch sehr viel schwieriger.Ein gutes Sicherheitsskript wird auch Dateien von Benutzern,
die den Zugriff auf ein System ermöglichen, wie
.rhosts, .shosts,
.ssh/authorized_keys usw., auf
Veränderungen untersuchen, die über die Möglichkeiten
einer Überprüfung mit MD5,
die ja nur Veränderungen feststellen kann, hinausgehen.Wenn Sie über große Partitionen verfügen, kann
es zu lange dauern, jede Datei zu überprüfen. In diesem
Fall sollten Sie beim Einhängen des Dateisystems Optionen
setzen, die das Ausführen von SUID-Programmen und den
Zugriff auf Geräte verbieten. &man.mount.8; stellt dazu
die Optionen und
zur Verfügung. Sie sollten diese Dateien aber trotzdem
mindestens einmal die Woche überprüfen, da das Ziel
dieser Schicht das Aufdecken eines Einbruchs, auch wenn er nicht
erfolgreich war, ist.Die Prozeßüberwachung (siehe &man.accton.8;)
des Betriebssystems steht ein günstiges Werkzeug zur
Verfügung, daß sich bei der Analyse eines Einbruchs
als nützlich erweisen kann. Insbesondere können Sie
damit herausfinden, wie der Einbrecher in das System eingedrungen ist,
vorausgesetzt die Dateien der Prozeßüberwachung sind
noch alle intakt.
- Schließlich sollten die Sicherheitsskripte die Logdateien
+ Schließlich sollten die Sicherheitsskripten die Logdateien
analysieren. Dies sollte so sicher wie möglich durchgeführt
werden, nützlich ist das Schreiben von Logdateien auf
entfernte Systeme mit syslog. Ein Einbrecher
- wird versuchen, seine Spuren zu verwischen. Die Logdateien
+ wird versuchen, seine Spuren zu verwischen. Die Logdateien
sind wichtig für den Systemadministrator, da er aus ihnen
den Zeitpunkt und die Art des Einbruchs bestimmen kann. Eine
Möglichkeit, die Logdateien unverändert aufzuheben,
ist es, die Systemkonsole auf einen seriellen Port zu legen
und die Informationen dort von einer gesicherten Maschine
auszulesen.Paranoia
- Es schadet nicht, ein bißchen paranoid zu sein. Grundsätzlich
- darf ein Systemadministrator jede Sicherheitsmaßnahme treffen,
- die die Bedienbarkeit des Systems nicht einschränkt. Er kann
- auch Maßnahmen treffen, die die Bedienbarkeit einschränken,
+ Es schadet nicht, ein bißchen paranoid zu sein.
+ Grundsätzlich darf ein Systemadministrator jede
+ Sicherheitsmaßnahme treffen, die die Bedienbarkeit des
+ Systems nicht einschränkt. Er kann auch Maßnahmen
+ treffen, die die Bedienbarkeit einschränken,
wenn er diese vorher genau durchdacht hat. Was noch wichtiger
ist: Halten Sie sich nicht sklavisch an dieses Dokument, sondern
führen Sie eigene Maßnahmen ein, um nicht einem
künftigen Angreifer, der auch Zugriff auf dieses Dokument
hat, alle Ihre Methoden zu verraten.Denial of Service AngriffeDenial of Service (DoS)Dieser Abschnitt behandelt Denial of Service Angriffe (DoS).
Ein DoS-Angriff findet typischerweise auf der Paketebene statt.
Während Sie nicht viel gegen moderne Angriffe mit falschen
Paketen , die das Netzwerk sättigen, ausrichten können,
können Sie allerdings den Schaden in der Hinsicht begrenzen,
daß Ihre Server von einem solchen Angriff nicht gestoppt
werden.Begrenzen von fork() Aufrufen.Begrenzen von Sprungbrett-Angriffen (ICMP response Angriffen,
ping zu Broadcast-Adressen usw.).Kernel-Cache für Routen.Ein häufiger DoS-Angriff gegen forkende Server versucht
den Server dazu zu bringen, möglichst viele Prozesse, viele
Dateideskriptoren und viel Speicher zu verbrauchen, bis hin zu
dem Punkt, an dem die Maschine ausfällt. &man.inetd.8;
besitzt einige Optionen, um diese Art von Angriffen zu begrenzen.
Beachten Sie bitte, daß es möglich ist, einen
Ausfall einer Maschine zu verhindern, doch ist es generell nicht
möglich, den Ausfall eines Dienstes bei dieser Art
- von Angriffen zu verhindern. Lesen Sie sich bitte die Manualseiten
+ von Angriffen zu verhindern. Lesen Sie sich bitte die Manualpages
von inetd gut durch und achten Sie speziell
auf die Optionen , und
. Angriffe mit gefälschten IP-Adressen
umgehen , so daß normalerweise eine
Kombination der Optionen benutzt werden muß. Manche Server,
die nicht von inetd gestartet werden,
besitzen Optionen, um den Start über fork()
einzuschränken.Sendmail besitzt die Option
, die besser als die
eingebauten Optionen zur Begrenzung der Systemauslastung funktioniert.
Sie sollten beim Start von sendmailMaxDaemonChildren so hoch setzen, daß Sie
die erwartete Auslastung gut abfangen können. Allerdings
sollten Sie den Wert nicht so hoch setzen, daß der
Rechner über seine eigenen Füße fällt.
Es ist auch klug, sendmail im
Queue-Modus () laufen zu
lassen. Der Dæmon (sendmail -bd) sollte
getrennt von den Queue-Läufen (sendmail -q15m)
laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post
wünschen, können Sie die Queue in einem geringeren
Intervall, etwa , abarbeiten. Geben Sie
für diesessendmail aber einen vernünftigen
Wert für MaxDaemonChildren an, um
Fehler zu verhindern.Syslogd kann direkt angegriffen
werden. Daher empfehlen wir Ihnen unbedingt die Option
zu benutzen. Sollte das nicht möglich
sein, benutzen Sie bitte .
Vorsicht ist auch mit Diensten geboten, die automatisch
eine Rückverbindung eröffnen, wie der
reverse-identd der tcpwrapper.
Diese Eigenschaft der tcpwrapper
sollten Sie normalerweise nicht nutzen.Es empfiehlt sich sehr, interne Dienste vor externen Zugriffen
durch eine Firewall an der Grenze Ihres Netzwerks zu schützen.
Dahinter steckt mehr die Idee, das Netzwerk vor Überlastung
durch Angriffe von außen zu schützen, als interne
Dienste vor einem root-Zugriff aus dem Netz
zu schützen. Konfigurieren Sie immer eine Firewall, die
alle Zugriffe blockiert, das heißt blockieren Sie
alles außer den Ports A, B, C, D
und M-Z. Damit können Sie Zugriffe auf alle niedrigen
Ports blockieren und Zugriffe auf spezielle Dienste wie
named, wenn Sie den primären
Namensdienst für eine Zone anbieten,
ntalkd oder
sendmail erlauben. Wenn Sie die
Firewall so konfigurieren, das sie in der Voreinstellung alle
Zugriffe erlaubt, ist es sehr wahrscheinlich, daß Sie
vergessen, eine Reihe von Diensten zu blockieren bzw. einen
internen Dienst einführen und dann vergessen die Firewall
zu aktualisieren. Sie können immer die höheren
Portnummern öffnen, ohne die niedrigen Portnummern,
die nur von root benutzt werden dürfen,
zu kompromittieren. Beachten Sie bitte auch, daß es
FreeBSD erlaubt, die Portnummern, die für dynamische
Verbindungen zur Verfügung stehen, zu konfigurieren.
Mit sysctl lassen sich verschiedene
Bereiche der net.inet.ip.portrange Variablen
setzen (eine Liste erhalten Sie mit sysctl -a | fgrep
portrange).
So können Sie zum Beispiel die Portnummern 4000 bis 5000
für den normalen Bereich und die Nummern 49152 bis 65535
für den hohen Bereich vorsehen. Dies erleichtert Ihnen
die Konfiguration der Firewall, da Sie nun Zugriffe auf Ports
unterhalb von 4000, mit Ausnahme der Dienste, die von außen
erreichbar sein sollen, blockieren können.ICMP_BANDLIMEine andere Form eines DoS-Angriffs nutzt einen Server
als Sprungbrett, der Server wird dabei so angegriffen, daß
seine Antworten ihn selber, das lokale Netzwerk oder einen
anderen Server überlasten. Der am häufigsten verwendete
Angriff dieser Art ist der ICMP ping broadcast
Angriff. Der Angreifer fälscht dazu
ping-Pakete, die zu der Broadcast-Adresse
Ihres LANs gesendet werden, indem er darin als Quelladresse
die Adresse des Opfers einsetzt. Wenn die Router an der Grenze
Ihres Netzwerks ping-Pakete auf
Broadcast-Adressen nicht abwehren, wird Ihr LAN genügend
Netzwerkverkehr generieren, um das Ziel des Angriffs zu
überlasten. Dies kann besonders effektiv sein, wenn der
Angreifer diese Methode mit mehreren Dutzend Broadcast-Adressen
über mehrere Netzwerke einsetzt. Es wurden schon
Broadcast-Angriffe mit über 120 Megabit pro Sekunde
gemessen. Eine zweiter Sprungbrett-Angriff wird gegen
das Fehlerbehandlungssystem von ICMP eingesetzt. Indem ein Angreifer
Pakete konstruiert, die eine ICMP-Fehlermeldung hervorrufen, kann
er das einkommende Netzwerk des Servers sättigen und diesen
wiederum veranlassen sein ausgehendes Netzwerk mit ICMP-Antworten
zu sättigen. Diese Art des Angriffs kann alle mbuf-Strukturen
auf dem Server aufbrauchen und damit den Server stillegen,
insbesondere wenn der Server nicht in der Lage ist, die generierten
ICMP-Antworten schnell genug abzuführen. Der FreeBSD-Kernel
besitzt eine neue Option , die die
Auswirkungen von solchen Angriffen begrenzen kann. Die letzte
weit verbreitete Form von Sprungbrett-Angriffen verwendet
interne inetd-Dienste wie den
UDP echo-Dienst. Der Angreifer fälscht
dazu einfach ein UDP-Paket, indem er als Quellport den
echo-Port von Server A
und als Zielport den echo-Port von
Server B angibt, wobei beide
Server in Ihrem LAN stehen. Die beiden Server werden nun
dieses Paket zwischen sich hin und her schicken. Der Angreifer
kann die beiden Server und das LAN einfach damit überlasten,
daß er mehrere Pakete dieser Art generiert. Ähnliche
Probleme gibt es mit dem internen
chargen-Port, daher sollten Sie
die internen inetd-Testdienste
abstellen.Gefälschte IP-Pakete können dazu benutzt werden,
den Kernel-Cache für Routen zu überlasten. Schauen Sie
sich bitte die sysctl-Parameter
net.inet.ip.rtexpire, rtminexpire
und rtmaxcache an. Ein Angriff der gefälschte
Pakete mit zufälligen Quelladressen einsetzt, bewirkt, daß
der Kernel eine Route im Route-Cache anlegt, die Sie sich mit
netstat -rna | fgrep W3 ansehen können.
Diese Routen verfallen für gewöhnlich nach 1600 Sekunden.
Wenn der Kernel feststellt, daß die Routingtabelle im Cache
zu groß geworden ist, wird er dynamisch den Wert von
rtexpire verringern. Dieser Wert wird aber nie
kleiner werden als rtminexpire. Daraus
ergeben sich zwei Probleme:Der Kernel reagiert nicht schnell genug, wenn ein
Server mit einer niedrigen Grundlast plötzlich angegriffen
wird.rtminexpire ist nicht klein genug,
um einen anhaltenden Angriff zu überstehen.Wenn Ihre Server über eine T3 oder eine noch schnellere
Leitung mit dem Internet verbunden sind, ist es klug, mit
&man.sysctl.8; die Werte für rtexpire und
rtminexpire händisch zu setzen. Setzen
Sie bitte keinen der Werte auf Null, außer Sie wollen die
Maschine zum Erliegen bringen. Ein Wert von 2 Sekunden für
beide Parameter sollte ausreichen, um die Routingtabelle vor
einem Angriff zu schützen.Anmerkungen zum Zugriff mit Kerberos und sshsshKerberosEs gibt ein paar Punkte, die Sie beachten sollten, wenn Sie
Kerberos oder ssh
einsetzen wollen. Kerberos V ist ein
ausgezeichnetes Authentifizierungsprotokoll. Leider gibt es
Fehler, in den für Kerberos
angepaßten Versionen von telnet und
rlogin, die sie ungeeignet für den
Umgang mit binären Datenströmen machen. Weiterhin
verschlüsselt Kerberos Ihre Sitzung
nicht, wenn Sie nicht die Option verwenden,
mit ssh wird dagegen alles
verschlüsselt.Ein Problem mit SSH sind Weiterleitungen von Verbindungen.
Wenn Sie eine sichere Arbeitsstation besitzen, die Ihnen
Zugriff auf alle anderen Maschinen gibt und von dort eine
Verbindung zu einer ungesicherten Maschine aufmachen, werden Ihre
Schlüssel preisgegeben. Das heißt, Ihre Schlüssel
werden nicht wirklich freigegeben, sondern die SSH erzeugt einen
Port für Weiterleitungen für die Dauer Ihrer Sitzung.
Ein Angreifer, der auf der unsicheren Maschine Zugang zu
root hat, kann diesen Port und Ihre
Schlüssel benutzen, um Zugriff auf andere Maschinen zu
erlangen, die mit Ihren Schlüsseln zugänglich
sind.Wir empfehlen Ihnen, für die Logins Ihrer Mitarbeiter immer
ssh zusammen mit
Kerberos einzusetzen. Damit reduzieren
Sie die Abhängigkeit von potentiell gefährdeten
Schlüsseln und schützen gleichzeitig die Paßwörter
mit Kerberos.
ssh-Schlüsselpaare sollten nur
für automatisierte Aufgaben von einem besonders gesicherten
Server eingesetzt werden (Kerberos
kann für diese Art von Aufgaben nicht eingesetzt werden).
Weiterhin empfehlen wir Ihnen, das Weiterreichen von Schlüsseln
in der ssh-Konfiguration abzustellen bzw.
die from=IP/DOMAIN Option in
authorized_keys zu verwenden, die den
Schlüssel nur von bestimmten Maschinen aus nutzbar macht.BillSwingleTeile umgeschrieben und aktualisiert von DES, MD5, und crypt()Sicherheitcrypt()crypt()DESMD5Jedem Benutzer eines Unix-Systems ist ein Paßwort zugeordnet.
Es scheint offensichtlich, daß das Paßwort nur dem Benutzer
und dem System bekannt sein muß. Um die Paßwörter
geheim zu halten, werden sie mit einer nicht umkehrbaren Hash-Funktion
verschlüsselt, das heißt sie können leicht
verschlüsselt aber nicht entschlüsselt werden. Was wir
gerade als offensichtlich dargestellt haben, ist also nicht wahr: Das
Betriebssystem kennt das Paßwort wirklich
nicht, es kennt nur das verschlüsselte
Paßwort. Die einzige Möglichkeit, das originale Paßwort
herauszufinden, besteht darin, alle möglichen Paßwörter
- auszuprobieren (brute force Suche).
+ auszuprobieren (brute force Suche).
Zu der Zeit als Unix entstanden ist, war die einzig sichere
Möglichkeit Paßwörter zu verschlüsseln, leider
DES (Data Encryption Standard). Für die Einwohner der USA
stellte das kein Problem dar, aber da der Quellcode von DES nicht aus
den USA exportiert werden durfte, mußte ein Weg gefunden werden,
der die Gesetze der USA nicht verletzte und gleichzeitig die
Kompatibilität mit anderen Unix Systemen, die immer noch DES
benutzten, wahrte.Die Lösung bestand darin, die Verschlüsselungsbibliotheken
aufzuspalten. Benutzer in den USA konnten die DES-Bibliotheken
installieren und nutzen. In der Grundeinstellung benutzt FreeBSD
MD5 als Verschlüsselungsmethode, das exportiert werden durfte
und damit von jedem genutzt werden konnte. Es wird davon ausgegangen,
daß MD5 sicherer als DES ist, so daß DES nur aus
Kompatibilitätsgründen installiert werden sollte.Erkennen der VerschlüsselungsmethodeVor FreeBSD 4.4 war libcrypt.a ein
symbolischer Link, der auf die Library zeigte, die die
Verschlüsselungsroutinen enthielt. Seit FreeBSD 4.4 enthält
libcrypt.a verschiedene Hash-Funktionen, deren
Anwendung sich konfigurieren läßt. Momentan werden
DES-, MD5- und Blowfish-Hash Funktionen unterstützt. In der
Voreinstellung benutzt FreeBSD die MD5-Hash Funktion.Sie können leicht herausfinden, welche
Verschlüsselungsmethode von FreeBSD verwendet wird. Ein Weg
besteht darin, die verschlüsselten Paßwörter in
/etc/master.passwd zu untersuchen.
Paßwörter, die mit MD5 verschlüsselt wurden,
sind länger als die mit DES verschlüsselten und
beginnen mit den Zeichen $1$.
Paßwörter, die mit $2$
anfangen, wurden mit der Blowfish-Funktion verschlüsselt.
DES Paßwörter besitzen keine offensichtlichen Merkmale,
an denen sie identifiziert werden könnten. Sie sind aber
kürzer als MD5-Paßwörter und sind in einem
64 Zeichen umfassenden Alphabet kodiert, das das
$-Zeichen nicht enthält. Ein relativ
kurzes Paßwort, das nicht mit einem
$-Zeichen anfängt, ist wahrscheinlich
ein DES-Paßwort.Die Verschlüsselungsmethode für neue
- Paßwörter wird durch passwd_format in
+ Paßwörter wird durch in
/etc/login.conf bestimmt. Der Wert dieser
- Variablen kann entweder des, md5
- oder blf sein. Näheres schlagen Sie bitte
+ Variablen kann entweder des, md5
+ oder blf sein. Näheres schlagen Sie bitte
in &man.login.conf.5; nach.S/KeyS/KeySicherheitS/KeyS/Key ist ein Einmal-Paßwort System, das auf einer nicht
umkehrbaren Hash-Funktion basiert. Aus Kompatibilitätsgründen
benutzt FreeBSD MD4-Hashes, andere Systeme benutzen MD5 und DES-MAC.
S/Key ist seit Version 1.1.5 Teil des FreeBSD Basissystems und wird
auch auf einer wachsenden Zahl anderer Systeme benutzt. S/Key
ist eine geschützte Warenmarke von
Bell Communications Research, Inc.Ab der FreeBSD Version 5.0 wurde S/Key durch OPIE
(Onetime Passwords In Everything), das die gleichen Funktionen
bietet, abgelöst. OPIE benutzt MD5 Hash-Funktionen.In der folgenden Diskussion werden drei verschiedene Arten
von Paßwörtern verwendet. Die erste Art ist Ihr normales
Unix oder Kerberos Paßwort, das im folgenden
Unix-Paßwort genannt wird. Die nächste Art
ist das Einmal-Paßwort, das von dem S/Key-Kommando
key oder dem OPIE-Programm opiekey
generiert wird. Dieses Paßwort wird von den Programmen
keyinit oder opiepasswd und
dem Login-Programm akzeptiert. Im folgenden wird es
Einmal-Paßwort genannt. Die letzte Art von
Paßwörtern ist das geheime Paßwort, das Sie
mit den Programmen key/opiekey
(manchmal auch mit
keyinit/opiepasswd) zum Erstellen
der Einmal-Paßwörter verwenden. Dieses Paßwort
werden wir im folgenden geheimes Paßwort
oder schlicht Paßwort nennen.Das geheime Paßwort steht in keiner Beziehung zu Ihrem
Unix Paßwort, beide können gleich sein, obwohl das nicht
empfohlen wird. Die geheimen Paßwörter von S/Key oder
OPIE sind nicht auf eine Länge von 8 Zeichen beschränkt.
Sie können so lang sein, wie Sie wollen. Gebräuchlich sind
Paßwörter, die sich aus sechs bis sieben Wörtern
zusammensetzen. Das S/Key oder OPIE System arbeitet
größtenteils unabhängig vom Unix Paßwort
System.Neben dem Paßwort gibt es noch zwei Werte, die für
S/Key und OPIE wichtig sind. Der erste ist der
- Initialwert (engl. seed oder
- key), der aus zwei Buchstaben und fünf Ziffern
- besteht. Der andere Wert ist der
+ Initialwert (engl. seed
+ oder key), der aus zwei Buchstaben
+ und fünf Ziffern besteht. Der andere Wert ist der
Iterationszähler, der eine Zahl zwischen
1 und 100 ist. S/Key generiert das Einmal-Paßwort, indem
es den Initialwert und das geheime Paßwort aneinander hängt
und dann die MD4/MD5 Hash-Funktion so oft, wie durch den
Iterationszähler gegeben, anwendet. Das Ergebnis wird in
sechs englische Wörter umgewandelt, die Ihr Einmal-Paßwort
sind. Das Authentifizierungssystem (meistens PAM) merkt sich das
zuletzt benutzte Einmal-Paßwort und Sie sind authentisiert,
wenn die Hash-Funktion des Paßworts dem vorigen Paßwort
entspricht. Da nicht umkehrbare Hash-Funktionen benutzt werden,
ist es unmöglich, aus einem bekannten Paßwort weitere
gültige Einmal-Paßwörter zu berechnen. Der
Iterationszähler wird nach jeder erfolgreichen Anmeldung um
eins verringert und stellt so die Synchronisation zwischen Benutzer
und Login-Programm sicher. Wenn der Iterationszähler den
Wert 1 erreicht, müssen S/Key und OPIE neu initialisiert
werden.In jedem System werden drei Programme verwendet, die weiter unten
beschrieben werden. Die Programme key und
opiekey verlangen einen Iterationszähler,
einen Initialwert und ein geheimes Paßwort. Daraus generieren
sie ein Einmal-Paßwort oder eine Liste von
Einmal-Paßwörtern. Die Programme keyinit
und opiepasswd werden benutzt, um S/Key bzw.
- OPIE zu initialisieren. Mit ihnen können Paßwörter,
+ OPIE zu initialisieren. Mit ihnen können Paßwörter,
Iterationszähler oder Initialwerte geändert werden.
Als Parameter verlangen sie entweder ein geheimes Paßwort
oder einen Iterationszähler oder einen Initialwert und ein
Einmal-Paßwort. Die Programme keyinfo
und opieinfo geben den momentanen
Iterationszähler und Initialwert eines Benutzers aus. Diese
werden aus den Dateien /etc/skeykeys bzw.
/etc/opiekeys ermittelt.Im folgenden werden vier verschiedene Tätigkeiten beschrieben.
Zuerst wird erläutert, wie keyinit oder
opiepasswd über eine gesicherte Verbindung
eingesetzt werden, um Einmal-Paßwörter das erste Mal
zu konfigurieren oder das Paßwort oder den Initialwert
zu ändern. Als nächstes wird erklärt, wie
keyinit oder opiepasswd
über eine nicht gesicherte Verbindung, zusammen mit
key oder opiekey über eine
gesicherte Verbindung, eingesetzt werden, um dasselbe zu erreichen.
Als drittes wird beschrieben, wie
key/opiekey genutzt werden,
um sich über eine nicht gesicherte Verbindung anzumelden.
Die vierte Tätigkeit beschreibt, wie mit key
oder opiekey eine Reihe von Schlüsseln
generiert werden, die Sie sich aufschreiben oder ausdrucken können,
um sich von Orten anzumelden, die über keine gesicherten
Verbindungen verfügen.Einrichten über eine gesicherte VerbindungBenutzen Sie keyinit um S/Key das erste
Mal einzurichten, das Paßwort oder den Initialwert
zu ändern, während Sie über eine gesicherte
Verbindung, das heißt an der Konsole oder über ssh
angemeldet, sind:&prompt.user; keyinit
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFTMit OPIE benutzen Sie stattdessen
opiepasswd:&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
Nach der Aufforderung Enter new secret pass phrase:
oder Enter secret password: geben Sie bitte Ihr
Paßwort ein. Dies ist nicht das Paßwort, mit dem Sie sich
anmelden, sondern es wird genutzt, um das Einmal-Paßwort
zu generieren. Die Zeile, die mit ID anfängt,
enthält Ihren Login-Namen, den Iterationszähler und den
Initialwert. Diese Werte müssen Sie sich nicht behalten, da
das System sie zeigen wird, wenn Sie sich anmelden. In der letzten
Zeile steht das Einmal-Paßwort, das aus diesen Parametern
und Ihrem geheimen Paßwort ermittelt wurde. Wenn sie sich jetzt
wieder anmelden wollten, dann müßten Sie dieses
Paßwort benutzen.Einrichten über eine nicht gesicherte VerbindungUm Einmal-Paßwörter über eine nicht gesicherte
Verbindung einzurichten, oder das geheime Paßwort zu ändern,
müssen Sie über eine gesicherte Verbindung zu einer Stelle
verfügen, an der Sie die Kommandos key
oder opiekey ausführen. Dies kann
ein Desk Accessory auf einem Macintosh oder
die Eingabeaufforderung auf einer Maschine, der Sie vertrauen, sein.
Zudem müssen Sie einen Iterationszähler vorgeben (100
ist ein guter Wert) und einen Initialwert wählen, wobei
Sie auch einen zufällig generierten nutzen können.
Benutzen Sie keyinit -s über die ungesicherte
Verbindung zu der Maschine, die Sie einrichten wollen:&prompt.user; keyinit -s
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: 100
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
s/key access password:CURE MIKE BANE HIM RACY GOREMit OPIE benutzen Sie opiepasswd:&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
Drücken Sie Return, um die Vorgabe
für den Initialwert, der von keyinitkey genannt wird, zu akzeptieren. Bevor
- Sie nun das Zugriffspaßwort (engl. access password)
+ Sie nun das Zugriffspaßwort
+ (engl. access password)
eingeben, rufen Sie über die gesicherte Verbindung
key mit denselben Parametern auf:&prompt.user; key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
CURE MIKE BANE HIM RACY GOREMit OPIE benutzen Sie opiekey:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Gehen Sie nun zurück zu der nicht gesicherten Verbindung
und geben dort das eben generierte Einmal-Paßwort ein.Erzeugen eines einzelnen Einmal-PaßwortesNachdem Sie S/Key oder OPIE eingerichtet haben, werden Sie beim
nächsten Anmelden wie folgt begrüßt:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
s/key 97 fw13894
Password: OPIE begrüßt Sie wie folgt:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password: Anmerkung: S/Key und OPIE besitzen eine nützliche Eigenschaft,
die hier nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung
Return eingeben, wird die echo-Funktion eingeschaltet,
das heißt Sie sehen, was Sie tippen. Dies ist besonders
nützlich, wenn Sie ein generiertes Paßwort von einem
Ausdruck abtippen müssen.MS-DOSWindowsMacOSJetzt müssen Sie Ihr Einmal-Paßwort generieren,
um der Anmeldeaufforderung nachzukommen. Dies muß auf
einem gesicherten System geschehen, auf dem Sie key
oder opiekey ausführen können.
Diese Programme gibt es übrigens auch für DOS, Windows und
MacOS. Beide Programme benötigen den Iterationszähler
sowie den Initialwert als Parameter, die Sie mittels
cut-and-paste direkt von der Login Aufforderung
nehmen können.Auf dem sicheren System:&prompt.user; key 97 fw13894
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAGMit OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATMit dem jetzt generierten Einmal-Paßwort können
Sie die Anmeldeprozedur fortsetzen:login: <username>
s/key 97 fw13894
Password: <return to enable echo>
s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... Erzeugen von mehreren Einmal-PaßwörternManchmal müssen Sie sich an Orte begeben, an denen
Sie keinen Zugriff auf eine sichere Maschine oder eine
sichere Verbindung haben. In diesem Fall können Sie
vorher mit key einige Einmal-Paßwörter
generieren, die Sie sich ausdrucken und mitnehmen können.
Zum Beispiel:&prompt.user; key -n 5 30 zz99999
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
26: SODA RUDE LEA LIND BUDD SILT
27: JILT SPY DUTY GLOW COWL ROT
28: THEM OW COLA RUNT BONG SCOT
29: COT MASH BARR BRIM NAN FLAG
30: CAN KNEE CAST NAME FOLK BILKMit fordern Sie fünf
Paßwörter der Reihe nach an. Der letzte
Iterationszähler wird durch gegeben.
Beachten Sie bitte, daß die Paßwörter in der
umgekehrten Reihenfolge, in der sie
zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid
sind, schreiben Sie sich jetzt die Paßwörter auf,
ansonsten drucken Sie sie mit lpr aus.
Beachten Sie, daß jede Zeile den Iterationszähler
- und das Einmal-Paßwort zeigt. Trotzdem finden Sie es
+ und das Einmal-Paßwort zeigt, trotzdem finden Sie es
vielleicht hilfreich, eine Zeile nach Gebrauch durchzustreichen.Einschränken der Benutzung von Unix
PaßwörternBasierend auf dem Hostnamen, Benutzernamen, Terminal oder
IP-Adresse, können Sie die Verwendung von Unix
Paßwörtern einschränken. Die Beschränkungen
werden in /etc/skey.access definiert. Die
- Manualseite &man.skey.access.5; beschreibt das Format dieser
+ Manualpage &man.skey.access.5; beschreibt das Format dieser
Datei sowie einige Vorsichtsmaßnahmen,
die Sie treffen sollten, bevor Sie diese Datei einsetzen.Wenn /etc/skey.access nicht existiert und
das ist unter FreeBSD die Vorgabe, dann dürfen sich alle Benutzer
mit Unix Paßwörtern anmelden. Wenn die Datei existiert,
dann müssen alle Benutzer S/Key zum Anmelden benutzen. Ausnahmen
müssen explizit in skey.access konfiguriert
werden. In allen Fällen werden Unix Paßwörter
beim Anmelden auf der Konsole erlaubt.Das folgende Beispiel zeigt die drei häufigsten
Ausnahmen:permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0Die erste Zeile (permit internet) erlaubt
es Benutzern, deren IP-Adresse, die immer noch gefälscht werden
kann, mit dem angegebenen Wert und der angegebenen Maske
übereinstimmt, Unix Paßwörter zu benutzen. Dies
sollte nicht als Sicherheitsmechanismus mißverstanden werden,
sondern sollte autorisierte Benutzer daran erinnern, daß sie
ein ungesichertes Netzwerk benutzen und sich mit S/Key anmelden
müssen.Die zweite Zeile (permit user) erlaubt
es dem angegebenen Benutzer, hier fnord,
jederzeit Unix Paßwörter zu verwenden. Dies sollte
allerdings nur für Benutzer konfiguriert werden, die das
key Programm nicht nutzen können (Leute
- mit dump Terminals oder wirklich uneinsichtige).
+ mit dumb Terminals oder wirklich uneinsichtige).
Die dritte Zeile (permit port) erlaubt allen
Benutzern, die sich an dem angegebenen Terminal anmelden, Unix
Paßwörter zu benutzen. Sie sollte für
Einwählverbindungen genutzt werden.MarkMurrayBeigesteuert von MarkDapozBasiert auf einem Beitrag von KerberosKerberosKerberos ist ein zusätzliches Netzwerkprotokoll, das es
Benutzern erlaubt, sich über einen sicheren Server zu
authentifizieren. Dienste wie rlogin,
rcp oder das sichere Kopieren von Dateien
zwischen Systemen und andere risikoreiche Tätigkeiten werden
durch Kerberos erheblich sicherer und kontrollierbarer.Die folgende Anleitung kann nur als Wegweiser dazu dienen, wie
Sie Kerberos für FreeBSD aufsetzen. Für eine komplette
Beschreibung des Systems, sollten Sie sich auf jeden Fall die
- entsprechenden Manual-Seiten ansehen.
+ entsprechenden Manualpage ansehen.
Installation von KerberosMITKerberosInstallationKerberos ist eine optionale Komponente von FreeBSD. Am leichtesten
installieren Sie die Software, wenn Sie bei der ersten Installation
von FreeBSD in sysinstall die
Distribution 'krb4' oder 'krb5' auswählen. Damit installieren
Sie entweder die 'eBones' (KerberosIV) oder 'Heimdal' (Kerberos5)
Version von Kerberos. Beide Versionen werden mit FreeBSD ausgeliefert,
da sie außerhalb von den USA oder Kanada entwickelt werden.
Sie unterliegen deshalb auch nicht den restriktiven
Exportbeschränkungen der USA und sind auch für
Bewohner anderer Länder zugänglich.Als Alternative steht die MIT Variante von Kerberos in der
Ports-Kollektion unter security/krb5 zur
Verfügung.Erstellen der initialen DatenbankDie folgenden Schritte werden nur auf dem Kerberos-Server
durchgeführt. Stellen Sie bitte vorher sicher, daß
keine alten Kerberos-Datenbanken mehr vorhanden sind. Im
Verzeichnis /etc/kerberosIV sollten sich nur
die folgenden Dateien befinden:&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realmsWenn noch andere Dateien, wie principal.*
oder master_key, existieren, müssen
Sie die alte Kerberos-Datenbank mit kdb_destroy
löschen. Wenn Kerberos nicht läuft, können Sie
die Dateien auch einfach löschen.Sie sollten nun die Dateien krb.conf und
krb.realms editieren, um Ihr Kerberos-Realm zu
definieren. Das folgende Beispiel zeigt dies für das Realm
EXAMPLE.COM auf dem Server
grunt.example.com.
krb.conf sollte wie folgt aussehen:&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.govDie zusätzlich aufgeführten Realms brauchen Sie nicht
anzulegen. Sie zeigen hier nur, wie man Kerberos dazu bringt, andere
Realms zu erkennen. Sie können Sie also auch weglassen.Die erste Zeile benennt das Realm, in dem das System arbeitet.
Die anderen Zeilen enthalten Realm/Host Paare. Der erste Wert jeder
Zeile ist das Realm, der zweite Teil ein Host, der in diesem
Realm Key Distribution Center ist. Die
Schlüsselwörter admin server nach einem
Hostnamen bedeuten, daß dieser Host auch einen administrativen
Datenbankserver zur Verfügung stellt. Weitere Erklärungen zu
- diesen Begriffen finden Sie in den Kerberos Manual-Seiten.
+ diesen Begriffen finden Sie in den Kerberos Manualpages.
Als nächstes muß
grunt.example.com in das Realm
EXAMPLE.COM aufgenommen werden. Desweiteren
erstellen wir einen Eintrag, der alle Rechner der Domäne
.example.com in das Realm
EXAMPLE.COM aufnimmt.
krb.realms sollte danach so aussehen:&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDUDie zusätzlichen Realms sind hier wieder als Beispiel
gedacht. Sie können sie der Einfachheit halber auch
weglassen.Die erste Zeile nimmt ein einzelnes System
in das Realm auf. Die anderen Zeilen zeigen, wie bestimmte
Subdomänen einem bestimmten Realm zugeordnet werden.Das folgende Kommando muß nur auf dem Kerberos-Server
(oder Key Distribution Center) laufen. Mit
kdb_init können wir die Datenbank
anlegen:&prompt.root; kdb_initRealm name [default ATHENA.MIT.EDU ]:EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter Kerberos master key:Anschließend muß der Schlüssel gespeichert
werden, damit Server auf der lokalen Maschine darauf zugreifen
können. Dies geschieht mit kstash:&prompt.root; kstashEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!Das verschlüsselte Master-Paßwort wurde in
/etc/kerberosIV/master_key gesichert.Anlegen von PrinzipalsFür jedes System, das mit Kerberos
gesichert werden soll, müssen zwei Prinzipale in die
Datenbank eingetragen werden. Ihre Namen sind
kpasswd und rcmd. Beide
Prinzipale müssen für jedes System angelegt werden, wobei
die Instanz der Name des jeweiligen Systems ist.Die Dæmonen kpasswd und
rcmd erlauben es anderen Systemen,
Kerberos-Paßwörter zu ändern und Kommandos wie
rcp, rlogin und
rsh laufen zu lassen.Beide Einträge werden im folgenden angelegt:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:passwdInstance:grunt
<Not found>, Create [y] ?y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
Random password [y] ?y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name:rcmdInstance:grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenErstellen der Server-DateiWir müssen nun für jede Maschine die Instanzen,
die Dienste definieren, aus der Datenbank mit
ext_srvtab extrahieren. Die erstelle Datei
muß auf einem sicheren Weg in das
/etc/kerberosIV Verzeichnis jedes Clients
kopiert werden. Die Datei muß auf jedem Server und auf
jedem Client vorhanden sein und ist unabdingbar für
Kerberos.&prompt.root; ext_srvtab gruntEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....Das Kommando erzeugt Dateien mit einem temporären Namen,
der es anderen Servern erlaubt, ihre Datei abzuholen. Die Datei
muß auf dem entsprechenden System in srvtab
umbenannt werden. Auf dem originalen System können Sie
mv benutzen, um die Datei umzubenennen:&prompt.root; mv grunt-new-srvtab srvtabWenn die Datei für ein Client-System bestimmt ist und das
Netzwerk nicht sicher ist, kopieren Sie die Datei auf ein bewegliches
Medium und transportieren sie physikalisch. Kopieren Sie die Datei
auf den Client in das Verzeichnis /etc/kerberosIV
und benennen Sie sie in srvtab um. Setzen Sie
schließlich noch die Berechtigungen auf 600:&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtabFüllen der DatenbankWir können nun Benutzer in der Datenbank anlegen. Mit
kdb_edit legen wir zuerst die Benutzerin
jane an:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:
<Not found>, Create [y] ?y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Paßwort ein
Verifying password
New Password: <---- wiederholen Sie die Eingabe
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenTestenZuerst müssen die Kerberos-Dæmonen gestartet sein.
Wenn Sie /etc/rc.conf richtig angepaßt haben,
passiert das automatisch, wenn Sie booten. Dieser Schritt ist nur
auf dem Kerberos-Server notwendig, die Clients bekommen alles
was sie brauchen aus dem /etc/kerberosIV
Verzeichnis.&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!Jetzt können wir mit kinit versuchen,
ein Ticket für die ID jane, die wir
oben angelegt haben, zu erhalten:&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:Mit klist können Sie sich vergewissern,
daß Sie die Tickets auch erhalten haben:&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COMVersuchen Sie nun das Paßwort mit passwd
zu ändern, um zu überprüfen, daß der
kpasswd Dæmon auch auf der
Kerberos-Datenbank autorisiert ist:&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:New Password for jane:
Verifying password
New Password for jane:
Password changed.Anlegen von su PrivilegienMit Kerberos kann jedem Benutzer, der
root-Privilegien braucht, ein
eigenes Paßwort für
su zugewiesen werden. Dies wird dadurch
erreicht, daß die Instanz eines Prinzipals
root ist. Mit kbd_edit
legen wir nun den Eintrag jane.root in der
Kerberos-Datenbank an:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Paßwort ein
Verifying password
New Password: <---- geben Sie das Paßwort erneut ein
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenVersuchen Sie nun, für diesen Prinzipal Tickets zu
bekommen:&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:Als nächstes fügen wir den Prinzipal in
.klogin von root ein:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMJetzt benutzen wir su:&prompt.user; suPassword:und kontrollieren, welche Tickets wir haben:&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COMWeitere KommandosIn einem der Beispiele haben wir einen Prinzipal mit
dem Namen jane und der Instanz
root angelegt. Der Prinzipal entstand aus
einem Benutzer mit dem gleichen Namen. Unter Kerberos ist es
Standard, daß ein
- <principal>.<instance> der Form
- <username>.root es dem
- Benutzer <username> erlaubt, mit
+ principal.instance der Form
+ username.root es dem
+ Benutzer username erlaubt, mit
suroot zu werden, wenn die
entsprechenden Einträge in .klogin von
root existieren:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMDas gilt auch für die .klogin-Datei
im Heimatverzeichnis eines Benutzers:&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COMDie Einträge erlauben jedem, der sich im Realm
EXAMPLE.COM als jane oder
jack mit kinit authentifiziert
hat, über rlogin, rsh
oder rcp Zugriff auf den Account
jane und dessen Dateien.Im folgenden Beispiel meldet sich jane
mit Kerberos auf grunt an:&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995Im folgenden Beispiel wurde der Prinzipal jack
mit einer Instanz null angelegt. Mit der obigen
.klogin-Datei kann er sich nun auf derselben
Maschine als jane anmelden:&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995GaryPalmerBeigetragen von AlexNashFirewallsFirewallSicherheitFirewallsFirewalls sind sehr wichtig für Leute, die mit dem Internet
verbunden sind. Weiterhin halten sie Einzug in private Netzwerke, um
dort die Sicherheit zu verbessern. Dieser Abschnitt erklärt,
was Firewalls sind, wie sie benutzt werden und wie man die
Möglichkeiten von FreeBSD nutzen kann, um eine Firewall zu
implementieren.Es wird oft gedacht, daß eine Firewall zwischen dem internen
Netzwerk und dem weiten, schlechten Internet
alle Sicherheitsprobleme löst. Eine Firewall kann die Sicherheit
erhöhen, doch eine schlecht aufgesetzte Firewall ist ein
größeres Sicherheitsrisiko als gar keine Firewall. Eine
Firewall ist nur eine weitere Sicherheitsschicht, sie verhindert
aber nicht, daß ein wirklich entschlossener Cracker in
Ihr internes Netz eindringt. Wenn Sie Ihre interne Sicherheit
vernachlässigen, weil Sie Ihre Firewall für undurchdringlich
halten, machen Sie den Crackern die Arbeit leichter.Was ist eine Firewall?Auf dem Internet sind momentan zwei Arten von Firewalls
gebräuchlich. Die erste Art ist ein
Paketfilter, in dem ein Kernel auf einer
Maschine mit mehreren Netzwerkverbindungen auf Grund von Regeln
entscheidet, ob er ein Paket weiterleitet oder nicht. Der zweite
Typ sind Proxy-Server, die auf Dæmonen
angewiesen sind. Die Dæmonen authentifizieren Benutzer
und leiten Pakete weiter, das heißt sie können auf
Maschinen mit mehreren Netzwerkverbindungen laufen, auf denen
das Weiterleiten von Paketen durch den Kernel ausgeschaltet ist.Manchmal werden beide Arten einer Firewall kombiniert und es
ist nur einer besonderen Maschine, die
Bastion Host genannt wird, erlaubt, Pakete
in das interne Netzwerk über einen Paketfilter zu schicken.
Auf dem Bastion Host laufen Proxy-Dienste, die im allgemeinen
sicherer als normale Authentifizierungsmechanismen sind.FreeBSD besitzt einen Kernel-Paketfilter (IPFW), der im Rest
dieses Abschnitts behandelt wird. Proxy-Server können
mit Hilfe von Software von Drittherstellern auf FreeBSD realisiert
werden, doch gibt es so viele Proxy-Server, daß deren
Behandlung den Rahmen dieses Abschnitts sprengen würde.
- Packet-Filter
+ Paket-FilterEin Router ist eine Maschine, die Pakete zwischen zwei oder
mehr Netzwerken weiterleitet. Ein Paketfilter ist ein spezieller
Router, der extra Code im Kernel hat, der es im erlaubt, die
Pakete mit Regeln zu vergleichen, bevor er das Paket weiterleitet.
Um die Filter zu aktivieren, müssen Sie zuerst die Regeln
definieren, die festlegen, ob ein Paket weitergeleitet wird oder
nicht.Um zu entscheiden, ob ein Paket weitergeleitet wird, sucht der
Code des Paketfilters eine Regel, die auf den Inhalt des Paketheaders
paßt. Wenn eine passende Regel gefunden wurde, wird die Aktion
der Regel ausgeführt. Die Aktion kann das Paket blockieren,
weiterleiten oder auch dem Sender eine ICMP-Nachricht schicken.
Die Regeln werden der Reihenfolge nach durchsucht und nur die
erste passende Regel wird angewandt. Daher wird auch von einer
Regelkette gesprochen.Die Kriterien, nach denen Sie ein Paket spezifizieren
können, hängen von der eingesetzten Software ab.
Typischerweise können Sie Pakete nach der Quell-IP Adresse,
der Ziel IP-Adresse, dem Quellport, dem Zielport (bei Protokollen,
die diese unterscheiden) oder dem Pakettyp (UDP, TCP, ICMP)
unterscheiden.Proxy-ServerAuf Proxy-Servern werden die normalen Systemdienste
(telnetd, ftpd,
usw.) durch besondere Server ersetzt. Diese Server werden
Proxy-Server genannt, da sie normalerweise
- nur weitergehende Verbindungen erlauben (proxy engl. für
+ nur weitergehende Verbindungen erlauben
+ (proxy engl. für
Stellvertreter). Zum Beispiel können Sie auf Ihrer
Firewall einen Proxy-Telnet Server laufen lassen, der es Personen
erlaubt, aus dem Internet auf die Firewall eine Telnet-Verbindung
zu öffnen. Dort laufen Sie durch einen
Authentifizierungsmechanismus und haben dann Zugriff auf Ihr
internes Netzwerk. Für den umgekehrten Weg können Sie
natürlich auch Proxy-Server einsetzen.Proxy-Server sind in aller Regel sicherer als normale Server
und bieten oft eine Reihe von Authentifizierungsmechanismen. Dazu
gehören Einmal-Paßwort Systeme, bei denen das zum
Anmelden verwendete Paßwort sofort ungültig wird und
nicht zu einer weiteren Anmeldung benutzt werden kann, auch wenn
es abgehört wurde. Da Proxy-Server den Benutzern keinen
Zugang zu dem System geben, wird es für einen Angreifer
sehr schwer, Hintertüren zur Umgehung Ihres Sicherheitssystems
zu installieren.Mit Proxy-Servern lassen sich die Zugriffe meist noch weiter
beschränken. Der Zugriff kann auf bestimmte Rechner
eingeschränkt werden und oft ist es möglich,
festzulegen, welcher Benutzer mit welcher Zielmaschine kommunizieren
darf. Welche Möglichkeiten Sie haben, hängt stark
von der Proxy-Software ab, die Sie einsetzen.Was kann ich mit IPFW machen?ipfwIPFW, das von FreeBSD zur Verfügung gestellt wird,
ist ein Paketfilter und ein Accounting-System, das im Kernel
läuft und mit &man.ipfw.8; ein Werkzeug im Userland
zur Verfügung stellt. Beide Teile zusammen erlauben es Ihnen,
die Regeln für Routing Entscheidungen im Kernel zu definieren
oder abzufragen.In IPFW gibt es zwei zusammenhängende Teile. Mit der
Firewall können Sie einen Paketfilter konfigurieren. Das
IP-Accounting Modul erlaubt es Ihnen, mit ähnlichen Regeln
wie den Firewall-Regeln, die Nutzung Ihres Routers zu überwachen.
Damit können Sie zum Beispiel sehen, wieviel Verkehr auf
Ihrem Router von einer bestimmten Maschine kommt oder wieviel
WWW (World Wide Web) Verkehr durch Ihren Router geht.Durch das Design von IPFW können Sie IPFW auch auf
nicht-Routern einsetzen und einen Paketfilter für eingehende
und ausgehende Verbindungen konfigurieren. Dies ist ein Spezialfall
der allgemeinen Anwendung von IPFW und es werden daher die gleichen
Kommandos und Techniken benutzt.Aktivieren von IPFWipfwaktivierenDer größte Teil des IPFW-Systems befindet sich im
Kernel, daher müssen Sie die Konfigurationsdatei des Kernels
editieren und anschließend den Kernel neu übersetzen.
Das Kapitel "Konfiguration des FreeBSD Kernels"
() beschreibt, wie Sie dazu
vorzugehen haben.Momentan gibt es drei Optionen in der Kernelkonfiguration, die
IPFW betreffen:options IPFIREWALLFügt den Paketfilter-Code in den Kernel ein.options IPFIREWALL_VERBOSEAktiviert das Loggen von Paketen mit &man.syslogd.8;.
Ohne diese Option werden keine Pakete geloggt, auch wenn Sie
in den Filterregeln das Loggen angeben.options IPFIREWALL_VERBOSE_LIMIT=10Begrenzt die Anzahl der über &man.syslogd.8;
geschriebenen Einträge. Die Option ist in Umgebungen
mit hoher Aktivität nützlich, in denen Sie die
Firewall Aktivitäten loggen möchten, aber einem
Angreifer nicht die Möglichkeit eines Denial of Service
Angriffs durch das Überlasten von syslog geben
wollen.Erreicht eine Regel der Regelkette die angegebene Grenze,
so wird für diesen Eintrag das Loggen abgestellt. Um
das Loggen von Paketen wieder zu aktivieren, müssen Sie
den Zähler mit &man.ipfw.8; zurücksetzen:&prompt.root; ipfw zero 4500Hier ist 4500 die Nummer der Regel in
der Regelkette, für die Sie das Log weiterführen
möchten.Frühere Versionen von FreeBSD stellten die Option
IPFIREWALL_ACCT zur Verfügung. Die Option
ist mittlerweile überholt, da der Firewall Code automatisch
Accounting Möglichkeiten bereitstellt.Konfiguration von IPFWipfwKonfigurationMit &man.ipfw.8; konfigurieren Sie die IPFW-Software. Die
Syntax dieses Kommandos sieht ziemlich kompliziert aus, doch wenn
Sie einmal den Aufbau der Kommandos verstanden haben, ist es sehr
einfach.Das Kommando unterstützt vier verschiedene Operationen:
Hinzufügen/Löschen, Anzeigen und Zurücksetzen von
Regeln, sowie das Zurücksetzen von Paketzählern. Die
- Operationen Hinzufügen/Löschen werden genutzt um die
+ Operationen Hinzufügen/Löschen werden genutzt, um die
Regeln, nach denen Pakete akzeptiert, blockiert oder geloggt
werden, zu erstellen. Die Operation Anzeigen zeigt die Regelkette
und die Paketzähler an. Die Operation Zurücksetzen
löscht alle Regeln der Regelkette. Mit der letzten Operation
können Sie ein oder mehrere Paketzähler auf den Wert Null
zurücksetzen.Ändern der IPFW-RegelnDie Syntax für diese Operation lautet:
ipfw-NKommandoindexAktionlogProtokollAdressenOptionenDieser Aufruf unterstützt eine Option:-NLöst Adressen und Namen von Diensten in der
Ausgabe auf.Kommando kann auf die kürzeste
eindeutige Länge reduziert werden. Gültig sind die
Werte:addFügt einen Eintrag in die Firewall/Accounting
Regelkette ein.deleteLöscht einen Eintrag in der Firewall/Accounting
Regelkette.Frühere Versionen von IPFW verfügten über
getrennte Firewall- und Accounting-Einträge in der Regelkette.
In der jetzigen Version steht das Accounting für jeden
Eintrag in der Firewall-Regelkette zur Verfügung.Wenn ein Wert für index angegeben
ist, so wird die Regel an entsprechender Stelle in die Regelkette
eingefügt. Ansonsten wird die Regel an das Ende der Kette
gestellt, wobei der Index um 100 größer ist als der
Index der letzten Regel (die voreingestellte letzte Regel mit der
Nummer 65535 wird in diesem Verfahren nicht
berücksichtigt).Wenn der Kernel mit IPFIREWALL_VERBOSE
erstellt wurde, gibt die Regel mit der Option
log Meldungen auf der Systemkonsole
aus.Gültige Werte für Aktion
sind:rejectBlockiert das Paket und schickt dem Sender die
ICMP-Nachricht host or port unreachable.allowLeitet das Paket normal weiter. Zulässige Aliase
sind pass und
accept.denyBlockiert das Paket und benachrichtigt den Sender
nicht mit einer ICMP-Nachricht. Dem
Sender kommt es so vor, als hätte das Paket sein Ziel
nie erreicht.countErhöht den Paketzähler für diese Regel,
trifft aber keine Entscheidung wie mit dem Paket zu
verfahren ist, das heißt die nächste Regel der
Kette wird auf das Paket angewendet.Es ist möglich die kürzeste eindeutige Form der
Aktion anzugeben.Für Protokoll können die
folgenden Werte angegeben werden:allTrifft auf jedes IP-Paket zu.icmpPaßt auf jedes ICMP-Paket.tcpPaßt auf jedes TCP-Paket.udpTrifft auf jedes UDP-Paket zu.Die Syntax für Adresse
lautet:fromAdresse/MaskePorttoAdresse/MaskePortvia InterfacePort können Sie nur angeben,
wenn das Protokoll auch Ports
unterstützt (UDP und TCP). ist optional und gibt die IP-Adresse,
den Domainnamen eines lokalen Interfaces oder den Namen des
Interfaces (z.B. ed0) an und trifft nur
auf Pakete zu, die durch dieses Interface gehen. Die Nummern der
Interfaces können mit einem Platzhalter angegeben werden,
ppp* trifft auf alle Kernel-PPP Interfaces
zu.Adresse/Maske können Sie wie
folgt angeben:
Adresse
oder
Adresse/Bitmaske
oder
Adresse:MaskenmusterAnstelle einer IP-Adresse können Sie einen gültigen
Hostnamen angeben.
ist eine
dezimale Zahl, die angibt, wieviele Bits in der Adressmake
gesetzt werden sollen. Die Angabe
192.216.222.1/24 erstellt eine Maske, die auf
jede Adresse des Klasse C Subnetzes 192.216.222 zutrifft.
Das
wird mit der gegebenen IP-Adresse logisch UND verknüpft.
Das Schlüsselwort any trifft auf jede
IP-Adresse zu.Die Portnummern werden wie folgt angegeben:
Port,Port,Port…
- gibt entweder einen einzelnen Port oder eine Liste von Ports an
+ Dies gibt entweder einen Port oder eine Liste von Ports an.
Port-Port
- gibt einen Portbereich an. Sie können einen einzelnen
+ Gibt einen Portbereich an. Sie können einen einzelnen
Bereich mit einer Liste kombinieren, müssen aber den Bereich
immer zuerst angeben.Die verfügbaren Optionen
sind:fragTrifft auf Pakete zu, die nicht das erste Fragment
eines Datagrams sind.inTrifft auf eingehende Pakete zu.outTrifft auf ausgehende Pakete zu.ipoptions specTrifft auf alle IP-Pakete zu, deren Header die in
spec angegebenen, durch Kommata
separierte, Optionen enthalten. Die unterstützten
IP-Optionen sind: ssrr (strict source
route), lsrr (loose source route),
rr (record packet route), und
ts (time stamp). Ein führendes
! trifft auf alle Pakete zu, die diese
Option nicht gesetzt haben.establishedTrifft auf alle Pakete zu, die zu einer schon
bestehenden TCP-Verbindung gehören, das heißt
das RST- oder ACK-Bit ist gesetzt. Sie können den
Durchsatz der Firewall verbessern, wenn Sie die
established Regeln soweit wie
möglich an den Anfang der Regelkette stellen.setupPaßt auf alle Pakete, die versuchen eine
TCP-Verbindung aufzubauen, das heißt das SYN-Bit ist
gesetzt und das ACK-Bit ist nicht gesetzt.tcpflags flagsTrifft auf alle Pakete zu, die im TCP-Header eine der
durch Kommata getrennten Option gesetzt haben. Die
gültigen Optionen sind: fin,
syn, rst,
psh, ack und
urg. Mit einem führenden
! kann die Abwesenheit einer Option
- erzwungen werden.
+ angegeben werden.
icmptypes typesTrifft auf ICMP-Pakete vom Typ
types. Hier kann eine
Kommata separierte Aufzählung von Bereichen oder
einzelnen Typen angegeben werden. Gebräuchliche Typen
sind: 0 echo reply (ping reply),
3 destination unreachable,
5 redirect, 8 echo
request (ping request) und 11 time
exceeded, das die Überschreitung der TTL angibt und
zum Beispiel von &man.traceroute.8; genutzt wird.Anzeigen der IPFW-RegelnDie Syntax für dieses Kommando lautet:
ipfw-a-t-NlDrei Optionen sind für diese Form gültig:-aZeigt die Paketzähler zu den Regeln an. Diese
Option ist die einzige Möglichkeit, die Zähler zu
sehen.-tZeigt die Zeit, zu der die Regel zuletzt aktiviert
wurde. Die Syntax dieser Ausgabe ist nicht kompatibel mit
der Eingabesyntax von &man.ipfw.8;.-NVersucht Adressen und Namen von Diensten
aufzulösen.Zurücksetzen der IPFW-RegelnDie Regeln setzen Sie wie folgt zurück:
ipfwflushDamit werden alle Regeln der Regelkette, mit Ausnahme der
Vorgaberegel 65535 gelöscht. Seien Sie
vorsichtig, wenn Sie die Regeln zurücksetzen. Die Vorgabe
für die Regel 65535 ist es, alle Pakete
zu blockieren, das heißt, das System ist solange vom
Netzwerk abgeschnitten, bis wieder neue Regeln in die Kette
eingefügt werden.Zurücksetzen der PaketzählerUm einen oder mehrere Paketzähler zurückzusetzen,
verwenden Sie folgende Syntax:
ipfwzeroindexWenn Sie das Argument index nicht
angeben, werden alle Paketzähler zurückgesetzt. Wenn
Sie das Argument angeben, wird nur der Zähler der
angegebenen Regel zurückgesetzt.Beispiel für ipfw
KommandozeilenDas folgende Kommando blockiert alle Pakete, die von dem Host
evil.crackers.org auf den Telnet-Port
von nice.people.org gehen:&prompt.root; ipfw add deny tcp from evil.crackers.org to nice.people.org 23Das nächste Beispiel verbietet jeden IP-Verkehr von dem
ganzen crackers.org Klasse C
Netzwerk zu der Maschine nice.people.org:&prompt.root; ipfw add deny log tcp from evil.crackers.org/24 to nice.people.orgWenn Sie X-Sessions zu Ihrem internen Netzwerk, einem Subnetz
eines C Klasse Netzwerkes, verbieten wollen, wenden Sie das
folgende Kommando an:&prompt.root; ipfw add deny tcp from any to my.org/28 6000 setupUm die Accounting Einträge zu sehen:
&prompt.root; ipfw -a list
oder kürzer
&prompt.root; ipfw -a lDen Zeitpunkt, an dem eine Regel das letzte Mal aktiviert
wurde, sehen Sie mit:&prompt.root; ipfw -at lAufbau einer Firewall mit PaketfilternBeachten Sie bitte, daß die folgenden Vorschläge
wirklich nur Vorschläge sind. Die Anforderungen jeder
Firewall sind verschieden und wir können Ihnen wirklich
nicht sagen, wie Sie Ihre maßgeschneiderte Firewall aufsetzen
müssen.Wenn Sie Ihre Firewall außerhalb eines kontrollierten
Testumfelds aufbauen, empfehlen wir Ihnen dringend, das Loggen der
Regeln im Kernel zu aktivieren und Regeln zu verwenden, die loggen.
Das macht es Ihnen leichter, Fehler zu finden und diese ohne
große Unterbrechungen zu beheben. Auch nachdem Sie die
Firewall aufgesetzt haben, empfehlen wir Ihnen, die `deny'-Regeln
zu loggen. Dies macht es leichter, Angriffen nachzugehen und das
Regelwerk Ihrer Firewall zu ändern, wenn sich die Anforderungen
einmal ändern.Wenn Sie Pakete der accept-Regel loggen,
denken Sie bitte daran, daß Sie leicht sehr
große Datenmengen erzeugen können, da jedes
durchgelassene Paket einen Eintrag im Log generiert. Es kann
vorkommen, das große FTP oder HTTP Übertragungen das
System langsamer machen. Weiterhin wird für jedes der
betroffenen Pakete die Latenzzeit erhöht, da von Seiten des
Kernels mehr Arbeit zum Weiterleiten des Paketes erforderlich ist.
Da alle Daten auf die Platte ausgeschrieben werden wird
syslogd auch mehr Prozessorzeit
beanspruchen und es kann leicht passieren, daß die
Partition, die /var/log enthält voll
läuft.Sie sollten Ihre Firewall aus
/etc/rc.conf.local oder
/etc/rc.conf aktivieren. Die entsprechende
- Manual-Seite zeigt Ihnen, welche Einstellungen Sie vornehmen
+ Manualpage zeigt Ihnen, welche Einstellungen Sie vornehmen
müssen und zeigt einige vorgegebene Firewall-Konfigurationen.
Wenn Sie keine der Vorgaben verwenden, können Sie Ihre
Regelkette mit ipfw list in eine Datei ausgeben
und diese Datei in /etc/rc.conf angeben. Wenn
sie weder /etc/rc.conf.local oder
/etc/rc.conf benutzen, um Ihre Firewall zu
aktivieren, stellen Sie bitte sicher, daß die Firewall
aktiviert ist, bevor die IP-Interfaces konfiguriert werden.Als nächstes müssen Sie festlegen, was Ihre Firewall
machen soll. Das wird sehr stark davon abhängen welche
Zugriffe Sie von außen auf Ihr Netzwerk erlauben wollen und
welche Zugriffe von innen nach außen erlaubt sein sollen.
Einige gebräuchliche Regeln sind:Blockieren Sie jeden einkommenden Zugriff auf Ports unter
1024 für TCP. Dort befinden sich die meisten der
sicherheitsrelevanten Dienste wie finger, SMTP (Post) und
telnet.Blockieren Sie jeden einkommenden
UDP-Verkehr. Es gibt wenige nützliche UDP-Dienste und
die, die nützlich sind, stellen meist eine Bedrohung der
Sicherheit dar (z.B. die RPC- und NFS-Protokolle von Sun).
Dies bringt allerdings auch Nachteile mit sich. Da UDP ein
verbindungsloses Protokoll ist, verbieten Sie auch die
Antworten auf ausgehende UDP-Pakete, wenn Sie eingehende
UDP-Verbindungen blockieren. Dies kann zum Beispiel Probleme
für Anwender des internen Netzwerks hervorrufen, wenn
diese einen externen Archie-Server (prospero) verwenden. Wenn
Sie den Zugriff auf Archie erlauben wollen, müssen Sie
Pakete von den Ports 191 und 1525 zu jedem internen UDP-Port
durch Ihre Firewall lassen. Ein anderer Dienst, den Sie
vielleicht erlauben wollen, ist ntp,
der vom Port 123 ausgeht.Verbieten Sie Verkehr von außen zum Port 6000. Der
Port 6000 wird für den Zugriff auf X-Server genutzt und
kann eine Bedrohung der Sicherheit darstellen, insbesondere
wenn die Anwender gewohnt sind xhost + zu
benutzen. Tatsächlich kann X einen Bereich von Ports
verwenden, der bei 6000 anfängt. Die Obergrenze ist durch
die Zahl der Displays, die auf einer Maschine laufen, gegeben.
Laut RFC 1700 (Assigned Numbers) hat der höchst
mögliche Port die Nummer 6063.Überprüfen Sie, welche Ports von internen Servern
(z.B. SQL-Servern) benutzt werden. Da diese normalerweise aus
dem oben angesprochenen Bereich von 1-1024 fallen, ist es
wahrscheinlich gut, diese Ports ebenfalls zu blockieren.Eine Checkliste zum Aufbau einer Firewall ist vom CERT unter
http://www.cert.org/tech_tips/packet_filtering.html
erhältlich.Wie oben schon gesagt, können wir Ihnen nur
Richtlinien geben. Sie müssen selbst
entscheiden, welche Regeln Sie auf Ihrer Firewall einsetzen wollen.
Wir übernehmen keine Verantwortung
dafür, daß jemand in Ihr Netzwerk eindringt, auch wenn
Sie die obigen Ratschläge befolgt haben.IPFW Overhead und OptimierungenViele Leute wollen wissen, wieviel zusätzliche Last IPFW
auf einem System erzeugt. Hauptsächlich hängt dies von
der Art der Regelkette und der Geschwindigkeit des Prozessors ab.
Für die meisten Anwendungen mit einer kleinen Regelkette auf
einem Ethernet ist der Aufwand vernachlässigbar klein. Wenn
Sie genaue Zahlen brauchen, lesen Sie bitte weiter.Die folgenden Messungen wurden auf einem 486-66 mit
2.2.5-STABLE durchgeführt. Obwohl sich IPFW in
späteren FreeBSD Versionen leicht geändert hat, läuft
es doch mit vergleichbarer Geschwindigkeit. Zur Durchführung
der Messungen wurde in IPFW die verbrauchte Zeit in der Routine
ip_fw_chk gemessen. Die Ergebnisse wurden alle
1000 Pakete auf der Konsole ausgegeben.Zwei Regelsätze mit je 1000 Regeln wurden getestet. Der
erste Regelsatz sollte den schlimmsten Fall durch wiederholte
Anwendung der folgenden Regel demonstrieren:&prompt.root; ipfw add deny tcp from any to any 55555Da ein Großteil der Routine, die die Pakete
überprüft, durchlaufen werden muß, bevor
entschieden werden kann, ob das Paket wegen der Portnummer nicht
auf die Regel paßt, wird mit dieser Regel der schlimmste Fall gut
simuliert. Nach 999 Wiederholungen dieser Regel folgte die Regel
allow ip from any to any.Der zweite Regelsatz wurde so entworfen, daß die
Überprüfung der Regel schnell abgeschlossen werden
kann:&prompt.root; ipfw add deny ip from 1.2.3.4 to 1.2.3.4Die Regel kann aufgrund einer nicht passenden IP-Adresse sehr
schnell verlassen werden. Nach 999 Wiederholungen dieser Regel
folgte wie im ersten Fall die Regel allow ip from any to
any.Im ersten Fall betrug der zusätzliche Aufwand 2,703 ms pro
Paket also ungefähr 2,7 µs pro Regel. Damit könnten
maximal ungefähr 370 Pakete pro Sekunde verarbeitet werden.
Mit einem 10 Mbps Ethernet und Paketen, die ungefähr 1500
Bytes groß sind, entspricht dies einer Ausnutzung von 55% der zur
Verfügung stehenden Bandbreite.Im letzten Fall wurde jedes Paket in 1,172 ms abgearbeitet, was
ungefähr 1,2 µs pro Regel entspricht. In diesem Fall
könnten maximal 853 Pakete pro Sekunde verarbeitet werden, was
die Bandbreite eines 10 Mbps Ethernet vollständig
ausnutzt.Die große Anzahl und die Beschaffenheit der Regeln in den
Beispielen entsprechen nicht der Wirklichkeit. Die Regeln dienten
nur der Messung der Geschwindigkeit. Wenn Sie eine effiziente
Regelkette aufbauen wollen, sollten Sie die folgenden
Ratschläge berücksichtigen:Setzen Sie eine established Regel so
früh wie möglich in die Regelkette, um den
Großteil des TCP Verkehrs abzudecken. Vor dieser Regel
- sollten Sie keine allow tcp stehen
+ sollten Sie keine allow tcp Regeln stehen
haben.Plazieren Sie häufig benutzte Regeln vor selten
- benutzten Regeln, ohne dabei den Sinn der Regelkette zu
+ benutzten Regeln, ohne dabei den Sinn der Regelkette zu
ändern. Welche Regeln häufig durchlaufen werden,
können Sie den Paketzählern mit ipfw
-a l entnehmen.OpenSSLsecurityOpenSSLOpenSSLDas OpenSSL-Toolkit ist seit FreeBSD 4.0 Teil des Basissystems.
OpenSSL stellt eine
universale Kryptographie Bibliothek sowie die Protokolle Secure
Sockets Layer v2/v3 (SSLv2/SSLv3) und Transport Layer Security v1
(TLSv1) zur Verfügung.Einer der Algorithmen, namentlich IDEA, in OpenSSL ist durch
Patente in den USA und anderswo geschützt und daher nicht frei
verfügbar. IDEA ist Teil des Quellcodes von OpenSSL wird aber
in der Voreinstellung nicht kompiliert. Wenn Sie den Algorithmus
benutzen wollen und die Lizenzbedingungen erfüllen, können
Sie MAKE_IDEA in
/etc/make.conf aktivieren und das System mit
make world neu bauen.Der RSA-Algorithmus ist heute in den USA und anderen Ländern
frei verfügbar. Früher wurde er ebenfalls durch ein Patent
geschützt.OpenSSLInstallationInstallation vom QuellcodeOpenSSL ist Teil der src-crypto und
src-secure CVSup-Kollektionen. Mehr Informationen
über die Erhältlichkeit und das Aktualisieren des FreeBSD
Quellcodes erhalten Sie im Abschnitt
Beschaffung von FreeBSD.YoshinobuInoueBeigetragen von IPsecIPsecSicherheitIPsecAbschließende ZeichenAm Ende der Beispiele in diesem und anderen Abschnitten werden
Sie oft ein ^D sehen. Das bedeutet, daß Sie
die Control-Taste zusammen mit der Taste
D drücken sollen. Eine weiterere häufig
genutzte Kombination ist ^C. Hier drücken Sie
die Taste Control zusammen mit der
C-Taste.HOWTOs, die die Implementation von IPSec in FreeBSD
beschreiben, finden Sie unter
und .IPSec stellt eine sichere Kommunikation auf IP- und Socket-Ebene
zur Verfügung. Der folgende Abschnitt zeigt wie Sie IPSec
benutzen. Weitere Einzelheiten können Sie dem
Entwickler Handbuch
entnehmen.Die aktuelle Version von IPSec unterstützt den
Transport-Modus sowie den Tunnel-Modus, wobei der Tunnel-Modus einige
Beschränkungen besitzt. Unter http://www.kame.net/newsletter/
finden Sie weitere Beispiele.Um IPSec benutzen zu können, müssen Sie folgende
Optionen in Ihren Kernel kompiliert haben:options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/IPSEC)Transport-Modus mit IPv4Um zwischen zwei Rechnern, im folgenden Beispiel HOST A
(10.2.3.4) und HOST B (10.6.7.8) sicher zu kommunizieren,
müssen wir zuerst eine
Sicherheitsassoziation einrichten. Das
folgende Beispiel benutzt den alten AH (Authentication Header)
von HOST A zu HOST B. Für die Kommunikation von HOST B
zu HOST A wird der neue AH mit dem neuen ESP (Encapsulating
Security Payload) kombiniert.Zu den Verfahren AH, neuer AH,
ESP und neuem ESP müssen nun
Algorithmen ausgewählt werden. Die zur Verfügung
stehenden Algorithmen werden in &man.setkey.8; erläutert. Wir
entschieden uns für die Kombinationen MD5 für AH,
new-HMAC-SHA1 für neuen AH und new-DES-expIV mit 8 Byte IV
für den neuen ESP.Die Schlüssellänge hängt stark vom
gewählten Algorithmus ab. Für MD5 beträgt sie 16
Bytes, für new-HMAC-SHA1 20 Bytes und 8 Bytes für
new-DES-expIV. Wie wählten jeweils die Schlüssel
MYSECRETMYSECRET,
KAMEKAMEKAMEKAMEKAME und PASSWORD.Als nächstes müssen wir jedem Protokoll einen SPI
(Security Parameter Index) zuweisen. Beachten Sie bitte, daß
wir 3 SPIs benötigen, da drei Header erzeugt werden (einer
für die Kommunikation von HOST A zu HOST B und zwei für
die Kommunikation von HOST B zu HOST A). Beachten Sie weiterhin,
daß die SPIs größer oder gleich 256 sein
müssen. Im folgenden Beispiel haben wir uns für 1000,
2000 und 3000 entschieden.
(1)
HOST A ------> HOST B
(1)PROTO=AH
ALG=MD5(RFC1826)
KEY=MYSECRETMYSECRET
SPI=1000
(2.1)
HOST A <------ HOST B
<------
(2.2)
(2.1)
PROTO=AH
ALG=new-HMAC-SHA1(new AH)
KEY=KAMEKAMEKAMEKAMEKAME
SPI=2000
(2.2)
PROTO=ESP
ALG=new-DES-expIV(new ESP)
IV length = 8
KEY=PASSWORD
SPI=3000
Um die Sicherheitsassoziation einzurichten, führen Sie
&man.setkey.8; auf HOST A und HOST B aus:
&prompt.root; setkey -c
add 10.2.3.4 10.6.7.8 ah-old 1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ;
add 10.6.7.8 10.2.3.4 ah 2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ;
add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ;
^D
Bevor Sie die Kommunikation mit IPSec nutzen können,
müssen Sie noch eine Sicherheits-Policy auf beiden Rechnern
einrichten:
Auf Host A:
&prompt.root; setkey -c
spdadd 10.2.3.4 10.6.7.8 any -P out ipsec
ah/transport/10.2.3.4-10.6.7.8/require ;
^D
Auf Host B:
&prompt.root; setkey -c
spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
esp/transport/10.6.7.8-10.2.3.4/require ;
spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
ah/transport/10.6.7.8-10.2.3.4/require ;
^D
HOST A --------------------------------------> HOST E
10.2.3.4 10.6.7.8
| |
========== old AH keyed-md5 ==========>
<========= new AH hmac-sha1 ===========
<========= new ESP des-cbc ============
Transport-Modus mit IPv6Das folgende Beispiel zeigt die Nutzung von IPSec mit
IPv6.Das folgende Beispiel richtet den ESP Transport-Modus für
TCP Verbindungen zwischen HOST B Port 110 und HOST A ein.
============ ESP ============
| |
Host-A Host-B
fec0::10 -------------------- fec0::11
Der Algorithmus zum Verschlüsseln ist blowfish-cbc, der
zugehörige Schlüssel ist kamekame.
Für die Authentifizierung wird hmac-sha1 mit dem
Schlüssel this is the test key verwendet. Auf
HOST A geben Sie die folgenden Befehle ein:
&prompt.root; setkey -c <<EOF
spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec
esp/transport/fec0::10-fec0::11/use ;
spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec
esp/transport/fec0::11-fec0::10/use ;
add fec0::10 fec0::11 esp 0x10001
-m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
add fec0::11 fec0::10 esp 0x10002
-m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
EOF
Entsprechend auf HOST B:&prompt.root; setkey -c <<EOF
spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec
esp/transport/fec0::11-fec0::10/use ;
spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec
esp/transport/fec0::10-fec0::11/use ;
add fec0::10 fec0::11 esp 0x10001 -m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
add fec0::11 fec0::10 esp 0x10002 -m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
EOF
Beachten Sie bitte die Richtung der erstellen Security
Policy.Tunnel-Modus mit IPv4Das folgende Beispiel baut einen Tunnel zwischen zwei Gateways
auf.Als Protokoll wird der alte AH Tunnel-Modus (RFC 1826)
verwendet. Zur Authentifizierung wird keyed-md5 mit dem
Schlüssel this is the test verwendet.
======= AH =======
| |
Network-A Gateway-A Gateway-B Network-B
10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24
Der Gateway A wird wie folgt konfiguriert:
&prompt.root; setkey -c <<EOF
spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec
ah/tunnel/172.16.0.1-172.16.0.2/require ;
spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec
ah/tunnel/172.16.0.2-172.16.0.1/require ;
add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
-A keyed-md5 "this is the test" ;
add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
-A keyed-md5 "this is the test" ;
EOF
Wenn wie oben die Portnummer weggelassen wird, wird
[any] verwendet. Mit -m wird
der Modus der Sicherheitsassoziation angegeben.
-m any gilt für den Transport- sowie den
Tunnel-Modus.Auf Gateway B geben Sie folgendes ein:
&prompt.root; setkey -c <<EOF
spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec
ah/tunnel/172.16.0.2-172.16.0.1/require ;
spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec
ah/tunnel/172.16.0.1-172.16.0.2/require ;
add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
-A keyed-md5 "this is the test" ;
add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
-A keyed-md5 "this is the test" ;
EOF
Tunnel-Modus mit IPv6Transport- und Tunnel-Modus zwischen zwei GatewaysZwischen Gateway A und Gateway B soll der AH Transport-Modus
und der ESP Tunnel-Modus eingerichtet werden. In diesem Fall wird
zuerst der ESP-Tunnel eingerichtet, danach folgt das Einrichten des
AH Transport-Modus.
========== AH =========
| ======= ESP ===== |
| | | |
Network-A Gateway-A Gateway-B Network-B
fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64
Für ESP wird 3des-cbc zur Verschlüsselung und hmac-sha1
zur Authentifizierung verwendet. Bei AH wird zur Authentifizierung
hmac-md5 benutzt. Auf Gateway A sieht die Konfiguration wie folgt
aus:
&prompt.root; setkey -c <<EOF
spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec
esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require
ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ;
spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec
esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require
ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ;
add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel
-E 3des-cbc "kamekame12341234kame1234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport
-A hmac-md5 "this is the test" ;
add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel
-E 3des-cbc "kamekame12341234kame1234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport
-A hmac-md5 "this is the test" ;
EOF
Im folgenden werden zwei Sicherheitsassoziationen mit
unterschiedlichen Endpunkten erstellt.Zwischen Host A und Gateway A soll ein ESP-Tunnel eingerichtet
werden. Zur Verschlüsselung wird cast128-cbc und zur
Authentifizierung wird hmac-sha1 verwendet. Zusätzlich wird
zwischen Host A und Host B der ESP Transport-Modus eingerichtet.
Zur Verschlüsselung wird rc5-cbc verwendet. Die
Authentifizierung verwendet hmac-md5.
================== ESP =================
| ======= ESP ======= |
| | | |
Host-A Gateway-A Host-B
fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2
Host A wird wie folgt konfiguriert:
&prompt.root; setkey -c <<EOF
spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec
esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use
esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ;
spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec
esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use
esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ;
add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001
-m transport
-E cast128-cbc "12341234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002
-E rc5-cbc "kamekame"
-A hmac-md5 "this is the test" ;
add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003
-m transport
-E cast128-cbc "12341234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004
-E rc5-cbc "kamekame"
-A hmac-md5 "this is the test" ;
EOF
ChernLeeBeigetragen von OpenSSHOpenSSHSicherheitOpenSSHSecure Shell stellt Werkzeuge bereit, um sicher auf entfernte
Maschinen zuzugreifen. Die Kommandos rlogin,
rsh, rcp und
telnet können durch ssh ersetzt werden.
Zusätzlich können andere TCP/IP-Verbindungen sicher durch
ssh weitergeleitet (getunnelt) werden. Mit ssh werden alle
Verbindungen verschlüsselt, dadurch wird verhindert, daß
die Verbindung zum Beispiel abgehört oder übernommen
- (Hijacking) werden kann.
+ (Hijacking) werden kann.
OpenSSH wird vom OpenBSD Projekt gepflegt und basiert auf
SSH v1.2.12 mit allen aktuellen Fixen und Aktualisierungen. OpenSSH
ist mit den SSH Protokollen der Versionen 1 und 2 kompatibel. Seit
FreeBSD 4.0 ist die OpenSSH Teil des Basissystems.Vorteile von OpenSSHMit &man.telnet.1; oder &man.rlogin.1; werden Daten in einer
unverschlüsselten Form über das Netzwerk gesendet. Daher
besteht die Gefahr, das Benutzer/Paßwort Kombinationen
oder alle Daten an
beliebiger Stelle zwischen dem Client und dem Server abgehört
werden. Mit OpenSSH stehen eine Reihe von Authentifizierungs- und
Verschlüsselungsmethoden zur Verfügung, um das zu
verhindern.Aktivieren von sshdOpenSSHAktivierenStellen Sie sicher, daß /etc/rc.conf
die folgende Zeile enthält:sshd_enable="YES"Der ssh Dæmon wird damit bei
dem nächsten Neustart des Systems geladen. Alternativ
können Sie den Dæmon auch händisch starten.SSH ClientOpenSSHClient&man.ssh.1; arbeitet ähnlich wie &man.rlogin.1;:&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******Der Anmeldevorgang wird danach, wie von
rlogin oder telnet gewohnt,
weiterlaufen. SSH speichert einen Fingerabdruck des
Serverschlüssels. Die Aufforderung, yes
einzugeben, erscheint nur bei der ersten Verbindung zu einem
Server. Weitere Verbindungen zu dem Server werden gegen den
gespeicherten Fingerabdruck des Schlüssels geprüft und
der Client gibt eine Warnung aus, wenn sich der empfangene
Fingerabdruck von dem gespeicherten unterscheidet. Die
Fingerabdrücke der Version 1 werden in
~/.ssh/known_hosts, die der Version 2 in
~/.ssh/known_hosts2 gespeichert.In der Voreinstellung akzeptieren OpenSSH Server Verbindungen
mit SSH v1 und SSH v2. Die Clients können sich aber das
Protokoll auswählen, dabei wird das Protokoll der Version 2
als robuster und sicherer als die Vorgängerversion
angesehen.Mit den Optionen oder
kann die Protokollversion, die ssh verwendet,
erzwungen werden.Secure CopyOpenSSHsecure copyscpMit scp lassen sich Dateien analog wie mit
rcp auf entfernte Maschinen kopieren. Mit
scp werden die Dateien allerdings in einer
sicheren Weise übertragen.&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password:
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;Da der Fingerabdruck schon im vorigen Beispiel abgespeichert
wurde, wird er bei der Verwendung von scp in
diesem Beispiel überprüft. Da die Fingerabdrücke
übereinstimmen, wird keine Warnung ausgegeben.Die Argumente, die scp übergeben
werden, gleichen denen von cp in der Beziehung,
daß die ersten Argumente die zu kopierenden Dateien sind und
das letzte Argument den Bestimmungsort angibt. Da die Dateien
über das Netzwerk kopiert werden, können ein oder mehrere
Argumente die Form
besitzen.KonfigurationOpenSSHKonfigurationDie für das ganze System gültigen
Konfigurationsdateien des OpenSSH Dæmons und des Clients
finden sich in dem Verzeichnis
/etc/ssh.Die Client-Konfiguration befindet sich in
ssh_config, die des Servers befindet sich in
sshd_config.Das SSH-System läßt sich weiterhin über die
Anweisungen (Vorgabe ist
/usr/sbin/sshd) und
in /etc/rc.conf
konfigurieren.ssh-keygenMit &man.ssh-keygen.1; können RSA-Schlüssel für
einen Benutzer erzeugt werden, die anstelle von
Paßwörtern verwendet werden können.&prompt.user; ssh-keygen
Initializing random number generator...
Generating p: .++ (distance 66)
Generating q: ..............................++ (distance 498)
Computing the keys...
Key generation complete.
Enter file in which to save the key (/home/user/.ssh/identity):
Enter passphrase:
Enter the same passphrase again:
Your identification has been saved in /home/user/.ssh/identity.
...&man.ssh-keygen.1; erzeugt einen öffentlichen und einen
privaten Schlüssel für die Authentifizierung. Der private
Schlüssel wird in ~/.ssh/identity, der
öffentliche Schlüssel in
~/.ssh/identity.pub gespeichert. Damit die
RSA-Schlüssel zur Authentifizierung verwendet werden
können, muß der öffentliche Schlüssel in der
Datei ~/.ssh/authorized_keys auf der
entfernten Maschine abgelegt werden.Damit werden Verbindungen zu der entfernten Maschine über
den RSA-Mechanismus anstelle von Paßwörtern
authentifiziert.Wenn bei der Erstellung der Schlüssel mit
&man.ssh-keygen.1; ein Paßwort angegeben wurde, wird der
Benutzer bei jeder Anmeldung zur Eingabe des Paßworts
aufgefordert.Zum gleichen Zweck kann ein DSA-Schlüssel zur Verwendung
mit SSH v2 erstellt werden. Dazu rufen Sie das Kommando
ssh-keygen -d oder ssh-keygen -t
dsa mit FreeBSD &os.current; auf. Sie erzeugen damit ein
DSA-Schlüsselpaar, das nur in SSH v2 Verbindungen genutzt
wird. Der öffentliche Schlüssel wird in
~/.ssh/id_dsa.pub, der private Schlüssel
in ~/.ssh/id_dsa gespeichert.Die öffentlichen DSA-Schlüssel werden in
~/.ssh/authorized_keys2 auf der entfernten
Maschine abgelegt.Mit &man.ssh-agent.1; und &man.ssh-add.1; können Sie
mehrere durch Paßwörter geschützte private
Schlüssel verwalten.SSH TunnelOpenSSHTunnelMit OpenSSH ist es möglich, einen Tunnel zu erstellen, in
dem ein anderes Protokoll verschlüsselt übertragen
wird.Das folgende Kommando erzeugt einen Tunnel für
telnet:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Dabei wurden die folgenden Option von ssh
verwendet:
- Zwingt ssh die Version 2 des Protokolls
- zu benutzen (Benutzen Sie das nicht mit älteren
- ssh-Servern).
+ Erzwingt die Version 2 des Protokolls (Benutzen Sie die
+ Option nicht mit langsamen
+ ssh-Servern).Zeigt an, daß ein Tunnel erstellt werden soll.
Ohne diese Option würde ssh eine
normale Sitzung öffnen.Zwingt ssh im Hintergrund zu
laufen.Ein lokaler Tunnel wird in der Form
localport:remotehost:remoteport
angegeben. Die Verbindung wird dabei von dem lokalen Port
localport auf einen entfernten
Rechner weitergeleitet.Gibt den entfernten SSH server an.Ein SSH-Tunnel erzeugt ein Socket auf
localhost und dem angegebenen Port. Jede
Verbindung, die auf dem angegebenen Socket aufgemacht wird, wird
dann auf den spezifizierten entfernten Rechner und Port
weitergeleitet.Im Beispiel wird der Port 5023 auf
die entfernte Maschine und dort auf localhost
Port 23 weitergeleitet. Da der Port
23 für Telnet reserviert ist,
erzeugt das eine sichere Telnet Verbindung durch einen
SSH-Tunnel.Diese Vorgehensweise kann genutzt werden, um jedes unsichere
TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten.Mit SHH einen sicheren Tunnel für SMTP erstellen&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP
Zusammen mit &man.ssh-keygen.1; und zusätzlichen
Benutzer-Accounts können Sie leicht benutzbare SSH-Tunnel
aufbauen. Anstelle von Paßwörtern können Sie
Schlüssel benutzen und jeder Tunnel kann unter einem eigenen
Benutzer laufen.Beispiel für SSH-TunnelSicherer Zugriff auf einen POP3-ServerNehmen wir an, an Ihrer Arbeitsstelle gibt es einen
SSH-Server, der Verbindungen von außen akzeptiert. Auf
dem Netzwerk Ihrer Arbeitsstelle soll sich zudem noch ein
Mail-Server befinden, der POP3 spricht. Das Netzwerk oder die
Verbindung von Ihrem Haus zu Ihrer Arbeitsstelle ist unsicher
und daher müssen Sie Ihre E-Mail über eine gesicherte
Verbindung abholen können. Die Lösung zu diesem
Problem besteht darin, eine SSH-Verbindung von Ihrem Haus zu
dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort
weiter zum Mail-Server zu tunneln.&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie
Ihren Mail-Client so, daß er POP3 Anfragen zu
localhost Port 2110 sendet. Die Verbindung
wird dann sicher zu mail.example.com
weitergeleitet.Umgehen einer strengen FirewallEinige Netzwerkadministratoren stellen sehr drakonische
Firewall-Regeln auf, die nicht nur einkommende Verbindungen
filtern, sondern auch ausgehende. Es kann sein, daß Sie
externe Maschinen nur über die Ports 22 und 80 (SSH und
Web) erreichen.Sie wollen auf einen Dienst, der vielleicht nichts mit
Ihrer Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server,
zugreifen. Wenn der Ogg Vorbis Server nicht auf den Ports 22
oder 80 läuft, können Sie aber nicht auf ihn
zugreifen.Die Lösung hier ist es, eine SSH-Verbindung zu einer
Maschine außerhalb der Firewall aufzumachen und durch
diese zum Ogg Vorbis Server zu tunneln.&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled.myserver.com
user@unfirewalled.myserver.com's password: *******Konfigurieren Sie Ihren Client so, daß er
localhost und Port 8888 benutzt. Die Verbindung
wird dann zu music.example.com Port 8000
weitergeleitet und Sie haben die Firewall erfolgreich
umgangen.Weiterführende Informationen:OpenSSH&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1;&man.sshd.8; &man.sftp-server.8;
diff --git a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
index 4f7458801b..bc8920d9b4 100644
--- a/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/serialcomms/chapter.sgml
@@ -1,2763 +1,2774 @@
+
+
+
+ Martin
+ Heinen
+ Übersetzt von
+
+
+
+
Serielle DatenübertragungÜbersichtserielle DatenübertragungUnix unterstützte schon immer die serielle
Datenübertragung. Tatsächlich wurden Ein- und Ausgaben auf
den ersten Unix-Maschinen über serielle Leitungen
- durchgeführt. Seit den Zeiten, in denen der durchschnittliche
+ durchgeführt. Seit der Zeit, in der ein durchschnittlicher
Terminal aus einem seriellen Drucker mit
10 Zeichen/Sekunde und einer Tastatur bestand, hat sich viel
verändert. Dieses Kapitel behandelt einige Möglichkeiten,
serielle Datenübertragung unter FreeBSD zu verwenden.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden
Sie folgendes wissen:Wie Sie Terminals an Ihr FreeBSD anschließen.
Wie Sie sich mit einem Modem auf einem entfernten
Rechner einwählen.Wie Sie entfernten Benutzern erlauben, sich mit einem
Modem in Ihr System einzuwählen.Wie Sie Ihr System über eine serielle Konsole
booten.Bevor Sie dieses Kapitel lesen, sollten Sieeinen neuen Kernel konfigurieren und installieren
können ().Das Berechtigungskonzept von Unix und Prozesse
verstehen ().Zudem sollten Sie Zugriff auf die Handbücher der
seriellen Komponenten (Modem oder Multiportkarte) haben, die Sie
mit FreeBSD verwenden wollen.EinführungBegriffebits-per-secondbpsBits pro Sekunde — Einheit für die
Übertragungsgeschwindigkeit.DEE (DTE)DEEDTEDatenendeinrichtung (Data Terminal Equipment) —
zum Beispiel Ihr Computer.DÜE (DCE)DÜEDCEDatenübertragungseinrichtung (Data Communications
Equipment) — Ein Modem.RS-232RS-232C KabelEIA (Electronic Industries Association) Norm für
die serielle Datenübertragung.In diesem Abschnitt wird der Begriff Baud nicht
für Übertragungsgeschwindigkeiten gebraucht. Baud
bezeichnet elektrische Zustandswechsel pro Zeiteinheit, die Taktrate,
während bps (Bits pro Sekunde) der
richtige Begriff für die
Übertragungsgeschwindigkeit ist (die meisten Pedanten sollten
damit zufrieden sein).Kabel und SchnittstellenUm ein Modem oder einen Terminal an Ihr FreeBSD System
anzuschließen, muß Ihr Computer über eine serielle
Schnittstelle verfügen. Zusätzlich brauchen Sie noch das
passende Kabel, um das Gerät mit der Schnittstelle zu
verbinden. Wenn Sie mit Ihren Geräten und den nötigen
Kabeln schon vertraut sind, können Sie diesen Abschnitt
überspringen.KabelEs gibt verschiedene serielle Kabel. Die zwei häufigsten
sind Nullmodemkabel und Standard RS-232 Kabel. Die
Dokumentation Ihrer Hardware sollte beschreiben, welchen Kabeltyp
Sie benötigen.NullmodemkabelNullmodemkabelEin Nullmodemkabel verbindet einige Signale, wie die
Betriebserde, eins zu eins, andere Signale werden getauscht:
Die Sende- und Empfangsleitungen werden zum Beispiel
gekreuzt.Wenn Sie Ihre Kabel selber herstellen möchten,
zeigt die folgende Tabelle die RS-232C Signalnamen und Pinbelegung
für einen DB-25 Stecker:SignalPin #Pin #SignalSG7verbunden mit7SGTxD2verbunden mit3RxDRxD3verbunden mit2TxDRTS4verbunden mit5CTSCTS5verbunden mit4RTSDTR20verbunden mit6DSRDCD86DSRDSR6verbunden mit20DTRDas Signal Data Terminal Ready (DTR) wird
mit den Signalen Data Set Ready (DSR) und
Data Carrier Detect (DCD) der Gegenstelle
verbunden.Standard RS-232C KabelRS-232C cablesEin Standard RS-232C Kabel verbindet alle Signale direkt,
das heißt das Signal Sendedaten wird mit
dem Signal Sendedaten der Gegenstelle verbunden.
Dieses Kabel wird benötigt, um ein Modem mit einem FreeBSD
System zu verbinden. Manche Terminals benötigen dieses
Kabel ebenfalls.SchnittstellenÜber serielle Schnittstellen werden Daten zwischen dem
FreeBSD System und dem Terminal übertragen. Dieser
Abschnitt beschreibt die verschiedenen Schnittstellen und wie sie
unter FreeBSD angesprochen werden.Arten von SchnittstellenDa es verschiedene Schnittstellen gibt, sollten Sie vor
dem Kauf oder Selbstbau eines Kabels sicherstellen, daß
dieses zu den Schnittstellen Ihres Terminals und FreeBSD
Systems paßt.Die meisten Terminals besitzen DB25 Stecker.
Personal Computer haben DB25 oder DB9 Stecker. Wenn
Sie eine serielle Multiportkarte für Ihren PC besitzen,
haben Sie vielleicht RJ-12 oder RJ-45 Anschlüsse.Die Dokumentation Ihrer Geräte sollte Aufschluß
über den Typ der benötigten Anschlüsse geben.
Oft hilft es, wenn Sie sich den Anschluß einfach
ansehen.SchnittstellenbezeichnungUnter FreeBSD sprechen Sie die serielle Schnittstelle
(Port) über einen Eintrag im /dev
Verzeichnis an. Es gibt dort zwei verschiedene
Einträge:Schnittstellen für eingehende Verbindungen werden
/dev/ttydN
genannt. Dabei ist N die Nummer
der Schnittstelle, deren Zählung bei Null beginnt.
Allgemein wird diese Schnittstelle für Terminals
- benutzt. Diese Schnitstelle funktioniert nur wenn ein
+ benutzt. Diese Schnitstelle funktioniert nur, wenn ein
Data Carrier Detect Signal (DCD)
vorliegt.Für ausgehende Verbindungen wird
/dev/cuaaN
verwendet. Dieser Port wird normalerweise nur für
Modems benutzt. Sie können ihn allerdings für
Terminals nutzen, die das Data Carrier Detect
Signal nicht unterstützen.Wenn Sie einen Terminal an die erste serielle Schnittstelle
(COM1 in MS-DOS), angeschlossen haben,
sprechen Sie ihn über /dev/ttyd0 an.
Wenn er an der zweiten seriellen Schnittstelle angeschlossen
ist, verwenden Sie /dev/ttyd1, usw.Kernel KonfigurationIn der Voreinstellung benutzt FreeBSD vier serielle
Schnittstellen, die in MS-DOS Kreisen als
COM1, COM2,
COM3 und COM4
bekannt sind. Momentan unterstützt FreeBSD einfache
Multiportkarten (z.B. die BocaBoard 1008 und 2016) und bessere wie
die von Digiboard und Stallion Technologies. In der Voreinstellung
sucht der Kernel allerdings nur nach den
Standardanschlüssen.Um zu überprüfen, ob der Kernel eine Ihrer seriellen
- Schnittstellen erkennt, achten sie auf die Meldungen beim Booten,
+ Schnittstellen erkennt, achten Sie auf die Meldungen beim Booten,
oder schauen sich diese später mit
/sbin/dmesg an. Insbesondere sollten Sie auf
Meldungen achten, die mit den Zeichen sio
anfangen.Das folgende Kommando zeigt Ihnen nur die Meldungen an,
die die Folge sio enthalten:&prompt.root; /sbin/dmesg | grep 'sio'Auf einem System mit vier seriellen Schnittstellen sollte der
Kernel die folgenden Meldungen ausgeben:sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550AWenn Ihr Kernel nicht alle seriellen Schnittstellen erkennt,
müssen Sie unter Umständen einen angepaßten Kernel
für Ihr System erstellen. Eine ausführliche Anleitung
dazu finden Sie in .Die relevanten Zeilen in Ihrer Kernelkonfiguration sollten wie
die folgenden aussehen:device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
device sio3 at isa? port "IO_COM4" tty irq 9 vector siointrDie Zeilen für Schnittstellen, die Sie nicht besitzen,
können Sie entfernen oder auskommentieren. Die Konfiguration
von Multiportkarten ist in &man.sio.4; vollständig
beschrieben. Seien Sie vorsichtig, wenn Sie Konfigurationsdateien
von älteren FreeBSD Versionen verwenden, da sich die Bedeutung
der Optionen zwischen verschiedenen Versionen geändert
hat.port "IO_COM1" ist ein Ersatz für
port 0x3f8, IO_COM2
bedeutet port 0x2f8, IO_COM3
bedeutet port 0x3e8 und IO_COM4
steht für port 0x2e8. Die angegebenen
IO-Adressen sind genau wie die Interrupts 4, 3, 5 und 9
üblich für serielle Schnittstellen. Beachten Sie
bitte, daß sich normale serielle Schnittstellen auf ISA-Bussen
keine Interrupts teilen können.
Multiportkarten besitzen zusätzliche Schaltkreise, die es
allen 16550As auf der Karte erlauben, sich einen oder zwei
Interrupts zu teilen.GerätedateienDie meisten Geräte im Kernel werden durch
Gerätedateien in /dev angesprochen. Die
sio Geräte werden durch
/dev/ttydN
für eingehende Verbindungen und durch
/dev/cuaaN für
ausgehende Verbindungen angesprochen. Zum Initialisieren der
Geräte stellt FreeBSD die Dateien
/dev/ttyidN und
/dev/cuai0N zur
Verfügung. Diese Dateien werden benutzt, um
Kommunikationsparameter beim Öffnen eines Ports vorzugeben.
Für Modems, die zur Flußkontrolle
RTS/CTS benutzen, kann damit
crtscts gesetzt werden. Die Geräte
/dev/ttyldN und
/dev/cual0N (locking
devices) werden genutzt, um bestimmte Parameter festzuschreiben und
vor Veränderungen zu schützen. Weitere Informationen
zu Terminals finden Sie in &man.termios.4;, &man.sio.4; erklärt
die Dateien zum Initialisieren und Sperren der Geräte,
&man.stty.1; beschreibt schließlich
Terminal-Einstellungen.Erstellen von GerätedateienIn FreeBSD 5.0 werden Gerätedateien im Dateisystem
devfs bei Bedarf automatisch angelegt. Wenn
Sie eine FreeBSD Version mit devfs benutzen,
können Sie diesen Abschnitt überspringen.MAKEDEVZum Anlegen der Gerätedateien in
/dev wird MAKEDEV
benutzt. Um die Geräte der ersten seriellen Schnittstelle
für eingehende Verbindungen zu erstellen, wechseln Sie nach
/dev und setzen dort den Befehl
MAKEDEV ttyd0 ab. Für die zweite
serielle Schnittstelle (COM2 bzw. die
Schnittstelle mit der Nummer 1 führen Sie
analog MAKEDEV ttyd1 aus.Dabei erstellt MAKEDEV nicht nur die
/dev/ttydN
Gerätedateien, sondern auch die folgenden Dateien:
/dev/cuaaN,
/dev/cuaiaN,
/dev/cualaN,
/dev/ttyldN
und
/dev/ttyidN.Nachdem Sie die Gerätedateien erstellt haben, sollten
Sie die Zugriffsrechte der neuen Dateien, besonders die der
/dev/cua* Dateien überprüfen, um
sicherzustellen, daß wirklich nur jene Benutzer, die auf
diese Geräte zugreifen sollen, Schreib- und Leseberechtigungen
haben. Die Vorgabe der Zugriffsrechte sollte ausreichend
sein:crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1Auf die Geräte für ausgehende Verbindungen
dürfen uucp und Mitglieder der Gruppe
dialer zugreifen.Konfiguration der seriellen SchnittstellettydcuaaApplikationen benutzen normalerweise die Geräte
ttydN oder
cuaaN. Das
Gerät besitzt einige Voreinstellungen für Terminal-I/O,
wenn es von einem Prozeß geöffnet wird. Mit dem folgenden
Kommando können Sie sich diese Einstellungen ansehen:&prompt.root; stty -a -f /dev/ttyd1Sie können diese Einstellungen verändern, sie bleiben
allerdings nur solange wirksam, bis das Gerät geschlossen wird.
Wenn das Gerät danach wieder geöffnet wird, sind die
Voreinstellungen wieder wirksam. Um die Voreinstellungen zu
ändern, öffnen Sie das Gerät, das zum Initialisieren
dient und verändern dessen Einstellungen. Um beispielsweise
für ttyd5 den
Modus, 8 Bit Kommunikation und
Flußkontrolle einzuschalten, setzen Sie das folgende
Kommando ab:&prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoffrc Dateienrc.serialDie Voreinstellungen von seriellen Geräten wird in
/etc/rc.serial vorgenommen.Um zu verhindern, daß Einstellungen von Applikationen
verändert werden, können Sie die Geräte zum
Festschreiben von Einstellungen (locking devices)
benutzen. Wenn sie beispielsweise die Geschwindigkeit von
ttyd5 auf 57600 bps festlegen wollen,
benutzen Sie das folgende Kommando:&prompt.root; stty -f /dev/ttyld5 57600Eine Applikation, die ttyd5 öffnet,
kann nun nicht mehr die Geschwindigkeit ändern und muß
57600 bps benutzen.Die Geräte zum Initialisieren und Festschreiben von
Einstellungen sollten selbstverständlich nur von
root beschreibbar sein.SeanKellyBeigetragen von TerminalsTerminalsWenn Sie sich nicht an der Konsole oder über ein Netzwerk an
Ihrem FreeBSD System anmelden können, sind Terminals ein
bequemer und billiger Weg auf Ihr System zuzugreifen. Dieser
Abschnitt beschreibt wie Sie Terminals mit FreeBSD benutzen.TerminaltypenDas ursprüngliche Unix System besaß keine Konsolen.
Zum Anmelden und Starten von Programmen wurden stattdessen
Terminals benutzt, die an den seriellen Schnittstellen des Rechners
angeschlossen waren. Dies entspricht der Benutzung eines Modems
zum Anmelden auf einem entfernten System, um dort mit einem
Terminalemulator im Textmodus zu arbeiten.Die Konsolen heutiger PCs besitzen sehr gute
Grafikfähigkeiten, trotzdem gibt es in fast jedem Unix-Clone
die Möglichkeit, sich über die serielle Schnittstelle
anzumelden; FreeBSD ist da keine Ausnahme. Sie können sich an
einem Terminal anmelden und dort jedes Textprogramm, das Sie
normalerweise an der Konsole oder in einem xterm
Fenster im X Window System benutzen, laufen lassen.Im kommerziellen Umfeld können Sie viele Terminals an ein
FreeBSD System anschließen und diese auf den
Arbeitsplätzen Ihrer Angestellten aufstellen. Im privaten
Umfeld kann ein älterer IBM PC oder Macintosh als Terminal
dienen. Damit verwandeln Sie einen Einzelarbeitsplatz in ein
leistungsfähiges Mehrbenutzersystem.FreeBSD kennt drei verschiedene Terminals:Dumb terminals,PCs, die als Terminals
fungieren,X Terminals.Die folgenden Abschnitte beschreiben jeden dieser Terminals.Dumb-TerminalsDumb-Terminals (unintelligente Datenstationen) sind
Geräte, die über die serielle Schnittstelle mit einem
Rechner verbunden werden. Sie werden
unintelligent genannt, weil sie nur Text senden
und empfangen und keine Programme laufen lassen können.
Alle Programme, wie Texteditoren, Compiler oder Spiele befinden
sich auf dem Rechner, der mit dem Terminal verbunden ist.Es gibt viele Dumb-Terminals, die von verschiedenen
Herstellern produziert werden, wie zum Beispiel der VT-100 von
Digital Equipment Corporation oder der WY-75 von Wyse. So gut
wie jeder der verschiedenen Terminals sollte mit FreeBSD
zusammenarbeiten. Manche High-End Geräte verfügen
sogar über Grafikfähigkeiten, die allerdings nur von
spezieller Software genutzt werden kann.Dumb-Terminals sind in Umgebungen beliebt, in denen keine
Grafikapplikationen, wie zum Beispiel X-Programme, laufen
müssen.PCs, die als Terminal fungierenJeder PC kann die Funktion eines Dumb-Terminals, der ja nur
Text senden und empfangen kann, übernehmen. Dazu brauchen
Sie nur das richtige Kabel und eine
Terminalemulation, die auf dem PC
läuft.Diese Konfiguration ist im privaten Umfeld sehr beliebt. Wenn
Ihr Ehepartner zum Beispiel gerade an der FreeBSD Konsole arbeitet,
können Sie einen weniger leistungsstarken PC, der als
Terminal mit dem FreeBSD System verbunden ist, nutzen, um dort
gleichzeitig im Textmodus zu arbeiten.X-TerminalsX-Terminals sind die ausgereiftesten der verfügbaren
Terminals. Sie werden nicht mit der seriellen Schnittstelle
sondern mit einem Netzwerk, wie dem Ethernet, verbunden. Diese
Terminals sind auch nicht auf den Textmodus beschränkt,
sondern können jede X-Anwendung darstellen.X-Terminals sind hier nur der Vollständigkeit halber
aufgezählt. Die Einrichtung von X-Terminals wird in diesem
Abschnitt nicht beschrieben.KonfigurationIm folgenden wird beschrieben, wie Sie Ihr FreeBSD System
konfigurieren müssen, um sich an einem Terminal anzumelden.
Dabei wird vorausgesetzt, daß der Kernel bereits die
serielle Schnittstelle, die mit dem Terminal verbunden ist,
unterstützt. Weiterhin sollte der Terminal schon
angeschlossen sein.Aus wissen Sie, daß
init für das Initialisieren des Systems und
den Start von Prozessen zum Zeitpunkt des Systemstarts
verantwortlich ist. Unter anderem liest init/etc/ttys ein und startet für jeden
verfügbaren Terminal einen getty
Prozeß. getty wiederum fragt beim
Anmelden den Benutzernamen ab und startet
login.Um Terminals auf Ihrem FreeBSD System einzurichten, führen
Sie folgenden Schritte als root durch:Wenn er noch nicht da ist, fügen Sie einen Eintrag in
/etc/ttys für die serielle
Schnittstelle aus /dev ein.Geben Sie /usr/libexec/getty als
auszuführendes Programm an. Als Parameter für
getty geben Sie den passenden Verbindungstyp
aus /etc/gettytab an.Geben Sie den Terminaltyp an.Aktivieren Sie den Anschluß.Geben Sie die Sicherheit des Anschlusses an.Veranlassen Sie init/etc/ttys erneut zu lesen.Optional können Sie in /etc/gettytab
auch einen auf Ihre Zwecke angepaßten Terminaltyp erstellen.
Die genaue Vorgehensweise wird in diesem Abschnitt nicht
- erklärt, aber die Manualseiten von &man.gettytab.5; und
+ erklärt, aber die Manualpages von &man.gettytab.5; und
&man.getty.8; enthalten dazu weitere Informationen.Hinzufügen eines Eintrags in
/etc/ttysIn /etc/ttys werden alle Terminals
aufgeführt, an denen Sie sich auf dem FreeBSD System
anmelden können. Hier findet sich zum Beispiel ein Eintrag
für die erste virtuelle Konsole
- /dev/ttyv0, der es Ihnen ermöglicht
+ /dev/ttyv0, der es Ihnen ermöglicht,
sich dort anzumelden. Die Datei enthält desweiteren
Einträge für andere virtuelle Konsolen, serielle
Schnittstellen und Pseudoterminals. Wenn Sie einen Terminal
konfigurieren wollen, fügen sie einen Eintrag für den
Namen des Gerätes aus /dev ohne das
Präfix /dev hinzu. Zum Beispiel wird
/dev/ttyv0 als
ttyv0 aufgeführt.In der Voreinstellung enthält
/etc/ttys Einträge für die ersten
vier seriellen Schnittstellen. Wenn Sie an eine von diesen einen
Terminal anschließen, brauchen Sie keinen weiteren Eintrag
hinzuzufügen.Einträge in /etc/ttys
hinzufügenAngenommen, wir wollen an ein System zwei Terminals
anschließen: Einen Wyse-50 und einen alten 286 IBM PC,
der mit Procomm einen VT-100
Terminal emuliert. Den Wyse-Terminal verbinden wir mit der
zweiten seriellen Schnittstelle und den 286 mit der sechsten
seriellen Schnittstelle (einem Anschluß auf einer
Multiportkarte). Die entsprechenden Einträge in
/etc/ttys würden dann wie folgt
aussehen:ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Das erste Feld gibt normalerweise den Namen der
Gerätedatei aus /dev an.Im zweiten Feld wird das auszuführende Kommando,
normal ist das &man.getty.8;, angegeben.
getty initialisiert und öffnet die
Verbindung, setzt die Geschwindigkeit und fragt den
Benutzernamen ab. Danach führt es &man.login.1;
aus.getty akzeptiert einen optionalen
Parameter auf der Kommandozeile, den Verbindungstyp, der
die Eigenschaften der Verbindung, wie die Geschwindigkeit
und Parität, festlegt. Die Typen und die damit
verbundenen Eigenschaften liest getty
aus /etc/gettytab./etc/gettytab enthält viele
Einträge sowohl für neue wie auch alte
Terminalverbindungen. Die meisten Einträge, die mit
std beginnen, sollten mit einem
festverdrahteten Terminals funktionieren. Für jede
Geschwindigkeit zwischen 110 bps und 115200 bps gibt es
einen std Eintrag. Natürlich
können Sie auch eigene Einträge erstellen,
Informationen dazu finden Sie in &man.gettytab.5;.Wenn Sie den Verbindungstyp in
/etc/ttys eintragen, stellen Sie
bitte sicher, daß die Kommunikationseinstellungen
auch mit denen des Terminals übereinstimmen.In unserem Beispiel verwendet der Wyse-50 keine
Parität und 38400 bps, der 286 PC benutzt ebenfalls
keine Parität und arbeitet mit 19200 bps.Das dritte Feld gibt den Terminaltyp an, der
normalerweise mit diesem Anschluß verbunden ist.
Für Einwählverbindungen wird oft
unknown oder dialup
benutzt, da sich die Benutzer praktisch mit beliebigen
Terminals oder Emulatoren anmelden können. Bei
festverdrahteten Terminals ändert sich der Typ nicht,
so daß Sie in diesem Feld einen richtigen Typ aus der
&man.termcap.5; Datenbank angeben können.In unserem Beispiel benutzen wir für den Wyse-50
den entsprechenden Typ aus &man.termcap.5;, der 286 PC
wird als VT-100, den er ja emuliert, angegeben.Das vierte Feld gibt an, ob der Anschluß
aktiviert werden soll. Wenn Sie hier on
angeben, startet init das Programm, das
im zweiten Feld angegeben wurde (normal
getty). Wenn Sie off
angeben, wird das Kommando aus dem zweiten Feld nicht
ausgeführt und folglich können Sie sich dann an
dem betreffenden Terminal nicht anmelden.Im letzten Feld geben Sie die Sicherheit des
- Anschlusses. Wenn Sie hier secure
+ Anschlusses an. Wenn Sie hier secure
angeben, darf sich root (oder jeder
Account mit der UID 0 über diese
Verbindung anmelden. Wenn Sie insecure
angeben, dürfen sich nur unprivilegierte Benutzer
anmelden. Diese können später mit &man.su.1;
oder einem ähnlichen Mechanismus zu
root wechseln.Es wird dringend empfohlen, insecure
nur für Terminals hinter verschlossenen Türen
zu verwenden, da Sie mit su leicht zum
Superuser werden können.init zwingen,
/etc/ttys erneut zu lesenNachdem Sie die nötigen Änderungen in
/etc/ttys vorgenommen haben, schicken Sie
init ein SIGHUP-Signal (hangup), um es zu
veranlassen, seine Konfigurationsdatei neu zu lesen:&prompt.root; kill -HUP 1Da init immer der erste Prozeß auf
einem System ist, besitzt es immer die PID
1.Wenn alles richtig eingerichtet ist, alle Kabel angeschlossen
und die Terminals eingeschaltet sind, sollte für jeden
Terminal ein getty Prozeß laufen und auf
jedem Terminal sollten Sie eine Anmeldeaufforderung sehen.FehlersucheSelbst wenn Sie den Anweisungen akribisch gefolgt sind, kann es
immer noch zu Fehlern beim Einrichten eines Terminals kommen. Die
folgende Aufzählung von Symptomen beschreibt mögliche
Lösungen:Es erscheint kein Anmeldeprompt.Stellen Sie sicher, daß der Terminal verbunden und
eingeschaltet ist. Wenn ein PC als Terminal fungiert,
überprüfen Sie, daß die Terminalemulation auf
den richtigen Schnittstellen läuft.Stellen Sie sicher, daß Sie das richtige Kabel
verwenden und daß das Kabel fest mit dem Terminal und
dem FreeBSD Rechner verbunden ist.Stellen Sie sicher, daß die Einstellungen für
die Geschwindigkeit (bps) und Parität auf dem FreeBSD
System und dem Terminal gleich sind. Wenn Ihr Terminal einen
Bildschirm besitzt, überprüfen Sie die richtige
Einstellung von Helligkeit und Kontrast. Wenn Ihr Terminal
druckt, stellen Sie die ausreichende Versorgung mit Papier
und Tinte sicher.Überprüfen Sie mit ps,
daß der getty Prozeß für
den Terminal läuft:&prompt.root; ps -axww|grep gettyFür jeden Terminal sollten Sie einen Eintrag sehen.
Aus dem folgenden Beispiel erkennen Sie, daß
getty auf der zweiten seriellen
Schnittstelle läuft und den Verbindungstyp
std.38400 aus
/etc/gettytab benutzt:22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1Wenn getty nicht läuft,
überprüfen Sie, ob der Anschluß in
/etc/ttys aktiviert ist. Haben Sie
kill -HUP 1 abgesetzt, nachdem Sie
/etc/ttys geändert hatten?Anstelle eines Anmeldeprompts erscheinen
nur unverständliche Zeichen:Stellen Sie sicher, daß die Einstellungen für
die Geschwindigkeit (bps) und Parität auf dem FreeBSD
- und dem Terminal gleich sind. Kontrollieren Sie den
- getty und stellen Sie sicher, daß
- der richtige Verbindungstyp aus
+ System und dem Terminal gleich sind. Kontrollieren Sie den
+ getty Prozeß und stellen Sie sicher,
+ daß der richtige Verbindungstyp aus
/etc/gettytab benutzt wird. Wenn das
nicht der Fall ist, editieren Sie
/etc/ttys und setzen das Kommando
kill-HUP 1 ab.Zeichen erscheinen doppelt und eingegebene
Paßwörter erscheinen im Klartext.Stellen Sie den Terminal oder die Terminalemulation von
half duplex oder local echo auf
full duplex. um.GuyHelmerBeigetragen von SeanKellyMit Anmerkungen von EinwählverbindungenEinwählverbindungenDas Einrichten von Einwählverbindungen ähnelt dem
Anschließen von Terminals, nur daß Sie anstelle eines
Terminals ein Modem verwenden.Externe und interne ModemsExterne Modems sind für Einwählverbindungen besser
geeignet, da sie die Konfiguration in nicht flüchtigem RAM
speichern können. Zudem verfügen Sie über
Leuchtanzeigen, die den Status wichtiger RS-232 Signale
anzeigen und unter Umständen Besucher beeindrucken
können.Interne Modems verfügen normalerweise nicht über
nicht flüchtiges RAM und lassen sich meist nur über
DIP-Schalter konfigurieren. Selbst wenn ein internes Modem
Leuchtanzeigen besitzt, sind diese meist schwer einzusehen, wenn
das Modem eingebaut ist.Modems und KabelModemMit einem externen Modem müssen Sie das richtige Kabel
- benutzen: Ein Standard RS-232C Kabel, bei dem die folgenden
+ benutzen: Ein Standard RS-232C Kabel, bei dem die folgenden
Signale miteinander verbunden sind, sollte ausreichen:Transmitted Data (SD)Received Data (RD)Request to Send (RTS)Clear to Send (CTS)Data Set Ready (DSR)Data Terminal Ready (DTR)Carrier Detect (CD)Signal Ground (SG)Ab Geschwindigkeiten von 2400 bps benötigt FreeBSD die
Signale RTS und CTS
für die Flußkontrolle. Das Signal
CD zeigt an, ob ein Träger vorliegt, das
heißt ob die Verbindung aufgebaut ist oder beendet wurde.
DTR zeigt an, daß das Gerät
betriebsbereit ist. Es gibt einige Kabel, bei denen nicht alle
nötigen Signale verbunden sind. Wenn Sie Probleme der Art
haben, daß zum Beispiel die Sitzung nicht beendet wird,
obwohl die Verbindung beendet wurde, kann das an einem solchen
Kabel liegen.Wie andere Unix Betriebssysteme auch, benutzt FreeBSD
Hardwaresignale, um festzustellen, ob ein Anruf
beantwortet wurde, eine Verbindung beendet wurde, oder um die
Verbindung zu schließen und das Modem zurückzusetzen.
FreeBSD vermeidet es, dem Modem Kommandos zu senden, oder
Statusreports von dem Modem abzufragen. Falls Sie ein Benutzer
von PC-basierenden Bulletin Board Systemen sind, mag Sie das
verwundern.SchnittstellenbausteineFreeBSD unterstützt EIA RS-232C (CCITT V.24) serielle
Schnittstellen, die auf den NS8250, NS16450, NS16550 oder NS16550A
Bausteinen basieren. Die Bausteine der Serie 16550 verfügen
über einen 16 Byte großen Puffer, der als FIFO angelegt
ist. Wegen Fehler in der FIFO-Logik kann der Puffer in einem 16550
Baustein allerdings nicht genutzt werden, das heißt der
Baustein muß als 16450 betrieben werden. Bei allen
Bausteinen ohne Puffer und dem 16550 Baustein muß jedes
Byte einzeln von dem Betriebssystem verarbeitet werden, was
Fehler bei hohen Geschwindigkeiten oder großer Systemlast
erzeugt. Es sollten daher nach Möglichkeit serielle
Schnittstellen, die auf 16550A Bausteinen basieren, eingesetzt
werden.ÜberblickgettyWie bei Terminals auch, startet init für
jede serielle Schnittstelle, die eine Einwählverbindung zur
Verfügung stellt, einen getty Prozeß.
Wenn das Modem beispielsweise an /dev/ttyd0
angeschlossen ist, sollte in der Ausgabe von ps
ax eine Zeile wie die folgende erscheinen: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0Wenn sich ein Benutzer einwählt und die Verbindung
aufgebaut ist, zeigt das Modem dies durch das CD
Signal (Carrier Detect) an. Der Kernel merkt, daß ein Signal
anliegt und vollendet das Öffnen der Schnittstelle durch
getty. Dann sendet getty das
Anmeldeprompt mit der ersten für die Verbindung vereinbarten
Geschwindigkeit und wartet auf eine Antwort. Wenn die Antwort
unverständlich ist, weil zum Beispiel die Geschwindigkeit des
Modems von gettys Geschwindigkeit abweicht,
versucht getty die Geschwindigkeit solange
anzupassen, bis es eine verständliche Antwort
erhält./usr/bin/logingetty führt, nachdem der Benutzer seinen
Namen eingegeben hat, /usr/bin/login aus,
welches das Paßwort abfragt und danach die Shell des
Benutzers startet.KonfigurationsdateienDrei Konfigurationsdateien in /etc
steuern, ob eine Einwahl in Ihr FreeBSD System möglich ist.
Die erste, /etc/gettytab, konfiguriert den
/usr/libexec/getty Dæmon. In
/etc/ttys wird festgelegt, auf welchen
Schnittstellen /sbin/init einen
getty Prozeß startet. Schließlich
haben Sie in /etc/rc.serial die
Möglichkeit, Schnittstellen zu initialisieren.Es gibt zwei Ansichten darüber, wie Modems für
Einwählverbindungen unter Unix zu konfigurieren sind. Zum
einen kann die Geschwindigkeit zwischen dem Modem und dem Computer
fest eingestellt werden. Sie ist damit unabhängig von der
Geschwindigkeit, mit der sich der entfernte Benutzer einwählt.
Dies hat den Vorteil, daß der entfernte Benutzer das
Anmeldeprompt sofort bekommt. Der Nachteil bei diesem Verfahren
ist, daß das System die tatsächliche Geschwindigkeit
der Verbindung nicht kennt. Damit können bildschirmorientierte
Programme wie Emacs ihren
Bildschirmaufbau nicht an langsame Verbindungen anpassen,
um die Antwortzeiten zu verbessern.
Die andere Möglichkeit besteht darin, die Geschwindigkeit
der RS-232 Schnittstelle des lokalen Modems an die Geschwindigkeit
des entfernten Modems anzupassen. Bei einer V.32bis (14400 bps)
Verbindung kann das lokale Modem die RS-232 Schnittstelle mit
19200 bps betreiben, während bei einer Verbindung mit 2400 bps
die RS-232 Schnittstelle mit 2400 bps betrieben wird. Da
getty die Verbindungsgeschwindigkeit des
Modems nicht kennt, startet es den Anmeldevorgang mit der Ausgabe
von login: und wartet auf eine Antwort. Wenn der
Benutzer der Gegenstelle nun nur unverständliche Zeichen
erhält, muß er solange Enter
drücken, bis das Anmeldeprompt erscheint. Solange die
Geschwindigkeiten nicht übereinstimmen, sind die Antworten der
Gegenstelle für getty ebenfalls
unverständlich. In diesem Fall wechselt
getty zur nächsten Geschwindigkeit und gibt
wieder login: aus. In aller Regel erhält der
Benutzer der Gegenstelle nach ein bis zwei Tastendrücken
eine erkennbare Anmeldeaufforderung. Diese Anmeldeprozedur sieht
nicht so sauber wie die Methode mit einer festen Geschwindigkeit
aus, bietet dem Benutzer einer langsamen Verbindung allerdings den
Vorteil, daß sich bildschirmorientierte Programme an die
Geschwindigkeit anpassen können.Im folgenden wird die Konfiguration für beide Methoden
besprochen, doch die Methode der angepaßten Geschwindigkeit
wird bei der Diskussion bevorzugt./etc/gettytab/etc/gettytabMit /etc/gettytab wird &man.getty.8; im
Stil von &man.termcap.5; konfiguriert. Das Format dieser Datei und
die Bedeutung der Einträge wird in &man.gettytab.5;
beschrieben.Konfiguration für feste GeschwindigkeitWenn Sie die Modemgeschwindigkeit vorgeben, werden Sie in
/etc/gettytab nichts ändern
müssen.Konfiguration für angepaßte GeschwindigkeitIn /etc/gettytab müssen
Einträge für die Geschwindigkeiten, die Sie benutzen
wollen, sein. Wenn Sie ein 2400 bps Modem besitzen,
können Sie wahrscheinlich den schon vorhandenen
D2400 Eintrag benutzen.#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:Wenn Sie ein Modem mit einer höheren Geschwindigkeit
besitzen, müssen Sie wahrscheinlich in
/etc/gettytab weitere Einträge
erstellen. Hier ist ein Beispiel, das Sie mit einem 14400 bps
Modem benutzen können:#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:Die damit erzeugten Verbindungen verwenden 8 Bit und keine
Parität.Im obigen Beispiel startet die Geschwindigkeit bei 19200 bps
(eine V.32bis Verbindung) und geht dann über 9600 bps
(V.32), 400 bps, 1200 bps und 300 bps wieder zurück zu
19200 bps. Das Schlüsselwort nx=
- (next table) sorgt für das zyklische
+ (next table) sorgt für das zyklische
Durchlaufen der Geschwindigkeiten. Jede Zeile zieht zudem noch
- mit tc= (table continuation)
+ mit tc= (table continuation)
die Vorgabewerte für die jeweilige Geschwindigkeit an.Wenn Sie ein 28800 bps Modem besitzen und/oder Kompression
mit einem 14400 bps Modem benutzen wollen, brauchen Sie
höhere Geschwindigkeiten als 19200 bps. Das folgende
Beispiel startet mit 57600 bps:#
# Additions for a V.32bis or V.34 Modem
# Starting at 57600 bps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:Wenn Sie eine langsame CPU oder ein stark ausgelastetes
System besitzen und sich kein 16550A in Ihrem System befindet,
erhalten Sie bei 57600 bps vielleicht
sio Fehlermeldungen der Form silo
overflow./etc/ttys/etc/ttys/etc/ttys wurde bereits in besprochen. Die Konfiguration für
Modems ist ähnlich, allerdings braucht
getty ein anderes Argument und es muß
ein anderer Terminaltyp angegeben werden. Der Eintrag für
beide Methoden (feste und angepaßte Geschwindigkeit) hat die
folgende Form:
- ttyd0 "/usr/libexec/getty xxx" dialup on
+ ttyd0 "/usr/libexec/getty xxx" dialup onDas erste Feld der obigen Zeile gibt die Gerätedatei
für diesen Eintrag an — ttyd0
bedeutet, daß getty mit
/dev/ttyd0 arbeitet. Das zweite Feld
"/usr/libexec/getty xxx"
gibt das Kommando an, das init für dieses
Gerät startet (xxx wird durch
einen passenden Eintrag aus /etc/gettytab
ersetzt). Die Vorgabe für den Terminaltyp, hier
dialup, wird im dritten Feld angegeben. Das
vierte Feld, on, zeigt
init an, daß die Schnittstelle aktiviert
ist. Im fünften Feld könnte noch
secure angegeben werden, um Anmeldungen von
root zu erlauben, doch sollte das wirklich
nur für physikalisch sichere Terminals, wie die
Systemkonsole, aktiviert werden.Die Vorgabe für den Terminaltyp,
dialup im obigen Beispiel, hängt von lokalen
Gegebenheiten ab. Traditionell wird dialup
für Einwählverbindungen verwendet, so daß die
Benutzer in ihren Anmeldeskripten den Terminaltyp auf ihren
Terminal abstimmen können, wenn der Typ auf
dialup gesetzt ist. Wenn Sie aber
beispielsweise nur VT102 Terminals oder Emulatoren einsetzen,
können Sie den Terminaltyp hier auch fest auf
vt102 setzen.Nachdem Sie /etc/ttys geändert
haben, müssen Sie init ein
HUP Signal schicken, damit es die Datei wieder
einliest. Sie können dazu das folgende Kommando
verwenden:&prompt.root; kill -HUP 1Wenn Sie das System zum ersten Mal konfigurieren, sollten Sie
- diesem Kommando erst ausführen, wenn Sie Ihr Modem richtig
+ dieses Kommando erst ausführen, wenn Sie Ihr Modem richtig
konfiguriert und angeschlossen haben.Konfiguration für feste GeschwindigkeitDas Argument von getty muß in
diesem Fall eine feste Geschwindigkeit vorgeben. Der Eintrag
für ein Modem, das fest auf 19200 bps eingestellt ist,
könnte wie folgt aussehen:ttyd0 "/usr/libexec/getty std.19200" dialup onWenn Ihr Modem auf eine andere Geschwindigkeit eingestellt
ist, setzen Sie anstelle von std.19200 einen
passenden Eintrag der Form
std.speed ein.
Stellen Sie sicher, daß dies auch ein gültiger
Verbindungstyp aus /etc/gettytab
ist.Konfiguration für angepaßte GeschwindigkeitDas Argument von getty muß hier auf
einen der Einträge aus /etc/gettytab
zeigen, der zu einer Kette von Einträgen gehört, die
die zu probierenden Geschwindigkeiten beschreiben. Wenn Sie
dem obigen Beispiel gefolgt sind und zusätzliche
Einträge in /etc/gettytab erzeugt
haben, können Sie die folgende Zeile verwenden:ttyd0 "/usr/libexec/getty V19200" dialup on/etc/rc.serialrc Dateienrc.serialModems, die höhere Geschwindigkeiten unterstützen,
zum Beispiel V.32, V.32bis und V.34 Modems, benutzen
Hardware-Flußkontrolle (RTS/CTS). Für die
entsprechenden Schnittstellen können Sie die
Flußkontrolle mit stty in
/etc/rc.serial einstellen.Um beispielsweise die Hardware-Flußkontrolle
für die Geräte zur Ein- und Auswahl der zweiten
seriellen Schnittstelle (COM2)
zu aktivieren, benutzen Sie die Dateien zur Initialisierung der
entsprechenden Geräte und fügen die folgenden Zeilen in
/etc/rc.serial hinzu:# Serial port initial configuration
stty -f /dev/ttyid1 crtscts
stty -f /dev/cuai01 crtsctsModemkonfigurationWenn Sie ein Modem besitzen, das seine Konfiguration in nicht
flüchtigem RAM speichert, werden Sie ein Terminalprogramm wie
Telix unter MS-DOS oder tip unter FreeBSD
benötigen, um die Parameter einzustellen. Verbinden Sie sich
mit derselben Geschwindigkeit, die getty
zuerst benutzen würde, mit dem Modem und treffen Sie folgende
Einstellungen:DCD ist eingeschaltet, wenn das
Trägersignal des entfernten Modems erkannt wird.Im Betrieb liegt DTR an. Bei einem Verlust
von DTR legt das Modem auf und setzt sich zurück.CTS Flußkontrolle ist für
ausgehende Daten aktiviert.XON/XOFF Flußkontrolle ist
ausgeschaltet.RTS Flußkontrolle ist für
eingehende Daten aktiviert.Keine Rückmeldungen ausgeben.Die Echo-Funktion ist deaktiviert.In der Dokumentation Ihres Modems finden Sie die nötigen
Befehle, die Sie absetzen müssen, und/oder nötigen
DIP-Schalterstellungen, um die obigen Einstellungen zu
treffen.Für ein externes 14400 USRobotics Sportster gelten zum
Beispiel die folgenden Befehle:ATZ
AT&C1&D2&H1&I0&R2&WBei dieser Gelegenheit können Sie auch gleich andere
Einstellungen, zum Beispiel ob Sie V42.bis und/oder MNP5
Kompression benutzen wollen, an Ihrem Modem vornehmen.Bei einem externen 14400 USR Sportster müssen Sie auch noch
einige DIP-Schalter einstellen. Die folgenden Einstellungen
können Sie vielleicht als Beispiel für andere Modems
verwenden:Schalter 1: OBEN — DTR normalSchalter 2: N/A (Rückmeldungen als Text/numerische
Rückmeldungen)Schalter 3: OBEN — Keine Rückmeldungen
ausgebenSchalter 4: UNTEN — Echo-Funktion ausSchalter 5: OBEN — Rufannahme aktiviertSchalter 6: OBEN — Carrier Detect normalSchalter 7: OBEN — Einstellungen aus dem NVRAM ladenSchalter 8: N/A (Smart Mode/Dumb Mode)Für Einwählverbindungen sollten die
Rückmeldungen deaktiviert sein, da sonst
getty dem Modem das Anmeldeprompt
login: schickt und das Modem im Kommandomodus das
Prompt wieder ausgibt (Echo-Funktion) oder eine Rückmeldung gibt.
Das führt dann zu einer länglichen und fruchtlosen
Kommunikation zwischen dem Modem und
getty.Konfiguration für feste GeschwindigkeitDie Geschwindigkeit zwischen Modem und Computer muß auf
einen festen Wert eingestellt werden. Mit einem externen 14400
USR Sportster Modem setzen die folgenden Kommandos die
Geschwindigkeit auf den Wert der Datenendeinrichtung fest:ATZ
AT&B1&WKonfiguration für angepaßte GeschwindigkeitIn diesem Fall muß die Geschwindigkeit der seriellen
Schnittstelle des Modems der eingehenden Geschwindigkeit
angepaßt werden. Für ein externes 14400 USR Sportster
Modem erlauben die folgenden Befehle eine Anpassung der
Geschwindigkeit der seriellen Schnittstelle für
Verbindungen, die keine Fehlerkorrektur verwenden:ATZ
AT&B2&WVerbindungen mit Fehlerkorrektur (V.42, MNP) verwenden die
Geschwindigkeit der Datenendeinrichtung.Überprüfen der ModemkonfigurationDie meisten Modems verfügen über Kommandos, die die
Konfiguration des Modems in lesbarer Form ausgeben. Auf einem
externen 14400 USR Sportster zeigt ATI5 die
Einstellungen im nicht flüchtigen RAM an. Um die wirklichen
Einstellungen unter Berücksichtigung der DIP-Schalter zu
sehen, benutzen Sie ATZ gefolgt von
ATI4.Wenn Sie ein anderes Modem benutzen, schauen Sie bitte in der
Dokumentation Ihres Modems nach, wie Sie die Konfiguration des
Modems überprüfen können.FehlersucheBei Problemen können Sie die Einwählverbindung anhand
der folgenden Punkte überprüfen:Überprüfen des FreeBSD SystemsSchließen Sie das Modem an das FreeBSD System an und
- booten Sie das FreeBSD System. Wenn Ihr Modem über
+ booten Sie das System. Wenn Ihr Modem über
Statusindikatoren verfügt, überprüfen Sie, ob der
DTR Indikator leuchtet, wenn das Anmeldeprompt
erscheint. Dies zeigt an, daß das FreeBSD System einen
getty Prozeß auf der entsprechenden
Schnittstelle gestartet hat und das Modem auf einkommende
Verbindungen wartet.Wenn der DTR Indikator nicht leuchtet,
- melden Sie sich an dem FreeBSD an und überprüfen mit
+ melden Sie sich an dem FreeBSD System an und überprüfen mit
ps ax, ob FreeBSD einen
getty Prozeß auf der entsprechenden
Schnittstelle gestartet hat. Unter den angezeigten Prozessen
sollten Sie ähnliche wie die folgenden finden: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1Wenn das Modem noch keinen Anruf entgegengenommen hat und Sie
stattdessen die folgende Zeile sehen 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0bedeutet dies, daß getty die
Schnittstelle schon geöffnet hat und zeigt Kabelprobleme
oder eine falsche Modemkonfiguration an, da
getty die Schnittstelle erst dann öffnen
kann, wenn das CD Signal (Carrier Detect) vom
Modem anliegt.Wenn Sie keine getty Prozesse auf den
gewünschten ttydN
Ports finden, untersuchen Sie bitte /etc/ttys
auf Fehler. Suchen Sie auch in /var/log/messages
nach Meldungen von init oder
getty. Wenn Sie dort Meldungen finden,
sollten Sie noch einmal die beiden Konfigurationsdateien
/etc/ttys und /etc/gettytab
nach Fehlern durchsehen. Überprüfen Sie auch, ob die
Gerätedateien
/dev/ttydN
vorhanden sind.EinwählversuchVersuchen Sie, sich in Ihr System einzuwählen. Auf dem
entfernten System stellen Sie bitte die folgenden
Kommunikationsparameter ein: 8 Bit, keine Parität, ein
Stop-Bit. Wenn Sie kein Anmeldeprompt erhalten oder nur
unleserliche Zeichen sehen, drücken Sie mehrmals, in
Abständen von ungefähr einer Sekunde,
Enter. Wenn Sie immer noch nicht die
login: Meldung sehen, schicken Sie ein
BREAK Kommando. Wenn Sie zur Einwahl ein
Highspeed-Modem benutzen, verwenden Sie eine feste
Geschwindigkeit auf der seriellen Schnittstelle des Modems
(AT&B1 für ein USR Sportster).Wenn Sie jetzt immer noch kein Anmeldeprompt erhalten,
überprüfen Sie nochmals /etc/gettytab
und stellen sicher, daßder Verbindungstyp in /etc/ttys zu
einem gültigen Eintrag in /etc/gettytab
gehört,jeder der nx= Einträge in
gettytab gültig ist undjeder tc= Eintrag auf einen
gültigen Eintrag in gettytab
verweist.
- Wenn das Modem an Ihrem FreeBSD auf einen eingehenden Anruf
+ Wenn das Modem an Ihrem FreeBSD System auf einen eingehenden Anruf
nicht antwortet, stellen Sie sicher, daß das Modem so
konfiguriert ist, daß es einen Anruf beantwortet, wenn
DTR anliegt. Wenn Ihr Modem Statusindikatoren
besitzt, können Sie das Anliegen von DTR
anhand der Leuchten überprüfen.Wenn Sie alles schon mehrfach überprüft haben und
es immer noch noch nicht funktioniert, machen Sie erst einmal
eine Pause, bevor Sie weitermachen. Wenn es immer noch nicht
- funktioniert, können Sie eine Mail an die Mailingliste &a.de.questions;
- schicken, in der Sie Ihr Modem und Ihr Problem beschreiben und
- Ihnen sollte geholfen werden.
+ funktioniert, können Sie eine Mail an die Mailingliste
+ &a.de.questions; schicken, in der Sie Ihr Modem und Ihr Problem
+ beschreiben und Ihnen sollte geholfen werden.Verbindungen nach AußenDie folgenden Ratschläge beschreiben, wie Sie mit einem
Modem eine Verbindung zu einem anderen Computer herstellen. Dies
können Sie nutzen, um sich auf einem entfernten Computer
anzumelden, oder um eine Verbindung zu einem BBS (Bulletin Board
System) herzustellen.Weiterhin sind diese Art von Verbindungen nützlich, wenn mal
Ihr PPP nicht funktioniert. Wenn Sie zum Beispiel eine Datei
mit FTP übertragen wollen und das über PPP gerade nicht
möglich ist, melden Sie sich auf dem entfernten Rechner an und
führen dort die FTP Sitzung durch. Die Dateien können Sie
danach mit zmodem auf den lokalen Rechner übertragen.Mein Hayes Modem wird nicht unterstützt — was kann
ich tun?Eigentlich ist die Onlinehilfe für tip
nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen
Hayes Wähler. Verwenden Sie einfach at=hayes
in /etc/remote.Der Hayes Treiber ist nicht schlau genug, um ein paar der
erweiterten Merkmale von neueren Modems zu erkennen —
Nachrichten wie BUSY,
NO DIALTONE oder CONNECT 115200
verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von
ATX0&W abschalten, wenn Sie
tip benutzen.Der Anwahl-Timeout von tip beträgt 60
Sekunden. Ihr Modem sollte weniger verwenden, oder
tip denkt, daß ein Kommunikationsfehler
vorliegt. Versuchen Sie es mit
ATS7=45&W.Tatsächlich unterstützt die ausgelieferte Version
von tip Hayes Modems noch nicht
vollständig. Die Lösung ist,
tipconf.h in
/usr/src/usr.bin/tip/tip zu editieren.
Dafür benötigen Sie natürlich die Quellcode
Distribution.Ändern Sie die Zeile #define HAYES 0
zu #define HAYES 1. Dann führen Sie
make und make install aus.
Es sollte jetzt funktionieren.Wie soll ich die AT Befehle eingeben?/etc/remoteErstellen Sie einen sogenannten direct
Eintrag in /etc/remote. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
/dev/cuaa0, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:cuaa0:dv=/dev/cuaa0:br#19200:pa=noneVerwenden Sie die höchste bps Rate, die Ihr Modem in der
br Fähigkeit unterstützt. Geben Sie dann tip
cuaa0 ein und Sie sind mit Ihrem
Modem verbunden.Wenn auf Ihrem System keine /dev/cuaa0
Datei existiert, geben Sie folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV cuaa0Oder benutzen Sie cu als
root mit dem folgenden Befehl:&prompt.root; cu -lline -sspeedline steht für die serielle
Schnittstelle (/dev/cuaa0) und
speed für die Geschwindigkeit
(57600). Wenn Sie mit dem Eingeben der AT
Befehle fertig sind, beenden Sie mit ~..Wieso funktioniert das @ Zeichen für
die pn Fähigkeit nicht?Das @ Zeichen in der
Telefonnummerfähigkeit sagt tip, daß
es in der Datei /etc/phones nach einer Nummer
suchen soll. Aber @ ist auch ein spezielles
Zeichen in den Dateien, in denen Fähigkeiten beschrieben
werden, wie /etc/remote. Schreiben Sie es mit
einem Backslash:pn=\@Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Stellen Sie einen allgemeinen Eintrag in
/etc/remote. Zum Beispiel:tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:Mit dem folgenden Befehl können Sie dann
wählen:&prompt.root; tip -115200 5551234Sollten Sie cu gegenüber
tip bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:und benutzen zum Wählen das Kommando:&prompt.root; cu 5551234 -s 115200Muß ich dabei jedes Mal die bps Rate angeben?Schreiben Sie einen tip1200 oder einen
cu1200 Eintrag, aber geben Sie auch die bps Rate
an, die Ihr Modem wirklich unterstützt. Leider denkt
&man.tip.1;, daß 1200 bps ein guter Standardwert ist und
deswegen sucht es nach einem tip1200-Eintrag.
Natürlich müssen Sie nicht wirklich 1200 bps
benutzen.Wie kann ich möglichst komfortabel über einen
Terminal-Server auf verschiedene Rechner zugreifen?Sie müssen nicht warten bis Sie verbunden sind, und
jedesmal CONNECT Rechner
eingeben, benutzen Sie tip's cm Fähigkeit.
Sie können diese Einträge in
/etc/remote verwenden:pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:Mit den Befehlen tip pain oder tip
muffin können Sie eine Verbindungen zu den Rechnern
pain oder muffin herstellen; mit
tip deep13 verbinden Sie sich mit dem Terminal
Server.Kann tip mehr als eine Verbindung für jede Seite
ausprobieren?Das ist oft ein Problem, wenn eine Universität mehrere
Telefonleitungen hat und viele tausend Studenten diese benutzen
wollen.Erstellen Sie einen Eintrag für Ihre Universität in
/etc/remote und benutzen Sie
@ für die pn
Fähigkeit:big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:Listen Sie die Telefonnummern der Universität in
/etc/phones auf:big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114tip probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie,
daß tip beim Versuchen eine Verbindung
herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife
laufen.Warum muß ich zweimal
CtrlP
tippen, um ein
CtrlP
zu senden?CtrlP
ist das voreingestellte Zeichen, mit dem eine Übertragung
erzwungen werden kann und wird benutzt, um tip
zu sagen, daß das nächste Zeichen direkt gesendet werden
soll und nicht als Fluchtzeichen interpretiert werden soll. Mit
Hilfe der ~s Fluchtsequenz, mit der man
Variablen setzen kann, können Sie jedes andere Zeichen als
force-Zeichen definieren.Geben Sie
~sforce=Zeichen
gefolgt von Enter ein. Für
Zeichen können Sie ein beliebiges
einzelnes Zeichen einsetzen. Wenn Sie
Zeichen weglassen, ist das
force-Zeichen nul, das Sie mit
Ctrl2
oder
CtrlLeertaste eingeben können. Ein guter Wert für
Zeichen ist
ShiftCtrl6, welches nur auf wenigen Terminal Servern benutzt
wird.Sie können das force-Zeichen auch
bestimmen, indem Sie in $HOME/.tiprc das
folgende einstellen:force=<single-char>Warum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Sie müssen
CtrlA, eingegeben haben, das raise-Zeichen von
tip, das speziell für Leute mit defekten
caps-lock Tasten eingerichtet wurde. Benutzen Sie
~s wie oben und setzen Sie die Variable
raisechar auf etwas, das Ihnen angemessen
erscheint. Tatsächlich kann die Variable auf das gleiche
Zeichen wie das force-Zeichen gesetzt werden, wenn
Sie diese Fähigkeiten niemals benutzen wollen.Hier ist ein Muster der .tiprc Datei,
perfekt für Emacs Benutzer, die oft
Ctrl2
und
CtrlA
tippen müssen:force=^^
raisechar=^^
- The ^^ is
+ Geben Sie für ^^ShiftCtrl6
- .
+ ein.Wie kann ich Dateien mit tip
übertragen?Wenn Sie mit einem anderen Unix-System kommunizieren,
können Sie mit ~p (put) und
~t (take) Dateien senden und empfangen. Diese
Befehle lassen cat und echo
auf dem entfernten System laufen, um Dateien zu empfangen und zu
- senden. Die Syntax ist:
+ senden. Die Syntax ist:
~plocal-fileremote-file~tremote-filelocal-fileEs gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein
anderes Protokoll, wie zmodem, benutzen.Wie kann ich zmodem mit tip laufen
lassen?Um Dateien zu empfangen, starten Sie das Programm zum Senden
auf dem entfernten Computer. Geben Sie dann
~C rz ein, um die Dateien lokal zu empfangen.Um Dateien zu senden, starten Sie das Programm zum Empfangen
auf dem entfernten Computer. Geben Sie dann
~C sz Dateien ein,
um Dateien auf das entfernte System zu senden.KazutakaYOKOTABeigesteuert von BillPaulAuf Grundlage eines Dokuments von Einrichten der seriellen Konsoleserial consoleEinführungFreeBSD kann ein System mit einem Dumb-Terminal (unintelligente
Datenstation) an einer seriellen Schnittstelle als Konsole booten.
Diese Konfiguration ist besonders nützlich für
Systemadministratoren, die FreeBSD auf Systemen ohne Tastatur oder
Monitor installieren wollen, und Entwickler, die den Kernel oder
Gerätetreiber debuggen.Wie in beschrieben, besitzt FreeBSD drei
- Bootphasen. Die ersten beiden Bootphasen befinden im Bootsektor am
+ Bootphasen. Der Code für die ersten beiden Bootphasen befindet
+ sich im Bootsektor am
Anfang der FreeBSD Slice der Bootplatte. Dieser Bootblock
lädt den Bootloader (/boot/loader) in
Phase drei.Um eine serielle Konsole einzurichten, müssen Sie den
Bootblock, den Bootloader und den Kernel konfigurieren.Konfiguration der KonsoleBereiten Sie ein serielles Kabel vor.NullmodemkabelSie benötigen entweder ein Nullmodemkabel oder ein
- serielles Standard Kabel mit einem Nullmodemkabel-Adapter. In
+ serielles Standard Kabel mit einem Nullmodemkabel-Adapter. In
wurden serielle Kabel
beschrieben.Trennen Sie die Tastatur vom Computer.Die meisten PC Systeme suchen beim Power On Self Test
(POST) nach einer Tastatur und geben eine Fehlermeldung aus,
wenn sie keine finden. Einige Maschinen werden sich sogar
weigern, ohne Tastatur zu booten.Wenn Ihr Rechner trotz einer Fehlermeldung normal
weiterbootet, brauchen Sie weiter nichts zu tun.
Beispielsweise geben einige Maschinen mit einem Phoenix BIOS
nur Keyboard failed aus und booten dann
normal weiter.Wenn Ihr System ohne Tastatur nicht booten will,
müssen Sie das BIOS so konfigurieren, das es diesen Fehler
ignoriert (wenn das möglich ist). Das Handbuch zu Ihrem
Motherboard sollte beschreiben, wie das zu bewerkstelligen
ist.Wenn Sie im BIOS Not installed für
die Tastatur einstellen, heißt das nicht, daß Sie
die Tastatur nicht benutzen können, sondern dies weist
das BIOS nur an, nicht nach einer Tastatur zu suchen. Trotz
dieser Einstellung können Sie die Tastatur angeschlossen
lassen und sie später verwenden.Wenn Ihr System über eine PS/2 Maus verfügt,
müssen Sie diese wahrscheinlich auch abziehen. Da sich
die PS/2 Maus und die Tastatur einige Hardwarekomponenten
teilen, kann das dazu führen, daß die
Hardwareerkennung fälschlicherweise eine Tastatur findet,
wenn eine PS/2 Maus angeschlossen ist. Gateway 2000
Pentium 90MHz Systemen wird dieses Verhalten nachgesagt.
Normalerweise ist das kein Problem, da eine Maus ohne
Tastatur sowieso nicht sinnvoll einsetzbar ist.Schließen Sie einen Dumb-Terminal an
COM1 (sio0)
an.Wenn Sie keinen Dumb-Terminal besitzen, können Sie
einen alten PC/XT mit einem Terminalemulator oder die serielle
Schnittstelle eines anderen Unix Rechners benutzen. Sie
benötigen auf jeden Fall eine freie erste serielle
Schnittstelle (COM1). Zur Zeit ist es
nicht möglich, in den Bootblöcken eine andere
Schnittstelle zu konfigurieren, ohne diese neu zu kompilieren.
Wenn Sie COM1 bereits für ein
anderes Gerät benutzen, müssen Sie dieses Gerät
temporär entfernen und einen neuen Bootblock sowie Kernel
installieren, wenn Ihr FreeBSD erst einmal installiert ist.
Auf einem Server sollte COM1 ohnehin
verfügbar sein. Wenn Sie die Schnittstelle für ein
anderes Gerät benutzen und Sie dieses nicht auf
COM2 (sio1)
legen können, sollten Sie sich nicht an erster Stelle mit
dem Aufsetzen einer seriellen Konsole beschäftigen.Stellen Sie sicher, daß Ihre Kernelkonfiguration die
richtigen Optionen für COM1
(sio0) enthält.Relevante Optionen sind:0x10Aktiviert die Konsolenunterstützung für
dieses Gerät. Zur Zeit kann nur ein Gerät die
Konsolenunterstützung aktiviert haben. Das erste,
in der Konfigurationsdatei aufgeführte Gerät,
mit dieser Option, verfügt über eine aktivierte
Konsolenunterstützung. Beachten Sie, daß
diese Option alleine nicht ausreicht, um die serielle
Konsole zu aktivieren. Setzen Sie entweder noch die
nachfolgend diskutierte Option oder verwenden Sie beim
Booten, wie unten beschrieben, den Schalter
.0x20Das erste Gerät in der Kernelkonfigurationsdatei
mit dieser Option wird, unabhängig von dem unten
diskutierten Schalter , zur Konsole.
Dies ersetzt COMCONSOLE der FreeBSD
Versionen 2.X. Die Option
muß zusammen mit
verwendet werden.0x40Reserviert dieses Gerät und sperrt es für
normale Zugriffe. Sie sollten diese Option nicht auf dem
Gerät setzen, das Sie als serielle Konsole verwenden
wollen. Der Zweck dieser Option ist es, dieses
Gerät für das Remote-Debuggen zu reservieren.
Das Entwickler
Handbuch enthält dazu weitere
Informationen.In FreeBSD 4.0 und späteren Versionen hat sich
die Bedeutung dieser Option leicht geändert und es
existiert eine weitere Option, um ein Gerät zum
Remote-Debuggen zu verwenden.Beispiel:device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4Weitere Einzelheiten entnehmen Sie bitte
&man.sio.4;.Wenn diese Optionen nicht gesetzt sind, müssen Sie auf
einer anderen Konsole beim Booten UserConfig starten oder den
Kernel neu kompilieren.Erstellen Sie boot.config im
- Rootverzeichnis der a Partition des
+ Rootverzeichnis der a-Partition des
Bootlaufwerks.Der Code des Bootblocks entnimmt dieser Datei, wie Sie Ihr
System booten möchten. Um die serielle Konsole zu
aktivieren, müssen Sie hier eine oder mehrere Optionen
(alle in derselben Zeile) angeben. Die folgenden Optionen
stehen zur Auswahl der Konsole zur Verfügung:Schaltet zwischen der internen und der seriellen
Konsole um. Wenn Sie beispielsweise von der internen
Konsole (Bildschirm) booten, weist
den Bootloader und den Kernel an, die serielle
Schnittstelle als Konsole zu nehmen. Wenn die Konsole
normal auf der seriellen Schnittstelle liegt, wählen
Sie mit den Bildschirm aus.Schaltet zwischen Einzelkonsole und Dual-Konsole um.
Die Einzelkonsole ist entweder die interne Konsole
(der Bildschirm) oder die serielle Schnittstelle, je nach
dem Stand von . Im
Dual-Konsolen Betrieb ist die Konsole, unabhängig
von , gleichzeitig der Bildschirm und
die serielle Schnittstelle. Dies trifft aber nur zu,
wenn der Bootblock ausgeführt wird. Sobald der
Bootloader ausgeführt wird, wird die durch
gegebene Konsole die alleinige
Konsole.Veranlaßt den Bootblock nach einer Tastatur zu
suchen. Wenn keine Tastatur gefunden wird, werden
und automatisch
gesetzt.Wegen Platzbeschränkungen in den
Bootblöcken kann nur
erweiterte Tastaturen erkennen. Tastaturen mit weniger
als 101 Tasten (und ohne F11 und F12 Tasten) werden
wahrscheinlich, wie vielleicht auch die Tastaturen
einiger Laptops, nicht erkannt. Wenn dies bei Ihrem
System der Fall ist, können Sie
nicht verwenden, da es leider noch keine Umgehung
für dieses Problem gibt.Benutzen Sie also entweder , um die
Konsole automatisch zu setzen, oder , um die
serielle Konsole zu verwenden.In boot.config können Sie auch
andere, in &man.boot.8; beschriebene Optionen,
aufnehmen.Mit Ausnahme von werden die Optionen an
den Bootloader (/boot/loader)
weitergegeben. Der Bootloader untersucht dann einzig
um festzustellen, welches Gerät die
Konsole wird. Wenn Sie also nur angegeben
haben, können Sie die serielle Schnittstelle nur als
Konsole verwenden während der Bootblock ausgeführt
wird. Danach wird der Bootloader, da ja
fehlt, den Bildschirm zur Konsole machen.Booten Sie die Maschine.Wenn Sie das FreeBSD System starten, werden die
Bootblöcke den Inhalt von /boot.config
auf der Konsole ausgeben:/boot.config: -P
Keyboard: noDie zweite Zeile sehen Sie nur, wenn Sie in
/boot.config angegeben
haben. Sie zeigt an, ob eine Tastatur angeschlossen ist oder
nicht. Die Meldungen gehen je nach den Einstellungen in
/boot.config auf die interne Konsole, die
serielle Konsole, oder beide Konsolen.OptionenMeldungen erscheinen aufkeineder internen Konsoleder seriellen Konsoleder seriellen und der internen Konsoleder seriellen und der internen Konsole, mit Tastaturder internen Konsole, ohne Tastaturder seriellen KonsoleNach den oben gezeigten Meldungen gibt es eine kleine
- Verzögerung; bevor die Bootblöcke den Bootloader
+ Verzögerung bevor die Bootblöcke den Bootloader
laden und weitere Meldungen auf der Konsole erscheinen. Sie
können die Ausführung der Bootblöcke
unterbrechen, um zu überprüfen, ob auch alles richtig
aufgesetzt ist, brauchen das aber unter normalen Umständen
nicht zu tun.Drücken Sie eine Taste außer
Enter um den Bootvorgang zu unterbrechen. Sie
erhalten dann ein Prompt, an dem Sie weitere Eingaben
tätigen können:>> FreeBSD/i386 BOOT
Default: 0:wd(0,a)/boot/loader
boot:Je nach Inhalt von /boot.config
erscheint das Prompt auf der seriellen Konsole, der internen
Konsole oder beiden Konsolen. Wenn die Meldung auf der
richtigen Konsole erscheint, drücken Sie
Enter um fortzufahren.Wenn Sie das Prompt auf der seriellen Konsole erwartet
haben, dort aber nichts sehen, liegt ein Fehler in Ihren
Einstellungen vor. Als Umgehung geben Sie an der momentanen
Konsole ein, um den Bootblock und den
Bootloader auf die serielle Konsole umzustellen. Führen
Sie dann den Bootvorgang mit Enter weiter
und wenn das System gebootet hat, können Sie die
fehlerhaften Einstellungen korrigieren.Nachdem der Bootloader geladen wurde und Sie sich in der
dritten Bootphase befinden, können Sie immer noch zwischen der
internen und der seriellen Konsole auswählen. Setzen Sie dazu,
wie in beschrieben, die
entsprechenden Variablen des Bootloaders.ZusammenfassungDie folgende Übersicht zeigt, welche Konsole, abhängig
von den getroffenen Einstellungen, ausgewählt wird.Fall 1: Option 0x10 für
sio0device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4Optionen in /boot.configKonsole in den BootblöckenKonsole im BootloaderKonsole im Kernelkeineinterneinterneinterneserielleserielleserielleserielle und interneinterneinterneserielle und interneserielleserielle, mit Tastaturinterneinterneinterne, ohne Tastaturserielle und interneserielleserielleFall 2: Option 0x30 für
sio0device sio0 at isa? port "IO_COM1" tty flags 0x30 irq 4Optionen in /boot.configKonsole in den BootblöckenKonsole im BootloaderKonsole im Kernelkeineinterneinterneserielleserielleserielleserielleserielle und interneinterneserielleserielle und interneserielleserielle, mit Tastaturinterneinterneserielle, ohne Tastaturserielle und interneserielleserielleHinweise zur seriellen KonsoleVerwenden einer höheren GeschwindigkeitDie Vorgabewerte für die Kommunikationsparameter der
seriellen Schnittstelle sind: 9600 baud, 8 Bit, keine
Parität und ein Stop-Bit. Wenn Sie die Geschwindigkeit
ändern wollen, müssen Sie mindestens die
Bootblöcke neu kompilieren. Fügen Sie die folgende
Zeile in /etc/make.conf hinzu und
kompilieren Sie Bootblöcke neu:BOOT_COMCONSOLE_SPEED=19200Wenn die serielle Konsole auf einem anderen Weg als durch die
Verwendung von konfiguriert wird, oder die
serielle Konsole des Kernels eine andere als die der
Bootblöcke ist, müssen der Kernelkonfiguration zudem
noch die folgende Option hinzufügen und einen neuen Kernel
kompilieren:options CONSPEED=19200Eine andere Schnittstelle als sio0
benutzenWenn Sie, warum auch immer, ein anderes Gerät als
sio0 für die serielle Konsole
einsetzen wollen, kompilieren Sie bitte die Bootblöcke, den
Bootloader und den Kernel nach dem folgenden Verfahren
neu.
- Installieren Sie die Kernelquellen.
+ Installieren Sie die Kernelquellen (siehe
+ ).Setzen Sie in /etc/make.confBOOT_COMCONSOLE_PORT auf die Adresse der
Schnittstelle (0x3F8, 0x2F8, 0x3E8 oder 0x2E8), die Sie
benutzen möchten. Sie können nur
sio0 bis
sio3 (COM1
bis COM4) benutzen, Multiportkarten
können Sie nicht als Konsole benutzen. Interrupts
müssen Sie hier nicht angeben.Erstellen Sie eine angepaßte Kernelkonfiguration
und geben Sie dort die richtigen Optionen für die
Schnittstelle, die Sie benutzen möchten, an. Wenn Sie
zum Beispiel sio1
(COM2) zur Konsole machen wollen,
geben Sie dort entwederdevice sio1 at isa? port "IO_COM2" tty flags 0x10 irq 3oderdevice sio1 at isa? port "IO_COM2" tty flags 0x30 irq 3an. Keine andere serielle Schnittstelle sollte als
Konsole definiert werden.Übersetzen und installieren Sie die
Bootblöcke:&prompt.root; cd /sys/boot/i386/boot2
&prompt.root; make
&prompt.root; make installÜbersetzen und installieren Sie den
Bootloader:&prompt.root; cd /sys/boot/i386/loader
&prompt.root; make
&prompt.root; make installBauen und installieren Sie einen neuen Kernel.Schreiben Sie die Bootblöcke mit &man.disklabel.8;
auf die Bootplatte und booten Sie den neuen Kernel.DDB Debugger über die serielle SchnittstelleWenn Sie den Kerneldebugger über eine serielle
Verbindung bedienen möchten (nützlich, kann aber
gefährlich sein, wenn auf der Leitung falsche BREAK Signale
generiert werden), sollten Sie einen Kernel mit
den folgenden Optionen erstellen:options BREAK_TO_DEBUGGER
options DDBBenutzung der seriellen Konsole zum AnmeldenDa Sie schon die Bootmeldungen auf der Konsole verfolgen
können und den Kerneldebugger über die Konsole bedienen
können, wollen Sie sich vielleicht auch an der Konsole
anmelden.Öffnen Sie /etc/ttys in einem
Editor und suchen Sie nach den folgenden Zeilen:ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off securettyd0 bis ttyd3
entsprechen COM1 bis
COM4. Ändern Sie für die
entsprechende Schnittstelle off zu
on. Wenn Sie auch die Geschwindigkeit der
seriellen Schnittstelle geändert haben, müssen Sie
- std.9600 auf die momentane Geschwindigkeit zum
- Beispiel std.19200 anpassen.
+ std.9600 auf die momentane Geschwindigkeit, zum
+ Beispiel std.19200, anpassen.
Sie sollten auch den Terminaltyp von
unknown auf den tatsächlich verwendeten
Terminal setzen.Damit die Änderungen an der Datei wirksam werden,
müssen Sie noch kill -HUP 1
absetzen.Die Konsole im Bootloader ändernIn den vorigen Abschnitten wurde beschrieben, wie Sie die
serielle Konsole durch Änderungen im Bootblock aktivieren.
Dieser Abschnitt zeigt Ihnen, wie Sie mit Kommandos und
Umgebungsvariablen die Konsole im Bootloader definieren. Da der
Bootloader die dritte Phase im Bootvorgang ist und nach den
- Bootblöcken ausgeführt wird, überschreiben die
- Einstellungen hier die des Bootblocks.
+ Bootblöcken ausgeführt wird, überschreiben
+ seine Einstellungen die des Bootblocks.
Festlegen der KonsoleMit einer einzigen Zeile in
/boot/loader.rc können Sie den
Bootloader und den Kernel anweisen, die serielle Schnittstelle
zur Konsole zu machen:set console=comconsoleUnabhängig von den Einstellungen im Bootblock legt dies
die Konsole fest.Die obige Zeile sollte die erste Zeile in
/boot/loader.rc sein, so daß Sie die
Bootmeldungen so früh wie möglich auf der Konsole
sehen.Analog können Sie die interne Konsole verwenden:set console=vidconsoleWenn Sie console nicht setzen, bestimmt der
Bootloader (und damit auch der Kernel) die Konsole über
die Option des Bootblocks.Ab FreeBSD 3.2 können Sie die Bootkonsole in
/boot/loader.conf.local oder
/boot/loader.conf anstatt in
/boot/loader.rc angeben. In
/boot/loader.rc finden Sie bei dieser Methode
den folgenden Inhalt:include /boot/loader.4th
startErstellen Sie /boot/loader.conf.local
und fügen die Zeileconsole=comconsoleoderconsole=vidconsoleein. Weitere Informationen erhalten Sie in
&man.loader.conf.5;.Momentan gibt es im Bootloader nichts vergleichbares zu
im Bootblock. Damit kann die Konsole nicht
automatisch über das Vorhandensein einer Tastatur
festgelegt werden.Eine andere Schnittstelle als sio0
benutzenSie müssen den Bootloader neu kompilieren, wenn Sie eine
andere Schnittstelle als sio0 benutzen
wollen. Folgen Sie der Anleitung aus
.VorbehalteHinter dem ganzen steckt die Idee, Server ohne Hardware
für Grafik und ohne Tastatur zu betreiben. Obwohl es die
meisten Systeme erlauben, ohne Tastatur zu booten, gibt es leider
nur wenige Systeme, die ohne eine Grafikkarte booten. Maschinen
mit einem AMI BIOS können ohne Grafik booten, indem Sie den
Grafikadapter im CMOS-Setup auf Not installed
setzen.Viele Maschinen unterstützen diese Option allerdings nicht.
Damit diese Maschinen booten, müssen sie über eine
Grafikkarte, auch wenn es nur eine alte Monochromkarte ist,
verfügen. Allerdings brauchen Sie keinen Monitor an die Karte
anzuschließen. Sie können natürlich auch
versuchen, auf diesen Maschinen ein AMI BIOS zu
installieren.
diff --git a/de_DE.ISO8859-1/books/handbook/sound/chapter.sgml b/de_DE.ISO8859-1/books/handbook/sound/chapter.sgml
index c25640603a..961e8cd9fe 100644
--- a/de_DE.ISO8859-1/books/handbook/sound/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/sound/chapter.sgml
@@ -1,633 +1,659 @@
MosesMooreVon BenediktKöhlerÜbersetzt von UwePierau
- Übersetzt von SoundZusammenfassungFreeBSD unterstützt viele unterschiedliche Soundkarten,
die Ihnen den Genuss von Highfidelity-Klängen auf Ihrem
Computer ermöglichen. Dazu gehört unter anderem die
Möglichkeit, Tonquellen in den Formaten MPEG Audio Layer 3
(MP3), WAV, Ogg Vorbis und vielen weiteren Formaten aufzunehmen
und wiederzugeben. Darüber hinaus enthält die FreeBSD
- Ports Collection Anwendungen, die Ihnen das Bearbeiten Ihrer
+ Ports-Sammlung Anwendungen, die Ihnen das Bearbeiten Ihrer
aufgenommenen Tonspuren, das Hinzufügen von Klangeffekten
und die Kontrolle der angeschlossenen MIDI-Geräte
erlauben.Nach dem Lesen dieses Kapitels werden Sie wissen:
- Wie Sie Ihre Soundkarte
+ Wie Sie Ihre Soundkarte
bestimmen.Wie Sie Ihr System so einstellen, dass die
Soundkarte richtig erkannt wird.Einige Methoden und Beispielanwendungen, mit
denen Sie das korrekte Funktionieren Ihrer Soundkarte
überprüfen können.Wie Sie Fehler in Ihren
Soundkarten-Einstellungen finden.Wie Sie MP3s wiedergeben und
erzeugen.Wie Sie CD-Tonspuren in Dateien
rippen.Bevor Sie dieses Kapitel leben, sollten Sie:Wissen, wie Sie einen neuen Kernel
konfigurieren und installieren ().Bestimmen des korrekten GerätsPCIISASoundkartenZunächst sollten Sie in Erfahrung bringen, welches
- Modell Ihrer Soundkarte Sie haben, welcher Chip sie benutzt und
+ Modell Ihrer Soundkarte Sie haben, welchen Chip sie benutzt und
ob es sich um eine PCI- oder ISA-Karte handelt. FreeBSD
unterstützt eine ganze Reihe sowohl von PCI- als auch von
ISA-Karten. Wenn Ihre Soundkarte in der folgenden Liste nicht
- auftaucht, konsultieren Sie die &man.pcm.4; Manual-Seite. Diese
+ auftaucht, konsultieren Sie die &man.pcm.4; Manualpage. Diese
Liste ist zwar nicht vollständig, deckt jedoch einige der
verbreitetsten Karten ab.Crystal 4237, 4236, 4232, 4231Yamaha OPL-SAxOPTi931Ensoniq AudioPCI 1370/1371ESS Solo-1/1ENeoMagic 256AV/ZXSound Blaster Pro, 16, 32, AWE64, AWE128, LiveCreative ViBRA16Advanced Asound 100, 110, and Logic ALS120ES 1868, 1869, 1879, 1888Gravis UltraSoundAureal Vortex 1 or 2KernelKonfigurationUm Ihre Soundkarte benutzen zu können, müssen Sie
den richtigen Gerätetreiber laden. Dafür gibt es mehrere
Möglichkeiten: Am einfachsten ist es, mit &man.kldload.8; das
entsprechende Kernel-Modul für Ihre Soundkarte zu laden. Sie
können aber auch die Unterstützung Ihrer Soundkarte
statisch in den Kernel hineinkompilieren. Der folgende Abschnitt
erklärt diese Methode. Weitere Informationen über das
Kompilieren eines Kernels erhalten sie in dem Kapitel Kernelkonfiguration.Creative, Advance und ESS Soundkarten
- Haben Sie eine dieser Karten, müssen Sie
+ Für jede dieser Karten fügen Sie die folgende Zeile
+ zu Ihrer Kernelkonfiguration hinzu:device pcm
- zu Ihrer Kernelkonfiguration hinzufügen. Wenn Ihre
- Karte eine PnP ISA-Karte ist, fügen Sie
- zusätzlich
+ ISA-Karten benötigen zusätzlich noch die
+ Zeile:device sbc
- hinzu. Für eine nicht-PnP ISA-Karte muss
+ Nicht-PnP fähige ISA-Karten benötigen die Zeilen:device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15
- in Ihre Kernelkonfiguration. Dies sind die
+ Dies sind die
Voreinstellungen. Sie werden unter Umständen den IRQ oder
andere Einstellungen anpassen müssen. In der &man.sbc.4;
- Manual-Seite finden Sie weitere Informationen dazu.
+ Manualpage finden Sie weitere Informationen dazu.Die Karte Sound Blaster Live wird unter FreeBSD 4.0
nicht unterstützt. Dazu benötigen Sie einen Patch,
der in diesem Dokument nicht behandelt wird. Es ist deshalb
empfehlenswert, dass Sie in diesem Fall Ihr System auf den
neuesten -STABLE Stand aktualisieren, bevor Sie diese Karte
benutzen können.Gravis UltraSound Karten
- Für eine PnP ISA-Karte, müssen Sie
+ Eine PnP ISA-Karte benötigt die folgenden Zeilen in der
+ Kernelkonfiguration:device pcm
device gusc
- zu Ihrer Kernelkonfiguration zufügen. Wenn Sie eine
- nicht-PnP ISA-Karte besitzen, ergänzen Sie
+ Wenn Sie eine nicht-PnP fähige ISA-Karte besitzen,
+ fügen Sie die folgenden Zeilen ein:device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
- in Ihrer Kernelkonfiguration. Es kann sein, dass Sie den
+ Es kann sein, dass Sie den
IRQ oder andere Einstellungen Ihrer Karte anpassen
- müssen. Lesen Sie dazu die &man.gusc.4; Manual-Seite
+ müssen. Lesen Sie dazu die &man.gusc.4; Manualpage
für weitere Informationen.Crystal Soundkarten
- Für Crystal Karten, brauchen Sie die beiden
- Zeilen
+ In der Kernelkonfiguration geben Sie für Crystal Karten
+ die beiden folgenden Zeilen an:device pcm
device csa
-
- in Ihrer Kernelkonfiguration.Allgemeine Unterstützung
- Für PnP ISA- oder PCI-Karten fügen Sie
+ Für PnP ISA- oder PCI-Karten fügen Sie die folgende
+ Zeile zu Ihrer Kernelkonfiguration hinzu:device pcm
- zu Ihrer Kernelkonfiguration hinzu. Wenn Sie eine
- nicht-PnP ISA-Karte besitzen, die keinen bridge driver hat,
- geben Sie zusätzlich
+ Wenn Sie eine nicht-PnP ISA-Karte besitzen, die keinen
+ Bridge-Treiber hat, geben Sie zusätzlich die folgende Zeile
+ an:device pcm0 at isa? irq 10 drq 1 flags 0x0
- in Ihrer Kernelkonfiguration an. Ändern Sie IRQ oder
+ Ändern Sie den IRQ oder
andere Einstellungen so, dass sie Ihrer Soundkarte
entsprechen.Onboard SoundEinige Systeme besitzen direkt auf dem Motherboard
eingebaute Soundgeräte. Diese benötigen die folgende
Angabe in Ihrer Kernelkonfiguration:options PNPBIOSErstellen und Testen der Device Nodes
- Device Nodes
+ Device Node
+ GerätedateiNach einem Neustart loggen Sie sich ein und geben
dmesg | grep pcm ein. Sie sollten etwas wie das
folgende sehen:&prompt.root; dmesg | grep pcm
pcm0: <SB16 DSP 4.11> on sbc0Die Ausgabe Ihres Systems kann anders aussehen. Erscheinen
keine pcm Geräte, dann ist zuvor
ein Fehler aufgetreten. Wenn das passiert, schauen Sie sich Ihre
Kernelkonfiguration noch einmal an und vergewissern Sie sich,
dass Sie den richtigen Treiber gewählt haben. Lesen Sie den
- Abschnitt Fehlersuche für weitere Möglichkeiten
+ Abschnitt Fehlersuche für weitere Hinweise.
Ergab der vorige Befehl pcm0 als
- Ausgabe, dann müssen Sie folgendes als root
+ Ausgabe, dann müssen Sie folgendes als root
ausführen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Wenn auf den vorigen Befehl pcm1
- als Ausgabe erschienen ist, dann müssen Sie die selben
+ als Ausgabe erschienen ist, dann müssen Sie dieselben
Befehle ausführen, nur dass Sie
snd0 durch
snd1 ersetzen.Die obigen Kommandos legen kein/dev/snd Device an.Der Befehl MAKEDEV erzeugt eine Gruppe
von Device Nodes, darunter:DeviceBeschreibung/dev/audioSPARC-compatible audio device/dev/dspDigitized voice device/dev/dspW/dev/dsp-ähnliches
Device mit 16 bits pro Sample/dev/midiRaw midi access device/dev/mixerControl port mixer device/dev/musicLevel 2 sequencer interface/dev/sequencerSequencer device/dev/pssProgrammable device interfaceWenn alles geklappt hat, haben Sie jetzt eine
funktionierende Soundkarte. Nun können Sie eine Anwendung
- wie audio/mpg123 installieren, um Audiodateien
- anhören zu können.
+ wie audio/mpg123 installieren,
+ um Audiodateien anhören zu können.
Häufige Probleme
-
+
FehlerLösungDevice Node
+ Gerätedateiunsupported subdevice XXEin oder mehrere Device Nodes wurden nicht
korrekt angelegt. Wiederholen Sie die oben angegebenen
Schritte.I/O portsb_dspwr(XX) timed outDer I/O Port ist nicht korrekt angegeben.IRQbad irq XXDer IRQ ist falsch angegeben. Stellen Sie
sicher, dass der angegebene IRQ mit dem Sound IRQ
übereinstimmt.xxx: gus pcm not attached, out of
- memory
+ memory
Es ist nicht genug Speicher verfügbar,
um das Gerät betreiben zu können.
+
+ DSP
+
+ xxx: can't open /dev/dsp!
+ Überprüfen Sie mit fstat |
+ grep dsp ob eine andere Anwendung das
+ Gerät geöffnet hat. Häufige
+ Störenfriede sind esound
+ oder die Sound-Unterstützung von KDE.
+ ChernLeeEin Beitrag von BenediktKöhlerÜbersetzt von MP3 AudioMP3 (MPEG Layer 3 Audio) ermöglicht eine
Klangwiedergabe in CD-ähnlicher Qualität, was Sie sich
auf Ihrem FreeBSD Rechner nicht entgehen lassen sollten.MP3-PlayerXMMS (X Multimedia System) ist
bei weitem der beliebteste XFree86 MP3-Player.
WinAmp-Skins können auch mit
XMMS genutzt werden, da die
Benutzerschnittstelle fast identisch mit der von Nullsofts
WinAmp ist. Daneben
unterstützt XMMS auch eigene
Plugins.XMMS kann als
audio/xmms Port oder Package installiert
werden.Die Benutzerschnittstelle von
XMMS ist leicht zu erlernen und
beinhaltet eine Playlist, einen graphischen Equalizer und
vieles mehr. Diejenigen, die mit WinAmp vertraut sind, werden
XMMS sehr leicht zu benutzen
finden.
- Der Port audio/mpg123 ist ein alternativer,
- kommandozeilenorientierter MP3-Player.
+ Der Port audio/mpg123 ist
+ ein alternativer, kommandozeilenorientierter MP3-Player.mpg123 kann ausgeführt
werden, in dem man das zu benutzende Sound Device und die
abzuspielende MP3-Datei in der Kommandozeile wie unten
angibt:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from BT - Foobar-GreastHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 sollten Sie dabei mit dem
dsp-Device Ihres Systems ersetzen.CD-Audio Tracks rippenBevor man eine ganze CD oder einen CD-Track in das
MP3-Format umwandeln kann, müssen die Audiodaten von der
CD auf die Festplatte gerippt werden. Dabei werden die CDDA
(CD Digital Audio) Rohdaten in WAV-Dateien kopiert.Die Anwendung cdda2wav die in dem
- sysutils/cdrtools Paket enthalten ist, kann zum
- Rippen der Audiodaten und anderen Informationen von CDs
+ sysutils/cdrtools Paket enthalten
+ ist, kann zum Rippen der Audiodaten und anderen Informationen von CDs
genutzt werden.Wenn die Audio CD in dem Laufwerk liegt, können Sie
mit folgenden Befehl (als root) eine
ganze CD in einzelne WAV-Dateien (eine Datei für jeden
Track) rippen:&prompt.root; cdda2wav -D 0,1,0 -BDer Schalter bezieht sich auf
das SCSI Device 0,1,0, dass sich aus
dem Ergebnis des Befehls cdrecord -scanbus
ergibt.Um einzelne Tracks zu rippen, benutzen Sie den
Schalter wie folgt:&prompt.root; cdda2wav -D 0,1,0 -t 7Dieses Beispiel rippt den siebten Track der Audio
CDROM. Um mehrere Tracks zu rippen, zum Beispiel die Tracks
eins bis sieben, können Sie wie folgt einen Bereich
angeben:&prompt.root; cdda2wav -D 0,1,0 -t 1+7
- Mit cdda2wav können nur
- SCSI-CDROM-Laufwerke verwendet werden. Besitzen Sie ein
- IDE-Laufwerk, dann probieren Sie audio/cdd oder
- eine der vielen anderen Anwendungen in der
- audio-Ports Collection.
+ cdda2wav unterstützt auch ATAPI
+ (IDE) CDROM Laufwerke. Wenn Sie ein IDE Laufwerk benutzen, geben
+ Sie beim Aufruf von cdda2wav den
+ Gerätenamen anstelle der SCSI Gerätenummern an. Um den
+ siebten Track eines IDE Laufwerkes zu rippen, benutzen Sie das
+ folgende Kommando:
+
+ &prompt.root; cdda2wav -D /dev/acd0a -t 7MP3-Dateien kodierenGegenwärtig ist lame der
meistbenutzte mp3-Encoder. Lame
- finden Sie unter audio/lame in dem
- Ports-Verzeichnis finden.
+ finden Sie unter audio/lame im
+ Ports-Verzeichnis.
Benutzen Sie die WAV-Dateien, die sie von CD gerippt
haben, und wandeln sie mit dem folgenden Befehl die Datei
audio01.wav in
audio01.mp3 um:&prompt.root; lame -h -b 128 \
--tt "Foo Liedtitel" \
--ta "FooBar Künstler" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Geripped und kodiert von Foo" \
--tg "Musikrichtung" \
audio01.wav audio01.mp3128 kbits ist die gewöhnliche MP3 Bitrate. Viele
bevorzugen mit 160 oder 192 eine höhere Qualität. Je
höher die Bitrate ist, desto mehr Speicherplatz
benötigt die resultierende MP3-Datei, allerdings wird die
Qualität dadurch auch besser. Der Schalter
verwendet den higher quality but a
little slower (höhere Qualität, aber etwas
langsamer) Modus. Die Schalter, die mit
beginnen, sind ID3-Tags, die in der Regel
Informationen über das Lied enthalten und in die
MP3-Datei eingebettet sind. Weitere Optionen können in
- der lame-Manualseite nachgelesen werden.
+ der lame-Manualpage nachgelesen werden.
MP3-Dateien dekodierenUm aus MP3-Dateien eine Audio CD zu erstellen, müssen
diese in ein nicht komprimiertes WAV-Format umgewandelt
werden. Sowohl XMMS als auch
mpg123 unterstützen die Ausgabe
der MP3-Dateien in unkomprimierte Dateiformate.Dekodieren mit XMMS:Starten Sie XMMS.Klicken Sie mit der rechten Maustaste, um das
XMMS-Menu zu öffnen.Wählen Sie Preference im
Untermenü Options.Ändern Sie das Output-Plugin in Disk
Writer Plugin.Drücken Sie Configure.Geben Sie ein Verzeichnis ein (oder wählen Sie
browse), in das Sie die unkomprimierte Datei schreiben
wollen.Laden Sie die MP3-Datei wie gewohnt in
XMMS mit einer Lautstärke
von 100% und einem abgeschalteten EQ.Drücken Sie Play und es wird
so aussehen, als spiele XMMS
die MP3-Datei ab, aber keine Musik ist zu hören. Der
Player überspielt die MP3-Datei in eine Datei.Vergessen Sie nicht, das Output Plugin wieder in den
Ausgangszustand zurückzusetzen um wieder MP3-Dateien
anhören zu können.Mit mpg123 nach stdout schreiben:Geben Sie mpg123 -s
audio01.mp3 > audio01.pcm
einXMMS schreibt die Datei in dem
WAV-Formal während mpg123 die
MP3-Datei in rohe PCM Audiodaten umwandelt. Beide Formate
können von cdrecord oder
burncd verwendet werden, um Audio
CDs zu schreiben.Lesen Sie in diesem Handbuch,
um mehr Informationen zur Benutzung von CD-Brennern mit FreeBSD zu
erhalten.
+
+
+
diff --git a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
index efd7812ab1..ca2c958952 100644
--- a/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/users/chapter.sgml
@@ -1,1123 +1,1123 @@
NeilBlakey-MilnerBeigetragen von RobertDrehmelÜbersetzt von Benutzer und grundlegende Account-VerwaltungÜbersichtEinen FreeBSD Computer können mehrere Benutzer zur selben
Zeit benutzen, allerdings kann immer nur einer vor der Konsole sitzen
Außer Sie verwenden, wie in besprochen, zusätzliche Terminals, über das Netzwerk können beliebig viele
Benutzer angemeldet sein. Jeder Benutzer muss einen Account
haben, um das System benutzen zu können.Nachdem Sie dieses Kapitel gelesen haben, werden Siedie verschiedenen Account-Typen von FreeBSD kennen,wissen, wie Accounts angelegt werden,wissen, wie Sie Accounts löschen,wie Sie Attribute eines Accounts, wie den Loginnamen oder
die Login-Shell ändern,wissen, wie Sie Limits für einen Account setzen, um
beispielsweise Ressourcen, wie Speicher oder CPU-Zeit,
einzuschränken,wie Sie mit Gruppen die Verwaltung der Accounts
vereinfachen.Vor dem Lesen dieses Kapitels sollten Siedie Grundlagen von Unix und FreeBSD ()
verstanden haben.EinführungJeder Zugriff auf das System geschieht über Accounts und alle
Prozesse werden von Benutzern gestartet, also sind Benutzer- und
Account-Verwaltung von wesentlicher Bedeutung in FreeBSD-Systemen.Mit jedem Account eines FreeBSD Systems sind bestimmte Informationen
verknüpft, die diesen Account identifizieren.LoginnamenDen Loginnamen geben Sie bei der Anmeldung ein, wenn Sie
dazu mit login: aufgefordert werden.
Loginnamen müssen auf dem System eindeutig sein, das
heißt auf einem System kann es nicht zwei Accounts mit
demselben Loginnamen geben. In &man.passwd.5; wird
- beschrieben, wie ein gültiger Loginnamen gebildet wird.
+ beschrieben, wie ein gültiger Loginname gebildet wird.
Normalerweise sollten Sie Namen verwenden, die aus
Kleinbuchstaben bestehen und bis zu acht Zeichen lang sind.PasswortMit jedem Account ist ein Passwort verknüpft. Wenn
das Passwort leer ist, wird es bei der Anmeldung nicht
abgefragt. Das ist allerdings nicht zu empfehlen, daher sollte
jeder Account ein Passwort besitzen.User ID (UID)Die UID ist eine Zahl zwischen 0 und 65536, die einen
Account eindeutig identifiziert. Intern verwendet FreeBSD nur
die UID, Loginnamen werden zuerst in eine UID umgewandelt,
mit der das System dann weiter arbeitet. Das bedeutet, dass
Sie Accounts mit unterschiedlichen Loginnamen aber gleicher
UID einrichten können. Vom Standpunkt des Systems handelt
es sich dabei um denselben Account. In der Praxis werden Sie
diese Eigenschaft des Systems wahrscheinlich nicht
nutzen.Group ID (GID)Die GID ist eine Zahl zwischen 0 und 65536, die eine Gruppe
eindeutig identifiziert. Mit Gruppen kann der Zugriff auf
Ressourcen über die GID anstelle der UID geregelt werden.
Einige Konfigurationsdateien werden durch diesen Mechanismus
deutlich kleiner. Ein Account kann mehreren Gruppen
zugehören.Login-KlasseLogin-Klassen erweitern das Gruppenkonzept. Sie
erhöhen die Flexibilität des Systems in der Handhabung
der verschiedenen Accounts.Gültigkeit von PasswörternEin regelmäßiges Ändern des Passworts wird in
der Voreinstellung von FreeBSD nicht erzwungen. Sie
können allerdings einen Passwortwechsel nach einer
gewissen Zeit auf Basis einzelner Accounts erzwingen.Verfallszeit eines AccountsIn der Voreinstellung verfallen unter FreeBSD keine
Accounts. Wenn Sie Accounts einrichten, die nur für eine
bestimmte Zeit gültig sein sollen, beispielsweise Accounts
für Teilnehmer eines Praktikums, können Sie angeben,
wie lange der Account gültig sein soll. Nachdem die
angegebene Zeitspanne verstrichen ist, kann dieser Account
nicht mehr zum Anmelden verwendet werden, obwohl alle
Verzeichnisse und Dateien, die diesem Account gehören,
noch vorhanden sind.vollständiger BenutzernameFreeBSD identifiziert einen Account eindeutig über
den Loginnamen, der aber keine Ähnlichkeit mit dem
richtigen Namen des Benutzers haben muss. Der
vollständige Benutzername kann daher beim Einrichten eines
Accounts angegeben werden.HeimatverzeichnisDas Heimatverzeichnis gibt den vollständigen Pfad zu
dem Verzeichnis an, in dem sich der Benutzer nach erfolgreicher
Anmeldung befindet. Es ist üblich, alle
Heimatverzeichnisse unter
/home/Loginname
oder
/usr/home/Loginname
anzulegen. Im Heimatverzeichnis oder in dort angelegten
Verzeichnissen werden die Dateien eines Benutzers
gespeichert.Login-ShellGrundsätzlich ist die Schnittstelle zum System eine
Shell, von denen es viele unterschiedliche gibt. Die
bevorzugte Shell eines Benutzers kann seinem Account zugeordnet
werden.Es gibt drei Haupttypen von Accounts: Der
Superuser,
Systembenutzer und
Benutzer-Accounts. Der
Superuser-Account, normalerweise root genannt, wird
benutzt, um das System ohne Beschränkungen auf Privilegien zu
verwalten. Systembenutzer starten Dienste. Abschließend werden
Benutzer-Accounts von echten Menschen genutzt, die sich einloggen, Mails
lesen und so weiter.Der Superuser-AccountAccountsSuperuser (root)Der Superuser-Account, normalerweise root
genannt, ist vorkonfiguriert und erleichtert die Systemverwaltung, sollte
- aber nicht für alltägliche Aufgaben wie verschicken und
- empfangen von Mails, Entdecken des Systems oder Programmierung benutzt
+ aber nicht für alltägliche Aufgaben wie das Verschicken und
+ Empfangen von Mails, Entdecken des Systems oder Programmierung benutzt
werden.Das ist so, da der Superuser im Gegensatz zu normalen
Benutzer-Accounts ohne Beschränkungen operiert und falsche
Anwendung des Superuser-Accounts in spektakulären Katastrophen
- resultieren kann. Benutzer-Accounts sind nicht fähig das System
+ resultieren kann. Benutzer-Accounts sind nicht in der Lage, das System
versehentlich zu zerstören, deswegen ist es generell am besten
normale Benutzer-Accounts zu verwenden, solange man nicht
hauptsächlich die extra Privilegien benötigt.Kommandos, die Sie als Superuser eingeben, sollten Sie immer
doppelt und dreifach überprüfen, da ein
zusätzliches Leerzeichen oder ein fehlender Buchstabe irreparablen
Datenverlust bedeuten kann.Das erste, das Sie tun sollten, nachdem Sie dieses Kapitel gelesen
haben, ist einen unprivilegierten Benutzer für Ihre eigene normale
Benutzung zu erstellen, wenn Sie das nicht bereits getan haben. Das
trifft immer zu, egal ob Sie ein Mehrbenutzersystem oder ein System
laufen haben, welches Sie alleine benutzen. Später in diesem
Kapitel besprechen wir, wie man zusätzliche Accounts erstellt und
wie man zwischen dem normalen Benutzer und dem Superuser wechselt.System-AccountsAccountsSystem-Accounts
- Systembenutzer starten Dienste wie DNS, mail, Web-Server und so
+ Systembenutzer starten Dienste wie DNS, Mail-Server, Web-Server und so
weiter. Der Grund dafür ist die Sicherheit; wenn die Programme
von dem Superuser gestartet werden, können Sie ohne
Einschränkungen handeln.AccountsdaemonAccountsoperatorBeispiele von Systembenutzern sind daemon,
operator, bind (für den
Domain Name Service) und news. Oft erstellen
Systemadministratoren den Benutzer httpd, um
Web-Server laufen zu lassen, die sie installieren.Accountsnobodynobody ist der generische unprivilegierte
Systembenutzer. Bedenken Sie aber, dass je mehr Dienste
- nobody benutzen, immer mehr Dateien und Prozesse zu
- diesem Benutzer gehören und dieser Benutzer umso privilegierter
+ nobody benutzen, desto mehr Dateien und Prozesse
+ diesem Benutzer gehören und dieser Benutzer damit umso privilegierter
wird.Benutzer-AccountsAccountsBenutzer-AccountsBenutzer-Account sind das primäre Mittel des Zugriffs für
echte Menschen auf das System und isolieren Benutzer und Umgebung,
- schützen die Benutzer davor das System oder Daten anderer Benutzer
+ schützen die Benutzer davor, das System oder Daten anderer Benutzer
zu beschädigen und erlauben Benutzern ihre Umgebung selbst
einzurichten, ohne das sich dies auf andere auswirkt.Jede Person, die auf Ihr System zugreift, sollte ihren eigenen
Account besitzen. Das erlaubt Ihnen herauszufinden, wer was macht
und hält Leute davon ab, die Einstellungen der anderen zu
verändern oder Mails zu lesen, die nicht für sie bestimmt
waren.
- Jeder Benutzer kann seine eigene Umgebung einstellen, um sie
- der Benutzung auf dem System anzupassen: Alternative Shells, Editoren,
- Tastaturbelegungen und Sprache.
+ Jeder Benutzer kann sich eine eigene Umgebung mit alternativen
+ Shells, Editoren, Tastaturbelegungen und Sprachen einrichten.Accounts verändernAccountsverändernUnter Unix gibt es verschiedene Kommandos, um Accounts zu
verändern. Die gebräuchlichsten Kommandos sind unten,
gefolgt von einer detaillierten Beschreibung, zusammengefasst.KommandoZusammenfassungadduserDas empfohlene Werkzeug, um neue Accounts zu
erstellen.rmuserDas empfohlene Werkzeug, um Accounts zu
löschen.chpassEin flexibles Werkzeug, um Informationen in der
Account-Datenbank zu verändern.passwdEin einfaches Werkzeug, um Passwörter von Accounts
zu ändern.pwEin mächtiges und flexibles Werkzeug um alle
Informationen über Accounts zu ändern.adduserAccountserstellenadduser/usr/share/skeladduser ist ein einfaches Programm
um neue Benutzer hinzuzufügen. Es erstellt
passwd und group
Einträge für den
Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar
- vorgegebene dotfiles aus /usr/share/skel und kann
+ vorgegebene Dotfiles aus /usr/share/skel und kann
optional dem Benutzer eine ,,Willkommen``-Nachricht zuschicken.Um die anfängliche Konfigurationsdatei zu erstellen,
benutzen Sie: adduser -s -config_create.
Das bringt adduser
dazu, weniger Fragen und Fehlermeldungen auszugeben.
Wir benutzen später, wenn wir die
Voreinstellungen ändern wollen.
Zunächst konfigurieren wir Voreinstellungen von
adduser und erstellen unseren ersten
Benutzer-Account, da es böse und unangenehm ist,
root für normale Aufgaben zu verwenden.adduser konfigurieren&prompt.root; adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
&prompt.root;Zusammengefasst haben wir die vorgegebene Shell in
zsh (eine zusätzliche Shell aus
der Ports-Sammlung) geändert und das Senden einer
,,Willkommen``-Nachricht an neue Benutzer abgeschaltet.
Danach haben wir die Konfiguration abgespeichert und anschließend
einen Account für jru eingerichtet
und sichergestellt, dass jru in der
Gruppe wheel ist, so dass Sie mit
su zu root wechseln
kann.Wenn Sie das Passwort eingeben, werden weder Passwort noch
Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort nicht
zweimal falsch eingeben.Benutzen Sie ab jetzt adduser ohne Argumente,
dann müssen Sie nicht jedes mal die Vorgaben neu einstellen.
Wenn das Programm Sie fragt, ob Sie die Vorgaben ändern wollen,
verlassen und starten Sie es erneut mit der
Option.rmuserrmuserAccountslöschenBenutzen Sie rmuser, um einen Account
vollständig aus dem System zu entfernen.
rmuser führt die folgenden Schritte
durch:Entfernt den &man.crontab.1; Eintrag des Benutzers (wenn dieser
existiert).Entfernt alle &man.at.1; jobs, die dem Benutzer gehören.
Schließt alle Prozesse des Benutzers.Entfernt den Benutzer aus der lokalen Passwort-Datei des
Systems.
- Entfernt das home Verzeichnis des Benutzers (falls es dem
+ Entfernt das Heimatverzeichnis des Benutzers (falls es dem
Benutzer gehört).
- Entfernt die eingegangen mails, die dem Benutzer gehören,
- aus /var/mail.
+ Entfernt eingegange E-Mails des Benutzers
+ aus /var/mail.Entfernt alle Dateien des Benutzers aus temporären
Dateispeicherbereichen wie /tmp.Entfernt den Loginnamen von allen Gruppen, zu denen er
gehört, aus /etc/group.
Wenn eine Gruppe leer wird und der Gruppenname mit dem
Loginnamen identisch ist, wird die Gruppe entfernt; das
ergänzt sich mit den einzelnen Benutzer-Gruppen, die von
&man.adduser.8; für jeden neuen Benutzer erstellt werden.
rmuser kann nicht dafür benutzt
werden Superuser-Accounts zu entfernen, da dies nahezu immer ein
Zeichen für eine massive Verwüstung ist.Als Vorgabe wird ein interaktiver Modus benutzt, der
sicherzustellen versucht, dass Sie wissen, was Sie tun.Interaktives Löschen von Account mit
rmuser&prompt.root; rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpasschpass ändert Informationen der
- Benutzerdatenbank wie Passwörter, Shells und personelle
+ Benutzerdatenbank wie Passwörter, Shells und persönliche
Informationen.
- Nur Systemadministratoren, als Superuser, können die
+ Nur Systemadministratoren, mit Superuser-Rechten, können die
Informationen und Passwörter der anderen Benutzer mit
chpass verändern.Werden keine Optionen neben dem optionalen Loginnamen
angegeben, zeigt chpass einen Editor
mit Account-Informationen an und aktualisiert die
Account-Datenbank, wenn dieser Editor beendet wird.Interaktives chpass des Superusers#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Der normale Benutzer kann nur einen kleinen Teil dieser
- Informationen verändern und natürlich nur für sich
- selbst.
+ Informationen verändern und natürlich nur die Daten des
+ eigenen Accounts.
- Interaktives chpass eines normalen Benutzers
+ Interaktives chpass eines normalen
+ Benutzers#Changing user database information for jru.
Shell: /usr/local/bin/tcsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:chfn und chsh sind
nur Verweise auf chpass, genauso wie
ypchpass, ypchfn und
ypchsh. NIS wird automatisch unterstützt,
deswegen ist es nicht notwendig das yp vor dem
Kommando einzugeben. NIS wird später
besprochen.passwdpasswdAccountsPasswort wechseln
- passwd ist der übliche Weg Ihr
+ passwd ist der übliche Weg, Ihr
eigenes Passwort als Benutzer zu ändern oder das Passwort eines
anderen Benutzers als Superuser.Benutzer müssen ihr ursprüngliches Passwort eingeben,
bevor sie es wechseln, um eine nicht autorisierte Person davon
abzuhalten ihr Passwort zu ändern, wenn der Benutzer gerade
nicht an seinem Gerät ist.Wechseln des Passworts&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done
&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneAls Superuser das Passwort eines anderen Accounts
verändern&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneWie bei chpass ist yppasswd
nur ein Verweis auf passwd. NIS wird von
jedem dieser Kommandos unterstützt.pwpwpw ist ein Kommandozeilenprogramm, mit
dem man Accounts und Gruppen erstellen, entfernen, verändern
und anzeigen kann. Dieses Kommando dient als Schnittstelle zu den
Benutzer- und Gruppendateien des Systems. pw
besitzt eine Reihe mächtiger Kommandozeilenschalter, die es
- für die Benutzung in Shell-Scripts geeignet machen, doch
+ für die Benutzung in Shell-Skripten geeignet machen, doch
finden neue Benutzer die Bedienung des Kommandos komplizierter, als
die der anderen hier vorgestellten Kommandos.Benutzer einschränkenBenutzer einschränkenAccountseinschränkenWenn Sie ein System mit mehreren Benutzern laufen lassen, ist es
- wahrscheinlich, dass Sie nicht allen Benutzern vertrauen das System
- nicht zu beschädigen. FreeBSD bietet dem Systemadministrator
- mehrere Möglichkeiten die System-Ressourcen einzuschränken,
- die ein einzelner Benutzer verwenden kann. Diese Limitierungen sind
- in zwei Kategorien eingeteilt: Festplattenkontingente und andere
- Ressourcenbeschränkungen.
+ wahrscheinlich, dass Sie nicht allen Benutzern soweit vertrauen,
+ dass sie das System nicht beschädigen. FreeBSD bietet dem
+ Systemadministrator mehrere Möglichkeiten die System-Ressourcen
+ einzuschränken, die ein einzelner Benutzer verwenden kann.
+ Diese Limitierungen sind in zwei Kategorien eingeteilt:
+ Festplattenkontingente und andere Ressourcenbeschränkungen.
QuotasBenutzer einschränkenQuotasFestplatten QuotasFestplatten-Kontingente sind ein Weg für den
Systemadministrator dem Dateisystem mitzuteilen, wieviel Speicher
ein Benutzer verwenden darf. Mit ihrer Hilfe kann man auch die
Größe des von einem Benutzer verwendeten Platzes
- überprüfen, ohne jedes mal neu berechnen zu müssen.
+ überprüfen, ohne diesen jedes mal neu berechnen zu müssen.
Kontingente werden in diskutiert./etc/login.confDie Login-Klassen werden in /etc/login.conf
definiert. Auf die präzisen Semantiken gehen wir hier nicht
weiter ein, sie können jedoch in &man.login.conf.5;
nachgelesen werden. Es ist ausreichend zu sagen, dass jeder
Benutzer einer Login-Klasse zugewiesen wird (standardmäßig
default) und dass jede Login-Klasse mit einem Satz
von Login-Fähigkeiten verbunden ist. Eine Login-Fähigkeit
ist ein Name=Wert
Paar, in dem Name
die Fähigkeit bezeichnet und Wert
ein willkürlicher Text ist, der je nach Name
entsprechend verarbeitet wird. Login-Klassen und
-Fähigkeiten zu definieren ist fast schon selbsterklärend
und wird auch in &man.login.conf.5; beschrieben.Ressourcenbeschränkungen unterscheiden sich von normalen
Login-Fähigkeiten zweifach. Erstens gibt es für jede
Beschränkung ein aktuelles und ein maximales Limit. Das
aktuelle Limit kann vom Benutzer oder einer Anwendung beliebig
bis zum maximalen Limit verändert werden. Letzteres kann
der Benutzer nur heruntersetzen. Zweitens gelten die meisten
Ressourcenbeschränkungen für jeden vom Benutzer
gestarteten Prozess, nicht für den Benutzer selbst.
Beachten Sie jedoch, dass diese Unterschiede durch das spezifische
Einlesen der Limits und nicht durch die Implementation der
Login-Fähigkeiten entstehen (das heisst, sie sind kein
wirklich spezieller Fall der
Login-Fähigkeiten).Hier befinden sich die am häufigsten benutzten
Ressourcenbeschränkungen (der Rest kann zusammen mit den
anderen Login-Fähigkeiten in &man.login.conf.5; gefunden
werden):coredumpsizecoredumpsizeBenutzer einschränkencoredumpsizeDas Limit der Größe einer core-Datei, die
von einem Programm generiert wird, unterliegt aus
offensichtlichen Gründen anderen Limits der
Festplattenbenutzung (zum Beispiel filesize
oder Festplattenkontingenten). Es wird aber trotzdem
oft als weniger harte Methode zur Kontrolle des
Festplattenplatz-Verbrauchs verwendet: Da Benutzer die
core-Dateien nicht selbst erstellen, und sie oft nicht
löschen, kann sie diese Option davor retten, dass
ihnen kein Festplattenspeicher mehr zur Verfügung
steht, sollte ein großes Programm, wie
emacs, abstürzen.cputimecputimeBenutzer einschränkencputimeDie maximale Rechenzeit, die ein Prozess eines Benutzers
verbrauchen darf. Überschreitet der Prozess diesen Wert,
wird er vom Kernel beendet.
Die Rechenzeit wird limitiert,
nicht die prozentuale Prozessorenbenutzung, wie es in
einigen Feldern in &man.top.1; und &man.ps.1; dargestellt
wird. Letzteres war zu der Zeit, als dies hier geschrieben
wurde nicht möglich und würde eher nutzlos sein:
Ein Compiler—ein wahrscheinlich legitimer
Vorgang— kann leicht fast 100% des Prozessors in
Anspruch nehmen.filesizefilesizeBenutzer einschränkenfilesize
- Hiermit lässt sich die maximale grösse einer Datei
+ Hiermit lässt sich die maximale Grösse einer Datei
bestimmen, die der Benutzer besitzen darf. Im Gegensatz zu
Festplattenkontingenten ist diese
Beschränkung nur für jede einzelne Datei gültig
und nicht für den Platz, den alle Dateien eines Benutzers
verwenden.maxprocmaxprocBenutzer einschränkenmaxprocDas ist die maximale Anzahl von Prozessen, die ein
Benutzer starten darf, und beinhaltet sowohl Vordergrund-
als auch Hintergrundprozesse. Natürlich darf dieser
Wert nicht höher sein als das System-Limit, das in
kern.maxproc angegeben ist. Vergessen
Sie auch nicht, dass ein zu kleiner Wert den Benutzer in
seiner Produktivität einschränken könnte;
- es ist oft nützlich mehrfach eingeloggt zu sein, oder
+ es ist oft nützlich, mehrfach eingeloggt zu sein, oder
PipelinesPipeline =
Leitung.
Mit Pipes sind Verbindungen
zwischen zwei Sockets in meistens zwei verschiedenen
Prozessen gemeint.
zu verwenden. Ein paar Aufgaben, wie die Kompilierung eines
- großoen Programms, starten mehrere Prozesse (zum Beispiel
+ großen Programms, starten mehrere Prozesse (zum Beispiel
&man.make.1;, &man.cc.1; und andere).memorylockedmemorylockedBenutzer einschränkenmemorylockedDieses Limit gibt an, wie viel virtueller Speicher von einem
Prozess maximal im Arbeitsspeicher festgesetzt werden kann.
(siehe auch &man.mlock.2;). Ein paar systemkritische Programme,
wie &man.amd.8;, verhindern damit einen Systemzusammenbruch, der
auftreten könnte, wenn sie aus dem Speicher genommen werden.
memoryusememoryuseBenutzer einschränkenmemoryuseBezeichnet den maximalen Speicher, den ein Prozess benutzen
darf und beinhaltet sowohl Arbeitsspeicher-, als auch Swap-
Benutzung. Es ist kein allübergreifendes Limit für
den Speicherverbrauch, aber ein guter Anfang.openfilesopenfilesBenutzer einschränkenopenfilesMit diesem Limit lässt sich die maximale Anzahl
der von einem Prozess des Benutzers geöffneten Dateien
festlegen. In FreeBSD werden Dateien auch verwendet, um Sockets
und IPC-Kanäle
IPC steht für
Interprocess Communication.
darzustellen. Setzen Sie es deshalb nicht zu niedrig. Das
System-Limit ist im kern.maxfilessysctl definiert.sbsizesbsizeBenutzer einschränkensbsizeDieses Limit beschränkt den Netzwerk-Speicher, und damit
die mbufs, die ein Benutzer verbrauchen darf. Es stammt aus einer
Antwort auf einen DoS-Angriff, bei dem viele Netzwerk-Sockets
geöffnet wurden, kann aber generell dazu benutzt werden
Netzwerk-Verbindungen zu beschränken.stacksizeDas ist die maximale Größe, auf die der Stack
eines Prozesses heranwachsen darf. Das allein ist natürlich
- nicht genug um den Speicher zu beschränken, den ein Programm
+ nicht genug, um den Speicher zu beschränken, den ein Programm
verwenden darf. Es sollte deshalb in Verbindung mit anderen
Limits gesetzt werden.Beim Setzen von Ressourcenbeschränkungen sind noch andere
Dinge zu beachten. Nachfolgend ein paar generelle Tipps, Empfehlungen
und verschiedene Kommentare.Von /etc/rc beim Hochfahren des Systems
gestartete Prozesse werden der daemon
Login-Klasse zugewiesen.Obwohl das mitgelieferte /etc/login.conf
eine Quelle von vernünftigen Limits darstellt, können nur
Sie, der Administrator, wissen, was für Ihr System angebracht
ist. Ein Limit zu hoch anzusetzen könnte Ihr System für
Missbrauch öffnen, und ein zu niedriges Limit der
Produktivität einen Riegel vorschieben.Benutzer des X-Window Systems (X11) sollten wahrscheinlich
mehr Ressourcen zugeteilt bekommen als andere Benutzer. X11
beansprucht selbst schon eine Menge Ressourcen, verleitet die
Benutzer aber auch, mehrere Programme gleichzeitig laufen zu
lassen.Bedenken Sie, dass viele Limits für einzelne Prozesse
gelten und nicht für den Benutzer selbst. Setzt man
zum Beispiel openfiles auf 50, kann jeder
Prozess des Benutzers bis zu 50 Dateien öffnen. Dadurch
ist die maximale Anzahl von Dateien, die von einem Benutzer
geöffnet werden können, openfiles
mal maxproc. Das gilt auch für den
Speicherverbrauch.Für weitere Informationen über
Ressourcenbeschränkungen, Login-Klassen und -Fähigkeiten
- generell, sehen Sie sich die entsprechenden Manual Pages an:
+ generell, sehen Sie sich die entsprechenden Manualpages an:
&man.cap.mkdb.1;, &man.getrlimit.2; und &man.login.conf.5;.Benutzer personalisierenDie Lokalisierung ist eine Umgebung, die vom Systemadministrator
oder Benutzer eingerichtet wird, um verschiedene Sprachen,
Zeichensätze, Datum- und Zeitstandards und so weiter
unterzubringen. Dies wird im Kapitel über die
Lokalisierung
besprochen.GruppenGruppen/etc/groupsAccountsGruppenEine Gruppe ist einfach eine Zusammenfassung von Accounts.
Gruppen werden durch den Gruppennamen und die GID (group ID)
identifiziert. Der Kernel von FreeBSD (und den meisten anderen Unix
Systemen) entscheided anhand der UID und der Gruppenmitgliedschaft
eines Prozesses, ob er dem Prozess etwas erlaubt oder nicht. Im
Unterschied zur UID kann ein Prozess zu einer Reihe von Gruppen
- gehören. Wenn jemand von der group ID eines
+ gehören. Wenn jemand von der GID eines
Benutzers oder Prozesses spricht, meint er damit meistens die erste
Gruppe der Gruppenliste.Die Zuordnung von Gruppennamen zur GID steht in
/etc/group, einer Textdatei mit vier durch
Doppelpunkte getrennten Feldern. Im ersten Feld steht der
Gruppenname, das zweite enthält ein verschlüsseltes
Passwort, das dritte gibt die GID an und das vierte besteht aus einer
Komma separierten Liste der Mitglieder der Gruppe. Diese Datei kann
einfach editiert werden (natürlich nur, wenn Sie dabei keine
Syntaxfehler machen). Eine ausführliche Beschreibung der Syntax
dieser Datei finden Sie in &man.group.5;.Wenn Sie /etc/group nicht händisch
editieren möchten, können Sie &man.pw.8; zum Editieren
benutzen. Das folgende Beispiel zeigt das Hinzufügen einer
Gruppe mit dem Namen teamtwo:Hinzufügen einer Gruppe mit &man.pw.8;&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Die Zahl 1100 ist die GID der Gruppe
teamtwo. Momentan hat
teamtwo noch keine Mitglieder und ist daher
ziemlich nutzlos. Um das zu ändern, nehmen wir nun
jru in teamtwo
auf.Ein Gruppenmitglied mit &man.pw.8; hinzufügen&prompt.root; pw groupmod teamtwojru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruAls Argument von geben Sie eine Komma
separierte Liste von Mitgliedern an, die Sie in die Gruppe aufnehmen
möchten. Aus den vorherigen Abschnitten ist bekannt, dass die
Passwort-Datei ebenfalls eine Gruppe für jeden Benutzer
enthält. Das System teilt dem Benutzer automatisch eine Gruppe
zu, die aber vom groupshow Kommando von &man.pw.8;
nicht angezeigt wird. Diese Information wird allerdings von
&man.id.1; und ähnlichen Werkzeugen angezeigt. Das heißt,
dass &man.pw.8; nur /etc/group manipuliert,
es wird nicht versuchen, zusätzliche Informationen aus
/etc/passwd zu lesen.Mit &man.id.1; die Gruppenzugehörigkeit bestimmen&prompt.user; idjru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Wie Sie sehen, ist jru Mitglied von
jru und teamtwo.Weitere Informationen entnehmen Sie bitte &man.pw.8;.