Provided by: manpages-de_2.16-1_all bug

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)