.\" Copyright (C) 2006, Janak Desai .\" and Copyright (C) 2006, Michael Kerrisk .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" Licensed under the GPL .\" %%%LICENSE_END .\" .\" Patch Justification: .\" unshare system call is needed to implement, using PAM, .\" per-security_context and/or per-user namespace to provide .\" polyinstantiated directories. Using unshare and bind mounts, a .\" PAM module can create private namespace with appropriate .\" directories(based on user's security context) bind mounted on .\" public directories such as /tmp, thus providing an instance of .\" /tmp that is based on user's security context. Without the .\" unshare system call, namespace separation can only be achieved .\" by clone, which would require porting and maintaining all commands .\" such as login, and su, that establish a user session. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UNSHARE 2 "17 avril 2013" Linux "Manuel du programmeur Linux" .SH NOM unshare \- Désassocier certaines parties du contexte d'exécution .SH SYNOPSIS .nf \fB#include \fP .sp \fBint unshare(int \fP\fIflags\fP\fB);\fP .fi .sp .in -4n Conditions requises par la macro de test des fonctionnalités pour glibc (consultez \fBfeature_test_macros\fP(7))\ : .in .sp \fBunshare\fP(): .ad l .RS 4 .PD 0 .TP 4 À partir de glibc\ 2.14\ : _GNU_SOURCE .TP 4 .\" See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749 Avant glibc\ 2.14\ : _BSD_SOURCE || _SVID_SOURCE /* _GNU_SOURCE est également suffisant */ .PD .RE .ad b .SH DESCRIPTION \fBunshare\fP() 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 \fBfork\fP(2) ou \fBvfork\fP(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 \fBclone\fP(2). L'intérêt principal de \fBunshare\fP() est de permettre à un processus de contrôler son contexte d'exécution partagé sans avoir à créer un nouveau processus. L'argument \fIflags\fP 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\ : .TP \fBCLONE_FILES\fP A l'effet inverse de l'attribut \fBCLONE_FILES\fP de \fBclone\fP(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. .TP \fBCLONE_FS\fP Annuler l'effet de l'attribut \fBCLONE_FS\fP de \fBclone\fP(2). Départager les attributs de système de fichiers, afin que le processus appelant ne partage plus son répertoire racine (\fBchroot\fP(2)), son répertoire courant (\fBchdir\fP(2)) et sa valeur d'umask (\fBumask\fP(2)) avec d'autres processus. .TP \fBCLONE_NEWIPC\fP (depuis Linux 2.6.19) Cet attribut a le même effet que l'attribut \fBCLONE_NEWIPC\fP de \fBclone\fP(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 \fBCLONE_SYSVSEM\fP. L'utilisation de \fBCLONE_NEWIPC\fP nécessite la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBCLONE_NEWNET\fP (depuis Linux 2.6.24) Cet attribut a le même effet que l'attribut \fBCLONE_NEWNET\fP de \fBclone\fP(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. \fBCLONE_NEWNET\fP nécessite la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBCLONE_NEWNS\fP .\" These flag name are inconsistent: .\" CLONE_NEWNS does the same thing in clone(), but CLONE_VM, .\" CLONE_FS, and CLONE_FILES reverse the action of the clone() .\" flags of the same name. Cet attribut a le même effet que l'attribut \fBCLONE_NEWNS\fP de \fBclone\fP(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 \fBCLONE_FS\fP. L'utilisation de \fBCLONE_NEWNS\fP nécessite la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBCLONE_NEWUTS\fP (depuis Linux 2.6.19) Cet attribut a le même effet que l'attribut \fBCLONE_NEWUTS\fP de \fBclone\fP(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 \fBCLONE_NEWUTS\fP nécessite la capacité \fBCAP_SYS_ADMIN\fP. .TP \fBCLONE_SYSVSEM\fP (depuis Linux 2.6.26) .\" commit 9edff4ab1f8d82675277a04e359d0ed8bf14a7b7 .\" As at 2.6.16, the following forced implications also apply, .\" although the relevant flags are not yet implemented. .\" If CLONE_THREAD is set force CLONE_VM. .\" If CLONE_VM is set, force CLONE_SIGHAND. .\" CLONE_NEWNSIf CLONE_SIGHAND is set and signals are also being shared .\" (i.e., current->signal->count > 1), force CLONE_THREAD. .\" .\" FIXME . CLONE_VM is not (yet, as at 2.6.16) implemented. .\" .TP .\" .B CLONE_VM .\" Reverse the effect of the .\" .BR clone (2) .\" .B CLONE_VM .\" flag. .\" .RB ( CLONE_VM .\" is also implicitly set by .\" .BR vfork (2), .\" and can be reversed using this .\" .BR unshare () .\" flag.) .\" Unshare virtual memory, so that the calling process no .\" longer shares its virtual address space with any other process. Cet attribut inverse l'effet de l'attribut \fBCLONE_SYSVSEM\fP de \fBclone\fP(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 \fBCLONE_SYSVSEM\fP nécessite la capacité \fBCAP_SYS_ADMIN\fP. .PP Si \fIflags\fP est nul, \fBunshare\fP() n'a aucun effet\ : le contexte d'exécution du processus appelant n'est pas modifié. .SH "VALEUR RENVOYÉE" S'il réussit l'appel renvoie zéro, sinon il renvoie \-1 et remplit \fIerrno\fP avec le code d'erreur. .SH ERREURS .TP \fBEINVAL\fP Un attribut invalide est indiqué dans \fIflags\fP. .TP \fBENOMEM\fP Impossible d'allouer suffisamment de mémoire pour copier les parties du contexte de l'appelant qui doivent être rendues privées. .TP \fBEPERM\fP Le processus appelant n'avait pas les privilèges appropriés pour effectuer cette opération. .SH VERSIONS L'appel système \fBunshare\fP() est apparu dans Linux 2.6.16. .SH CONFORMITÉ L'appel système \fBunshare\fP() est spécifique à Linux. .SH NOTES .\" FIXME all of the following needs to be reviewed for the current kernel .\" However, we can do unshare(CLONE_SIGHAND) if CLONE_SIGHAND .\" was not specified when doing clone(); i.e., unsharing .\" signal handlers is permitted if we are not actually .\" sharing signal handlers. mtk .\" However, we can do unshare(CLONE_VM) if CLONE_VM .\" was not specified when doing clone(); i.e., unsharing .\" virtual memory is permitted if we are not actually .\" sharing virtual memory. mtk .\" .\"9) Future Work .\"-------------- .\"The current implementation of unshare does not allow unsharing of .\"signals and signal handlers. Signals are complex to begin with and .\"to unshare signals and/or signal handlers of a currently running .\"process is even more complex. If in the future there is a specific .\"need to allow unsharing of signals and/or signal handlers, it can .\"be incrementally added to unshare without affecting legacy .\"applications using unshare. .\" Tous les attributs de processus qui peuvent être partagés lorsqu'un processus est créé avec \fBclone\fP(2) ne peuvent pas être rendus privés avec \fBunshare\fP(). En particulier, dans le noyau 3.8, \fBunshare\fP() n'implémente pas de drapeaux inversant les effets de \fBCLONE_SIGHAND\fP, \fBCLONE_THREAD\fP ou \fBCLONE_VM\fP. Cette fonctionnalité pourra être ajoutée plus tard si nécessaire. .SH "VOIR AUSSI" \fBclone\fP(2), \fBfork\fP(2), \fBkcmp\fP(2), \fBsetns\fP(2), \fBvfork\fP(2) \fIDocumentation/unshare.txt\fP dans les sources du noyau Linux .SH COLOPHON Cette page fait partie de la publication 3.65 du projet \fIman\-pages\fP 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/. .SH TRADUCTION Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a par l'équipe de traduction francophone au sein du projet perkamon . .PP Christophe Blaess (1996-2003), Alain Portal (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian\ (2006-2009). .PP Veuillez signaler toute erreur de traduction en écrivant à ou par un rapport de bogue sur le paquet \fBmanpages\-fr\fR. .PP Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande «\ \fBman\ \-L C\fR \fI
\fR\ \fI\fR\ ».