Linux

CentOS 4.8

pivot_root(2)


PIVOT_ROOT

NOM

pivot_root − Modifier le répertoire racine de tous les processus.

SYNOPSIS

#include <unistd.h>

long pivot_root (const char *nouv_rac,const char *put_old);

DESCRIPTION

pivot_root remplace le répertoire racine et le répertoire courant de tous les processus en cours d’exécution (ayant anc_rac comme racine ou répertoire courant) par celui spécifié par le chemin nouv_rac. 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 modifie le répertoire de travail.

VALEUR RENVOYÃE

pivot_root renvoie 0 s’il réussit, ou un code d’erreur négatif s’il échoue.

ERREURS

Suivant le type de système de fichiers, plusieurs erreurs peuvent être renvoyées. Les plus courantes sont les suivantes :

EBUSY

Ressource en cours d’utilisation.

EINVAL

Argument invalide.

EPERM

L’UID effectif du processus n’est pas nul.

ENOENT

Le fichier n’existe pas.

ENOTDIR

Un élément du chemin d’accès n’est pas un répertoire.

CONFORMITÃ

Cet appel-système n’est absolument pas portable et est spécifique à Linux. Vous ne devriez jamais l’employer directement.

DISPONIBILITÃ

Cet appel-système a été ajouté au noyau de Linux au cours du cycle de développement 2.3.xx.

NOTES

Contrairement à chroot (2), pivot_root s’applique à tous les processus. Le répertoire racine et le répertoire courant des processus pour lesquels ceux-ci sont différents de anc_rac ne sont pas modifiés. En effet, s’il a été jugé bon de les modifier (via chroot() et chdir() ), il y a probablement une bonne raison et il serait probablement erroné de les forcer sur un autre répertoire.
Il est possible de spécifier pour nouv_rac un répertoire qui ne soit pas la racine d’un système de fichiers, par exemple, /nfs/ma_rac où /nfs est un point de montage. Il vaut cependant mieux éviter de créer des points de montage non accessibles.

VOIR AUSSI

chdir(2) pivot_root(2)
/usr/src/linux/fs/super.c

TRADUCTION

Thierry Vignaud <tvignaud@mandrakesoft.com>, 2000


pivot_root(2)