Manpages

NOM

nsenter - Exécuter un programme avec les espaces de noms d’autres processus

SYNOPSIS

nsenter [options] [programme [arguments]]

DESCRIPTION

Entrer dans les espaces de noms d’un ou plusieurs processus puis exécuter le programme indiqué. Si programme n’est pas renseigné, « ${SHELL} » est utilisé (par défaut : /bin/sh).

Les espaces de noms où l’entrée est possible sont :
espace de noms de montage

Les montage et démontage de systèmes de fichiers n’affecteront pas le reste du système, sauf pour les systèmes de fichiers explicitement marqués comme partagés (avec mount --make-shared, consultez /proc/self/mountinfo pour l’attribut shared). Pour plus de détails, voir mount_namespaces(7) et l’explication du drapeau CLONE_NEWNS dans clone(2).

espace de noms UTS

La configuration du nom d’hôte ou du nom de domaine n’affectera pas le reste du système. Pour de plus amples détails, consulter namespaces(7) et l’explication du drapeau CLONE_NEWUTS dans clone(2).

espace de noms IPC

Le processus aura un espace de noms indépendant pour les files de messages POSIX et System V, les ensembles de sémaphores et les segments de mémoire partagée (attribut CLONE_NEWIPC). Pour plus de détails, voir namespaces(7) et l’explication sur le drapeau CLONE_NEWIPC dans clone(2).

espace de noms réseau

Le processus aura les piles IPv4 et IPv6, les tables de routage IP, les règles de pare-feu, les arborescences des répertoires /proc/net et /sys/class/net, les sockets, etc., indépendantes (attribut CLONE_NEWNET). Pour plus de détails, voir namespaces(7) et l’explication sur le drapeau CLONE_NEWNET dans clone(2).

espace de noms PID

Les enfants auront un ensemble de PID pour traiter les projections séparément du processus nsenter. nsenter forkera par défaut en cas de modification de l’espace de noms PID, de telle sorte que le nouveau programme et ses enfants partagent le même espace de noms PID et soient mutuellement visibles. Si --no-fork est utilisé, le nouveau programme sera exécuté sans forker. Pour plus de détails, voir pid_namespaces(7) et l’explication du drapeau CLONE_NEWPID.

espace de noms utilisateur

Le processus aura un ensemble propre d’UID, de GID et de capacités. Pour de plus amples détails, consulter user_namespaces(7) et l’explication du drapeau CLONE_NEWUSER dans clone(2).

espace de noms de groupe de contrôle

Le processus aura une vue virtualisée de /proc/self/cgroup, et les nouveaux montages de groupe de contrôle auront pour racine celle du groupe de contrôle d’espace de noms. Pour de plus amples détails, consulter cgroup_namespaces(7) et l’explication du drapeau CLONE_NEWCGROUP dans clone(2).

Consultez clone(2) pour les sémantiques exactes des attributs.

OPTIONS

Plusieurs parmi les options ci-dessous, liées aux espaces de noms, ont un paramètre fichier facultatif. Il doit s’agir d’un des fichiers de /proc/[pid]/ns/* décrits dans namespaces(7).
-a
, --all

Entrer tous les espaces de noms du processus cible par les chemins de noms par défaut /proc/[pid]/ns/*. Les chemins par défaut des noms d’espaces des processus cibles peuvent être remplacés grâce à des options spécifiques aux espaces de noms (comme --all --mount=[chemin]).

L’espace de noms de l’utilisateur sera ignoré s’il est identique à l’espace de noms actuel de l’appelant. Cela empêche un appelant qui a perdu ses capacités de les retrouver à l’aide d’un appel à setns(). Voir setns(2) pour plus de détails.

-t, --target PID

Indiquer un processus cible duquel obtenir les contextes. Les chemins vers les contextes indiqués par PID sont respectivement :

/proc/PID/ns/mnt

l’espace de noms de montage ;

/proc/PID/ns/uts

l’espace de noms UTS ;

/proc/PID/ns/ipc

l’espace de noms IPC ;

/proc/PID/ns/net

l’espace de noms réseau ;

/proc/PID/ns/pid

l’espace de noms PID ;

/proc/PID/ns/user

l’espace de noms utilisateur ;

/proc/pid/ns/cgroup

l’espace de noms de groupe de contrôle ;

/proc/PID/root

le répertoire racine ;

/proc/PID/cwd

le répertoire de travail.

-m, --mount[=fichier]

Entrer dans l’espace de noms de montage. Si aucun fichier n’est indiqué, entrer dans l’espace de noms de montage du processus cible. Si fichier est indiqué, entrer dans l’espace de noms de montage indiqué par fichier.

-u, --uts[=fichier]

Entrer dans l’espace de noms UTS. Si aucun fichier n’est indiqué, entrer dans l’espace de noms UTS du processus cible. Si fichier est indiqué, entrer dans l’espace de noms UTS indiqué par fichier.

-i, --ipc[=fichier]

Entrer dans l’espace de noms IPC. Si aucun fichier n’est indiqué, entrer dans l’espace de noms IPC du processus cible. Si fichier est indiqué, entrer dans l’espace de noms IPC indiqué par fichier.

-n, --net[=fichier]

Entrer dans l’espace de noms réseau. Si aucun fichier n’est indiqué, entrer dans l’espace de noms réseau du processus cible. Si fichier est indiqué, entrer dans l’espace de noms réseau indiqué par fichier.

-p, --pid[=fichier]

Entrer dans l’espace de noms PID. Si aucun fichier n’est indiqué, entrer dans l’espace de noms PID du processus cible. Si fichier est indiqué, entrer dans l’espace de noms PID indiqué par fichier.

-U, --user[=fichier]

Entrer dans l’espace de noms utilisateur. Si aucun fichier n’est indiqué, entrer dans l’espace de noms utilisateur du processus cible. Si fichier est indiqué, entrer dans l’espace de noms utilisateur indiqué par fichier. Consultez aussi les options --setuid et --setgid.

-C, --cgroup[=fichier]

Entrer dans l’espace de noms de groupe de contrôle. Si aucun fichier n’est indiqué, entrer dans l’espace de noms de montage du processus cible. Si fichier est indiqué, entrer dans l’espace de noms de groupe de contrôle indiqué par fichier.

-G, --setgid GID

Définir l’identifiant de groupe qui sera utilisé dans l’espace de noms entré et supprimer les groupes additionnels. nsenter(1) définit toujours le GID pour les espaces de noms utilisateur, 0 par défaut.

-S, --setuid UID

Définir l’identifiant d’utilisateur qui sera utilisé dans l’espace de noms entré. nsenter(1) définit toujours l’UID pour les espaces de noms utilisateur, 0 par défaut.

--preserve-credentials

Ne pas modifier les UID et GID en entrant dans un espace de noms utilisateur. Le comportement par défaut est de supprimer les groupes additionnels et de définir les GID et UID à 0.

-r, --root[=répertoire]

Définir le répertoire racine. Si aucun répertoire n’est indiqué, définir le répertoire racine au répertoire racine du processus cible. Si répertoire est indiqué, définir le répertoire racine au répertoire indiqué.

-w, --wd[=répertoire]

Définir le répertoire de travail. Si aucun répertoire n’est indiqué, définir le répertoire de travail au répertoire racine du processus cible. Si répertoire est indiqué, définir le répertoire de travail au répertoire indiqué.

-F, --no-fork

Ne pas forker avant d’exécuter le programme indiqué. Par défaut, en entrant dans un espace de noms PID, nsenter appelle fork avant d’appeler exec de telle sorte que tous les enfants soient aussi dans l’espace de noms PID nouvellement entré.

-Z, --follow-context

Définir le contexte de sécurité SELinux utilisé pour exécuter un nouveau processus en fonction de processus déjà en cours spécifiés avec --target PID (util-linux doit être compilé avec la prise en charge de SELinux, sans quoi l’option n’est pas disponible).

-V, --version

Afficher le nom et la version du logiciel et quitter.

-h, --help

Afficher l’aide-mémoire puis quitter.

VOIR AUSSI

clone(2), setns(2), namespaces(7)

AUTEURS

biederm [AT] xmission.com">Eric Biederman
kzak [AT] redhat.com">Karel Zak

DISPONIBILITÉ

La commande nsenter fait partie du paquet util-linux, elle est disponible sur https://www.kernel.org/pub/linux/utils/util-linux/">l’archive du noyau Linux.

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <ccb [AT] club-internet.fr>, Michel Quercia <quercia AT cal DOT enst DOT fr>, Thierry Vignaud <tvignaud [AT] mandriva.com>, Frédéric Delanoy <delanoy_f [AT] yahoo.com>, Thierry Vignaud <tvignaud [AT] mandriva.com>, Christophe Sauthier <christophe [AT] sauthier.com>, Sébastien Blanchet, Jérôme Perzyna <jperzyna [AT] yahoo.fr>, Aymeric Nys <aymeric AT nnx POINT com>, Alain Portal <aportal [AT] univ-montp2.fr>, Thomas Huriaux <thomas.huriaux [AT] gmail.com>, Yves Rütschlé <l10n [AT] rutschle.net>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon [AT] wanadoo.fr>, Julien Cristau <jcristau [AT] debian.org>, Philippe Piette <foudre-blanche [AT] skynet.be>, Jean-Baka Domelevo-Entfellner <domelevo [AT] gmail.com>, Nicolas Haller <nicolas [AT] boiteameuh.org>, Sylvain Archenault <sylvain.archenault [AT] laposte.net>, Valéry Perrin <valery.perrin.debian [AT] free.fr>, Jade Alglave <jade.alglave [AT] ens-lyon.org>, Nicolas François <nicolas.francois [AT] centraliens.net>, Alexandre Kuoch <alex.kuoch [AT] gmail.com>, Lyes Zemmouche <iliaas [AT] hotmail.fr>, Florentin Duneau <fduneau [AT] gmail.com>, Alexandre Normand <aj.normand [AT] free.fr>, David Prévot <david [AT] tilapin.org> et Jean-Philippe MENGUAL <jpmengual [AT] 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 [AT] lists.org>.