Man page - chroot(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

chroot

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
VOIR AUSSI
TRADUCTION

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 .