<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Chroot</id>
	<title>Chroot - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Chroot"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Chroot&amp;action=history"/>
	<updated>2026-05-22T11:18:07Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Chroot&amp;diff=361139&amp;oldid=prev</id>
		<title>imported&gt;KnightMove: /* Einzelnachweise */ Kategorie:Abkürzung</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Chroot&amp;diff=361139&amp;oldid=prev"/>
		<updated>2024-02-09T08:17:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Einzelnachweise: &lt;/span&gt; &lt;a href=&quot;/index.php/Kategorie:Abk%C3%BCrzung&quot; title=&quot;Kategorie:Abkürzung&quot;&gt;Kategorie:Abkürzung&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SEITENTITEL:chroot}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;chroot&amp;#039;&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;&amp;#039;ch&amp;#039;&amp;#039;&amp;#039;ange &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039; und ist eine Funktion unter [[Unix]]-[[Betriebssystem|Systemen]], um das [[Wurzelverzeichnis|Rootverzeichnis]] zu ändern. Sie wirkt sich nur auf den aktuellen [[Prozess (Informatik)|Prozess]] und seine Kindprozesse aus. „chroot“ selbst kann sich sowohl auf den [[Systemaufruf]] &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;chroot(2)&amp;lt;/span&amp;gt; als auch auf das Dienstprogramm &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;chroot(8)&amp;lt;/span&amp;gt; beziehen.&lt;br /&gt;
&lt;br /&gt;
Ein Programm, das auf ein Verzeichnis „gerootet“ wurde und keine offenen [[Dateideskriptor]]en im Bereich außerhalb des virtuellen Root-Verzeichnisses besitzt, kann (bei korrekter Implementierung des Betriebssystemkerns) nicht mehr auf Dateien außerhalb dieses Verzeichnisses zugreifen. &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;chroot&amp;lt;/span&amp;gt; bietet somit eine einfache Möglichkeit, um nicht vertrauenswürdige, Test- oder sonst wie gefährliche Programme in eine [[Sandbox]] zu versetzen. Es ist ein einfacher [[Jail]]-Mechanismus, aus dem aber durchaus leicht wieder ausgebrochen werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;chroot&amp;lt;/span&amp;gt; wurde nicht als Sicherheitsfeature entworfen, sondern primär für das Aufsetzen virtueller Umgebungen verwendet. Die erste größere bekannte Anwendung war in Network Software Engineering (NSE) auf [[SunOS]] im Jahr 1986. Dort war ein Verlassen der Umgebung mit &amp;lt;code&amp;gt;fchroot(1)&amp;lt;/code&amp;gt; möglich und dokumentiert.&lt;br /&gt;
&lt;br /&gt;
In der Praxis wird „Chrooting“ dadurch erschwert, dass Programme beim Start erwarten, Platz für temporäre Dateien, Konfigurationsdateien, Gerätedateien und [[Programmbibliothek]]en an bestimmten festen Orten vorzufinden. Um diese Programme innerhalb des chroot-Verzeichnisses laufen zu lassen, muss das Verzeichnis mit diesen notwendigen Dateien ausgestattet werden.&lt;br /&gt;
&lt;br /&gt;
== Sicherheitsfeature oder nicht? ==&lt;br /&gt;
Ob chroot-Umgebungen ein Sicherheitsfeature sind, um einzelne [[Computerprogramm]]e gegenüber dem Gesamtrechner abzuschotten, hängt stark von der Ansicht der Schöpfer des jeweiligen [[Betriebssystem]]s ab:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Unix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Berkeley Software Distribution|BSD-Systeme]] versuchen [[Prozess (Informatik)|Prozesse]] der {{man|2|chroot|bsd||inline}}-Umgebung nicht herauszulassen, also einzusperren. Ein erstes Aufkommen eines weitgefassten Begriffs &amp;quot;jail&amp;quot; (&amp;quot;Gefängnis&amp;quot;) in diesem Sinn ist seit 1991 mit Bezug auf die [[Unix]]-Distribution [[Berkeley Software Distribution#Weiterentwicklungen bei Berkeley|4.3BSD]] belegt.&amp;lt;ref name=&amp;quot;jail1991&amp;quot;&amp;gt;{{Literatur |Autor=[[Bill Cheswick]] |Hrsg=The Association |Titel=An Evening with Berferd: In Which a Cracker is Lured, Endured, and Studied |TitelErg=[[USENIX]] |Sammelwerk=USENIX Summer Conference Proceedings |Band=Vol. 1 |Ort=San Francisco, California |Datum=1991 |Seiten=163 |Online=https://web.archive.org/web/20140821124628/http://csrc.nist.gov/publications/secpubs/berferd.pdf |Format=PDF |KBytes=170}}&amp;lt;/ref&amp;gt; Zum Beispiel ist eine [[Rechteausweitung]] aus {{man|8|chroot|bsd||inline}} heraus unter [[NetBSD]] sehr schwierig.&amp;lt;ref&amp;gt;{{Webarchiv |url=http://wiki.netbsd.se/How_to_break_out_of_a_chroot_environment |text=&amp;#039;&amp;#039;How to break out of a chroot environment&amp;#039;&amp;#039; – From NetBSD Wiki |wayback=20081210042915}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Geschichtlich bieten BSD-Systeme seit dem Jahr 2000 Virtualisierung auf Betriebssystems-Ebene, bei der der [[Kernel (Betriebssystem)|Kernel]] von mehreren isolierten, rundum abgeschlossenen Einheiten (&amp;quot;user space&amp;quot; Instanzen, Umgebungen) benutzt wird. Vorreiter war die [[FreeBSD]]-[[Distribution (Software)|Distribution]], welche mit ihrer Version 4.0 (2000) das [[Unix-Kommando]] {{man|8|jail|bsd||inline}}&amp;lt;ref&amp;gt;Die Nummer in Klammern hinter dem Namen des Unix-Kommandos folgt der Einteilung in sogenannte [[Manpage]]-&amp;#039;&amp;#039;Sections&amp;#039;&amp;#039; (&amp;quot;Bereiche&amp;quot;), diese sind: (1) Generelle Kommandos, (2) Systemaufrufe, (3) Subroutinen, (4) Spezialdateien, (5) Dateiformate, (6) Spiele, (7) Makros und Konventionen, (8) Wartungskommandos, (9) Kernelschnittstelle, (n) Neue Kommandos.&amp;lt;/ref&amp;gt; bereitstellte, um Prozess-Umgebungen sicher voneinander abzuschotten.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Matteo Riondato |url=https://docs.freebsd.org/en/books/handbook/jails/ |titel=FreeBSD Handbook Chapter 15 Jails |werk=freebsd.org |hrsg=The FreeBSD Project |abruf=2014-08-19}}&amp;lt;/ref&amp;gt; Hieraus folgte bis zum Jahr 2004 die Prägung des Begriffs &amp;quot;[[Rechteausweitung|jailbreak]]&amp;quot;.&amp;lt;ref&amp;gt;{{Literatur |Autor=Cyrus Peikar |Hrsg=O&amp;#039;Reilly Media |Titel=Security Warrior |Datum=2004 |ISBN=0-596-55239-4 |Seiten=304 |Online=https://books.google.de/books?id=LILroPpCP0cC&amp;amp;pg=PT324&amp;amp;dq=chroot+jailbreak&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=nnrzU6jtFMe5igLBnIDwAg&amp;amp;redir_esc=y#v=onepage&amp;amp;q=chroot%20jailbreak&amp;amp;f=false |Abruf=2014-08-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* In [[Solaris (Betriebssystem)|Solaris]] wurde chroot vor Solaris 10 nicht als Sicherheitsfeature bezeichnet und deshalb auch kein Problem darin gesehen, wenn sich ein Programm aus dieser Umgebung „befreien“ kann. Das [[Rechteausweitung|Ausbrechen]] ist sogar explizit dokumentiert. Um Prozesse gegeneinander abzuschotten, gibt es seit dem Jahr 2005 mit Solaris 10 das Konzept der [[Container (Solaris)|Solaris Container]] (auch: &amp;#039;&amp;#039;Zonen&amp;#039;&amp;#039;), das auf &amp;lt;code&amp;gt;[http://www.polarhome.com/service/man/generic.php?qf=chroot&amp;amp;type=2&amp;amp;of=Solaris&amp;amp;sf=2 chroot(2)]&amp;lt;/code&amp;gt; aufbaut und als &amp;quot;chroot on steroids&amp;quot; bezeichnet wurde.&amp;lt;ref&amp;gt;{{Literatur |Autor=Klaus Schmidt |Hrsg=Springer Science &amp;amp; Business Media |Titel=High Availability and Disaster Recovery: Concepts, Design, Implementation |Datum=2006 |ISBN=3-540-34582-5 |Seiten=186 |Online=https://books.google.de/books?id=adU_AAAAQBAJ&amp;amp;pg=PA186&amp;amp;dq=Solaris+Containers+chroot&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=2l32U_eGLdDaoASAlIHYAw&amp;amp;redir_esc=y#v=onepage&amp;amp;q=Solaris%20Containers%20chroot&amp;amp;f=false |Abruf=2014-08-21}}&amp;lt;/ref&amp;gt; In Solaris 10 und späteren Versionen wurden jedoch viele weitere Eigenschaften hinzugefügt und auch Dateisysteme (wie das &amp;#039;&amp;#039;proc&amp;#039;&amp;#039;-Filesystem) explizit gegen chroot gesichert.&amp;lt;ref name=&amp;quot;solaris&amp;quot;&amp;gt;vgl. dazu &amp;lt;code&amp;gt;[http://www.polarhome.com/service/man/generic.php?qf=chroot&amp;amp;type=2&amp;amp;of=Solaris&amp;amp;sf=1m chroot(1m)]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[http://www.polarhome.com/service/man/generic.php?qf=chroot&amp;amp;type=2&amp;amp;of=Solaris&amp;amp;sf=2 chroot(2)]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;[http://www.polarhome.com/service/man/generic.php?qf=fchroot&amp;amp;type=2&amp;amp;of=Solaris&amp;amp;sf=2 fchroot(2)]&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;[http://www.polarhome.com/service/man/generic.php?qf=gchroot&amp;amp;type=2&amp;amp;of=Solaris&amp;amp;sf=1 gchroot(1)]&amp;lt;/code&amp;gt;; abgerufen am 10. April 2014&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Auch unter [[Linux]] wird chroot nicht als Sicherheitsfeature bezeichnet. Wie der Benutzer &amp;#039;&amp;#039;root&amp;#039;&amp;#039; eine chroot-Umgebung verlassen kann, ist in der {{man|2|chroot|gnu||inline}}-Manpage dokumentiert.&lt;br /&gt;
* Ab dem Jahr 2008 können mithilfe der &amp;#039;&amp;#039;LinuX Container&amp;#039;&amp;#039; [[LXC]] virtuelle &amp;quot;user space&amp;quot; Umgebungen mit eigenen [[Prozess (Informatik)|Prozessen]] erschaffen werden, die einen gemeinsamen Linux-Kernel nutzen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=&amp;lt;!--Staff writer(s); no by-line.--&amp;gt; |url=https://sourceforge.net/projects/lxc/files/lxc/ |titel=SourceForge LXC Download Files |werk=sourceforge.net |abruf=2014-08-21}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |autor=Rami Rosen |url=http://www.haifux.org/lectures/320/netLec8_final.pdf |titel=Linux Containers and the Future Cloud |datum=2014-03-26 |format=PDF |abruf=2014-08-21}}&amp;lt;/ref&amp;gt; Auf LXC baut die [[GNU/Linux]]-Software [[Docker (Software)|Docker]] (2013) auf, die Anwendungen mithilfe von Betriebssystemvirtualisierung in [[Virtualisierung (Informatik)#Betriebssystemvirtualisierung mittels OS-Container|Containern]] isoliert.&amp;lt;ref name=&amp;quot;aboutDocker&amp;quot;&amp;gt;{{Internetquelle |url=https://www.docker.com/company/aboutus/ |titel=About Us &amp;amp;#124; Docker |hrsg=Docker Inc. |offline=1 |archiv-url=https://web.archive.org/web/20140718074958/https://www.docker.com/company/aboutus/ |archiv-datum=2014-07-18 |abruf=2014-09-06}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;dockerGitHub&amp;quot;&amp;gt;{{Internetquelle |url=http://www.centurylinklabs.com/what-is-docker-and-when-to-use-it/ |titel=What is Docker and when to use it |hrsg=CenturyLink Innovations Lab |offline=1 |archiv-url=https://web.archive.org/web/20140910195733/http://www.centurylinklabs.com/what-is-docker-and-when-to-use-it/ |archiv-datum=2014-09-10 |abruf=2014-09-09}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsatz ==&lt;br /&gt;
; Rechtetrennung: Ein chroot kann als Vorsorgemaßnahme gegen einen [[Rechteausweitung|Sicherheitsbruch]] eingesetzt werden, indem es einen potentiellen Angreifer daran hindert, mit einem kompromittierten Programm Schaden anzurichten oder das System zu sondieren. Beispielsweise kann ein Dateiserver im Netzwerk das Verzeichnis, aus dem er einen Client bedient, direkt nach der Verbindungsaufnahme chrooten. Einen ähnlichen Ansatz verfolgt der [[Mail Transfer Agent]] [[Postfix (Mail Transfer Agent)|Postfix]], der seine Aufgabe auf mehrere kleine, hintereinander geschaltete Programme aufteilt, die jedes für sich in eigenen Chroots laufen. Ein guter Einsatz ist chroot auch für FTP-Server, damit FTP-User nicht aus ihrem „home“-Verzeichnis in ein anderes Verzeichnis wechseln können.&lt;br /&gt;
; [[Honeypot]]: Ein chroot-Verzeichnis kann so bestückt werden, dass ein echtes System mit Netzwerkdiensten simuliert wird. Der chroot-Mechanismus kann dann Angreifer daran hindern, zu erkennen, dass sie sich in einer künstlichen Umgebung (&amp;quot;jail&amp;quot;)&amp;lt;ref name=&amp;quot;jail1991&amp;quot; /&amp;gt; befinden, oder in das echte System auszubrechen.&lt;br /&gt;
; Testen: Die durch den chroot-Mechanismus erreichte Isolation ist auch zu Testzwecken nützlich. In ein solches Verzeichnis kann eine eigene Kopie des Betriebssystems installiert werden und als Testumgebung für Software dienen, deren Einsatz in einem Produktivsystem zu riskant wäre.&lt;br /&gt;
; Reparatur: Um ein Linux-/Unix-System mit Hilfe einer Boot-CD zu reparieren, kann chroot genutzt werden, um auf dem eingemounteten System zu arbeiten. So kann beispielsweise ein vergessenes Root-Passwort wiederhergestellt werden.&lt;br /&gt;
; Installation eines Betriebssystems: Die Installation einiger Linux-Distributionen ist nur über die Kommandozeile möglich. Deswegen ist es nötig, nach dem Entpacken des Distributionsarchives in eine neue Partition mit chroot die neue Systemumgebung zu betreten.&amp;lt;ref&amp;gt;{{Webarchiv |url=http://www.gentoo.de/doc/de/handbook/handbook-x86.xml?part=1&amp;amp;chap=6#doc_chap1_sect4 |text=Installation des Gentoo Basissystems |wayback=20141222195758}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nachteile ==&lt;br /&gt;
Nur der Benutzer [[Root-Account|root]] kann chroot ausführen. Dies soll normale Benutzer davon abhalten, ein [[setuid]]-Programm innerhalb einer speziell angefertigten Chroot-Umgebung zu platzieren (z.&amp;amp;nbsp;B. mit einer falschen &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;/etc/passwd&amp;lt;/span&amp;gt; Datei), welche es dazu bringen würde, Rechte zu vergeben. Es hindert jedoch auch Nicht-Root-Benutzer an der Verwendung des chroot-Mechanismus, um eine eigene Sandbox zu erstellen.&lt;br /&gt;
&lt;br /&gt;
„schroot“ erlaubt Nutzern ein chroot, „openroot“ stellt viele erweiterte Funktionen zur Verfügung wie etwa X11 Forwarding für GUI-Programme.&lt;br /&gt;
&lt;br /&gt;
Der chroot-Mechanismus selbst ist nicht gänzlich sicher. Wenn ein Programm in einer chroot-Umgebung Root-Rechte besitzt, kann es (unter [[Linux]] oder [[Solaris (Betriebssystem)|Solaris]]) eine verschachtelte chroot-Umgebung verwenden, um aus der ersten auszubrechen.&amp;lt;ref&amp;gt;{{Webarchiv |url=http://www.bpfh.net/simes/computing/chroot-break.html |text=Simon&amp;#039;s computing stuff – How to break out of a chroot() jail |wayback=20160127150916}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da die meisten Unix-Systeme nicht komplett dateisystemorientiert sind, bleiben potenziell gefährliche Funktionalitäten wie die Kontrolle über Netzwerk und Prozesse durch Systemaufrufe einem gechrooteten Programm verfügbar.&lt;br /&gt;
&lt;br /&gt;
Der chroot-Mechanismus selbst verhängt auch keine Einschränkungen über Ressourcen wie I/O-Bandbreite, Plattenplatz oder CPU-Zeit.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[OpenVZ]] – Eine Virtualisierungslösung, die ähnlich wie chroot arbeitet, aber besser abschottet&amp;lt;ref&amp;gt;{{Webarchiv |url=http://blog.robertalks.com/index.php/2009/04/03/xen-vs-openvz |text=xen vs openvz |wayback=20090417055224}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Linux&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* {{man|8|chroot|gnu|einen Befehl oder eine interaktive Shell mit einem speziellen Wurzelverzeichnis ausführen}}&lt;br /&gt;
* {{man|2|chroot|gnu|Wurzelverzeichnis wechseln}}&lt;br /&gt;
* &amp;lt;code&amp;gt;[http://www.elstel.org/xchroot/ xchroot]&amp;lt;/code&amp;gt;: chroot für Benutzer von [[X.Org-Server|Xorg]]/[[X11]] und [[aufs]]/[[UnionFS|unionfs]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Unix&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://www.freebsd.org/cgi/man.cgi?jail%288%29 jail(8)]&amp;lt;/code&amp;gt;: Management von System-&amp;#039;&amp;#039;Jails&amp;#039;&amp;#039; – [[FreeBSD]] Systemverwaltung [[Manpage|Handbuchseite]]&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://www.freebsd.org/cgi/man.cgi?jail%282%29 jail(2)]&amp;lt;/code&amp;gt;: Erzeugung und Management von System-&amp;#039;&amp;#039;Jails&amp;#039;&amp;#039; – [[FreeBSD]] Systemaufruf [[Manpage|Handbuchseite]]&lt;br /&gt;
* {{man|8|chroot|bsd|Wurzelverzeichnis wechseln}} – ([[Unix-Kommando|Systemverwaltung]])&lt;br /&gt;
* {{man|2|chroot|bsd|Wurzelverzeichnis wechseln}} – ([[Systemaufruf]])&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Befehle der GNU core utilities}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:IT-Sicherheit]]&lt;br /&gt;
[[Kategorie:GNU Core Utilities]]&lt;br /&gt;
[[Kategorie:Unix-Software]]&lt;br /&gt;
[[Kategorie:Linux-Software]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;KnightMove</name></author>
	</entry>
</feed>