Warum muss ich Chroot verwenden?

13

Diese Frage chroot-jail-what-is-it-and-how-do-i-use-it bezieht sich auf was ist und wie man es benutzt chroot.

Was ich nicht verstehe, ist, warum ich verwenden muss chroot. Ich verstehe, was es tut, aber mir fällt kein Fall ein, in dem ich es verwenden muss, da es sich nicht um einen Sicherheitsmechanismus oder eine Sandbox handelt. Die Antwort lautet: "Sie sollten es nicht chrootals Sicherheit verwenden "Maßnahme, um zu verhindern, dass ein Programm Dateien außerhalb Ihres simulierten Dateisystems ändert".

Warum muss ein bestimmter Prozess ein Unterverzeichnis als Root-Dateisystem zuordnen?

Alexandru Irimiea
quelle
um mehrere Distributionen in einem Dateisystem zu haben.
Ipor Sircer
was bedeutet das?
Alexandru Irimiea
1
Es kann zwar einen entschlossenen Hacker nicht daran hindern, aus dem Gefängnis auszubrechen, erschwert dies jedoch und verhindert mit ziemlicher Sicherheit versehentliche Zugriffe.
Barmar
Wenn Sie ein neues Betriebssystem von Grund auf neu erstellen möchten, können Sie damit eine neue Umgebung einrichten, die vom Host-Dateisystem unabhängig ist. werfen Sie einen Blick in das LFS-Projekt (Linux von Grund auf neu)
Chenchuk

Antworten:

13

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.

Wikipedia kann Ihnen mehr über Chroot-Gefängnisse und deren Verwendung erzählen.

Von dort:

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.

Alberto Méndez
quelle
3
Grundsätzlich /ist eine Chroot nützlich, wenn Sie eine Reihe von Programmen ausführen, von denen aus bestimmte Dinge gelesen / geschrieben werden sollen , die Ihr bestehendes System jedoch nicht durcheinander bringen sollen, selbst wenn sie als Root ausgeführt werden (was dann sinnlos ist) aus sicherheitstechnischer Sicht). Es fungiert als "Redirector", was nützlich ist, solange Sie dem Programm vertrauen.
LawrenceC