.\" -*- coding: UTF-8 -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UNSHARE 1 "Février 2016" util\-linux "Commandes de l'utilisateur" .SH NOM unshare – Exécuter un programme dans de nouveaux espaces de noms .SH SYNOPSIS \fBunshare\fP [\fIoptions\fP] [\fIprogramme\fP [\fIarguments\fP]] .SH DESCRIPTION La commande \fBunshare\fP crée de nouveaux espaces de noms (comme précisé par les options de ligne de commande décrites ci\-après) puis exécute le \fIprogramme\fP indiqué. Si \fIprogramme\fP n’est pas fourni, alors \fI${SHELL}\fP est exécuté (par défaut\ : \fI/bin/sh\fP). .PP Par défaut, un nouvel espace de noms subsiste aussi longtemps qu’il possède des processus membres. Un nouvel espace de noms peut être rendu persistant, même s’il ne possède pas de membres, par montage lié (bind) des fichiers \fI/proc/pid/ns/type\fP vers un chemin de système de fichiers. Un espace de noms qui a été rendu persistant de cette façon peut ensuite être entré avec \fB\%nsenter\fP(1) même après que le \fIprogramme\fP soit terminé (excepté les espaces de noms PID où l’exécution permanente de processus init est nécessaire). Une fois qu’un \%espace de noms n’est plus nécessaire, il peut être rendu temporaire avec \fBumount\fP(8) pour supprimer le montage lié. Consulter la section \fBEXEMPLES\fP pour plus de détails. .PP \fBunshare\fP depuis la version\ 2.36 d’util\-linux utilise les fichiers \fI/proc/[pid]/ns/pid_for_children\fP et \fI/proc/[pid]/ns/time_for_children\fP pour des espace de noms persistants PID et temps. Cette modification nécessite un noyau Linux version\ 4.17 ou plus récent. .PP Les types d’espace de noms suivants peuvent être créés avec \fBunshare\fP\ : .TP \fBespace de noms de montage\fP Le montage et démontage de systèmes de fichiers n'affectera pas le reste du système, sauf pour les systèmes de fichiers explicitement marqués comme partagés (avec \fBmount \-\-make\-shared\fP, consultez \fI/proc/self/mountinfo\fP ou \fBfindmnt \-o+PROPAGATION\fP pour les drapeaux \fBshared\fP). Pour de plus amples détails, consulter \fBmount_namespaces\fP(7) et l’explication du drapeau \fBCLONE_NEWNS\fP dans \fBclone\fP(2). .IP \fBunshare\fP, depuis util\-linux version\ 2.27, règle automatiquement la propagation à \fBprivate\fP dans un nouvel espace de noms montage pour assurer que celui\-ci soit vraiment isolé. Il est possible de désactiver cette caractéristique avec l’option \fB\-\-propagation unchanged\fP. Remarquez que \fBprivate\fP est le comportement par défaut du noyau. .TP \fBespace de noms UTS\fP 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 \fButs_namespaces\fP(7). .TP \fBespace de noms IPC\fP Le processus aura un nom d'espace indépendant pour les files de messages POSIX ainsi que pour les files de \%messages de System\ V, les ensembles de sémaphores et les segments de mémoire partagée. Pour de plus amples détails, consulter \fBipc_namespaces\fP(7). .TP \fBespace de noms réseau\fP Le processus aura des piles IPv4 et IPv6, des tables de routage IP, des règles de pare\-feu, les arborescences de répertoires \fI/proc/net\fP et \fI/sys/class/net\fP, des sockets,\ etc., indépendantes. Pour de plus amples détails, consulter \fBnamespaces\fP(7). .TP \fBespace de noms PID\fP Les enfants auront un ensemble distinct de mises en correspondance de PID à traiter de celui de leur parent. Pour de plus amples détails, consulter \fBpid_namespaces\fP(7). .TP \fBespace de noms de groupe de contrôle\fP Le processus aura une vue virtualisée de \fI/proc\:/self\:/cgroup\fP, 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 \fBcgroup_namespaces\fP(7). .TP \fBespace de noms utilisateur\fP Le processus aura un ensemble propre d’UID, de GID et de capacités. Pour de plus amples détails, consulter \fBuser_namespaces\fP(7). .TP \fBespace de noms temps\fP Le processus peut avoir une vue distincte de \fBCLOCK_MONOTONIC\fP ou \fBCLOCK_BOOTTIME\fP qui peut être modifiée avec \fI/proc/self/timens_offsets\fP. Pour de plus amples détails, consulter, see \fBtime_namespaces\fP(7). .SH OPTIONS .TP \fB\-i\fP,\fB \-\-ipc\fP[\fB=\fP\fIfichier\fP] Isoler l’espace de noms IPC. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. .TP \fB\-m\fP,\fB \-\-mount\fP[\fB=\fP\fIfichier\fP] Isoler l’espace de noms montage. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. Remarquez que \fIfichier\fP doit être situé sur le système de fichiers avec le drapeau de propagation n’est pas \fBshared\fP (ou une erreur survient). Utilisez la commande \fBfindmnt \-o+PROPAGATION\fP si vous n’êtes pas sûr du réglage en cours. Consulter les exemples ci\-dessous. .TP \fB\-n\fP,\fB \-\-net\fP[\fB=\fP\fIfichier\fP] Isoler l’espace de noms réseau. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. .TP \fB\-p\fP,\fB \-\-pid\fP[\fB=\fP\fIfichier\fP] Isoler l'espace de noms PID. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. (La création d’un espace de noms PID persistant échouera si l’option \fB\-\-fork\fP n’est pas aussi précisée.) .IP Consulter aussi les options \fB\-\-fork\fP et \fB\-\-mount\-proc\fP. .TP \fB\-u\fP,\fB \-\-uts\fP[\fB=\fP\fIfichier\fP] Isoler l’espace de noms UTS. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. .TP \fB\-U\fP,\fB \-\-user\fP[\fB=\fP\fIfichier\fP] Isoler l’espace de noms utilisateur. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. .TP \fB\-C\fP,\fB \-\-cgroup\fP[\fB=\fP\fIfichier\fP] Isoler l’espace de noms groupe de contrôle. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. .TP \fB\-T\fP,\fB \-\-time\fP[\fB=\fP\fIfichier\fP] Isoler l'espace de noms temps. Si \fIfichier\fP est indiqué, alors un espace de noms persistant est créé par un montage lié. Les options \fB\-\-monotonic\fP et \fB\-\-boottime\fP peuvent être utilisées pour les décalages correspondants dans l’espace de noms temps. .TP \fB\-f\fP,\fB \-\-fork\fP Fourcher le \fIprogramme\fP indiqué comme processus enfant de \fBunshare\fP plutôt que de l’exécuter directement. Cela est utile lors de la création d’un nouvel espace de noms PID. Il est à remarquer que quand \fBunshare\fP est en attente d’un processus enfant, alors il ignore \fBSIGINT\fP et \fBSIGTERM\fP et ne transmet aucun signal à l’enfant. Cela est nécessaire pour envoyer des signaux au processus enfant. .TP \fB\-\-keep\-caps\fP Quand l’option \fB\-\-user\fP est fournie, garantir que les capacités octroyées dans l’espace de noms utilisateur soient conservées dans le processus enfant. .TP \fB\-\-kill\-child\fP[\fB=\fP\fInom_de_signal\fP] À la fin de \fBunshare\fP, envoyer un \fInom_signal\fP au processus enfant forké. Combiné avec \fB\-\-pid\fP, cela permet une extinction aisée et fiable de l’arbre entier de processus sous \fBunshare\fP. S’il n’est pas donné, \fInom_signal\fP est par défaut \fBSIGKILL\fP. Cela suppose \fB\-\-fork\fP. .TP \fB\-\-mount\-proc\fP[\fB=\fP\fIpoint_de_montage\fP] Juste avant d’exécuter le programme, monter le système de fichiers proc sur \fIpoint_de_montage\fP (\fI/proc\fP par défaut). C’est utile lors de la création d’un nouvel espace de noms PID. Cela implique aussi la création d’un nouvel espace de noms montage, sinon le montage de \fI/proc\fP perturberait les programmes existants sur le système. Le nouveau système de fichiers proc est explicitement monté comme privé (par MS_PRIVATE|MS_REC). .TP \fB\-\-map\-user=\fP\fIuid|nom\fP Exécuter le programme seulement après que les ID effectifs des utilisateurs actuels soient mappés à \fIuid\fP. Si cette option est indiquée plusieurs fois, la dernière occurrence prévaudra. Cette option implique \fB\-\-user\fP. .TP \fB\-\-map\-group=\fP\fIgid|nom\fP Exécuter le programme seulement après que les ID effectifs des groupes actuels soient mappés à \fIgid\fP. Si cette option est indiquée plusieurs fois, la dernière occurrence prévaudra. Cette option suppose \fB\-\-setgroups=deny\fP et \fB\-\-user\fP. .TP \fB\-r\fP,\fB \-\-map\-root\-user\fP Exécuter le programme seulement après que les identifiants d’utilisateur et de groupe effectifs ont été mis en correspondance avec les UID et GID du superutilisateur dans l’espace de noms utilisateur nouvellement créé. Cela permet d’obtenir facilement les capacités nécessaires pour gérer divers aspects des espaces de noms nouvellement créés (comme la configuration d’interfaces dans l’espace de noms réseau ou le montage des systèmes de fichiers dans l’espace de noms montage) même lors d’une exécution ordinaire. En tant que fonctionnalité surtout pratique, elle ne permet pas des cas d’utilisation plus sophistiqués comme la mise en correspondance de plusieurs intervalles d’UID et GID. Cette option implique \fB\-\-setgroups=deny\fP et \fB\-\-user\fP. Cette option est équivalente à \fB\-\-map\-user=0 \-\-map\-group=0\fP. .TP \fB\-c\fP,\fB \-\-map\-current\-user\fP Exécuter le programme seulement après que les ID effectifs des utilisateurs et des groupes actuels sont mappés aux mêmes UID et GID dans l’espace de noms nouvellement créé. Cette option suppose \fB\-\-setgroups=deny\fP et \fB\-\-user\fP. Cette option est équivalente à \fB\-\-map\-user=$(id \-ru) \-\-map\-group=$(id \-rg)\fP. .TP \fB\-\-propagation private\fP|\fBshared\fP|\fBslave\fP|\fBunchanged\fP De manière récursive, régler le drapeau de propagation de montage dans le nouvel espace de noms montage. Le comportement par défaut est de régler la propagation à \fIprivate\fP. Il est possible de désactiver cette caractéristique avec l’argument \fBunchanged\fP. Cette option est ignorée silencieusement quand l’espace de noms montage (\fB\-\-mount\fP) n’est pas nécessaire. .TP \fB\-\-setgroups allow\fP|\fBdeny\fP Permettre ou interdire l’appel système \fBsetgroups\fP(2) dans les espaces de noms utilisateur. .sp Pour pouvoir appeler \fBsetgroups\fP(2), le processus appelant doit au moins avoir CAP_SETGID. Mais depuis Linux\ 3.19, une restriction supplémentaire est appliquée\ : le noyau accorde la permission à l’appel \fB\%setgroups\fP(2) seulement après que le mappage de GID (\fB/proc/\fP\fIpid\fP\fB/gid_map\fP) a été réglé. La carte de correspondances de GID peut être écrite par le superutilisateur quand \fB\%setgroups\fP(2) est activé (c'est\-à\-dire, \fBallow\fP, le comportement par défaut), et la carte de GID peut être écrite par des processus normaux quand \fB\%setgroups\fP(2) est désactivé de façon permanente (avec \fBdeny\fP). .TP \fB\-R\fP, \fB\-\-root=\fP\fIrépertoire\fP Exécuter la commande avec le répertoire racine défini à \fIrépertoire\fP. .TP \fB\-w\fP, \fB\-\-wd=\fP\fIrépertoire\fP Changer le répertoire de travail à \fIrépertoire\fP. .TP \fB\-S\fP, \fB\-\-setuid\fP \fIUID\fP Définir l’identifiant d’utilisateur qui sera utilisé dans l’espace de noms saisi. .TP \fB\-G\fP, \fB\-\-setgid\fP \fIGID\fP Définir l’identifiant de groupe qui sera utilisé dans l’espace de noms saisi et abandonner les autres groupes. .TP \fB\-\-monotonic\fP\fI décalage\fP Régler le décalage de \fBCLOCK_MONOTONIC\fP qui sera utilisé dans l’espace de noms temps saisi. Cette option nécessite de ne plus partager un espace de noms temps avec \fB\-\-time\fP. .TP \fB\-\-boottime\fP\fI décalage\fP Régler le décalage de \fBCLOCK_BOOTTIME\fP qui sera utilisé dans l’espace de noms temps saisi. Cette option nécessite de ne plus partager un espace de noms temps avec \fB\-\-time\fP. .TP \fB\-V\fP, \fB\-\-version\fP Afficher le nom et la version du logiciel et quitter. .TP \fB\-h\fP, \fB\-\-help\fP Afficher l’aide\-mémoire puis quitter. .SH NOTES Les systèmes de fichiers proc et sysfs montés comme racine dans un espace de noms utilisateur doivent être restreints de façon qu’un utilisateur moins privilégié ne puisse avoir davantage d’accès aux fichiers sensibles qu’un utilisateur plus privilégié aurait rendus indisponibles. En bref, la règle pour proc et sysfs est aussi près que possible d’un montage lié. .SH EXEMPLES La commande suivante crée un espace de noms PID, en utilisant \fB\-\-fork\fP pour garantir que l’exécution de la commande est réalisée dans un processus enfant qui (étant le premier processus dans l’espace de noms) a le PID\ 1. L’option \fB\-\-mount\-proc\fP assure que le nouvel espace de noms montage est aussi créé simultanément et qu’un nouveau système de fichiers \fBproc\fP(5) est monté contenant une information correspondant au nouvel espace de noms PID. Quand la commande \fBreadlink\fP se termine, les nouveaux espaces de noms sont automatiquement détruits. .PP .in +4n .EX \fB# unshare \-\-fork \-\-pid \-\-mount\-proc readlink /proc/self\fP 1 .EE .in .PP En tant qu’utilisateur ordinaire, créer un nouvel espace de noms où les accréditations sont mappées à l’ID racine à l’intérieur de l’espace de noms\ : .PP .in +4n .EX \fB$ id \-u; id \-g\fP 1000 1000 \fB$ unshare \-\-user \-\-map\-root\-user \e\fP \fBsh \-c \(aqwhoami; cat /proc/self/uid_map /proc/self/gid_map\(aq\fP root 0 1000 1 0 1000 1 .EE .in .PP La première des commandes suivantes crée un nouvel espace de noms UTS persistant et modifie le nom d’hôte tel que vu dans cet espace de noms. L’espace de noms est alors saisi avec \fBnsenter\fP(1) dans le but d’afficher le nom d’hôte modifié. Cette étape montre que l’espace de noms UTS continue d’exister même si l’espace de noms n’a pas de processus membre après que la commande \fBunshare\fP ait terminé. L’espace de noms est alors détruit en retirant le montage lié. .PP .in +4n .EX \fB# touch /root/uts\-ns\fP \fB# unshare \-\-uts=/root/uts\-ns hostname TOTO\fP \fB# nsenter \-\-uts=/root/uts\-ns hostname\fP TOTO \fB# umount /root/uts\-ns\fP .EE .in .PP Les commandes suivantes établissent un espace de noms montage permanent référencé par le montage lié \fI/root/namespaces/mnt\fP. Dans le but d’assurer que la création de ce montage lié soit une réussite, le répertoire parent (\fI/root/namespaces\fP) est transformé en montage lié dont le type de propagation n’est pas \fBshared\fP. .PP .in +4n .EX \fB# mount \-\-bind /root/namespaces /root/namespaces\fP \fB# mount \-\-make\-private /root/namespaces\fP \fB# touch /root/namespaces/mnt\fP \fB# unshare \-\-mount=/root/namespaces/mnt\fP .EE .in .PP Les commandes suivantes montrent l’utilisation de l’option \fB\-\-kill\-child\fP lors de la création d’espace de noms PID, dans le but d’assurer que lorsque \fBunshare\fP est tué, tous les autres processus dans l’espace de noms PID soient tués. .PP .in +4n .EX \fB# set +m \fP# Ne pas imprimer les messages d’état de travaux \fB# unshare \-\-pid \-\-fork \-\-mount\-proc \-\-kill\-child \-\- \e\fP \fBbash \-\-norc \-c \(aq(sleep 555 &) && (ps a &) && sleep 999\(aq &\fP [1] 53456 # PID TTY STAT TIME COMMAND 1 pts/3 S+ 0:00 sleep 999 3 pts/3 S+ 0:00 sleep 555 5 pts/3 R+ 0:00 ps a \fB# ps h \-o 'comm' $! \fP# Montrer que le dorsal de travail est unshare(1) unshare \fB# kill $! \fP# Tuer unshare(1) \fB# pidof sleep\fP .EE .in .PP La commande \fBpidof\fP n’affiche rien car le processus \fBsleep\fP a été tué. Plus précisément, quand le processus \fBsleep\fP ayant le PID\ 1 dans l’espace de noms (c'est\-à\-dire, le processus init de l’espace de noms) a été tué, cela a entrainé que tous les autres processus soient tués. En revanche, une série de commandes similaires où l’option \fB\-\-kill\-child\fP n’est pas utilisée montre que quand \fBunshare\fP se termine, les processus dans l’espace de noms PID ne sont pas tués\ : .PP .in +4n .EX \fB# unshare \-\-pid \-\-fork \-\-mount\-proc \-\- \e\fP \fBbash \-\-norc \-c \(aq(sleep 555 &) && (ps a &) && sleep 999\(aq &\fP [1] 53479 # PID TTY STAT TIME COMMAND 1 pts/3 S+ 0:00 sleep 999 3 pts/3 S+ 0:00 sleep 555 5 pts/3 R+ 0:00 ps a \fB# kill $!\fP \fB# pidof sleep\fP 53482 53480 .EE .in .PP L’exemple suivant montre la création d’un espace de noms temps où l’horloge «\ boottime\ » est réglée à un point plusieurs années en arrière\ : .PP .in +4n .EX \fB# uptime \-p \fP# Afficher le temps de fonctionnement # dans l’espace de noms temps initial up 21 hours, 30 minutes \fB# unshare \-\-time \-\-fork \-\-boottime 300000000 uptime \-p\fP up 9 years, 28 weeks, 1 day, 2 hours, 50 minutes .EE .in .SH AUTEURS .UR dottedmag@dottedmag.net Mikhail Gusarov .UE .br .UR kzak@redhat.com Karel Zak .UE .SH "VOIR AUSSI" \fBclone\fP(2), \fBunshare\fP(2), \fBnamespaces\fP(7), \fBmount\fP(8) .SH DISPONIBILITÉ La commande \fBunshare\fP fait partie du paquet util\-linux, elle est disponible sur <\fIhttps://www.kernel.org/pub/linux/utils/util\-linux/\fP>. .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Michel Quercia , Thierry Vignaud , Frédéric Delanoy , Thierry Vignaud , Christophe Sauthier , Sébastien Blanchet, Jérôme Perzyna , Aymeric Nys , Alain Portal , Thomas Huriaux , Yves Rütschlé , Jean-Luc Coulon (f5ibh) , Julien Cristau , Philippe Piette , Jean-Baka Domelevo-Entfellner , Nicolas Haller , Sylvain Archenault , Valéry Perrin , Jade Alglave , Nicolas François , Alexandre Kuoch , Lyes Zemmouche , Florentin Duneau , Alexandre Normand , David Prévot , Jean-Paul Guillonneau et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .