Fix issues found by igor(1)
This commit is contained in:
parent
573e450e3e
commit
e16b3236a8
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48759
1 changed files with 421 additions and 389 deletions
|
@ -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
|
||||
fü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>
|
||||
|
|
Loading…
Reference in a new issue