.\" -*- coding: UTF-8 -*- '\" t .\" Title: unshare .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.15 .\" Date: 2022-05-11 .\" Manual: User Commands .\" Source: util-linux 2.38.1 .\" Language: English .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UNSHARE 1 "11. Mai 2022" "util\-linux 2.38.1" "Dienstprogramme für Benutzer" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH BEZEICHNUNG unshare \- Programm in neuen Namensräumen ausführen .SH ÜBERSICHT .sp \fBunshare\fP [Optionen] [\fIProgramm\fP [\fIArgumente\fP]] .SH BESCHREIBUNG .sp Der Befehl \fBunshare\fP erzeugt neue Namensräume (wie in den nachfolgend beschriebenen Befehlszeilenoptionen angegeben) und führt dann das angegebene \fIProgramm\fP aus. Falls kein \fIProgramm\fP angegeben ist, dann wird »${SHELL}« ausgeführt (Vorgabe: \fI/bin/sh\fP). .sp In der Voreinstellung ist ein neuer Namensraum nur so lange beständig, wie er Mitgliedprozesse hat. Ein neuer Namensraum kann beständig gemacht werden, selbst wenn es keine Mitgliedprozesse gibt, indem /proc/\fIPID\fP/ns/\fITyp\fP\-Dateien mit »bind« in einen Dateisystempfad eingebunden werden. Ein Namensraum, der auf diese Weise beständig gemacht wurde, kann anschließend mit \fBnsenter\fP(1) betreten werden, sogar, wenn das \fIProgramm\fP 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 \fBumount\fP(8) aufgehoben werden, um die Bind\-Einhängung aufzuheben. Weitere Einzelheiten finden Sie im Abschnitt \fBBEISPIELE\fP. .sp \fBunshare\fP verwendet seit Util\-linux Version 2.36 die Dateien \fI/proc/[PID]/ns/pid_for_children\fP und \fI/proc/[PID]/ns/time_for_children\fP für dauerhafte PID\- und ZEIT\-Namensräume. Diese Änderung erfordert einen Linux\-Kernel der Version 4.17 oder neuer. .sp Die folgenden Namensraumtypen können mit \fBunshare\fP erzeugt werden: .sp \fBEinhänge\-Namensraum\fP .RS 4 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 \fBmount \-\-make\-shared\fP; siehe \fI/proc/self/mountinfo\fP oder \fBfindmnt \-o+PROPAGATION\fP für die \fBshared\fP\-Schalter). Für weitere Details siehe \fBmount_namespaces\fP(7). .sp Seit Util\-Linux Version 2.27 setzt \fBunshare\fP die Ausbreitung in einem neuen Einhängenamensraum auf \fBprivate\fP, um sicherzustellen, dass der neue Namensraum wirklich getrennt ist. Diese Funktionalität kann mit der Option \fB\-\-propagation unchanged\fP deaktiviert werden. Beachten Sie, dass \fBprivate\fP die Vorgabe des Kernels ist. .RE .sp \fBUTS\-Namensraum\fP .RS 4 Setzen des Rechner\- oder Domain\-Namens wird den Rest des Systems nicht betreffen. Für weitere Details siehe \fButs_namespaces\fP(7). .RE .sp \fBIPC\-Namensraum\fP .RS 4 Der Prozess erhält einen unabhängigen Namensraum für POSIX\-Meldungswarteschlangen sowie System\-V\-Meldungswarteschlangen, Semaphor\-Gruppen und gemeinsam genutzte Speichersegmente. Für weitere Details siehe \fBipc_namespaces\fP(7). .RE .sp \fBNetz\-Namensraum\fP .RS 4 Der Prozess erhält unabhängige IPv4\- und IPv6\-Stapel, IP\-Routing\-Tabellen, Firewall\-Regeln, die Verzeichnisbäume \fI/proc/net\fP und \fI/sys/class/net\fP, Sockets usw. Für weitere Details siehe \fBnetwork_namespaces\fP(7). .RE .sp \fBPID\-Namensraum\fP .RS 4 Kindprozesse werden eine eigene Gruppe von Abbildungen der PIDs zu Prozessen haben. Für weitere Details siehe \fBpid_namespaces\fP(7). .RE .sp \fBCgroup\-Namensraum\fP .RS 4 Der Prozess wird über einen virtualisierten Blick auf \fI/proc/self/cgroup\fP verfügen und neue Cgroup\-Einhängungen werden ihre Wurzel in der Wurzel der Cgroup\-Namensraum\-Wurzel haben. Für weitere Details siehe \fBcgroup_namespaces\fP(7). .RE .sp \fBBenutzer\-Namensraum\fP .RS 4 Der Prozess wird über eine eindeutige Gruppe an UIDs, GIDS und Capabilities verfügen. Für weitere Details siehe \fBuser_namespaces\fP(7). .RE .sp \fBZeit\-Namensraum\fP .RS 4 Der Prozess kann eine abweichende Sicht auf \fBCLOCK_MONOTONIC\fP und/oder \fBCLOCK_BOOTTIME\fP haben, was mittels \fI/proc/self/timens_offsets\fP geändert werden kann. Für weitere Details, siehe \fBtime_namespaces\fP(7). .RE .SH OPTIONEN .sp \fB\-i\fP, \fB\-\-ipc\fP[\fB=\fP\fIDatei\fP] .RS 4 Erzeugen eines neuen IPC\-Namensraums. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum beständig gemacht, indem eine »bind«\-Einhängung auf der \fIDatei\fP erstellt wird. .RE .sp \fB\-m\fP, \fB\-\-mount\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen Einhänge\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. Beachten Sie, dass die \fIDatei\fP auf einem Dateisystem liegen muss, dessen Ausbreitungstyp nicht auf \fBshared\fP gesetzt ist (anderenfalls würde ein Fehler auftreten). Verwenden Sie den Befehl \fBfindmnt \-o+PROPAGATION\fP, wenn Sie sich bezüglich der derzeitigen Einstellung nicht sicher sind. Lesen Sie auch die nachfolgenden Beispiele. .RE .sp \fB\-n\fP, \fB\-\-net\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen Netz\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. .RE .sp \fB\-p\fP, \fB\-\-pid\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen PID\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. (Die Erstellung eines beständigen PID\-Namensraums wird fehlschlagen, wenn nicht auch die Option \fB\-\-fork\fP angegeben ist.) .sp Siehe auch die Optionen \fB\-\-fork\fP und \fB\-\-mount\-proc\fP. .RE .sp \fB\-u\fP, \fB\-\-uts\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen UTS\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. .RE .sp \fB\-U\fP, \fB\-\-user\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen Benutzer\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. .RE .sp \fB\-C\fP, \fB\-\-cgroup\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen Cgroup\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. .RE .sp \fB\-T\fP, \fB\-\-time\fP[\fB=\fP\fIDatei\fP] .RS 4 erstellt einen neuen Zeit\-Namensraum. Falls eine \fIDatei\fP angegeben ist, wird der Namensraum durch Erzeugen einer »bind«\-Einhängung in \fIDatei\fP beständig gemacht. Mit den Optionen \fB\-\-monotonic\fP und \fB\-\-boottime\fP können Sie den korrespondierenden Versatz im Zeit\-Namensraum angeben. .RE .sp \fB\-f\fP, \fB\-\-fork\fP .RS 4 Forkt das angegebene \fIProgramm\fP als Kindprozess von \fBunshare\fP, anstatt es direkt auszuführen. Dies ist nützlich, wenn Sie einen neuen PID\-Namensraum erstellen. Beachten Sie: Wenn \fBunshare\fP auf einen Kindprozess wartet, dann ignoriert es \fBSIGINT\fP und \fBSIGTERM\fP und leitet keine Signale an den Kindprozess weiter. Es ist daher nötig, Signale an den Kindprozess zu senden. .RE .sp \fB\-\-keep\-caps\fP .RS 4 stellt bei übergebener Option \fB\-\-user\fP sicher, dass die im Benutzernamensraum gewährten Capabilities im Kindprozess erhalten bleiben. .RE .sp \fB\-\-kill\-child\fP[\fB=\fP\fISigname\fP] .RS 4 Wenn sich \fBunshare\fP beendet, soll \fISigname\fP an den mit Fork erstellten Kindprozess gesandt werden. Kombiniert mit \fB\-\-pid\fP erlaubt dies ein leichtes und zuverlässiges Töten eines gesamten Prozessbaums unterhalb von \fBunshare\fP. Falls nicht angegeben, ist \fISigname\fP standardmäßig \fBSIGKILL\fP. Diese Option impliziert \fB\-\-fork\fP. .RE .sp \fB\-\-mount\-proc\fP[\fB=\fP\fIEinhängepunkt\fP] .RS 4 Direkt vor Ausführung des Programms wird das proc\-Dateisystem unter \fIEinhängepunkt\fP (Vorgabe ist \fI/proc\fP) eingehängt. Das ist bei der Erstellung eines neuen PID\-Namensraums nützlich. Dies impliziert auch die Erstellung eines neuen Einhängenamensraums, da die \fI/proc\fP\-Einhängung ansonsten bestehende Programme auf dem System durcheinanderbringen würde. Das neue proc\-Dateisystem wird explizit als privat eingehängt (mit \fBMS_PRIVATE\fP|\fBMS_REC\fP). .RE .sp \fB\-\-map\-user=\fP\fIUID|Name\fP .RS 4 führt das Programm erst aus, nachdem die aktuelle effektive Benutzerkennung auf \fIUID\fP gesetzt wurde. Falls diese Option mehrfach angegeben wird, hat die zuletzt angegebene Option Vorrang. Diese Option impliziert \fB\-\-user\fP. .RE .sp \fB\-\-map\-users=\fP\fIäußere_UID,innere_UID,Anzahl\fP|\fBauto\fP .RS 4 führt das Programm nur aus, nachdem der Block der Benutzer\-IDs der Größe \fIAnzahl\fP beginnend bei der \fIäußeren_UID\fP auf den Block der Benutzer\-IDs beginnend bei der \fIinneren_UID\fP abgebildet wurde. Diese Abbildung geschieht mittels \fBnewuidmap\fP(1). Falls die Bereiche der Benutzer\-IDs mit der durch \fB\-\-map\-user\fP angegebenen Abbildung überlappen, wird ein »Loch« aus der Abbildung entfernt. Dadurch kann es passieren, dass die höchste Benutzer\-ID der Abbildung nicht abgebildet wird. Der spezielle Wert \fBauto\fP bildet den ersten Block der Benutzer\-IDs, der dem effektiven Benutzer aus \fI/etc/subuid\fP gehört, auf einen Block ab, der bei der Benutzer\-ID 0 beginnt. Falls diese Option mehrmals angegeben wird, erhält die letzte Angabe Vorrang. Diese Option impliziert \fB\-\-user\fP. .RE .sp \fB\-\-map\-group=\fP\fIGID|Name\fP .RS 4 führt das Programm erst aus, nachdem die aktuelle effektive Gruppenkennung auf \fIGID\fP gesetzt wurde. Falls diese Option mehrfach angegeben wird, hat die zuletzt angegebene Option Vorrang. Diese Option impliziert \fB\-\-setgroups=deny\fP und \fB\-\-user\fP. .RE .sp \fB\-\-map\-groups=\fP\fIäußere_GID,innere_GID,Anzahl\fP|\fBauto\fP .RS 4 führt das Programm nur aus, nachdem der Block der Gruppen\-IDs der Größe _Anzahl_ beginnend bei der \fIäußeren_GID\fP auf den Block der Gruppen\-IDs beginnend bei der \fIinneren_GID\fP abgebildet wurde. Diese Abbildung geschieht mittels \fBnewgidmap\fP(1). Falls die Bereiche der Gruppen\-IDs mit der durch \fB\-\-map\-group\fP angegebenen Abbildung überlappen, wird ein »Loch« aus der Abbildung entfernt. Dadurch kann es passieren, dass die höchste Gruppen\-ID der Abbildung nicht abgebildet wird. Der spezielle Wert \fBauto\fP bildet den ersten Block der Benutzer\-IDs, der dem effektiven Benutzer aus \fI/etc/subgid\fP gehört, auf einen Block ab, der bei der Gruppen\-ID 0 beginnt. Falls diese Option mehrmals angegeben wird, erhält die letzte Angabe Vorrang. Diese Option impliziert \fB\-\-user\fP. .RE .sp \fB\-\-map\-auto\fP .RS 4 bildet den ersten Block der Benutzerkennungen, die dem effektiven Benutzer aus \fI/etc/subuid\fP gehören, auf einen Block beginnend mit der Benutzerkennung 0 ab. Auf die gleiche Weise wird auch der erste Block der Gruppenkennungen, die der effektiven Gruppe aus \fI/etc/subgid\fP gehören, auf einen Block beginnend mit der Gruppenkennung 0 abgebildet. Diese Option ist für den häufig vorkommenden Fall gedacht, in dem der erste Block von Subordinaten\-Benutzer\- und Gruppenkennungen den gesamten Benutzer\- und Gruppenkennungsraum abbilden kann. Diese Option ist gleichbedeutend mit der gleichzeitigen Angabe von \fB\-\-map\-users=auto\fP und \fB\-\-map\-groups=auto\fP. .RE .sp \fB\-r\fP, \fB\-\-map\-root\-user\fP .RS 4 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 \fB\-\-setgroups=deny\fP und \fB\-\-user\fP. Diese Option ist äquivalent zu \fB\-\-map\-user=0 \-\-map\-group=0\fP. .RE .sp \fB\-c\fP, \fB\-\-map\-current\-user\fP .RS 4 führt das Programm erst aus, nachdem die aktuellen effektiven Benutzer\- und Gruppenkennungen im neu erzeugten Benutzernamensraum auf die gleiche UID und GID gesetzt wurde. Diese Option impliziert \fB\-\-setgroups=deny\fP und \fB\-\-user\fP. Diese Option ist äquivalent zu \fB\-\-map\-user=$(id \-ru) \-\-map\-group=$(id \-rg)\fP. .RE .sp \fB\-\-propagation private\fP|\fBshared\fP|\fBslave\fP|\fBunchanged\fP .RS 4 Setzt den Einhängeausbreitungsschalter in dem neuen Einhängenamensraum rekursiv. Die Vorgabe ist, die Ausbreitung auf \fIprivate\fP zu setzen. Es ist möglich, diese Funktionalität mit dem Argument \fBunchanged\fP zu deaktivieren. Diese Option wird ohne Rückmeldung ignoriert, wenn der Einhängenamensraum (\fB\-\-mount\fP) nicht angefordert wird. .RE .sp \fB\-\-setgroups allow\fP|\fBdeny\fP .RS 4 Erlaubt oder verweigert den Systemaufruf \fBsetgroups\fP(2) in Benutzer\-Namensräumen. .sp Um \fBsetgroups\fP(2) aufrufen zu können, muss der aufrufende Prozess mindestens über \fBCAP_SETGID\fP verfügen. Seit Linux 3.19 gilt eine weitere Einschränkung: Der Kernel erteilt die Berechtigung, \fBsetgroups\fP(2) aufzurufen, nur nachdem die GID\-Abbildung (\fB/proc/\fP\fIPID\fP\fB/gid_map\fP) eingerichtet wurde. Die GID\-Abbildung ist durch Root beschreibbar, wenn \fBsetgroups\fP(2) aktiviert ist (d.h. \fBallow\fP, die Vorgabe) und die GID\-Abbildung wird durch unprivilegierte Prozesse beschreibbar, wenn \fBsetgroups\fP(2) permanent deaktiviert ist (mit \fBdeny\fP). .RE .sp \fB\-R\fP, \fB\-\-root=\fP\fIVerzeichnis\fP .RS 4 führt den Befehl aus, wobei das Wurzelverzeichnis auf das angegebene \fIVerzeichnis\fP gesetzt wird. .RE .sp \fB\-w\fP, \fB\-\-wd=\fP\fIVerzeichnis\fP .RS 4 ändert das Arbeitsverzeichnis auf das angegebene \fIVerzeichnis\fP. .RE .sp \fB\-S\fP, \fB\-\-setuid\fP \fIUID\fP .RS 4 legt die Benutzerkennung fest, die in dem betretenen Namensraum verwendet wird. .RE .sp \fB\-G\fP, \fB\-\-setgid\fP \fIGID\fP .RS 4 legt die Gruppenkennung fest, die in dem betretenen Namensraum verwendet wird und entfernt zusätzliche Gruppen. .RE .sp \fB\-\-monotonic\fP \fIVersatz\fP .RS 4 legt den Versatz von \fBCLOCK_MONOTONIC\fP fest, der im betretenen Zeit\-Namensraum verwendet wird. Diese Option erfordert die Trennung eines Zeit\-Namensraums mit \fB\-\-time\fP. .RE .sp \fB\-\-boottime\fP \fIVersatz\fP .RS 4 legt den Versatz von \fBCLOCK_BOOTTIME\fP fest, der im betretenen Zeit\-Namensraum verwendet wird. Diese Option erfordert die Trennung eines Zeit\-Namensraums mit \fB\-\-time\fP. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 zeigt einen Hilfetext an und beendet das Programm. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 zeigt die Versionsnummer an und beendet das Programm. .RE .SH ANMERKUNGEN .sp 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 sensible Dateien haben kann, als ein höher privilegierter Benutzer unverfügbar gemacht hat. Kurz gesagt, die Regeln für proc und sysfs sind so ähnlich zu einer Einhängung mit \fBbind\fP(2) wie möglich. .SH BEISPIELE .sp Der folgende Befehl erzeugt einen PID\-Namensraum, wobei \fB\-\-fork\fP verwendet wird, um sicherzustellen, dass der aufgerufene Befehl in einem Kind\-Namensraum ausgeführt wird (welcher der erste Prozess im Namensraum ist), der die PID 1 hat. Die Option \fB\-\-mount\-proc\fP sorgt dafür, dass gleichzeitig auch ein neuer Einhängenamensraum erzeugt und ein neues \fBproc\fP(5)\-Dateisystem eingehängt wird, das Informationen zum neuen PID\-Namensraum enthält. Wenn der Befehl \fBreadlink\fP(1) beendet wird, werden die neuen Namensräume automatisch zerstört. .sp .if n .RS 4 .nf .fam C # unshare \-\-fork \-\-pid \-\-mount\-proc readlink /proc/self 1 .fam .fi .if n .RE .sp Mit den Rechten eines unprivilegierten Benutzers einen neuen Benutzernamensraum erstellen, in welchem die Anmeldedaten des Benutzers auf die Root\-Kennungen innerhalb des Namensraums abgebildet werden: .sp .if n .RS 4 .nf .fam C $ id \-u; id \-g 1000 1000 $ unshare \-\-user \-\-map\-root\-user \(rs sh \-c \(aq\(aqwhoami; cat /proc/self/uid_map /proc/self/gid_map\(aq\(aq root 0 1000 1 0 1000 1 .fam .fi .if n .RE .sp Als unprivilegierter Benutzer einen Benutzer\-Namensraum erstellen, in dem die ersten 65536 IDs alle abgebildet sind und die Anmeldedaten der Benutzer auf die Root\-IDs innerhalb dieses Namensraums abgebildet sind. Die Abbildung wird durch die in \fBsubuid\fP(5) und \fBsubgid\fP(5) zugewiesenen Subordinaten\-IDs bestimmt. Diese Abbildung durch Erstellung einer Datei mit der Benutzer\-ID 1 und der Gruppen\-ID 1 demonstrieren. Der Kürze halber werden nur die Abbildungen der Benutzer\-IDs angezeigt: .sp .if n .RS 4 .nf .fam C $ id \-u 1000 $ cat /etc/subuid 1000:100000:65536 $ unshare \-\-user \-\-map\-auto \-\-map\-root\-user # id \-u 0 # cat /proc/self/uid_map 0 1000 1 1 100000 65535 # touch file; chown 1:1 file # ls \-ln \-\-time\-style=+ file \-rw\-r\-\-r\-\- 1 1 1 0 file # exit $ ls \-ln \-\-time\-style=+ file \-rw\-r\-\-r\-\- 1 100000 100000 0 file .fam .fi .if n .RE .sp Der erste der folgenden Befehle erzeugt einen neuen dauerhaften UTS\-Namenraum und ändert den Rechnernamen so, wie er im Namensraum gesehen wird. Der Namensraum wird dann mit \fBnsenter\fP(1) betreten, um den geänderten Rechnernamen anzuzeigen; dieser Schritt demonstriert, dass der UTS\-Namensraum weiter existiert, obwohl der Namensraum nach dem Beenden des \fBunshare\fP\-Prozesses keine eigenen Mitgliedprozesse mehr hat. Der Namensraum wird dann durch Entfernen der Bind\-Einhängung zerstört. .sp .if n .RS 4 .nf .fam C # touch /root/uts\-ns # unshare \-\-uts=/root/uts\-ns hostname FOO # nsenter \-\-uts=/root/uts\-ns hostname FOO # umount /root/uts\-ns .fam .fi .if n .RE .sp Die folgenden Befehle etablieren einen dauerhaften Einhängenamensraum, der von der »bind«\-Einhängung \fI/root/namespaces/mnt\fP angegeben wird. Um sicherzustellen, dass die Erzeugung dieser Bind\-Einhängung erfolgreich ist, wird das Elternverzeichnis (\fI/root/namespaces\fP) zu einer Bind\-Einhängung, deren Ausbreitungstyp nicht \fBshared\fP ist. .sp .if n .RS 4 .nf .fam C # mount \-\-bind /root/namespaces /root/namespaces # mount \-\-make\-private /root/namespaces # touch /root/namespaces/mnt # unshare \-\-mount=/root/namespaces/mnt .fam .fi .if n .RE .sp Die folgenden Befehle demonstrieren die Verwendung der Option \fB\-\-kill\-child\fP beim Erzeugen eines PID\-Namensraums, um sicherzustellen, dass beim Töten von \fBunshare\fP alle Prozesse innerhalb des PID\-Namensraums getötet werden. .sp .if n .RS 4 .nf .fam C # set +m # Keine Meldungen zum Auftragsstatus ausgeben # unshare \-\-pid \-\-fork \-\-mount\-proc \-\-kill\-child \-\- \(rs bash \-\-norc \-c \(aq\(aq(sleep 555 &) && (ps a &) && sleep 999\(aq\(aq & [1] 53456 # PID TTY STAT TIME COMMAND 1 pts/3 S+ 0:00 sleep 999 3 pts/3 S+ 0:00 sleep 555 5 pts/3 R+ 0:00 ps a # ps h \-o \(aqcomm\(aq $! # Zeigen, dass der Hintergrund\-Job unshare(1) ist unshare # kill $! # unshare(1) töten # pidof sleep .fam .fi .if n .RE .sp Der Befehl \fBpidof\fP(1) gibt nichts aus, da die Kindprozesse getötet wurden. Genauer gesagt: Wenn der \fBsleep\fP\-Prozess, der in dem Namensraum die Prozesskennung 1 hat (also der Init\-Prozess dieses Namensraums) getötet wurde, dann werden daraufhin alle anderen Prozesse in diesem Namensraum getötet. Im Gegensatz dazu zeigt eine ähnliche Reihe von Befehlen, bei denen die Option \fB\-\-kill\-child\fP nicht verwendet wird, dass die Prozesse in diesem PID\-Namensraum beim Beenden von \fBunshare\fP nicht getötet werden: .sp .if n .RS 4 .nf .fam C # unshare \-\-pid \-\-fork \-\-mount\-proc \-\- \(rs bash \-\-norc \-c \(aq\(aq(sleep 555 &) && (ps a &) && sleep 999\(aq\(aq & [1] 53479 # PID TTY STAT TIME COMMAND 1 pts/3 S+ 0:00 sleep 999 3 pts/3 S+ 0:00 sleep 555 5 pts/3 R+ 0:00 ps a # kill $! # pidof sleep 53482 53480 .fam .fi .if n .RE .sp Der folgende Befehl demonstriert die Erzeugung eines Zeit\-Namensraums, in dem die Bootzeit\-Uhr auf einen Zeitpunkt gesetzt ist, der einige Jahre in der Vergangenheit liegt: .sp .if n .RS 4 .nf .fam C # uptime \-p # Betriebszeit im ursprünglichen Zeit\-Namensraum anzeigen up 21 hours, 30 minutes # unshare \-\-time \-\-fork \-\-boottime 300000000 uptime \-p up 9 years, 28 weeks, 1 day, 2 hours, 50 minutes .fam .fi .if n .RE .SH AUTOREN .sp .MTO dottedmag\(atdottedmag.net "Mikhail Gusarov" , .MTO kzak\(atredhat.com "Karel Zak" "" .SH "SIEHE AUCH" .sp \fBnewuidmap\fP(1) \fBnewgidmap\fP(1) \fBclone\fP(2), \fBunshare\fP(2), \fBnamespaces\fP(7), \fBmount\fP(8) .SH "FEHLER MELDEN" .sp Verwenden Sie zum Melden von Fehlern das Fehlererfassungssystem auf .URL https://github.com/util\-linux/util\-linux/issues "" . .SH VERFÜGBARKEIT .sp Der Befehl \fBunshare\fP ist Teil des Pakets util\-linux, welches heruntergeladen werden kann von: .URL https://www.kernel.org/pub/linux/utils/util\-linux/ "Linux Kernel Archive" . .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick , Dr. Tobias Quathamer , Helge Kreutzmann und Mario Blättermann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .