table of contents
other versions
- jessie 1.8-1
- stretch 1.22-1
- testing 2.11-1
- stretch-backports 2.11-1~bpo9+2
- unstable 2.12-1
other sections
CHROOT(2) | Linux-Programmierhandbuch | CHROOT(2) |
BEZEICHNUNG¶
chroot - Wurzelverzeichnis wechselnÜBERSICHT¶
#include <unistd.h> int chroot(const char *pfad);Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
chroot():
- Seit Glibc 2.2.2:
-
_BSD_SOURCE || (_XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
-
Bis Glibc 2.2.2: Keine -
BESCHREIBUNG¶
chroot() wechselt das Wurzelverzeichnis des aufrufenden Prozesses in das durch pfad festgelegte. Dieses Verzeichnis wird für Pfadnamen verwendet, die mit / beginnen. Das Wurzelverzeichnis wird an alle Kindprozesse des aufrufenden Prozesses vererbt. Nur ein privilegierter Prozess kann chroot() aufrufen (Linux: einer mit der Fähigkeit CAP_SYS_CHROOT). Dieser Aufruf ändert einen Bestandteil des Pfadauflösungsprozesses und tut sonst nichts. Dieser Aufruf ändert nicht das aktuelle Arbeitsverzeichnis, so dass sich ' .' nach dem Aufruf außerhalb des Baums mit der Wurzel bei ' /' befinden kann. Insbesondere kann der Superuser dem »chroot-Gefängnis« entfliehen wie folgt:mkdir foo; chroot foo; cd ..Dieser Aufruf schließt keine gesöffneten Datei-Deskriptoren. Solche Datei-Deskriptoren könnten Zugriff auf Dateien außerhalb des Chroot-Baumes gewähren.
RÜCKGABEWERT¶
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.FEHLER¶
In Abhängigkeit vom Dateisystem können andere Fehlerwerte zurückgegeben werden. Die häufigsten Fehler sind hier aufgelistet:- EACCES
- Eine Komponente des Pfad-Präfix darf nicht durchsucht werden. (Siehe auch path_resolution(7).)
- EFAULT
- path zeigt aus dem für Sie zugänglichen Adressraum heraus.
- EIO
- Es ist ein E/A-Fehler (engl. I/O) aufgetreten.
- ELOOP
- Bei der Auflösung von path wurden zu viele symbolische Links gefunden.
- ENAMETOOLONG
- path ist zu lang.
- ENOENT
- Die Datei existiert nicht.
- ENOMEM
- Es war nicht genügend Kernel-Speicher verfügbar.
- ENOTDIR
- Eine Komponente von path ist kein Verzeichnis.
- EPERM
- Der Aufrudende verfügt nicht über ausreichende Privilegien
KONFORM ZU¶
SVr4, 4.4BSD, SUSv2 (als ALTLAST markiert). Diese Funktion ist nicht Teil von POSIX.1-2001.ANMERKUNGEN¶
Ein Kindprozess, der mit fork(2) erstellt wurde, erbt das Wurzelverzeichnis seines Elternprozesses. Das Wurzelverzeichnis wird von execve(2) unverändert gelassen. FreeBSD verfügt über einen stärkeren Systemaufruf: jail().SIEHE AUCH¶
chdir(2), path_resolution(7)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.74 des Projekts Linux- man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter http://www.kernel.org/doc/man-pages/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer <rdemmer@rdemmer.de>, Chris Leick <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.20. September 2010 | Linux |