.\" t .\" Copyright © 2005-2010 Roger Leigh .\" Copyright © 2006 Andreas Bombe .\" .\" schroot is free software: you can redistribute it and/or modify it .\" under the terms of the GNU General Public License as published by .\" the Free Software Foundation, either version 3 of the License, or .\" (at your option) any later version. .\" .\" schroot is distributed in the hope that it will be useful, but .\" WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .ds RELEASE_DATE 05 May 2014 .ds VERSION 1.6.10 .ds SCHROOT_LIBEXEC_DIR /usr/lib/x86_64-linux-gnu/schroot .ds SCHROOT_MOUNT_DIR /var/run/schroot/mount .ds SCHROOT_SESSION_DIR /var/lib/schroot/session .ds SCHROOT_FILE_UNPACK_DIR /var/lib/schroot/unpack .ds SCHROOT_OVERLAY_DIR /var/lib/schroot/union/overlay .ds SCHROOT_UNDERLAY_DIR /var/lib/schroot/union/underlay .ds SCHROOT_SYSCONF_DIR /etc/schroot .ds SCHROOT_CONF /etc/schroot/schroot.conf .ds SCHROOT_CONF_CHROOT_D /etc/schroot/chroot.d .ds SCHROOT_CONF_SETUP_D /etc/schroot/setup.d .ds SCHROOT_DATA_DIR /usr/share/schroot .ds SCHROOT_SETUP_DATA_DIR /usr/share/schroot/setup .ds SCHROOT_LOCALE_DIR /usr/share/locale .ds PACKAGE_LOCALE_DIR /usr/share/locale .ds PROGRAM schroot .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SCHROOT 1 \*[RELEASE_DATE] "Version \*[VERSION]" Debian\-Sbuild .SH BEZEICHNUNG schroot \- eine Chroot\-Umgebung sicher betreten .SH ÜBERSICHT \fBschroot\fP [\fB\-h\fP\[or]\fB\-\-help\fP \[or] \fB\-V\fP\[or]\fB\-\-version\fP \[or] \fB\-l\fP\[or]\fB\-\-list\fP \[or] \fB\-i\fP\[or]\fB\-\-info\fP \[or] \fB\-\-config\fP \[or] \fB\-\-location\fP \[or] \fB\-\-automatic\-session\fP \[or] \fB\-b\fP\[or]\fB\-\-begin\-session\fP \[or] \fB\-\-recover\-session\fP \[or] \fB\-r\fP\[or]\fB\-\-run\-session\fP \[or] \fB\-e\fP\[or]\fB\-\-end\-session\fP] [\fB\-f\fP\[or]\fB\-\-force\fP] [\fB\-n \fP\fISitzungsname\fP\[or]\fB\-\-session\-name=\fP\fISitzungsname\fP] [\fB\-d \fP\fIVerzeichnis\fP\[or]\fB\-\-directory=\fP\fIVerzeichnis\fP] [\fB\-u \fP\fIBenutzer\fP\[or]\fB\-\-user=\fP\fIBenutzer\fP] [\fB\-p\fP\[or]\fB\-\-preserve\-environment\fP] [\fB\-s \fP\fIShell\fP\[or]\fB\-\-shell=\fP\fIShell\fP] [\fB\-q\fP\[or]\fB\-\-quiet\fP \[or] \fB\-v\fP\[or]\fB\-\-verbose\fP] [\fB\-c \fP\fIChroot\fP\[or]\fB\-\-chroot=\fP\fIChroot\fP \[or] [\fB\-\-all\fP \[or] \fB\-\-all\-chroots\fP \[or] \fB\-\-all\-source\-chroots\fP \[or] \fB\-\-all\-sessions\fP] [\fB\-\-exclude\-aliases\fP]] [\fB\-o\fP\[or]\fB\-\-option=\fP\fISchlüssel=Wert\fP] [\fB\-\-\fP] [\fBBEFEHL\fP [ \fBARG1\fP [ \fBARG2\fP [ \fBARGn\fP]]]] .SH BESCHREIBUNG \fBschroot\fP ermöglicht dem Benutzer einen Befehl oder eine Login\-Shell in einer Chroot\-Umgebung auszuführen. Falls kein Befehl angegeben wurde, wird eine Login\-Shell im aktuellen Arbeitsverzeichnis des Benutzers innerhalb der Chroot gestartet. .PP Der Befehl ist ein Programm plus so viele optionale Argumente wie benötigt. Jedes Argument kann separat in Anführungszeichen gesetzt werden. .PP Das Verzeichnis, in dem der Befehl oder die Login\-Shell ausgeführt wird, hängt vom Kontext ab. Eine vollständige Beschreibung finden Sie nachfolgend unter der Option \fI\-\-directory\fP. .PP Jede Chroot\-Benutzung wird in den Systemprotokollen vermerkt. In einigen Situationen kann es nötig sein, dass sich der Benutzer selbst authentifizieren muss; lesen Sie dazu den nachfolgenden Abschnitt »\fIAuthentifizierung\fP«. .PP Falls keine Chroot angegeben wurde, wird als Ausweichmöglichkeit der Name oder Alias »default« benutzt. Dies ist gleichbedeutend mit »\-\-chroot=default«. .SH ÜBERBLICK Es ist öfters nötig, Programme in einer virtualisierten Umgebung auszuführen, als direkt auf dem Wirtsystem. Anders als andere Virtualisierungssysteme wie \fBkvm\fP oder \fBXen\fP virtualisiert Schroot nicht das ganze System; es virtualisiert nur das Dateisystem und einige Teile des Dateisystems können immer noch mit dem Wirt gemeinsam benutzt werden. Es ist daher schnell, leichtgewichtig und flexibel. Es virtualisiert jedoch keine anderen Aspekte des Systems wie gemeinsam genutzten Speicher, Netzwerk, Geräte etc. und könnte daher, abhängig von der geplanten Verwendung, weniger sicher sein als andere Systeme. Einige Beispiele existierender Verwendungen von Schroot beinhalten: .IP \[bu] Ausführung eines nicht vertrauenswürdigen Programms in einer Sandbox, so dass es keine Dateien auf dem Wirtsystem beeinträchtigt. Dies kann außerdem benutzt werden, um den Schaden zu begrenzen, den ein kompromittierter Dienst dem Wirt zufügen kann. .IP \[bu] Benutzung einer \fIdefinierten\fP und \fIsauberen\fP Umgebung, um die Reproduzierbarkeit und Integrität einer gegebenen Aufgabe zu garantieren .IP \[bu] Verwendung unterschiedlicher Versionen eines Betriebssystems oder sogar unterschiedlicher Betriebssysteme zusammen, z.B. verschiedener GNU/Linux\-Distributionen .IP \[bu] Ausführen von 32\-Bit\-Programmen mittels einer 32\-Bit\-Chroot auf einem 64\-Bit\-Wirtsystem .IP \[bu] Automatisches Bauen von Debian\-Paketen mittels \fBsbuild\fP(1), das jedes Paket in einem unberührten Chroot\-Schnappschuss baut, wenn LVM\-Schnappschüsse oder Unions verwendet werden. .IP \[bu] Unterstützung mehrerer System\-Images in einer Cluster\-Einrichtung, wobei das Ändern des Basis\-Images zeitintensiv ist und/oder all die von Benutzern benötigten Konfigurationen zu unterstützen schwierig ist: Verschiedene Chroots können all die verschiedenen benötigten Konfigurationen unterstützen und Benutzern des Clusters kann Zugriff auf die von ihnen benötigten Chroots gegeben werden (was Root\-Zugriff für vertrauenswürdige Benutzer zum Verwalten ihrer eigenen Images beinhalten kann). .PP Eine Chroot kann durch Ausführen von \fBchroot\fP(8) direkt durch Root benutzt werden, aber normale Anwender können diesen Befehl nicht verwenden. \fBschroot\fP gibt mit dem gleichen Mechanismus normalen Benutzern Zugriff auf Chroots, aber mit mehreren zusätzlichen Funktionen. Obwohl Schroot genau wie \fBchroot\fP(8) ein Verzeichnis als Chroot benutzt, erfordert es nicht, das es sich dabei um ein normales Verzeichnis im Dateisystem handelt. Obwohl dies vorgegeben ist, kann die Chroot ebenso aus einer Datei, einem Dateisystem einschließlich LVM\- und Btrfs\-Schnappschüsse sowie Loopback\-Mounts bestehen oder aus UnionFS\-Einblendungen zusammengestellt sein. Da es vom Benutzer erweiterbar ist, wird der Gültigkeitsbereich für das Erstellen von Chroots aus verschiedenen Quellen nur durch Ihre Fantasie begrenzt. Schroot führt Rechteprüfungen durch und ermöglicht zusätzlich eine automatisierte Einrichtung der Chroot\-Umgebung, wie das Einhängen zusätzlicher Dateisysteme oder anderer Konfigurationsaufgaben. Diese automatisierte Einrichtung wird durch die Aktion von \fIEinrichtungsskripten\fP erledigt, die zum Durchführen der benötigten Aktionen angepasst und erweitert werden können. Typische Aktionen beinhalten das Einhängen des Home\-Verzeichnisses des Benutzers, das Einrichten des Netzwerkzugangs und von Systemdatenbanken und sogar das Starten von Diensten. Diese können wiederum vollständig durch den Admin angepasst werden. Die Einrichtungsskripte werden für alle Typen von Chroots ausgeführt mit Ausnahme des Typs »plain«, des einfachsten Chroot\-Typs, der gar keine automatisierten Einrichtungsfunktionen bietet. Die Einrichtung von Chroots wird ausführlicher in \fBschroot.conf\fP(5) behandelt. .SH OPTIONEN \fBschroot\fP akzeptiert die folgenden Optionen: .SS Aktionen .TP \fB\-h\fP, \fB\-\-help\fP zeigt eine Zusammenfassung der Hilfe. .TP \fB\-V\fP, \fB\-\-version\fP gibt Versionsinformationen aus. .TP \fB\-l\fP, \fB\-\-list\fP führt alle verfügbaren Chroots auf. .TP \fB\-i\fP, \fB\-\-info\fP gibt detaillierte Informationen über die angegebenen Chroots aus. .TP \fB\-\-config\fP gibt die Konfiguration der angegebenen Chroots aus. Dies ist nützlich, um zu prüfen, ob die gerade benutzte Konfiguration die selbe ist, wie die in der Konfigurationsdatei. Jegliche Kommentare der Originaldatei werden fehlen. .TP \fB\-\-location\fP gibt dem Speicherort (Pfad) der angegebenen Chroots aus. Beachten Sie, dass Chroot\-Typen, die nur innerhalb einer Sitzung benutzt werden können, keinen Speicherort haben werden, bis sie aktiv sind. .SS "Allgemeine Optionen" .TP \fB\-q\fP, \fB\-\-quiet\fP gibt nur wichtige Nachrichten aus. .TP \fB\-v\fP, \fB\-\-verbose\fP gibt alle Nachrichten aus .SS Chroot\-Auswahl .TP \fB\-c\fP, \fB\-\-chroot=\fP\fIChroot\fP gibt eine Chroot oder aktive Sitzung an, die benutzt werden soll. Diese Option kann zur Angabe mehrerer Chroots mehrfach angegeben werden. In diesem Fall sind die Auswirkungen ähnlich \fI\-\-all\fP. Dem Chroot\-Namen kann ein \fINamensraum\fP vorangestellt werden; siehe den nachfolgenden Abschnitt »\fIChroot\-Namensräume\fP«. .TP \fB\-a\fP, \fB\-\-all\fP wählt alle Chroots, Source\-Chroots und aktiven Sitzungen aus. Wenn ein Befehl angegeben wurde, wird der Befehl in allen Chroots, Source\-Chroots und aktiven Sitzungen ausgeführt. Falls \fI\-\-info\fP benutzt wurde, werden Informationen über alle Chroots angezeigt. Diese Option ist bei Verwendung einer Login\-Shell nicht sinnvoll (wird ausgeführt, falls kein Befehl angegeben wurde). Diese Option entspricht »\-\-all\-chroots \-\-all\-source\-chroots \-\-all\-sessions«. .TP \fB\-\-all\-chroots\fP wählt alle Chroots aus; identisch mit \fI\-\-all\fP, außer, dass Source\-Chroots und aktive Sitzungen nicht berücksichtigt werden. .TP \fB\-\-all\-sessions\fP wählt alle aktiven Sitzungen aus; identisch mit \fI\-\-all\fP, außer, dass Chroots und Source\-Chroots nicht berücksichtigt werden. .TP \fB\-\-all\-source\-chroots\fP wählt alle Source\-Chroots aus; identisch mit \fI\-\-all\fP, außer, dass Chroots und Sitzungen nicht berücksichtigt werden. .TP \fB\-\-exclude\-aliases\fP wählt keine Aliase zusätzlich zu Chroots aus. Dies stellt sicher, dass nur echte Chroots ausgewählt sind und nur einmal aufgeführt werden. .SS Chroot\-Umgebung .TP \fB\-d\fP, \fB\-\-directory=\fP\fIVerzeichnis\fP wechselt nach \fIVerzeichnis\fP innerhalb der Chroot, bevor der Befehl oder die Login\-Shell ausgeführt wird. Falls \fIVerzeichnis\fP nicht verfügbar ist, wird Schroot mit einem Fehlerstatus beendet. .IP Das Standardverhalten ist wie folgt (alle Verzeichnispfade liegen innerhalb der Chroot): Eine Login\-Shell wird im aktuellen Arbeitsverzeichnis ausgeführt. Falls dies nicht verfügbar ist, wird es der Reihe nach $HOME probieren (wenn \fI\-\-preserve\-environment\fP benutzt wird), dann das Home\-Verzeichnis des Benutzers und dann \fI/\fP innerhalb der Chroot. Falls keines der Verzeichnisse verfügbar ist, wird Schroot mit einem Fehlerstatus beendet. .TP \fB\-u\fP, \fB\-\-user=\fP\fIBenutzer\fP wird als anderer Benutzer ausgeführt. Standardmäßig wird es als aktueller Benutzer ausgeführt. Falls benötigt, kann vom Benutzer verlangt werden, dass er sich selbst mit einem Passwort authentifiziert. Weitere Informationen finden Sie im nachfolgenden Abschnitt »\fIAuthentifizierung\fP«. .TP \fB\-p\fP, \fB\-\-preserve\-environment\fP bewahrt die Umgebung des Benutzers innerhalb der Chroot\-Umgebung auf. Standardmäßig wird eine saubere Umgebung benutzt. Diese Option kopiert die ganze Benutzerumgebung und setzt sie in der Sitzung. Die erlaubten Umgebungsvariablen sind Gegenstand mehrerer Einschränkungen. Siehe den nachfolgenden Abschnitt »\fIUmgebung\fP«. .TP \fB\-s\fP, \fB\-\-shell=\fP\fIShell\fP benutzt \fIShell\fP als Login\-Shell. Wenn eine Login\-Shell ausgeführt wird, werden mehrere mögliche Shells in dieser Reihenfolge berücksichtigt: der Befehl in der Umgebungsvariable SHELL (falls \fI\-\-preserve\-environment\fP benutzt wird oder \f[CI]preserve\-environment\fR aktiviert ist, die Shell des Benutzers in der Datenbank »passwd«, \fI/bin/bash\fP und am Ende \fI/bin/sh\fP. Diese Option setzt diese Liste außer Kraft und wird die angegebene Shell verwenden. Diese Option setzt außerdem den Konfigurationsschlüssel \f[CI]shell\fR außer Kraft, falls gesetzt. .TP \fB\-o\fP, \fB\-\-option=\fP\fISchlüssel=Wert\fP setzt eine Option. Der Wert ausgewählter Schlüssel in \fIschroot.conf\fP kann mittels dieser Option geändert werden. Der Schlüssel muss im Konfigurationsschlüssel \f[CI]user\-modifiable\-keys\fR in \fIschroot.conf\fP vorhanden sein oder zusätzlich der Schlüssel \f[CI]user\-modifiable\-keys\fR, falls es als Root\-Benutzer ausgeführt wird (oder darauf umgeschaltet wird). Der hier gesetzte Schlüssel und Wert wird in der Umgebung der Einrichtungsskripte gesetzt und könnte daher benutzt werden, um die Chroot auf Sitzungsbasis anzupassen. .SS Sitzungsaktionen .TP \fB\-\-automatic\-session\fP startet eine Sitzung, führt sie aus und beendet sie automatisch. Dies ist die Standardaktion und muss daher nicht bei normalen Transaktionen angegeben werden. .TP \fB\-b\fP, \fB\-\-begin\-session\fP startet eine Sitzung. Ein eindeutiger Sitzungsbezeichner (Sitzungskennung) wird auf der Standardausgabe zurückgegeben. Die Sitzungskennung wird zum Benutzen der anderen Sitzungsoptionen benötigt. Beachten Sie, dass der Sitzungsbezeichner mit der Option \fI\-\-session\-name\fP angegeben werden kann. .TP \fB\-\-recover\-session\fP stellt eine existierende Sitzung wieder her. Falls eine existierende Sitzung nicht mehr vorhanden war, zum Beispiel weil sie wegen eines Neustarts nicht mehr eingehängt war, wird diese Option die Sitzung wieder zur Benutzung verfügbar machen, beispielsweise durch erneutes Einhängen. Die Sitzungskennung wird mit der Option \fI\-\-chroot\fP angegeben. .TP \fB\-r\fP, \fB\-\-run\-session\fP führt eine existierende Sitzung aus. Die Sitzungskennung wird mit der Option \fI\-\-chroot\fP angegeben. .TP \fB\-e\fP, \fB\-\-end\-session\fP beendet eine existierende Sitzung. Die Sitzungskennung wird mit der Option \fI\-\-chroot\fP angegeben. .SS Sitzungsoptionen .TP \fB\-n\fP, \fB\-\-session\-name=\fP\fISitzungsname\fP benennt eine Sitzung. Der angegebene \fISitzungsname\fP ersetzt den Standardsitzungsnamen, der eine automatisch erzeugte Sitzungskennung enthält. Der Sitzungsname darf keinen Namensraumbezeichner enthalten, da Sitzungen immer im Namensraum »session:« erstellt werden. Der Sitzungsname ist außerdem Gegenstand der in \fBschroot.conf\fP(5) dokumentierten Chroot\-Namensbeschränkungen. .TP \fB\-f\fP, \fB\-\-force\fP erzwingt eine Sitzungstransaktion sogar dann, wenn sie andernfalls fehlschlagen würde. Dies kann benutzt werden, um eine Sitzung gewaltsam zu beenden, auch wenn sie aktive Benutzer hat. Dies gewährleistet nicht, dass die Sitzung ordnungsgemäß beendet wird. Es kann zum Beispiel vorkommen, dass Dateisysteme nicht ausgehängt werden. .SS Trenner .TP \fB\-\-\fP beendet die Optionen; wird benutzt, um das Ende der Schroot\-Optionen anzuzeigen. Alle nachfolgenden Optionen werden an den ausgeführten Befehl statt an Schroot übergeben. .SH AUTHENTIFIZIERUNG Falls der Benutzer kein erlaubter Benutzer oder Mitglied der erlaubten Gruppen (oder beim Wechsel zu Root, kein erlaubter Root\-Benutzer oder Mitglied der erlaubten Root\-Gruppen) für die angegebene(n) Chroot(s) ist, wird die Erlaubnis sofort verweigert. Falls sich der Benutzer ändert und der Benutzer, der den Befehl ausführt, Zugriff hat, ist es nötig, dass sich der Benutzer selbst mittels der Anmeldedaten des Benutzers authentifizieren muss, zu dem gewechselt wird. .PP Auf Systemen, die anschließbare Authentifizierungsmodule (Pluggable Authentication Modules, PAM) unterstützen, wird Schroot PAM zur Authentifizierung und Autorisierung von Benutzern verwenden. Falls dies der Fall ist, wird Schroot nach einem Passwort fragen, wenn erforderlich. Falls PAM nicht verfügbar ist, wird jegliche Authentifizierung automatisch fehlschlagen (Benutzerwechsel ohne PAM wird \fInicht\fP unterstützt). .PP Beachten Sie, dass dem Benutzer Root, falls PAM benutzt wird, standardmäßig keine Sonderrechte im Programm gewährt werden. Die Standard\-PAM\-Konfiguration erlaubt Root jedoch die Anmeldung ohne Passwort (\fIpam_rootok.so\fP). Dies kann aber deaktiviert sein, um Root daran zu hindern auf alle Chroots zuzugreifen, es sei denn, dies ist eigens erlaubt. In einer derartigen Situation muss Root zu den erlaubten Benutzern oder Gruppen hinzugefügt werden, wie andere Benutzer und Gruppen. Falls PAM nicht verfügbar ist, wird es dem Benutzer Root erlaubt sein, auf alle Chroots zuzugreifen, sogar, wenn nicht explizit Zugriff gewährt wurde. .SH CHROOT\-NAMENSRÄUME .SS Namensraumgrundlagen Es gibt drei unterschiedliche Chroot\-Typen: normale Chroots, Source\-Chroots und Sitzungs\-Chroots. Diese unterschiedlichen Typen von Chroots werden in unterschiedliche \fINamensräume\fP aufgeteilt. Ein Namensraum ist ein Präfix eines Chroot\-Namens. Derzeit gibt es drei Namensräume: »chroot:«, »source:« und »session:«. Benutzen Sie \fI\-\-list \-\-all\fP, um alle verfügbaren Chroots in allen Namensräumen aufzuführen. Da »:« als Trenner zwischen Namensräumen und Chroot\-Namen benutzt wird, ist es nicht erlaubt, dieses Zeichen in Chroot\-Namen zu verwenden. .PP Abhängig davon, welche Aktion Sie von Schroot abfragen, kann es nach der Chroot in einem der drei Namensräume nachsehen oder es könnte ein bestimmter Namensraum angegeben werden. Eine Chroot mit Namen »sid« heißt zum Beispiel tatsächlich »chroot:sid«, falls der Namensraum enthalten ist, der Namensraum kann aber für die meisten Aktionen weggelassen werden. .SS Source\-Chroots Einige Chroot\-Typen, zum Beispiel LVM\- und Btrfs\-Schnappschüsse, stellen durch die Sitzung verwaltete Copy\-On\-Write\-Schnappschüsse der Chroot bereit. Diese stellen außerdem eine \fISource\-Chroot\fP bereit, um einen einfachen Zugriff auf das Dateisystem zu ermöglichen, das als Quelle für Schnappschüsse verwendet wird. Dies sind ebenso normale Chroots, bei denen nur die Schnappschüsse deaktiviert sind. Für eine Chroot mit Namen »sid\-snapshot« (d.h. mit einem vollqualifizierten Namen »chroot:sid\-snapshot«) wird es auch eine entsprechende Source\-Chroot mit Namen »source:sid\-snapshot« geben. Frühere Versionen von Schroot stellten Source\-Chroots mit einer Endung »\-source« zur Verfügung. Diese werden aus Kompatibilitätsgründen ebenfalls bereitgestellt. In diesem Beispiel wäre dies »chroot:sid\-snapshot\-source«. Diese Kompatibilitätsnamen werden in zukünftigen Versionen fallengelassen, daher sollten Programme und Skripte zur Benutzung namensraumqualifizierter Namen wechseln, statt die alte Endung zu verwenden. .SS Sitzungs\-Chroots Alle Sitzungen, die mit \fI\-\-begin\-session\fP erzeugt wurden, werden innerhalb des Namensraums »session:« platziert. Ein Sitzungsname mit \fI\-\-session\-name\fP kann irgendeinen Namen haben, sogar den selben Namen wie die Chroot, aus der er erstellt wurde, vorausgesetzt, dass er innerhalb dieses Namensraums eindeutig ist. Dies war in früheren Versionen von Schroot, die keine Namensräume hatten, nicht erlaubt. .SS "Aktionen und Standardnamensräume" Alle Aktionen mit Ausnahme einiger Sitzungsaktionen benutzen »chroot:« als Standardnamensraum. \fI\-\-run\-session\fP, \fI\-\-recover\-session\fP und \fI\-\-end\-session\fP verwenden stattdessen »session:« als Standardnamensraum, da diese Aktionen mit Sitzungs\-Chroots arbeiten. Das Ergebnis ist, dass der Namensraum normalerweise nie benötigt wird, es sei denn, Sie möchten mit einer Chroot in einem anderen als dem vorgegebenen Namensraum arbeiten, wie etwa wenn eine Source\-Chroot benutzt wird. Um die Chroot\-Auswahl unmissverständlich zu machen, ist es immer möglich, den vollständigen Namen einschließlich des Namensraums zu verwenden, sogar wenn dies nicht strikt erforderlich ist. .SH LEISTUNG .PP Auf einigen Dateisystemen, zum Beispiel Btrfs, ist die Leistung wegen der vielen durchgeführten Fsync\-Transaktionen schlecht, wenn Dpkg ausgeführt wird. Dies kann durch die Installation des Pakets »eatmydata« und anschließendem Hinzufügen von »eatmydata« zum Konfigurationsschlüssel \f[CI]command\-prefix\fR, der alle Fsync\-Transaktionen deaktiviert, gemildert werden. Beachten sie, dass dies in Schnappschuss\-Chroots getan werden sollte, in denen Datenverlust kein Problem darstellt. Dies ist nützlich, wenn eine Chroot zum Beispiel zum Bauen von Paketen benutzt wird. .SH RESERVEVERZEICHNISSE .PP Schroot wird ein geeignetes Verzeichnis auswählen, das innerhalb der Chroot benutzt werden soll, abhängig davon, ob eine interaktive Login\-Shell benutzt werden soll, welcher Befehl ausgeführt oder ob zusätzlich die Option \fI\-\-directory\fP verwendet wird. Im Fall, dass Befehle direkt ausgeführt werden oder explizit ein Verzeichnis angegeben wird, wird aus Sicherheits\- und Konsistenzgründen nur ein Verzeichnis benutzt, während für eine Login\-Shell mehrere Möglichkeiten ausprobiert werden können. Die folgenden Unterabschnitte führen die Reserveabfolge für jeden Fall auf. CWD ist das aktuelle Arbeitsverzeichnis, DIR ist das mit \fI\-\-directory\fP angegebene Verzeichnis. .SS Login\-Shell .TS box; l|lw(4i). Übergang (Rechner \[->] Chroot) Kommentar _ CWD \[->] CWD T{ normales Verhalten (falls \fI\-\-directory\fP nicht benutzt wird) T} CWD \[->] $HOME T{ falls CWD nicht existiert und \-\-preserve\-environment benutzt wird T} CWD \[->] passwd pw_dir T{ falls CWD nicht existiert (oder \-\-preserve\-environment benutzt wird und $HOME nicht existiert) T} CWD \[->] / T{ keins davon existiert T} \fBFAIL\fP T{ falls / nicht existiert T} .TE .SS Befehl .TS box; l|lw(4i). Übergang (Rechner \[->] Chroot) Kommentar _ CWD \[->] CWD T{ normales Verhalten (falls \fI\-\-directory\fP nicht benutzt wird) T} \fBFAIL\fP T{ falls CWD nicht existiert T} .TE .PP Unter irgendwelchen Umständen kann es vorkommen, dass keine Reserve existiert. .SS "\-\-directory benutzt" .TS box; l|lw(4i). Übergang (Rechner \[->] Chroot) Kommentar _ CWD \[->] VERZ normales Verhalten \fBFAIL\fP falls VERZ nicht existiert .TE .PP Unter irgendwelchen Umständen kann es vorkommen, dass keine Reserve existiert. .SS Fehlersuche .PP Beachten Sie, dass \fI\-\-debug=Mitteilung\fP die interne Reserveliste anzeigen wird, die für diese Sitzung berechnet wurde. .SH BEISPIELE .SS "Aufführen verschiedener Chroots" .EX % \f[CB]schroot \-l\fR\[CR] chroot:default chroot:etch chroot:sid chroot:testing chroot:unstable .EE .SS "Informationen über die Chroot abfragen" .EX % \f[CB]schroot \-i \-c sid\fR\[CR] \[em]\[em]\[em] Chroot \[em]\[em]\[em] Name sid Beschreibung Debian sid (unstable) Typ plain Priorität 3 Benutzer rleigh Gruppen sbuild Root\-Benutzer Root\-Gruppen sbuild Alias\-Kennungen unstable unstable\-sbuild unstable\-powerpc\-sbuild Umgebungsfilter ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG| KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN| NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO| TERMINFO_DIRS|TERMPATH)$ Einr.\-Skripte ausf. true Skript\-Konfiguration script\-defaults Verwaltete Sitzung true Persönlichkeit linux32 Ort /srv/chroot/sid .EE .LP Verwenden Sie \fI\-\-all\fP beziehungsweise mehrfach \fI\-c\fP, um alle oder mehrere Chroots zu benutzen. .SS "Befehle in einer Chroot ausführen" .EX % \f[CB]schroot \-c sid /bin/ls\fR\[CR] [sid chroot] Befehl »/bin/ls« gestartet CVS sbuild\-chroot.c sbuild\-session.h schroot.conf.5 Makefile sbuild\-chroot.h schroot.1 schroot.conf.5.in Makefile.am sbuild\-config.c schroot.1.in Makefile.in sbuild\-config.h schroot.c pam sbuild\-session.c schroot.conf % \f[CB]schroot \-c sid \-\- ls \-1 | head \-n 5\fR\[CR] [sid chroot] Befehl »ls \-1« gestartet ABOUT\-NLS AUTHORS COPYING ChangeLog INSTALL .EE .LP benutzt \fI\-\-\fP, um zu ermöglichen, dass Optionen, die im Befehl mit »\-« oder »\-\-« beginnen, in der Chroot ausgeführt werden. Dies verhindert, dass sie als Optionen für Schroot selbst interpretiert werden. Beachten Sie, dass die obere Zeile auf die Standardfehlerausgabe und die übrigen Zeilen auf die Standardausgabe ausgegeben werden. Dies ist beabsichtigt, so dass Programmausgaben von in der Chroot ausgeführten Befehlen weiter\- und umgeleitet werden können, wenn nötig. Die Daten werden die selben sein, wie bei der Ausführung des Befehls direkt auf dem Wirtsystem. .SS "Benutzer wechseln" .EX % \f[CB]schroot \-c sid \-u root\fR\[CR] Passwort: [sid chroot] (rleigh\[->]root) Login\-Shell »/bin/bash« gestartet: # .EE .LP Falls der Benutzer »rleigh« in \f[CI]root\-users\fR in \fI\*[SCHROOT_CONF]\fP war oder zu einer der Gruppen in \f[CI]root\-groups\fR gehörte, würde ihm Root\-Zugriff gewährt, aber der PAM\-Autorisierungsschritt wird immer noch angewandt. .SS Sitzungen Es könnte nötig sein, dass eine Chroot mehr als einen Befehl ausführt. Dies ist hauptsächlich dann nötig, wenn die Chroot direkt von einem LVM\-LV oder einer Datei auf der Platte erstellt wurde, um sie während eine Aufgabe (oder ein Satz von Aufgaben) durchgeführt wird, beständig zu machen. Zu diesem Zweck existieren Sitzungen. Für einfache Chroot\-Typen wie »plain« und »directory« können Sitzungen erstellt werden, sind aber nicht zwingend nötig. .PP Lassen Sie uns starten, indem wir uns eine sitzungsfähige Chroot ansehen: .PP .EX % \f[CB]schroot \-i \-c sid\-snap\fR\[CR] \[em]\[em]\[em] Chroot \[em]\[em]\[em] Name sid\-snap Beschreibung Debian sid snapshot Typ lvm\-snapshot Priorität 3 Benutzer maks rleigh Gruppen sbuild Root\-Benutzer Root\-Gruppen sbuild Aliase\-Kennungen Umgebungsfilter ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG| KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN| NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO| TERMINFO_DIRS|TERMPATH)$ Einr.\-Skripte ausf. true Skript\-Konfiguration script\-defaults Verwaltete Sitzung true Persönlichkeit linux Gerät /dev/hda_vg/sid_chroot Einbindungsoptionen \-o atime,async,user_xattr Quellbenutzer Quellgruppen root rleigh Quell\-Root\-Benutzer Quell\-Root\-Gruppen root rleigh LVM\-Schnappschuss\-Opt. \-\-size 2G \-c 128 .EE .PP Beachten Sie, dass die Option \fIVerwaltete Sitzung\fP auf »true« gesetzt ist. Dies ist eine Voraussetzung, um die Sitzungsverwaltung zu benutzen und wird von den meisten Chroot\-Typen unterstützt. Als nächstes werden wir eine neue Sitzung erstellen: .PP .EX % \f[CB]schroot \-b \-c sid\-snap\fR\[CR] sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f .EE .PP Die Sitzungskennung der neu erstellten Sitzung wird auf der Standardausgabe zurückgegeben. Es ist üblich, sie wie hier gezeigt zu speichern: .PP .EX % \f[CB]SESSION=$(schroot \-b \-c sid\-snap)\fR\[CR] % \f[CB]echo $SESSION\fR\[CR] sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f .EE .PP Die Sitzung kann genauso wie jede normale Chroot benutzt werden. Die Sitzung sieht etwa so aus: .PP .EX % \f[CB]schroot \-i \-c sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f\fR\[CR] \[em]\[em]\[em] Session \[em]\[em]\[em] Name sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d\e 4ccc899f0f Beschreibung Debian sid snapshot Typ lvm\-snapshot Priorität 3 Benutzer maks rleigh Gruppen sbuild Root Users Root\-Gruppen root sbuild Alias\-Kennungen Umgebungsfilter ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG| KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN| NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO| TERMINFO_DIRS|TERMPATH)$ Einr.\-Skripte ausf. true Skript\-Konfiguration script\-defaults Verwaltete Sitzung true Persönlichkeit linux Einbindungsort /var/lib/schroot/mount/sid\-snap\-461\e 95b04\-0893\-49bf\-beb8\-0d4ccc899f0f Pfad /var/lib/schroot/mount/sid\-snap\-461\e 95b04\-0893\-49bf\-beb8\-0d4ccc899f0f Einzubindendes Gerät /dev/hda_vg/sid\-snap\-46195b04\-0893\-\e 49bf\-beb8\-0d4ccc899f0f Gerät /dev/hda_vg/sid_chroot Einbindungsoptionen \-o atime,async,user_xattr Quellbenutzer Quellgruppen root rleigh Quell\-Root\-Benutzer Quell\-Root\-Gruppen root rleigh LVM\-Schnappsch.\-Gerät /dev/hda_vg/sid\-snap\-46195b04\-0893\-\e 49bf\-beb8\-0d4ccc899f0f LVM\-Schnappschuss\-Opt. \-\-size 2G \-c 128 .EE .PP Nun wurde die Sitzung erstellt, Befehle können darin ausgeführt werden: .PP .EX % \f[CB]schroot \-r \-c sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f \-\- \e uname \-sr\fR\[CR] I: [sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f chroot] Befehl \e »uname \-sr« gestartet Linux 2.6.18\-3\-powerpc % \f[CB]schroot \-r \-c $SESSION \-\- uname \-sr\fR\[CR] I: [sid\-snap\-fe170af9\-d9be\-4800\-b1bd\-de275858b938 chroot] Befehl \e »uname \-sr« gestartet Linux 2.6.18\-3\-powerpc .EE .PP Wenn alle Befehle, die in der Sitzung ausgeführt werden sollen, durchgeführt wurden, kann die Sitzung beendet werden: .PP .EX \f[CR]% \f[CB]schroot \-e \-c sid\-snap\-46195b04\-0893\-49bf\-beb8\-0d4ccc899f0f\f[CB]\[CR] \f[CR]% \f[CB]schroot \-e \-c $SESSION\f[CB]\[CR]\fR .EE .PP Letztendlich können Sitzungsnamen lang und unhandlich sein. Statt die automatisch erzeugte Sitzungskennung zu benutzen, kann ein Name angegeben werden. .PP .EX \f[CR]% \f[CB]schroot \-b \-c sid\-snap \-n mein\-Sitzungsname\f[CB]\[CR] \f[CR]mein\-Sitzungsname\fR .EE .SH FEHLERBEHEBUNG Falls etwas nicht funktioniert und aus den Fehlermeldungen nicht hervorgeht, was falsch ist, versuchen Sie die Option \fB\-\-debug=\fP\fIStufe\fP zu benutzen, um Debug\-Meldungen einzuschalten. Dies gibt eine große Menge weiterer Informationen. Gültige Debug\-Stufen sind »none« und »notice«, »info«, »warning« und »critical« nach zunehmender Schwere geordnet. Je niedriger der Schweregrad desto mehr wird ausgegeben. .PP Falls Sie immer noch Schwierigkeiten haben, können die Entwickler auf der Mailingliste kontaktiert werden: .br \f[CR]Debian\-Buildd\-Tools\-Entwickler\fR .br \f[CR]\fR .SH FEHLER Auf den Architekturen \fBmips\fP und \fBmipsel\fP haben Linux\-Kernel bis einschließlich Version 2.6.17 kaputte \fBpersonality\fP(2)\-Unterstützung, die dazu führt, dass das Setzen der Persönlichkeit fehlschlägt. Dies wird als ein »Transaktion nicht erlaubt«\-Fehler (EPERM) gesehen. Um dieses Problem zu umgehen setzen Sie \f[CI]personality\fR auf »undefined« oder führen Sie ein Upgrade auf einen aktuelleren Kernel durch. .SH UMGEBUNGSVARIABLEN Standardmäßig werden die Umgebungsvariablen nicht aufbewahrt. Die folgenden sind definiert: HOME, LOGNAME, PATH, SHELL, TERM (aufbewahrt, falls bereits definiert) und USER. Die Umgebungsvariablen SCHROOT_COMMAND, SCHROOT_USER, SCHROOT_GROUP, SCHROOT_UID und SCHROOT_GID, die innerhalb der Chroot gesetzt sind, geben den ausgeführten Befehl, den Benutzernamen, den Gruppennamen, die Benutzer\- beziehungsweise die Gruppenkennung an. Zusätzlich geben die Umgebungsvariablen SCHROOT_SESSION_ID, SCHROOT_CHROOT_NAME und SCHROOT_ALIAS_NAME die Sitzungskennung, den Original\-Chroot\-Namen vor dem Erstellen der Sitzung beziehungsweise den Alias, mit dem die ursprünglich ausgewählte Chroot identifiziert wird, an. .PP Die folgenden möglicherweise gefährlichen Umgebungsvariablen sind aus Sicherheitsgründen entfernt: BASH_ENV, CDPATH, ENV, HOSTALIASES, IFS, KRB5_CONFIG, KRBCONFDIR, KRBTKFILE, KRB_CONF, LD_.*, LOCALDOMAIN, NLSPATH, PATH_LOCALE, RES_OPTIONS, TERMINFO, TERMINFO_DIRS und TERMPATH. Falls gewünscht, wird der Konfigurationsschlüssel \f[CI]environment\-filter\fR das Ändern der Auschlussliste ermöglichen. Weitere Einzelheiten finden Sie unter \fBschroot.conf\fP(5). .SH DATEIEN .SS Konfigurationsdateien .TP \f[BI]\*[SCHROOT_CONF]\fR die systemweite Chroot\-Definitionsdatei. Diese Datei muss dem Benutzer Root gehören und darf nicht durch andere beschreibbar sein. .TP \f[BI]\*[SCHROOT_CONF_CHROOT_D]\fR Zusätzliche Chroot\-Definitionen können in Dateien unterhalb dieses Verzeichnisses abgelegt werden. Sie werden auf exakt die gleiche Weise wie \fI\*[SCHROOT_CONF]\fP behandelt. Jede Datei kann eine oder mehrere Chroot\-Definitionen enthalten. Beachten Sie, dass die Dateien in diesem Verzeichnis die gleichen Namensregeln wie \fBrun\-parts\fP(8) befolgen, wenn mit der Option \fI\-\-lsbsysinit\fP gestartet wird. .TP \f[BI]\*[SCHROOT_CONF_SETUP_D]\fR die systemweiten Verzeichnisse für Chroot\-Einrichtungsskripte. Siehe \fBschroot\-setup\fP(5). .TP \f[BI]/etc/pam.d/schroot\fR PAM\-Konfiguration .SS Systemverzeichnisse .TP \f[BI]\*[SCHROOT_LIBEXEC_DIR]\fR Verzeichnis, das von Einrichtungsskripten benutzte Hilfsprogramme enthält .SS Sitzungsverzeichnisse Jedes Verzeichnis enthält ein Verzeichnis oder eine Datei mit dem Namen von jeder Sitzung. Nicht alle Chroot\-Typen benutzen alle folgenden Verzeichnisse. .TP \f[BI]\*[SCHROOT_SESSION_DIR]\fR Verzeichnis, das die Sitzungskonfiguration für jede aktive Sitzung enthält .TP \f[BI]\*[SCHROOT_MOUNT_DIR]\fR Verzeichnis, das zum Einhängen der durch jede aktive Sitzung benutzten Dateisysteme verwendet wird .TP \f[BI]\*[SCHROOT_UNDERLAY_DIR]\fR Verzeichnis, das für vereinte (darunterliegende) Dateisystemquellen benutzt wird .TP \f[BI]\*[SCHROOT_OVERLAY_DIR]\fR Verzeichnis, das für vereinte beschreibbare Dateisystemeinblendungen benutzt wird .TP \f[BI]\*[SCHROOT_FILE_UNPACK_DIR]\fR Verzeichnis, das zum Entpacken von Datei\-Chroots benutzt wird .SH AUTOR Roger Leigh .SH COPYRIGHT Copyright \(co 2005\-2012 Roger Leigh \f[CR]\fR .PP \fB\*[PROGRAM]\fP ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren Version. .SH "SIEHE AUCH" \fBdchroot\fP(1), \fBsbuild\fP(1), \fBchroot\fP(2), \fBschroot.conf\fP(5). \fBschroot\-setup\fP(5), \fBschroot\-faq\fP(7), \fBrun\-parts\fP(8), .\"# .\"# The following sets edit modes for GNU EMACS .\"# Local Variables: .\"# mode:nroff .\"# fill-column:79 .\"# End: