Provided by: manpages-fr-dev_4.26.0-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 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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                          chroot(2)