UNSHARE(1)

BEZEICHNUNG
unshare - Programme ausführen, wobei einige Namensräume von den Eltern getrennt sind

ÜBERSICHT
unshare [Optionen] Programm [Argumente]

BESCHREIBUNG
Trennt die angegebenen Namensräume von dem Elternprozess und führt dann das angegebene Programm aus.

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

mount-Namensraum
    Ein- und Aushängen von Dateisystemen betrifft den Rest des Systems nicht (Schalter CLONE_NEWNS), außer für Dateisysteme, die explizit als gemeinsam benutzt (»shared«) markiert sind (mit mount --make-shared; siehe /proc/self/mountinfo oder findmnt -o+PROPAGATION für die shared-Schalter).

    Seit Util-Linux Version 2.27 setzt unshare die Fortpflanzung 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 (Schalter CLONE_NEWUTS).

IPC-Namensraum
    Der Prozess wird einen unabhängigen Namensraum für System-V-Nachrichtenwarteschlangen, Semaphore-Gruppen und gemeinsame Speichersegmente haben (Schalter CLONE_NEWIPC).

network-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. (Schalter CLONE_NEWNET)

pid-Namensraum
    Kindprozesse werden eine eigene Gruppe von Abbildungen der PIDs zu Prozessen haben (Schalter CLONE_NEWPID).

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. (Schalter CLONE_NEWCGROUP)

user-Namensraum
    Der Prozess wird über eine eindeutige Gruppe an UIDs, GIDS und Capabilities verfügen (Schalter CLONE_NEWUSER).

Lesen Sie clone(2) für die genaue Semantik der Schalter.

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

--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 Gruppen-ID 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ängefortpflanzungsschalter in dem neuen Einhängenamensraum rekursiv. Die Vorgabe ist, die Fortpflanzung 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).

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

-h, --help
    zeigt diese Hilfe an und beendet das Programm.

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
    Establish a persistent mount namespace referenced by the bind mount /root/namespaces/mnt. This example shows a portable solution, because it makes sure that the bind mount is created on a shared filesystem.

SIEHE AUCH
unshare(2), clone(2), mount(8)

AUTOREN
Mikhail Gusarov (dottedmag@dottedmag.net)
Karel Zak (kzak@redhat.com)

VERFÜGBARKEIT
Der Befehl unshare ist Teil des Pakets util-linux und kann von ftp://ftp.kernel.org/pub/linux/utils/util-linux/ heruntergeladen werden.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de>, Dr. Tobias Quathamer <toddy@debian.org> und Chris Leick <c.leick@vollbio.de> 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>.