Linux |
CentOS 4.8 |
|
chroot(2) |
chroot − Modifier le répertoire racine. |
#include <unistd.h> int chroot (const char *path); |
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 ..’. |
chroot renvoie 0 s’il réussit, ou −1 s’il échoue, auquel cas errno contient le code d’erreur. |
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. |
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. |
chdir(2) |
Christophe Blaess, 1997. |
chroot(2) |