Befehl "chroot"

Zweck

Ändert das Stammverzeichnis eines Befehls.

Syntax

chroot Verzeichnis Befehl

Beschreibung

Achtung: Wenn bestimmte Dateien im neuen Stammverzeichnis andere Haupt- und Nebengerätenummern als im aktuellen Stammverzeichnis, kann das Dateisystem überschrieben werden.

Der Befehl chroot kann nur von einem Benutzer mit Rootberechtigung verwendet werden. Wenn Sie Rootberechtigung haben, ändert der Befehl chroot das Stammverzeichnis in das mit dem Parameter Verzeichnis angegebene Verzeichnis, wenn der angegebene Befehl ausgeführt wird. Der erste Schrägstrich (/) in einem Pfadnamen wird für den angegebenen Befehl und dessen Unterbefehle in das angegebene Verzeichnis geändert.

Der Pfadname für das angegebene Verzeichnis ist immer relativ zum aktuellen Stammverzeichnis. Selbst wenn der Befehl chroot aktiv ist, ist der Pfadname für das angegebene Verzeichnis relativ zum aktuellen Stammverzeichnis des aktiven Prozesses.

Die meisten Programme funktionieren nach der Ausführung des Befehls chroot vermutlich nicht ordnungsgemäß. So sind beispielsweise Befehle, die die gemeinsam genutzten Bibliotheken verwenden, nicht erfolgreich, wenn sich die gemeinsam genutzten Bibliotheken nicht im neuen Stammdateisystem befinden. Die am häufigsten verwendete gemeinsam genutzte Bibliothek ist die Bibliothek /usr/ccs/lib/libc.a.

Der Befehl "ls -l " kann keine Benutzer- und Gruppennamen angeben, wenn der aktuelle Root-Speicherort die /etc/passwd datei unerreichbar macht. Auch Dienstprogramme, die von lokalisierten Dateien abhängig sind (/usr/lib/nls/*), werden nicht erfolgreich ausgeführt, wenn sich diese Dateien nicht im neuen Stammdateisystem befinden. Sie müssen sicherstellen, dass alle elementaren Datendateien im neuen Stammdateisystem vorhanden sind und dass die Pfadnamen, mit denen auf solche Dateien zugegriffen wird, bei Bedarf geändert werden.
Hinweis: Stellen Sie sicher, dass der Befehl /usr/sbin/execerror im neuen Stammdateisystem verfügbar ist, sodass bei einem Fehler in chroot beschreibende Fehlernachrichten zurückgegeben werden. Andernfalls gibt chroot bei einem Fehler Killed und nichts mehr zurück.

Parameter

Element Beschreibung
Befehl Gibt einen Befehl an, der mit dem Befehl chroot ausgeführt werden soll.
directory Gibt das neue Stammverzeichnis an.

Sicherheit

Hinweis für Benutzer von RBAC und Trusted AIX® :Dieser Befehl kann privilegierte Operationen ausführen. Privilegierte Operationen können nur von privilegierten Benutzern ausgeführt werden. Weitere Informationen zu Berechtigungen und Autorisierungen finden Sie im Abschnitt "Privileged Command Database" in der Veröffentlichung Security. Eine Liste der Privilegien und Berechtigungen für diesen Befehl finden Sie in den Beschreibungen des Befehls lssecattr und des Unterbefehls getcmdattr.

Beispiele

Achtung: Die Befehle in den folgenden Beispielen hängen möglicherweise von gemeinsam genutzten Bibliotheken ab. Stellen Sie sicher, dass sich die gemeinsam genutzten Bibliotheken im neuen Stammdateisystem befinden, bevor Sie den Befehl chroot ausführen.

  1. Geben Sie Folgendes ein, um den Befehl pwd mit dem Verzeichnis /usr bin als Stammdateisystem auszuführen:
    mkdir /usr/bin/lib
     
    cp /usr/ccs/lib/libc.a /usr/bin/lib
    
    cp /usr/lib/libcrypt.a /usr/bin/lib
     
    chroot /usr/bin pwd
  2. Geben Sie Folgendes ein, um eine Subshell der Korn-Shell mit einem anderen Dateisystem als dem Stammdateisystem auszuführen:
    chroot /var/tmp /usr/bin/ksh
    Dadurch verweist der Verzeichnisname/(Schrägstrich) auf die/var/tmpfür die Dauer der/usr/bin/kshverwenden kann. Außerdem macht er das ursprüngliche Stammdateisystem unzugänglich. Das Dateisystem auf dem/var/tmpDie Datei muss die Standardverzeichnisse eines Stammdateisystems enthalten. Insbesondere sucht die Shell nach Befehlen in der/binund/usr/binDateien auf dem/var/tmpDateisystem.

    Ausführen des/usr/bin/ksherstellt eine Subshell, die als Prozess ausgeführt wird, der von der ursprünglichen Shell getrennt ist. Drücken Sie die Tastenkombination für Dateiende (Strg-D), um die Subshell zu beenden und an die Position zurückzukehren, an der Sie sich in der ursprünglichen Shell befunden haben. Dadurch wird die Umgebung der ursprünglichen Shell einschließlich der Bedeutungen der wiederhergestellt. (aktuelles Verzeichnis) und das Stammverzeichnis (/).

  3. Geben Sie Folgendes ein, um eine Datei relativ zum ursprünglichen Stammverzeichnis und und nicht zum neuen Stammverzeichnis zu erstellen:
    chroot directory Command > file

Dateien

Element Beschreibung
/etc/passwd Gibt die Datei an, die Basisbenutzerattribute enthält.
/usr/ccs/lib/libc.a Gibt die Standard-E/A-Bibliothek und die Standard-C-Bibliothek an.
/usr/ccs/lib/libcurses.a Gibt die curses-Bibliothek an.
/usr/lib/liblvm.a Gibt die LVM-Bibliothek (Logical Volume Manager) an.
/usr/ccs/lib/libm.a Gibt die mathematische Bibliothek an.
/usr/lib/libodm.a Gibt die ODM-Bibliothek (Object Data Manager) an.
/usr/sbin/chroot Enthält den Befehl chroot.