unshare(1) Exécuter un programme avec des espaces de noms non partagés par le

SYNOPSIS

unshare [options] programme [arguments]

DESCRIPTION

Séparer les espaces de noms indiqués du processus parent puis exécuter le programme indiqué. Les espaces de noms à isoler sont indiqués à l’aide d’options. Les espaces de noms séparables sont les suivants.
espace de noms de montage
Les montage et démontage de systèmes de fichiers n'affecteront pas le reste du système (attribut CLONE_NEWNS), sauf pour les systèmes de fichiers explicitement marqués comme partagés (avec mount --make-shared, consultez /proc/self/mountinfo pour l’attribut shared).

Utiliser mount --make-rprivate ou mount --make-rslave après unshare --mount est recommandé pour s’assurer que ces points de montage dans le nouvel espace sont vraiment non partagés avec l’espace de noms parent.

espace de noms UTS
La configuration de nom d'hôte ou de nom de domaine n'affectera pas le reste du système (attribut CLONE_NEWUTS).
espace de noms IPC
Le processus aura un nom d'espace indépendant pour les files de messagesSystem V, les ensembles de sémaphores et les segments de mémoire partagée (attribut CLONE_NEWIPC).
espace de noms réseau
Le processus aura des piles IPv4 et IPv6, des tables de routage IP, des règles de pare-feu, des arborescences des répertoires /proc/net et /sys/class/net, des sockets, etc., indépendantes (attribut CLONE_NEWNET).
espace de noms PID
Les fils auront un ensemble propre de PID pour une mise en correspondance avec leur parent (attribut CLONE_NEWPID).
espace de noms utilisateur
Le processus aura un ensemble propre d’UID, de GID et de capacités (attribut CLONE_NEWUSER).

Consultez clone(2) pour les sémantiques exactes des attributs.

OPTIONS

-i, --ipc
Isoler l'espace de noms IPC.
-m, --mount
Isoler l'espace de noms de montage.
-n, --net
Isoler l'espace de noms réseau.
-p, --pid
Isoler l'espace de noms PID. Consultez également les options --fork et --mount-proc.
-u, --uts
Isoler l'espace de noms UTS.
-U, --user
Isoler l'espace de noms utilisateur.
-f, --fork
Engendrer le programme indiqué comme un processus fils d’unshare plutôt que de l’exécuter directement. C’est utile lors de la création d’un nouvel espace de noms PID.
--mount-proc[=point_de_montage]
Juste avant d’exécuter le programme, monter le système de fichiers proc en point_de_montage (/proc 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 de montage sinon le montage de /proc 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).
-r, --map-root-user
Exécuter le programme seulement après que les identifiants d’utilisateur et de groupe effectifs aient été mis en correspondance avec les UID et GID du superutilisateur dans le nouvel espace de noms utilisateur. Cela permet d’obtenir facilement les capacités nécessaires pour gérer divers aspects des nouveaux espaces de noms (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 de 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ée comme la mise en correspondance de plusieurs intervalles d’UID et GID. Cette option implique --setgroups=deny.
-s, --setgroups allow|deny
Permettre ou interdire l’appel système setgroups(2) dans les espaces de noms utilisateur.

setgroups(2) n’est appelable qu’avec CAP_SETGID, et CAP_SETGID dans un espace de noms utilisateur (depuis Linux 3.19) ne permet pas d’appeler setgroups(2) avant d’avoir défini la carte de correspondance de GID. La carte de GID est accessible en écriture au superutilisateur quand setgroups(2) est autorisé, et la carte de GID devient accessible en écriture aux processus normaux quand setgroups(2) est interdit de façon permanente.

-V, --version
Afficher les informations sur la version et quitter.
-h, --help
Afficher un texte d'aide puis quitter.

EXEMPLES

# unshare --fork --pid --mount-proc readlink /proc/self
1
Établir un espace de noms PID, s’assurer d’être le PID 1 dedans contre l’instance procfs nouvellement montée.
$ unshare --map-root-user --user sh -c whoami
root
Établir un espace de noms utilisateur en tant qu’utilisateur ordinaire avec un superutilisateur dedans.

BOGUES

Aucun connu pour le moment.

AUTEUR

Mikhail Gusarov <[email protected]>

DISPONIBILITÉ

La commande unshare fait partie du paquet util-linux, elle est disponible sur <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.