Loading

NOM

       chroot - Modifier le répertoire racine

SYNOPSIS

       #include <unistd.h>

       int chroot(const char *path);

       chroot()  remplace le répertoire racine du processus appelant par celui
       spécifié par le chemin path. Ce répertoire sera utilisé  comme  origine
       des  chemins commençant par /. Le répertoire racine est hérité par tous
       les enfants du processus appelant.

       Seul un processus  privilégié  (sous  Linux :  un  processus  ayant  la
       capacité CAP_SYS_CHROOT) peut appeler chroot().

       Cette  fonction change un des ingrédients de l’algorithme de résolution
       des chemins, et ne modifie rien d’autre.

       Notez que cet appel système ne modifie pas le  répertoire  de  travail,
       aussi  « . »  peut se retrouver en‐dehors de l’arbre dont la racine est
       «/ ». En particulier, le superutilisateur peut  s’évader  d’un  « piège
       chroot » en faisant :

           mkdir foo; chroot foo; cd ..

       Cet   appel   ne  ferme  aucun  descripteur  de  fichier,  et  de  tels
       descripteurs peuvent permettre un accès à des fichiers hors de  l’arbre
       dont la racine est le nouveau « / ».

VALEUR RENVOYÉE

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

ERREURS

       Suivant le type de système de fichiers, plusieurs erreurs peuvent  être
       renvoyées. Les plus courantes sont les suivantes :

       EACCES L’accès  à  un  élément  du  chemin  est  interdit.  (Voir aussi
              path_resolution(7).)

       EFAULT path pointe en dehors de l’espace d’adressage accessible.

       EIO    Une erreur d’entrée-sortie s’est produite.

       ELOOP  path contient  une  référence  circulaire  (à  travers  un  lien
              symbolique)

       ENAMETOOLONG
              path est trop long.

       ENOENT Le fichier n’existe pas.

       ENOMEM Pas assez de mémoire pour le noyau.

       ENOTDIR
              Un élément du chemin d’accès path n’est pas un répertoire.

       EPERM  L’appelant n’a pas les privilèges suffisants.

CONFORMITÉ

       SVr4, BSD 4.4, SUSv2 (considéré comme historique). Cette fonction n’est
       pas décrite dans POSIX.1-2001.

NOTES

       Un processus fils créé avec fork(2) hérite du répertoire racine de  son
       père. Le répertoire racine n’est pas modifié par un execve(2).

       FreeBSD a un appel système jail() plus solide.

VOIR AUSSI

       chdir(2), path_resolution(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».