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

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