Provided by: manpages-de_2.16-1_all 

BEZEICHNUNG
unshare - Programme ausführen, wobei einige Namensräume von dem Elternprozess getrennt sind
ÜBERSICHT
unshare [Optionen] [Programm [Argumente]]
BESCHREIBUNG
Trennt die angegebenen Namensräume von dem Elternprozess und führt dann das angegebene Programm aus.
Falls Programm nicht angegeben ist, dann wird »${SHELL}« ausgeführt (Vorgabe: /bin/sh).
Die Namensräume können wahlweise beständig gemacht werden, indem /proc/PID/ns/Typ-Dateien mit »bind« in
einen Dateisystempfad eingebunden und mit nsenter(1) betreten werden, sogar, wenn das Programm beendet
wird (außer PID-Namensräume, bei denen ein dauerhaft laufender Init-Prozess benötigt wird). Sobald ein
beständiger Namensraum nicht länger benötigt wird, kann die Beständigkeit mit umount(8) aufgehoben
werden. Weitere Einzelheiten finden Sie im Abschnitt BEISPIELE.
Die Namensräume, die getrennt werden sollen, werden über Optionen angegeben. Trennbare Namensräume sind:
Einhänge-Namensraum
Ein- und Aushängen von Dateisystemen betrifft den Rest des Systems nicht, außer für Dateisysteme,
die explizit als Mehrfacheinhängungen markiert sind (mit mount --make-shared; siehe
/proc/self/mountinfo oder findmnt -o+PROPAGATION für die shared-Schalter). Für weitere Details
siehe mount_namespaces(7) und die Diskussion des Schalters CLONE_NEWNS in clone(2).
Seit Util-Linux Version 2.27 setzt unshare die Ausbreitung in einem neuen Einhängenamensraum auf
private, um sicherzustellen, dass der neue Namensraum wirklich getrennt ist. Diese Funktionalität
kann mit der Option --propagation unchanged deaktiviert werden. Beachten Sie, dass private die
Vorgabe des Kernels ist.
UTS-Namensraum
Setzen des Rechner- oder Domain-Namens wird den Rest des Systems nicht betreffen. Für weitere
Details siehe namespaces(7) und die Diskussion des Schalters CLONE_NEWUTS in clone(2).
IPC-Namensraum
Der Prozess wird einen unabhängigen Namensraum für POSIX-Nachrichtenwarteschlangen sowie
System-V-Nachrichtenwarteschlangen, Semaphore-Gruppen und gemeinsame Speichersegmente haben. Für
weitere Details siehe namespaces(7) und die Diskussion des Schalters CLONE_NEWIPC in clone(2).
Netz-Namensraum
Der Prozess wird über unabhängige IPv4- und IPv6-Stapel, IP-Routing-Tabellen, Firewall-Regeln, die
Verzeichnisbäume /proc/net und /sys/class/net usw. verfügen. Für weitere Details siehe
namespaces(7) und die Diskussion des Schalters CLONE_NEWNET in clone(2).
PID-Namensraum
Kindprozesse werden eine eigene Gruppe von Abbildungen der PIDs zu Prozessen haben. Für weitere
Details siehe pid_namespaces(7) und die Diskussion des Schalters CLONE_NEWPID in clone(2).
Cgroup-Namensraum
Der Prozess wird über einen virtualisierten Blick auf /proc/self/cgroup verfügen und neue
Cgroup-Einhängungen werden ihre Wurzel in der Wurzel der Cgroup-Namensraum-Wurzel haben. Für
weitere Details siehe cgroup_namespaces(7) und die Diskussion des Schalters CLONE_NEWCGROUP in
clone(2).
Benutzer-Namensraum
Der Prozess wird über eine eindeutige Gruppe an UIDs, GIDS und Capabilities verfügen. Für weitere
Details siehe user_namespaces(7) und die Diskussion des Schalters CLONE_NEWUSER in clone(2).
OPTIONEN
-i, --ipc[=Datei]
Trennen des IPC-Namensraums. Falls Datei angegeben ist, wird ein beständiger Namensraum mit einer
»bind«-Einhängung erstellt.
-m, --mount[=Datei]
Hebt die Freigabe des eingehängten Namensraums auf. Falls Datei angegeben ist, wird ein
beständiger Namensraum durch ein Einhängen mit »bind« erstellt. Beachten Sie, dass Datei auf einem
Dateisystem liegen muss, bei dem der Ausbreitungsschalter auf private gesetzt ist. Verwenden Sie
den Befehl findmnt -o+PROPAGATION, wenn Sie sich bezüglich der derzeitigen Einstellung nicht
sicher sind. Lesen Sie auch die nachfolgenden Beispiele.
-n, --net[=Datei]
Trennen des Netz-Namensraums. Falls Datei angegeben ist, wird ein beständiger Namensraum mit einer
»bind«-Einhängung erstellt.
-p, --pid[=Datei]
Trennen des PID-Namensraums. Falls Datei angegeben ist, wird ein beständiger Namensraum mit einer
»bind«-Einhängung erstellt. Siehe auch die Optionen --fork und --mount-proc.
-u, --uts[=Datei]
Trennen des UTS-Namensraums. Falls Datei angegeben ist, wird ein beständiger Namensraum mit einer
»bind«-Einhängung erstellt.
-U, --user[=Datei]
Trennen des Benutzer-Namensraums. Falls Datei angegeben ist, wird ein beständiger Namensraum mit
einer »bind«-Einhängung erstellt.
-C, --cgroup[=Datei]
Trennen des Cgroup-Namensraums. Falls Datei angegeben ist, wird ein beständiger Namensraum mit
einer »bind«-Einhängung erstellt.
-f, --fork
Verzweigt das angegebene Programm als Kindprozess von unshare, anstatt es direkt auszuführen. Dies
ist nützlich, wenn eine neuer PID-Namensraum erstellt wird.
--kill-child[=Signame]
Wenn sich unshare beendet, soll Signame an den mit Fork erstellten Kindprozess gesandt werden.
Kombiniert mit --pid erlaubt dies ein leichtes und zuverlässiges Töten eines gesamten Prozessbaums
unterhalb von unshare. Falls nicht angegeben, ist Signame standardmäßig SIGKILL. Diese Option
impliziert --fork.
--mount-proc[=Einhängepunkt]
Direkt vor Ausführung des Programms wird das proc-Dateisystem unter Einhängepunkt (Vorgabe ist
/proc) eingehängt. Das ist bei der Erstellung eines neuen PID-Namensraums nützlich. Dies
impliziert auch die Erstellung eines neuen Einhängenamensraums, da die /proc-Einhängung ansonsten
bestehende Programme auf dem System durcheinanderbringen würde. Das neue proc-Dateisystem wird
explizit als privat eingehängt (mit MS_PRIVATE|MS_REC).
-r, --map-root-user
Führt das Programm erst aus, wenn die effektive Benutzer- und Gruppenkennungen auf die UID und GID
des Systemverwalters in dem neu erstellten Namensraum abgebildet wurde. Dies ermöglicht es, bequem
die benötigten Capabilities zu erlangen, um verschiedene Aspekte in dem neu erstellten Namensraum
zu verwalten (wie die Konfiguration von Schnittstellen im Netz-Namensraum oder das Einhängen von
Dateisystemen in dem Einhängenamensraum), selbst bei unprivilegierter Ausführung. Als reine
Bequemlichkeitsfunktionalität unterstützt es keine fortgeschritteneren Anwendungsfälle, wie das
Abbilden von mehreren Bereichen von UIDs und GIDs. Diese Option impliziert --setgroups=deny.
--propagation private|shared|slave|unchanged
Setzt den Einhängeausbreitungsschalter in dem neuen Einhängenamensraum rekursiv. Die Vorgabe ist,
die Ausbreitung auf private zu setzen. Es ist möglich, diese Funktionalität mit dem Argument
unchanged zu deaktivieren. Diese Option wird ohne Rückmeldung ignoriert, wenn der
Einhängenamensraum (--mount) nicht angefordert wird.
--setgroups allow|deny
Erlaubt oder verweigert den Systemaufruf setgroups(2) in Benutzer-Namensräumen.
Um setgroups(2) aufrufen zu können, muss der aufrufende Prozess mindestens über CAP_SETGID
verfügen. Seit Linux 3.19 gilt eine weitere Einschränkung: Der Kernel erteilt die Berechtigung,
setgroups(2) aufzurufen, nur nachdem die GID-Abbildung (/proc/pid/gid_map) eingerichtet wurde. Die
GID-Abbildung ist durch Root beschreibbar, wenn setgroups(2) aktiviert ist (d.h. allow, die
Vorgabe) und die GID-Abbildung wird durch unprivilegierte Prozesse beschreibbar, wenn setgroups(2)
permanent deaktiviert ist (mit deny).
-R,--root=Verzeichnis
führt den Befehl aus, wobei das Wurzelverzeichnis auf das angegebene Verzeichnis gesetzt wird.
-w,--wd=Verzeichnis
ändert das Arbeitsverzeichnis auf das angegebene Verzeichnis.
-S,--setuid Benutzerkennung
legt die Benutzerkennung fest, die in dem betretenen Namensraum verwendet wird.
-G,--setgid Gruppenkennung
legt die Gruppenkennung fest, die en dem betretenen Namensraum verwendet wird und entfernt
zusätzliche Gruppen.
-V, --version
zeigt Versionsinformationen an und beendet das Programm.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
ANMERKUNGEN
Die proc- und sysfs-Dateisystemeinhängungen als Root in einem Benutzernamensraum müssen eingeschränkt
werden, so dass ein weniger privilegierter Benutzer nicht mehr Zugriffe auf sensitive Dateien haben kann,
als ein höher privilegierter Benutzer unverfügbar gemacht hat. Kurz gesagt, die Regeln für proc und sysfs
ist so ähnlich zu einer Bind-Einhängung wie möglich.
BEISPIELE
# unshare --fork --pid --mount-proc readlink /proc/self
1
Etabliert einen PID-Namensraum und stellt sicher, dass er PID 1 gegen eine darin frisch
eingehängte Procfs-Instanz ist.
$ unshare --map-root-user --user sh -c whoami
root
Etabliert einen user-Namensraum als unprivilegierten Benutzer mit einem Benutzer »root« darin.
# touch /root/uts-ns
# unshare --uts=/root/uts-ns Rechnername FOO
# nsenter --uts=/root/uts-ns Rechnername
FOO
# umount /root/uts-ns
Etabliert einen dauerhaften UTS-Namensraum und verändert den Rechnernamen. Der Namensraum wird mit
nsenter betreten. Der Namensraum wird durch Aushängen der »bind«-Referenz zerstört.
# mount --bind /root/namespaces /root/namespaces
# mount --make-private /root/namespaces
# touch /root/namespaces/mnt
# unshare --mount=/root/namespaces/mnt
Etabliert einen dauerhaften Einhängenamensraum, der von der »bind«-Einhängung /root/namespaces/mnt
angegeben wird. Dieses Beispiel zeigt eine portierbare Lösung, weil es sicherstellt, dass die
»bind«-Einhängung auf einem mehrfacheingehängtem Dateisystem erstellt wird.
# unshare -pf --kill-child -- bash -c (sleep 999 &) && sleep 1000 &
# pid=$!
# kill $pid
Zuverlässiges Töten von Unterprozessen des Programms. Wenn unshare getötet wird, wird auch alles
unterhalb davon getötet. Ohne dies wären die Kindprozesse von Programm verwaist und bekämen PID 1
als neuen Elternprozess.
SIEHE AUCH
clone(2), unshare(2), namespaces(7), mount(8)
AUTOREN
Mikhail Gusarov
Karel Zak
VERFÜGBARKEIT
Der Befehl unshare ist Teil des Pakets util-linux und kann von
https://www.kernel.org/pub/linux/utils/util-linux/ heruntergeladen werden.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <c.leick@vollbio.de>, Dr. Tobias
Quathamer <toddy@debian.org>, Helge Kreutzmann <debian@helgefjell.de> und Mario Blättermann
<mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an
<debian-l10n-german@lists.debian.org>.
util-linux Februar 2016 UNSHARE(1)