Provided by: manpages-de-dev_0.10-1_all bug

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 Die   Sucherlaubnis   auf   einem  Teil  des  Pfad-Präfix  wurde
              verweigert. (Siehe auch path_resolution(7).)

       EFAULT pfad befindet sich außerhalb Ihres verfügbaren Adressbereichs.

       EIO    Es ist ein E/A-Fehler aufgetreten.

       ELOOP  Es wurden zu viele symbolische Verweise bei  der  Auflösung  von
              pfad vorgefunden.

       ENAMETOOLONG
              pfad ist zu lang.

       ENOENT Die Datei existiert nicht.

       ENOMEM Es war zu wenig Kernelspeicher verfügbar.

       ENOTDIR
              Ein Teil von pfad ist kein gültiges 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.32   des   Projekts
       Linux-man-pages.  Eine Beschreibung des Projekts und Informationen, wie
       Fehler    gemeldet     werden     können,     finden     sich     unter
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite wurde von Ralf Demmer
       <rdemmer@rdemmer.de> und Chris Leick <c.leick@vollbio.de> 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>.