Provided by: manpages-de-dev_1.11-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 Capability CAP_SYS_CHROOT).

       Dieser  Aufruf  ändert  nur  eine  Komponente  im  Prozess der Auflösung des Pfadnamens. Er ist weder für
       irgendwelche  Sicherheitsbelange  gedacht  noch  für  das  Sandboxing  eines  Prozesses  oder   für   die
       Einschränkung  von  auf  das  Dateisystem  bezogene  Systemaufrufe. Früher wurde chroot() tatsächlich von
       Hintergrunddiensten vor der Übergabe von Pfaden durch nicht vertrauenswürdige Benutzer  an  Systemaufrufe
       wie  open(2)  genutzt.  Wie  auch immer, wenn ein Verzeichnis an Orte außerhalb des Chroot-Verzeichnisses
       verschoben wird, dann kann  ein  Angreifer  dies  ausnutzen,  um  ebenso  aus  diesem  auszubrechen.  Der
       einfachste  Weg  dahin  ist,  mit  chdir(2)  in  das  zu  verschiebende  Verzeichnis zu wechseln, auf die
       Verschiebung zu warten und dann einen Pfad wie ../../../etc/passwd zu öffnen.

       Eine etwas ausgefeiltere Version kann unter bestimmten Umständen auch funktionieren, wenn die  Verwendung
       von  chdir(2)  nicht  möglich  ist.  Wenn  ein Hintergrunddienst die Angabe eines »Chroot-Verzeichnisses«
       ermöglicht, bedeutet das meist: Wenn Sie entfernte Benutzer daran hindern wollen, auf  Dateien  außerhalb
       des   Chroot-Verzeichnisses   zuzugreifen,   dürfen   Verzeichnisse   niemals   an   Orte  außerhalb  des
       Root-Verzeichnisses verschoben werden.

       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  4.04  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>.

Linux                                             23. Juli 2015                                        CHROOT(2)