BEZEICHNUNG¶
dchroot - in eine Chroot-Umgebung gelangen
ÜBERSICHT¶
dchroot [
-h|
--help |
-V|
--version |
-l|
--list |
-i|
--info |
--config |
--location] [
--directory=Verzeichnis] [
-d|
--preserve-environment] [
-q|
--quiet |
-v|
--verbose] [
-c
Chroot|
--chroot=Chroot |
--all] [
BEFEHL
[
ARG1 [
ARG2 [
ARGn]]]]
BESCHREIBUNG¶
dchroot 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 Home-Verzeichnis des Benutzers
innerhalb der Chroot gestartet.
Der Befehl besteht aus einem oder mehreren Argumenten, die in der Standard-Shell
des Benutzers mittels der Option
-c ausgeführt werden. Dadurch
kann Shell-Code in dieses Argument eingebettet werden. Falls mehrere
Befehlsoptionen benutzt werden, können sie durch Leerzeichen getrennt
verbunden werden. Benutzer sollten darüber Bescheid wissen, dass dies
Maskierungsprobleme der Shell mit sich bringt und, falls nötig,
schroot verwenden, das derlei Probleme nicht hat.
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
--directory.
Diese Version von Dchroot ist ein Kompatibilitäts-Wrapper um das Programm
schroot(1). Es wird für die
Rückwärtskompatibilität mit den Befehlszeilenoptionen von
Dchroot benutzt, für die zukünftige Nutzung wird aber Schroot
empfohlen. Lesen Sie den nachfolgenden Abschnitt »
Inkompatibilitäten«, um etwas über bekannte
Inkompatibilitäten mit älteren Versionen von Dchroot zu
erfahren.
Falls keine Chroot angegeben wurde, wird der Chroot-Name oder -Alias
»default« als Ausweichmöglichkeit genommen.
OPTIONEN¶
dchroot akzeptiert die folgenden Optionen:
Grundlegende Optionen¶
- -h, --help
- zeigt eine Zusammenfassung der Hilfe.
- -a, --all
- alle Chroots auswählen
- -c, --chroot=Chroot
- gibt eine Chroot an, die benutzt werden soll. Diese Option kann mehrfach
verwendet werden, um mehr als eine Chroot anzugeben. In diesem Fall wirkt
sie sich ähnlich wie --all aus.
- -l, --list
- führt alle verfügbaren Chroots auf.
- -i, --info
- gibt detaillierte Informationen über die angegebenen Chroots aus.
Beachten Sie, dass ältere Versionen von Dchroot diese Option nicht
enthielten.
- -p, --path
- gibt den Speicherort (Pfad) der angegebenen Chroots aus.
- --config
- gibt die Konfigurationen der angegebenen Chroots aus. Dies ist
nützlich, um zu testen, ob die benutzte Konfiguration die selbe wie
die in der Konfigurationsdatei ist. Sämtliche Kommentare der
Originaldatei werden fehlen. Beachten Sie, dass ältere Versionen
von Dchroot diese Option nicht enthielten.
- --directory=Verzeichnis
- wechselt in das Verzeichnis innerhalb der Chroot, bevor der Befehl
oder die Login-Shell ausgeführt wird. Falls das Verzeichnis
nicht verfügbar ist, wird Dchroot mit einem Fehlerstatus
beendet.
- Das Standardverhalten ist wie folgt (alle Verzeichnispfade liegen
innerhalb der Chroot): Sofern nicht die Option
--preserve-environment zum Erhalt der Umgebung benutzt wird, wird
die Login-Shell oder der Befehl im Home-Verzeichnis des Benutzers oder
/ ausgeführt, falls das Home-Verzeichnis nicht
verfügbar ist. Wenn die Option --preserve-environment
benutzt wird, wird es versuchen, das aktuelle Arbeitsverzeichnis zu
verwenden, wiederum mit / als Ausweichmöglichkeit, falls es
nicht verfügbar ist. Wenn keines der Verzeichnisse verfügbar
ist, wird Dchroot mit einem Fehlerstatus beendet.
- -d, --preserve-environment
- bewahrt die Umgebung des Benutzers innerhalb der Chroot auf.
Standardmäßig wird eine saubere Umgebung benutzt. Diese
Option kopiert die ganze Umgebung des Benutzers und setzt sie in der
Sitzung.
- -q, --quiet
- gibt nur wichtige Nachrichten aus.
- -v, --verbose
- gibt alle Nachrichten aus. Beachten Sie, dass ältere Versionen von
Dchroot diese Option nicht enthielten.
- -V, --version
- gibt Versionsinformationen aus.
Beachten Sie, dass ältere Versionen von Dchroot keine langen Optionen
bereitstellten.
INKOMPATIBILITÄTEN¶
Debian-Dchroot vor Version 0.99.0¶
- •
- Protokollnachrichten sind unterschiedlich formuliert und formatiert.
- •
- su(1) wird nicht länger zum Ausführen von Befehlen in
der Chroot benutzt. Dies wird durch Dchroot intern erledigt. Diese
Änderung kann kann subtile Unterschiede verursachen. Falls Sie eine
Inkompatibilität entdecken, melden Sie diese bitte, damit sie
korrigiert werden kann.
- •
- Dchroot stellt eine eingeschränkte Untermenge der durch
schroot umgesetzten Funktionalität bereit, liegt aber immer
noch unter Schroot. Daher ist Dchroot immer noch Gegenstand der
Schroot-Sicherheitsprüfung, einschließlich
PAM-Authentifizierung, Autorisierung und zum Beispiel Sitzungsverwaltung
und kann sich daher unter manchen Umständen gegenüber
älteren Dchroot-Version leicht anders verhalten.
Debian-Dchroot vor Version 1.5.1¶
- •
- Diese Version von Dchroot benutzt schroot.conf, um die
Konfiguration für verfügbare Chroots zu speichern, anstatt
der geschichtlich benutzten Datei dchroot.conf. Dchroot
unterstützt die automatische Migration der dchroot.conf in
das schroot.conf-Schlüsseldateiformat mit seiner Option
--config aus Versionen von 0.2.2 bis 1.5.0. Die
Unterstützung für das alte Format ist nun nicht
länger verfügebar.
DSA-Dchroot¶
Von Debian-Systemadministratoren für das Debian-Projekt betriebene
Rechner haben ein
dchroot-dsa-Paket, das eine alternative
Dchroot-Umsetzung bereitstellt.
- •
- alle obigen Inkompatibilitäten treffen zu
- •
- Diese Version von Dchroot hat inkompatible Befehlszeilenoptionen und
obwohl einige dieser Optionen unterstützt werden oder sie
entsprechende Optionen mit einem anderen Namen hat, wird die Option
-c nicht benötigt, um eine Chroot anzugeben. Diese Version
von Dchroot kann dieses Verhalten nicht in einer
rückwärtskompatiblen Weise umsetzen (da die Standard-Chroot
benutzt wird, falls -c weggelassen wird). DSA-Dchroot verwendet das
Erste, das keine Option ist, als Chroot, wobei nur eine Chroot auf einmal
benutzt werden darf.
RESERVEVERZEICHNISSE¶
Dchroot wird ein geeignetes Verzeichnis zur Verwendung innerhalb der Chroot
auswählen, abhängig davon, ob die Optionen
--directory
oder
--preserve-environment benutzt werden. Wenn ein Verzeichnis
explizit angegeben wird, wird wegen der Sicherheit und Konsistenz nur ein
Verzeichnis verwendet, während für eine Login-Shell oder einen
Befehl mehrere Möglichkeiten ausprobiert werden können. Beachten
Sie, dass es, da mehrere Ausweichmöglichkeiten für Befehle
berücksichtigt werden, gefährlich ist, Befehle mittels Dchroot
auszuführen. Benutzen Sie stattdessen Schroot. Die folgenden
Unterabschnitte führen die Abfolge der Ausweichmöglichkeiten
für jeden Fall auf. CWD ist das aktuelle Arbeitsverzeichnis, VERZ ist
das mit
--directory angegebene Verzeichnis.
Login-Shell oder Befehl¶
Übergang |
|
(Rechner → Chroot) |
Kommentar |
|
CWD → Passwort Passwortverzeichnis |
normales Verhalten (falls --directory und --preserve-environment
benutzt werden) |
CWD → / |
falls »passwd pw_dir« nicht existiert |
FAIL |
falls / nicht existiert |
--preserve-environment benutzt¶
Übergang |
|
(Rechner → Chroot) |
Kommentar |
|
CWD → CWD |
normales Verhalten (falls --preserve-environment benutzt
wird) |
CWD → / |
falls CWD nicht existiert |
FAIL |
falls / nicht existiert |
--directory benutzt¶
Übergang |
|
(Rechner → Chroot) |
Kommentar |
|
CWD → DIR |
normales Verhalten |
FAIL |
falls DIR nicht existiert |
Unter irgendwelchen Umständen kann es vorkommen, dass keine Reserve
existiert.
Fehlersuche¶
Beachten Sie, dass
--debug=Mitteilung die interne Reserveliste anzeigen
wird, die für diese Sitzung berechnet wurde.
BEISPIELE¶
$ dchroot -l↵
verfügbare Chroots: sarge [Vorgabe], sid
$ dchroot -p sid↵
/srv/chroot/sid
$ dchroot -q -c sid -- uname -smr↵
Linux 2.6.16.17 ppc
$ dchroot -q -c sid -- "uname -smr"↵
Linux 2.6.16.17 ppc
$ dchroot -q -c sid "ls -1 / | tac | head -n 4"↵
var
usr
tmp
sys
$ dchroot -c sid↵
I: [sid chroot] Login-Shell »/bin/bash«
gestartet:
$
Benutzen Sie
--, um zu ermöglichen, dass Optionen, die mit
»-« oder »--« im Befehl beginnen, in der Chroot
ausgeführt werden. Dies schützt sie davor, als Optionen
für Dchroot selbst interpretiert zu werden. Beachten Sie, dass die
erste Zeile auf der Standardfehlerausgabe und die restlichen auf der
Standardausgabe wiedergegeben werden. Dies ist beabsichtigt, damit
Programmausgaben von in der Chroot ausgeführten Befehlen nach Bedarf
weiter- und umgeleitet werden können. Die Daten werden die selben wie
bei der Ausführung des Befehls direkt auf dem Wirtsystem sein.
FEHLERBEHEBUNG¶
Falls etwas nicht funktioniert und aus den Fehlermeldungen nicht hervorgeht, was
falsch ist, versuchen Sie die Option
--debug=Stufe 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.
Falls Sie immer noch Schwierigkeiten haben, können die Entwickler auf der
Mailingliste kontaktiert werden:
Debian-Buildd-Tools-Entwickler
<buildd-tools-devel@lists.alioth.debian.org>
FEHLER¶
Auf den Architekturen
mips und
mipsel haben Linux-Kernel bis
einschließlich Version 2.6.17 kaputte
personality(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
personality auf »undefined«
oder führen Sie ein Upgrade auf einen aktuelleren Kernel durch.
DATEIEN¶
- /etc/schroot/schroot.conf
- die systemweite schroot-Definitionsdatei. Diese Datei muss dem
Benutzer Root gehören und darf nicht durch andere beschreibbar
sein.
AUTOR¶
Roger Leigh
Diese Umsetzung von Dchroot verwendet die selben Befehlszeilenoptionen wie das
Original-
dchroot von David Kimdon <dwhedon@debian.org>, ist aber
eine unabhängige Umsetzung.
COPYRIGHT¶
Copyright © 2005-2012 Roger Leigh <rleigh@debian.org>
dchroot 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.
SIEHE AUCH¶
sbuild(1),
schroot(1),
chroot(2),
schroot-setup(5),
schroot.conf(5).