Provided by: manpages-fr-dev_3.65d1p1-1_all 

NOM
unshare - Désassocier certaines parties du contexte d'exécution
SYNOPSIS
#include <sched.h>
int unshare(int flags);
Conditions requises par la macro de test des fonctionnalités pour glibc (consultez feature_test_macros(7)) :
unshare():
À partir de glibc 2.14 :
_GNU_SOURCE
Avant glibc 2.14 :
_BSD_SOURCE || _SVID_SOURCE
/* _GNU_SOURCE est également suffisant */
DESCRIPTION
unshare() permet à un processus de désassocier certaines parties de son contexte d'exécution qui sont
actuellement partagées avec d'autres processus. Une partie du contexte d'exécution, comme l'espace de
noms de montage, est implicitement partagé quand un processus est créé avec fork(2) ou vfork(2), alors
que d'autres parties, comme la mémoire virtuelle, peuvent être partagées en faisant explicitement la
demande lors de la création d'un processus avec clone(2).
L'intérêt principal de unshare() est de permettre à un processus de contrôler son contexte d'exécution
partagé sans avoir à créer un nouveau processus.
L'argument flags est un masque qui indique quelles parties du contexte d'exécution doivent être
désassociées. Cet argument est construit comme un OU binaire entre les constantes suivantes :
CLONE_FILES
A l'effet inverse de l'attribut CLONE_FILES de clone(2). Supprimer le partage de la table des
descripteurs de fichier, afin que le processus appelant ne partage plus ses descripteurs de
fichier avec d'autres processus.
CLONE_FS
Annuler l'effet de l'attribut CLONE_FS de clone(2). Départager les attributs de système de
fichiers, afin que le processus appelant ne partage plus son répertoire racine (chroot(2)), son
répertoire courant (chdir(2)) et sa valeur d'umask (umask(2)) avec d'autres processus.
CLONE_NEWIPC (depuis Linux 2.6.19)
Cet attribut a le même effet que l'attribut CLONE_NEWIPC de clone(2). Départager l'espace de noms
IPC System V, afin que le processus appelant ait une copie privée de l'espace de noms IPC System V
qui ne soit pas partagée avec d'autres processus. L'utilisation de cet attribut implique
CLONE_SYSVSEM. L'utilisation de CLONE_NEWIPC nécessite la capacité CAP_SYS_ADMIN.
CLONE_NEWNET (depuis Linux 2.6.24)
Cet attribut a le même effet que l'attribut CLONE_NEWNET de clone(2). Départager l'espace de noms
de réseau, afin que le processus appelant soit déplacé dans un nouvel espace de noms de réseau qui
n'est pas partagé avec d'autres processus. CLONE_NEWNET nécessite la capacité CAP_SYS_ADMIN.
CLONE_NEWNS
Cet attribut a le même effet que l'attribut CLONE_NEWNS de clone(2). Départager l'espace de noms
de montage, afin que le processus appelant ait une copie privée de son espace de noms qui ne soit
pas partagée avec d'autres processus. L'utilisation de cet attribut implique CLONE_FS.
L'utilisation de CLONE_NEWNS nécessite la capacité CAP_SYS_ADMIN.
CLONE_NEWUTS (depuis Linux 2.6.19)
Cet attribut a le même effet que l'attribut CLONE_NEWUTS de clone(2). Départager l'espace de noms
IPC UTS, afin que le processus appelant ait une copie privée de l'espace de noms UTS qui ne soit
pas partagée avec d'autres processus. L'utilisation de CLONE_NEWUTS nécessite la capacité
CAP_SYS_ADMIN.
CLONE_SYSVSEM (depuis Linux 2.6.26)
Cet attribut inverse l'effet de l'attribut CLONE_SYSVSEM de clone(2). Départager les valeurs
« undo » des sémaphores System V, afin que le processus appelant ait une copie privée qui ne soit
pas partagée avec d'autres processus. L'utilisation de CLONE_SYSVSEM nécessite la capacité
CAP_SYS_ADMIN.
Si flags est nul, unshare() n'a aucun effet : le contexte d'exécution du processus appelant n'est pas
modifié.
VALEUR RENVOYÉE
S'il réussit l'appel renvoie zéro, sinon il renvoie -1 et remplit errno avec le code d'erreur.
ERREURS
EINVAL Un attribut invalide est indiqué dans flags.
ENOMEM Impossible d'allouer suffisamment de mémoire pour copier les parties du contexte de l'appelant qui
doivent être rendues privées.
EPERM Le processus appelant n'avait pas les privilèges appropriés pour effectuer cette opération.
VERSIONS
L'appel système unshare() est apparu dans Linux 2.6.16.
CONFORMITÉ
L'appel système unshare() est spécifique à Linux.
NOTES
Tous les attributs de processus qui peuvent être partagés lorsqu'un processus est créé avec clone(2) ne
peuvent pas être rendus privés avec unshare(). En particulier, dans le noyau 3.8, unshare() n'implémente
pas de drapeaux inversant les effets de CLONE_SIGHAND, CLONE_THREAD ou CLONE_VM. Cette fonctionnalité
pourra être ajoutée plus tard si nécessaire.
VOIR AUSSI
clone(2), fork(2), kcmp(2), setns(2), vfork(2)
Documentation/unshare.txt dans les sources du noyau Linux
COLOPHON
Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
instructions pour signaler des anomalies peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal
<http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
<section> <page_de_man> ».
Linux 17 avril 2013 UNSHARE(2)