Fix issues found by igor(1)

This commit is contained in:
Bjoern Heidotting 2016-05-01 19:07:41 +00:00
parent 573e450e3e
commit e16b3236a8
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48759

View file

@ -7,19 +7,44 @@
$FreeBSDde: de-docproj/books/handbook/jails/chapter.xml,v 1.23 2011/05/25 20:42:25 jkois Exp $
basiert auf: r48693
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="jails">
<info><title>Jails</title>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="jails">
<info>
<title>Jails</title>
<authorgroup>
<author><personname><firstname>Matteo</firstname><surname>Riondato</surname></personname><contrib>Beigetragen von </contrib></author>
<author>
<personname>
<firstname>Matteo</firstname>
<surname>Riondato</surname>
</personname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
<authorgroup>
<author><personname><firstname>Oliver</firstname><surname>Peter</surname></personname><contrib>Übersetzt von </contrib></author>
<author><personname><firstname>Dirk</firstname><surname>Arlt</surname></personname></author>
<author><personname><firstname>Johann</firstname><surname>Kois</surname></personname></author>
<author>
<personname>
<firstname>Oliver</firstname>
<surname>Peter</surname>
</personname>
<contrib>Übersetzt von </contrib>
</author>
<author>
<personname>
<firstname>Dirk</firstname>
<surname>Arlt</surname>
</personname>
</author>
<author>
<personname>
<firstname>Johann</firstname>
<surname>Kois</surname>
</personname>
</author>
</authorgroup>
</info>
<indexterm><primary>jails</primary></indexterm>
<sect1 xml:id="jails-synopsis">
@ -92,18 +117,17 @@
</itemizedlist>
<para>Jails haben einen eigenen Satz von Benutzern und ihren
eigenen <systemitem
class="username">root</systemitem>-Konto. Die Rechte
dieser Benutzer sind nur auf die Jail-Umgebung beschränkt.
Der Benutzer <systemitem class="username">root</systemitem>
der Jail-Umgebung ist nicht dazu berechtigt, kritische
Operationen am System außerhalb der angebundenen
Jail-Umgebung durchzuführen.</para>
eigenen <systemitem class="username">root</systemitem>-Konto.
Die Rechte dieser Benutzer sind nur auf die Jail-Umgebung
beschränkt. Der Benutzer <systemitem
class="username">root</systemitem> der Jail-Umgebung ist nicht
dazu berechtigt, kritische Operationen am System außerhalb der
angebundenen Jail-Umgebung durchzuführen.</para>
<para>Dieses Kapitel bietet einen Überblick über die
Terminologie und die Kommandos zur Verwaltung von &os; Jails.
Jails sind ein sehr mächtiges Werkzeug für Administratoren
und fortgeschrittene Anwender.</para>
<para>Dieses Kapitel bietet einen Überblick über die Terminologie
und die Kommandos zur Verwaltung von &os; Jails. Jails sind ein
sehr mächtiges Werkzeug für Administratoren und fortgeschrittene
Anwender.</para>
<!--
<important>
@ -159,19 +183,18 @@
<sect1 xml:id="jails-terms">
<title>Jails - Definitionen</title>
<para>Um die für den Einsatz von Jails benötigten
FreeBSD-Funktionen, deren Interna sowie die Art und Weise, mit der
diese mit anderen Teilen des Betriebssystems interagieren, zu
erläutern, werden in diesem Kapitel folgende Definitionen
verwendet:</para>
<para>Um die für den Einsatz von Jails benötigten os;-Funktionen,
deren Interna sowie die Art und Weise, mit der diese mit anderen
Teilen des Betriebssystems interagieren, zu erläutern, werden in
diesem Kapitel folgende Definitionen verwendet:</para>
<variablelist>
<varlistentry>
<term>&man.chroot.8; (-Befehl)</term>
<listitem>
<para>Ein Werkzeug, das den &os;-Systemaufruf &man.chroot.2;
verwendet, um das Wurzelverzeichnis eines Prozesses und all
seiner Nachkömmlinge zu ändern.</para>
verwendet, um das Wurzelverzeichnis eines Prozesses und
all seiner Nachkömmlinge zu ändern.</para>
</listitem>
</varlistentry>
@ -247,8 +270,9 @@
<screen>&prompt.root; <userinput>sh</userinput>
&prompt.root; <userinput>export DESTDIR=<replaceable>/hier/ist/die/jail</replaceable></userinput></screen>
<para>Hängen Sie das Installationsmedium ein, wenn Sie von einem
Abbild installieren:</para>
<para>Hängen Sie das Installationsmedium wie in &man.mdconfig.8;
beschrieben ein, wenn Sie von einem
ISO-Abbild installieren:</para>
<screen>&prompt.root; <userinput>mount -t cd9660 /dev/`mdonfig -f cdimage.iso` /mnt</userinput></screen>
@ -296,9 +320,10 @@
<callout arearefs="jailbuildworld">
<para>Wenn Sie bereits ihre Systemanwendungen mittels
<command>make world</command> oder <command>make buildworld</command>
neu erstellt haben, können Sie diesen Schritt überspringen
und die Systemanwendungen in die neue Jail installieren.</para>
<command>make world</command> oder
<command>make buildworld</command> neu erstellt haben,
können Sie diesen Schritt überspringen und die
Systemanwendungen in die neue Jail installieren.</para>
</callout>
<callout arearefs="jailinstallworld">
@ -309,12 +334,12 @@
<callout arearefs="jaildistrib">
<para>Der <buildtarget>distribution</buildtarget>-Befehl
lässt <application>make</application> alle
benötigten Konfigurationsdateien installieren, es
werden also alle installierbaren Dateien aus
<filename>/usr/src/etc/</filename> in
das Verzeichnis <filename>/etc</filename>
der Jail installiert (also nach <filename>$D/etc/</filename>).</para>
lässt <application>make</application> alle benötigten
Konfigurationsdateien installieren, es werden also alle
installierbaren Dateien aus
<filename>/usr/src/etc/</filename> in das Verzeichnis
<filename>/etc</filename> der Jail installiert (also nach
<filename>$D/etc/</filename>).</para>
</callout>
<callout arearefs="jaildevfs">
@ -331,19 +356,19 @@
</callout>
</calloutlist>
<para>Ist eine Jail einmal erst erstellt, kann sie durch
&man.jail.8; gestartet werden. &man.jail.8; benötigt
zwingend mindestens vier Argumente, die im Abschnitt <xref
linkend="jails-synopsis"/> des Handbuchs beschrieben sind. Weitere
Argumente sind möglich, um beispielsweise die Jail mit den
Berechtigungen eines bestimmten Benutzers laufen zu lassen. Das
Argument <option><replaceable>command</replaceable></option>
hängt vom Typ der Jail ab; für ein <emphasis>virtuelles
System</emphasis> ist <filename>/etc/rc</filename> eine gute
Wahl, da dies dem Startvorgang eines echten &os;-Systems
entspricht. Bei einer <emphasis>Service</emphasis>-Jail
hängt dieses von der Art des Dienstes ab, der in der Jail
laufen soll.</para>
<para>Ist die Jail erst einmal erstellt, kann sie durch
&man.jail.8; gestartet werden. &man.jail.8; benötigt zwingend
mindestens vier Argumente, die in <xref
linkend="jails-synopsis"/> des Handbuchs beschrieben sind.
Weitere Argumente sind möglich, um beispielsweise die Jail mit
den Berechtigungen eines bestimmten Benutzers laufen zu lassen.
Das Argument <option><replaceable>command</replaceable></option>
hängt vom Typ der Jail ab; für ein
<emphasis>virtuelles System</emphasis> ist
<filename>/etc/rc</filename> eine gute Wahl, da dies dem
Startvorgang eines echten &os;-Systems entspricht. Bei einer
<emphasis>Service</emphasis>-Jail hängt dieses von der Art des
Dienstes ab, der in der Jail laufen soll.</para>
<para>Jails werden häufig mit dem Betriebssystem gestartet,
da der <filename>rc</filename>-Mechanismus von &os; dafür
@ -437,7 +462,8 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
</itemizedlist>
<sect2 xml:id="jails-tuning-utilities">
<title>Systemwerkzeuge zur Feinabstimmung von Jails in &os;</title>
<title>Systemwerkzeuge zur Feinabstimmung von Jails in
&os;</title>
<para>Die Feinabstimmung einer Jail-Konfiguration erfolgt zum
Großteil durch das Setzen von &man.sysctl.8;-Variablen.
@ -489,16 +515,17 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
<para>Diese Variablen können vom Administrator des
<emphasis>Host-Systems</emphasis> genutzt werden, um
Beschränkungen hinzuzufügen oder aufzuheben, die dem
Benutzer <systemitem class="username">root</systemitem> als Vorgabe auferlegt sind.
Beachten Sie, dass es einige Beschränkungen gibt, die nicht
verändert werden können. Der Benutzer
<systemitem class="username">root</systemitem> darf innheralb der &man.jail.8; keine
Dateisysteme mounten und unmounten. Ebenso ist es ihm untersagt,
das &man.devfs.8;-Regelwerk zu laden oder zu entladen. Er darf
Benutzer <systemitem class="username">root</systemitem> als
Vorgabe auferlegt sind. Beachten Sie, dass es einige
Beschränkungen gibt, die nicht verändert werden können. Der
Benutzer <systemitem class="username">root</systemitem> darf
innheralb der &man.jail.8; keine Dateisysteme mounten und
unmounten. Ebenso ist es ihm untersagt, das
&man.devfs.8;-Regelwerk zu laden oder zu entladen. Er darf
weder Firewallregeln setzen, noch administrative Aufgaben
erledigen, die Modifikationen am Kernel selbst erfordern
(wie bespielsweise das Setzen des <varname>Securelevels</varname>
des Kernel.</para>
(wie bespielsweise das Setzen des
<varname>Securelevels</varname> des Kernel).</para>
<para>Das &os;-Basissystem enthält einen Basissatz an
Werkzeugen, um Informationen über aktive Jails zu erlangen
@ -519,11 +546,11 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
Jail, das Starten eines Befehls aus dem gastgebenen
System heraus oder das Ausführen einer administrativen
Aufgabe innerhalb der Jail selbst. Dies ist insbesondere
dann nützlich, wenn der Benutzer
<systemitem class="username">root</systemitem> die Jail sauber herunterfahren
möchte. &man.jexec.8; kann auch zum Starten einer
Shell innerhalb der Jail genutzt werden, um adminstrative
Aufgaben durchzuführen:</para>
dann nützlich, wenn der Benutzer <systemitem
class="username">root</systemitem> die Jail sauber
herunterfahren möchte. &man.jexec.8; kann auch zum
Starten einer Shell innerhalb der Jail genutzt werden, um
adminstrative Aufgaben durchzuführen:</para>
<screen>&prompt.root; <userinput>jexec <replaceable>1</replaceable> tcsh</userinput></screen>
</listitem>
@ -568,7 +595,13 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
<title>Mehrere Jails aktualisieren</title>
<authorgroup>
<author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><contrib>Beigetragen von </contrib></author>
<author>
<personname>
<firstname>Daniel</firstname>
<surname>Gerzo</surname>
</personname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup>
<authorgroup>
<author>
@ -609,12 +642,11 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
<note>
<para>Es existieren auch einfachere Lösungen, wie zum
Beispiel <application>ezjail</application>, das
einfachere Methoden zur Administration von Jails verwendet
und daher nicht so anspruchsvoll ist, wie der hier
beschriebene Aufbau. <application>ezjail</application>
wird in <xref linkend="jails-ezjail"/> ausführlich
behandelt.</para>
Beispiel <application>ezjail</application>, das einfachere
Methoden zur Administration von Jails verwendet und daher
nicht so anspruchsvoll ist, wie der hier beschriebene Aufbau.
<application>ezjail</application> wird in <xref
linkend="jails-ezjail"/> ausführlich behandelt.</para>
</note>
<para>Die Ziele des in diesem Abschnitt beschriebenen Aufbaus
@ -622,15 +654,14 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
<itemizedlist>
<listitem>
<para>Das Erstellen einer einfachen und gut
verständlichen Jail Struktur, die es nicht
erfordert für jede Jail ein vollständiges installworld
laufen lassen zu müssen.</para>
<para>Das Erstellen einer einfachen und gut verständlichen
Jail Struktur, die es nicht erfordert für jede Jail ein
vollständiges installworld laufen lassen zu müssen.</para>
</listitem>
<listitem>
<para>Es einfach zu machen, neue Jails zu erstellen oder
alte zu entfernen.</para>
<para>Es einfach zu machen, neue Jails zu erstellen oder alte
zu entfernen.</para>
</listitem>
<listitem>
@ -671,14 +702,15 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
</listitem>
<listitem>
<para>Jede Jail wird unterhalb des <filename>/home/j</filename>-Verzeichnisses
<para>Jede Jail wird unterhalb des
<filename>/home/j</filename>-Verzeichnisses
gemountet.</para>
</listitem>
<listitem>
<para><filename>/home/j/mroot</filename>
ist die Vorlage für jede Jail und die nur lesbare
Partition für alle Jails.</para>
<para><filename>/home/j/mroot</filename> ist die Vorlage für
jede Jail und die nur lesbare Partition für alle
Jails.</para>
</listitem>
<listitem>
@ -687,7 +719,8 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
</listitem>
<listitem>
<para>Jede Jail bekommt ein <filename>/s</filename>-Verzeichnis, das zum
<para>Jede Jail bekommt ein
<filename>/s</filename>-Verzeichnis, das zum
read/write-Teilbereich des Systems verlinkt wird.</para>
</listitem>
@ -719,10 +752,9 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
<procedure>
<step>
<para>Zuerst erstellen wir eine Verzeichnissstruktur
für das read-only-Dateisystem, das die
&os;-Binärdateien für die Jails enthalten
wird. Anschließend wechseln wir in den
<para>Zuerst erstellen wir eine Verzeichnissstruktur für das
read-only-Dateisystem, das die &os;-Binärdateien für die
Jails enthalten wird. Anschließend wechseln wir in den
&os;-Quellcodebaum und installieren das
read-only-Dateisystem in die (Vorlage-)Jail.</para>
@ -732,10 +764,11 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
</step>
<step>
<para>Als nächstes bereiten wir die Ports-Sammlung
fü die Jails vor und kopieren den &os; Quellcodebaum
<para>Als nächstes bereiten wir die Ports-Sammlung für die
Jails vor und kopieren den &os; Quellcodebaum
in die Jail, da dieser für
<application>mergemaster</application> benötigt wird:</para>
<application>mergemaster</application> benötigt
wird:</para>
<screen>&prompt.root; <userinput>cd /home/j/mroot</userinput>
&prompt.root; <userinput>mkdir usr/ports</userinput>
@ -828,13 +861,12 @@ jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in
/home/js/mail /home/j/mail/s nullfs rw 0 0
/home/js/www /home/j/www/s nullfs rw 0 0</programlisting>
<para>Um zu verhindern, dass
<application>fsck</application> die
<application>nullfs</application>-Mounts während des
<para>Um zu verhindern, dass <application>fsck</application>
die <application>nullfs</application>-Mounts während des
Bootens überprüft oder dass
<application>dump</application> die Mounts sichert,
müssen die letzten beiden Spalten auf
<literal>0</literal> gesetzt werden.</para>
<application>dump</application> die Mounts sichert, müssen
die letzten beiden Spalten auf <literal>0</literal>
gesetzt werden.</para>
</step>
<step>
@ -865,9 +897,9 @@ jail_www_devfs_enable="YES"</programlisting>
<filename>/usr/home</filename> lautet. Die Variable
<varname>jail_<replaceable>name</replaceable>_rootdir</varname>
darf im Pfad aber
<emphasis>keinen symbolischen Link</emphasis>
enthalten, weil das Jail ansonsten nicht gestartet
werden kann.</para>
<emphasis>keinen symbolischen Link</emphasis> enthalten,
weil die Jail ansonsten nicht gestartet werden
kann.</para>
</step>
<step>
@ -895,7 +927,7 @@ jail_www_devfs_enable="YES"</programlisting>
<step>
<para>An dieser Stelle werden die Jails erstellt und
fü den Betrieb vorbereitet. Mounten Sie zuerst die
r den Betrieb vorbereitet. Mounten Sie zuerst die
notwendigen Dateisysteme für jede Jail. Danach starten
Sie die Jails:</para>
@ -915,12 +947,12 @@ jail_www_devfs_enable="YES"</programlisting>
2 192.168.3.18 mail.example.org /home/j/mail
1 62.123.43.14 www.example.org /home/j/www</screen>
<para>An diesem Punkt sollte es möglich sein, sich an
jeder Jail anzumelden, Benutzer anzulegen und Dienste zu
konfigurieren. Die Spalte <literal>JID</literal> gibt die
Jail-Identifikationsnummer jeder laufenden Jail an. Nutzen Sie
den folgenden Befehl, um administrative Aufgaben in der Jail
mit der <literal>JID</literal> <literal>3</literal>
<para>An diesem Punkt sollte es möglich sein, sich an jeder Jail
anzumelden, Benutzer anzulegen und Dienste zu konfigurieren.
Die Spalte <literal>JID</literal> gibt die
Jail-Identifikationsnummer jeder laufenden Jail an. Nutzen
Sie den folgenden Befehl, um administrative Aufgaben in der
Jail mit der <literal>JID</literal> <literal>3</literal>
durchzuführen:</para>
<screen>&prompt.root; <userinput>jexec 3 tcsh</userinput></screen>
@ -997,9 +1029,9 @@ jail_www_devfs_enable="YES"</programlisting>
ersetzen Sie es durch das neue Dateisystem. Das alte
Dateisystem kann so als Backup dienen, falls etwas schief
geht. Die Namensgebung entspricht hier derjenigen bei der
Erstellung eines neuen read-only-Dateisystems. Verschieben
Sie die originale &os; Ports-Sammlung in das neue
Dateisystem, um Platz und Inodes zu sparen:</para>
Erstellung eines neuen read-only-Dateisystems.
Verschieben Sie die originale &os; Ports-Sammlung in das
neue Dateisystem, um Platz und Inodes zu sparen:</para>
<screen>&prompt.root; <userinput>cd /home/j</userinput>
&prompt.root; <userinput>mv mroot mroot.20060601</userinput>