Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       chroot - Modifier le répertoire racine

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <unistd.h>

       int chroot(const char *chemin);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consulter
   feature_test_macros(7)) :

       chroot() :
           Depuis la glibc 2.2.2 :
               _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
                   || /* Depuis la glibc 2.20 : */ _DEFAULT_SOURCE
                   || /* glibc <= 2.19 : */ _BSD_SOURCE
           Avant la glibc 2.2.2 :
               none

DESCRIPTION

       chroot() remplace le répertoire racine du processus appelant  par  celui  indiqué  par  le
       chemin chemin. Ce répertoire sera utilisé comme origine des chemins commençant par /. Tous
       les enfants du processus appelant héritent du répertoire racine.

       Seul un processus privilégié (sous Linux : un processus ayant la  capacité  CAP_SYS_CHROOT
       dans son espace de noms d'utilisateur) peut appeler chroot().

       Cet  appel  modifie  un  élément  du  processus  de résolution des chemins et ne fait rien
       d'autre. En particulier, ce n'est pas conçu pour être utilisé à des fins de  sécurité,  ou
       pour  enfermer  totalement  un  processus  ou restreindre les appels système du système de
       fichiers. Autrefois, chroot() était utilisé par des démons pour se  restreindre  avant  de
       passer  des  chemins  fournis  par  des utilisateurs non fiables à des appels système tels
       qu'open(2). Toutefois, si un dossier est déplacé en dehors du nouveau  répertoire  racine,
       un  attaquant  peut  l'exploiter  pour  sortir  lui aussi du nouveau répertoire racine. La
       manière la plus facile de le  faire  est  de  chdir(2)  vers  le  répertoire  à  déplacer,
       d'attendre qu'il soit déplacé et d'ouvrir un chemin comme ../../../etc/passwd.

       Une  variante  légèrement  plus  délicate fonctionne aussi dans certaines circonstances si
       chdir(2) n'a pas les droits. Si un démon  permet  de  spécifier  un  « chroot  directory »
       (nouveau  répertoire  racine),  cela  veut  souvent  dire  que si vous voulez empêcher des
       utilisateurs distants d'accéder à des fichiers à l'extérieur du nouveau répertoire racine,
       vous devez vous assurer que les dossiers n'en sortent jamais.

       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 succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno  est  définie
       pour préciser l'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 La mémoire disponible du noyau n'était pas suffisante.

       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.

STANDARDS

       Aucun

HISTORIQUE

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

NOTES

       Un  processus  enfant  créé  avec  fork(2)  hérite  du répertoire racine de son parent. Le
       répertoire racine n'est pas modifié par un execve(2).

       Le lien symbolique magique, /proc/pid/root, peut être utilisé pour trouver  le  répertoire
       racine d'un processus ; voir proc(5) pour des détails.

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

VOIR AUSSI

       chroot(1), chdir(2), pivot_root(2), path_resolution(7), symlink(7)

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Jean-Philippe  MENGUAL
       <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.