Es gibt viele Gründe, eine Chroot-Umgebung zu verwenden. Sie können verschiedene Versionen eines Programms verwenden, eine bestimmte Umgebung simulieren, um einige Funktionen zu testen und Bilder eines Systems zu erstellen, das sich von Ihrem Hauptsystem unterscheidet eine usw.
Testen und Entwickeln : In der chroot kann eine Testumgebung für Software eingerichtet werden, deren Bereitstellung auf einem Produktionssystem ansonsten zu riskant wäre.
Abhängigkeitskontrolle : Software kann in einer Chroot entwickelt, erstellt und getestet werden, in der nur die erwarteten Abhängigkeiten vorhanden sind. Dies kann einige Arten von Verknüpfungsverzerrungen verhindern, die sich daraus ergeben können, dass Entwickler Projekte mit verschiedenen installierten Programmbibliotheken erstellen.
Kompatibilität : Legacy-Software oder Software, die eine andere ABI verwendet, muss manchmal in einer Chroot-Umgebung ausgeführt werden, da die unterstützenden Bibliotheken oder Datendateien andernfalls im Namen oder in der Verknüpfung mit denen des Hostsystems kollidieren können.
Wiederherstellung : Sollte ein System nicht mehr bootfähig sein, kann ein Chroot verwendet werden, um nach dem Bootstrapping von einem alternativen Root-Dateisystem (z. B. von einem Installationsmedium oder einer Live-CD) in die beschädigte Umgebung zurückzukehren.
Privilegientrennung : Programme dürfen offene Dateideskriptoren (für Dateien, Pipelines und Netzwerkverbindungen) in die Chroot übertragen, was das Design des Jails vereinfachen kann, indem es unnötig wird, Arbeitsdateien im Chroot-Verzeichnis zu belassen. Dies vereinfacht auch die übliche Anordnung, die potenziell gefährdeten Teile eines privilegierten Programms in einer Sandbox auszuführen, um vorbeugend eine Sicherheitsverletzung einzudämmen. Beachten Sie, dass chroot nicht unbedingt ausreicht, um einen Prozess mit Root-Berechtigungen zu enthalten.