Startseite > Paket- & Systemverwaltung > chroot

chroot: Ändert das Root-Verzeichnis

Der Befehl chroot ändert das Root-Verzeichnis des aktuell laufenden Prozesses in ein neu angegebenes Root-Verzeichnis. Dies ist äußerst nützlich zum Testen von Software in einer isolierten Umgebung, zur Wiederherstellung eines beschädigten Systems oder zur Ausführung bestimmter Anwendungen in einer eingeschränkten Umgebung.

Übersicht

chroot steht für 'change root' und ist ein Befehl, der das Root-Verzeichnis des aktuell laufenden Prozesses ändert. Mit diesem Befehl können Sie eine isolierte Umgebung erstellen, in der das angegebene Verzeichnis wie das oberste Root-Verzeichnis des Systems fungiert. Diese Umgebung wird häufig zur Systemwiederherstellung, zur Isolierung von Entwicklungs- und Testumgebungen sowie zur Härtung der Sicherheit durch Sandboxing verwendet.

Hauptanwendungsbereiche

  • Wiederherstellung beschädigter Systeme (z. B. Neuinstallation des Bootloaders, Behebung von Paketproblemen)
  • Isolierung von Entwicklungs- und Testumgebungen (Erstellung/Ausführung von Software, ohne das Host-System zu beeinträchtigen)
  • Sandboxing zur Erhöhung der Sicherheit (Beschränkung des Dateisystemzugriffs für bestimmte Anwendungen)
  • Erstellung von Paketen für andere Architekturen (Einrichtung einer Cross-Compilation-Umgebung)

Wichtige Optionen

Der Befehl chroot nimmt das neue Root-Verzeichnis und den auszuführenden Befehl als Argumente entgegen und kann mit einigen zusätzlichen Optionen gesteuert werden.

Standardverhalten und Benutzeranpassung

Informationen und Hilfe

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`chroot` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Hier werden verschiedene Möglichkeiten vorgestellt, eine isolierte Umgebung mit chroot einzurichten und Befehle auszuführen. Für die Ausführung von chroot sind in der Regel Root-Rechte erforderlich.

Standard-chroot-Umgebung betreten

sudo chroot /mnt/my_root /bin/bash

Legt das Verzeichnis `/mnt/my_root` als neues Root-Verzeichnis fest und startet eine `/bin/bash`-Shell innerhalb dieser Umgebung. Bevor Sie dieses Beispiel ausführen, muss das Verzeichnis `/mnt/my_root` vorhanden sein und die minimalen Systemdateien (z. B. `/bin/bash`) müssen vorbereitet sein.

Bestimmten Befehl innerhalb von chroot ausführen

sudo chroot /mnt/new_env ls -l /

Führt den Befehl `ls -l /` innerhalb des neuen Root-Verzeichnisses `/mnt/new_env` aus. Dieser Befehl listet den Inhalt des Root-Verzeichnisses innerhalb von `/mnt/new_env` auf.

Benutzeranpassung in der chroot-Umgebung

sudo chroot --userspec=testuser:testgroup /mnt/chroot_jail /bin/bash

Betritt die Umgebung `/mnt/chroot_jail`, startet jedoch die `/bin/bash`-Shell mit den Rechten des Benutzers `testuser` und der Gruppe `testgroup`. Dieser Benutzer/diese Gruppe muss in der chroot-Umgebung vorhanden sein.

Tipps & Hinweise

Tipps und Hinweise für die effektive und sichere Verwendung der chroot-Umgebung.

Erforderliche Mount-Punkte

Damit viele System-Utilities innerhalb der chroot-Umgebung ordnungsgemäß funktionieren, müssen bestimmte virtuelle Dateisysteme des Host-Systems in die chroot-Umgebung eingebunden werden.

  • /proc: Zugriff auf Prozessinformationen und Systemeinstellungen
  • /sys: Zugriff auf Kernel- und Hardwareinformationen
  • /dev: Zugriff auf Gerätedateien (z. B. Terminal, Festplatte)
  • /dev/pts: Unterstützung für virtuelle Terminals (erforderlich für die Shell-Nutzung)

Bibliotheken und ausführbare Dateien

Der auszuführende Befehl in der chroot-Umgebung muss über alle erforderlichen ausführbaren Dateien und dynamischen Bibliotheken (shared libraries) verfügen. Andernfalls kann es zu Fehlern wie 'command not found' oder 'No such file or directory' kommen. Sie können den Befehl `ldd` verwenden, um die benötigten Bibliotheken zu überprüfen.

Root-Rechte erforderlich

Da der Befehl chroot das Root-Verzeichnis des Systems ändert, muss er unbedingt mit Root-Rechten (sudo) ausgeführt werden.

Beenden der chroot-Umgebung

Wenn Sie den Befehl `exit` in der in der chroot-Umgebung ausgeführten Shell eingeben, können Sie zur ursprünglichen Shell des Host-Systems zurückkehren.

Sicherheitshinweise

chroot ist kein perfekter Mechanismus zur Sicherheitsisolierung. Benutzer mit Root-Rechten haben mehrere Möglichkeiten, aus der chroot-Umgebung auszubrechen. Wenn eine stärkere Isolierung erforderlich ist, sollten Container-Technologien (Docker, LXC) oder virtuelle Maschinen in Betracht gezogen werden.


Gleiche Kategorie Befehle