man chroot (Appels systèmes) - Modifier le répertoire racine.
NOM
chroot - Modifier le répertoire racine.
SYNOPSIS
#include <unistd.h> int chroot (const char *path);
DESCRIPTION
chroot remplace le répertoire racine du processus en cours 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 ayant fait le changement.
Seul le Super-User peut effectuer un changement de répertoire racine.
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 Super-User peut s'évader d'un « piège chroot » en faisant « mkdir foo; chroot foo; cd .. ».
VALEUR RENVOYÉE
chroot renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas 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 :
- EPERM
- L'UID effectif du processus n'est pas nul.
- EFAULT
- path pointe en dehors de l'espace d'adressage accessible.
- 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 n'est pas un répertoire.
- EACCES
- L'accès à un élément du chemin est interdit.
- ELOOP
- path contient une référence circulaire (à travers un lien symbolique) EIO Une erreur d'entrée/sortie de bas-niveau s'est produite.
CONFORMITÉ
SVr4, SVID, 4.4BSD, X/OPEN. Cette fonction n'est pas décrite dans POSIX.1 SVr4 indique des conditions d'erreurs supplémentaires EINTR, ENOLINK et EMULTIHOP. X/OPEN ne décrit pas les erreurs EIO, ENOMEM, et EFAULT.
NOTES
FreeBSD a un appel système jail() plus solide.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.