Loading

NOM

       unshare - désassocier certaines parties du contexte d’exécution

SYNOPSIS

       #define _GNU_SOURCE
       #include <sched.h>

       int unshare(int flags);

       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,  son  répertoire
              courant  et  sa  valeur  d’umask  avec  d’autres processus. Voir
              chroot(2), chdir(2), umask(2).

       CLONE_NEWNS
              Cet attribut a le  mme  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 n’est pas partagée avec d’autres processus. L’utilisation de
              cet attribut implique CLONE_FS.

       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  CLONE_NEWNS est utilisé dans flags, mais le  processus  appelant
              n’est pas privilégié (ne possède pas la capacité CAP_SYS_ADMIN).

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 2.6.16, unshare() n’implémente
       pas  de drapeaux ayant l’effet inverse de CLONE_SIGHAND, CLONE_SYSVSEM,
       CLONE_THREAD ou CLONE_VM. Cette fonctionnalité pourra être ajoutée plus
       tard si nécessaire.

VOIR AUSSI

       clone(2), fork(2), vfork(2), Documentation/unshare.txt

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       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> ».