NSENTER(1) Dienstprogramme fur Benutzer NSENTER(1) BEZEICHNUNG nsenter - Programme in anderen Namensraumen ausfuhren UBERSICHT nsenter [Optionen] [Programm [Argumente]] BESCHREIBUNG Der Befehl nsenter fuhrt das angegebene Programm im Namensraum oder den Namensraumen aus, der oder die in den Befehlszeilenoptionen angegeben sind (nachfolgend beschrieben). Falls kein Programm angegeben ist, dann wird >>${SHELL}<< ausgefuhrt (Vorgabe: /bin/sh). Wechselfahige Namensraume sind: Einhange-Namensraum Ein- und Aushangen eines Dateisystems wirkt sich nicht auf das ubrige System aus, ausser fur Dateisysteme, die ausdrucklich als Mehrfacheinhangungen markiert sind (mit mount --make-shared; siehe /proc/self/mountinfo fur den Schalter shared). Fur weitere Details siehe mount_namespaces(7) und die Diskussion des Schalters CLONE_NEWNS in clone(2). UTS-Namensraum Setzen des Rechner- oder Domain-Namens wird den Rest des Systems nicht betreffen. Fur weitere Details siehe uts_namespaces(7). IPC-Namensraum Der Prozess erhalt einen unabhangigen Namensraum fur POSIX-Meldungswarteschlangen sowie System-V-Meldungswarteschlangen, Semaphor-Gruppen und gemeinsam genutzte Speichersegmente. Fur weitere Details siehe ipc_namespaces(7). Netzwerk-Namensraum Der Prozess erhalt unabhangige IPv4- und IPv6-Stapel, IP-Routing-Tabellen, Firewall-Regeln, die Verzeichnisbaume /proc/net und /sys/class/net, Sockets usw. Fur weitere Details siehe network_namespaces(7). PID-Namensraum Kindprozesse erhalten einen eigenen Satz an PID-auf-Prozess-Abbildungen separat vom nsenter-Prozess. nsenter ruft standardmassig >>fork<< auf, wenn in den PID-Namensraum gewechselt wird, so dass das neue Programm und dessen Kinder einen gemeinsamen Namensraum haben und fureinander sichtbar sind. Wenn --no-fork verwendet wird, wird das neue Programm ohne vorheriges Forken ausgefuhrt. Fur weitere Details, siehe pid_namespaces(7). Benutzer-Namensraum Der Prozess wird uber eine eindeutige Gruppe an UIDs, GIDS und Capabilities verfugen. Fur weitere Details siehe user_namespaces(7). Cgroup-Namensraum Der Prozess wird uber einen virtualisierten Blick auf /proc/self/cgroup verfugen und neue Cgroup-Einhangungen werden ihre Wurzel in der Wurzel der Cgroup-Namensraum-Wurzel haben. Fur weitere Details siehe cgroup_namespaces(7). Zeit-Namensraum Der Prozess kann eine abweichende Sicht auf CLOCK_MONOTONIC und/oder CLOCK_BOOTTIME haben, was mittels /proc/self/timens_offsets geandert werden kann. Fur weitere Details, siehe time_namespaces(7). Um einen neuen Namensraum zu erstellen, verwenden Sie unshare(1). Nach der Erstellung konnen Sieein Programm darin mit nsenter ausfuhren. OPTIONEN Verschiedene der unten beschriebenen Optionen, die sich auf Namensraume beziehen, akzeptieren ein optionales Argument Datei. Dies sollte eine aus den in namespaces(7) beschriebenen Dateien unter /proc/[PID]/ns/ oder der Pfadname einer Bind-Einhangung, die auf einer dieser Dateien erstellt wurde, sein. -a, --all Wechselt in alle Namensraume des Zielprozesses mittels der Vorgabe-Namensraumepfade /proc/[PID]/ns/*. Die Vorgabepfade zum Zielprozessnamensraum konnen mittels namensraumspezifischer Optionen (z.B. --all --mount=[Pfad]) ausser Kraft gesetzt werden. Die Benutzer-Namensraume werden ignoriert, falls sie mit dem Namensraum des aktuell Aufrufenden identisch sind. Es verhindert einen Aufrufenden, der Capabilities abgegeben hat, diese Capabilities mit einem Aufruf von setns(2) wiederzuerlangen. Siehe dessen Handbuchseite fur weitere Details. -t, --target PID[:Inode] gibt einen Zielprozess an, aus dem die Kontexte ermittelt werden sollen. Die Pfade der durch die PID anzugebenden Kontexte sind: /proc/pid/ns/mnt der Einhange-Namensraum /proc/pid/ns/uts der UTS-Namensraum /proc/pid/ns/ipc der IPC-Namensraum /proc/pid/ns/net der Netzwerk-Namensraum /proc/pid/ns/pid der PID-Namensraum /proc/pid/ns/user der Benutzer-Namensraum /proc/pid/ns/cgroup der Cgroup-Namensraum /proc/pid/ns/time der Zeit-Namensraum /proc/pid/root das Wurzelverzeichnis /proc/pid/cwd das Arbeitsverzeichnis Optional kann ein Prozess im Format PID:Inode adressiert werden. Inode identifiziert hierbei den eindeutigen Dateideskriptor des Prozesses. Um die Inode-Nummer eines Prozesses abzurufen, kann das Dienstprogramm getino(1) verwendet werden. -m, --mount[=Datei|=:Namensraum-ID] wechselt in den Einhange-Namensraum. Wenn kein Argument angegeben ist, wird in den Einhange-Namensraum der Zieldatei gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den Einhange-Namensraum gemass der angegebenen Datei oder Namensraum-ID gewechselt. -u, --uts[=Datei|=:Namensraum-ID] wechselt in den UTS-Namensraum. Wenn kein Argument angegeben ist, wird in den UTS-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen UTS-Namensraum gewechselt. -i, --ipc[=Datei|=:Namensraum-ID] wechselt in den IPC-Namensraum. Wenn kein Argument angegeben ist, wird in den IPC-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen IPC-Namensraum gewechselt. -n, --net[=Datei|=:Namensraum-ID] wechselt in den Netzwerk-Namensraum. Wenn kein Argument angegeben ist, wird in den Netzwerk-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen Netzwerk-Namensraum gewechselt. -N, --net-socket Dateideskriptor wechselt in den Netzwerk-Namensraum des Sockets des Zielprozesses. Dafur muss der Zielprozess mit --target angegeben werden. Unterstutzt seit Linux 5.6. -p, --pid[=Datei|=:Namensraum-ID] wechselt in den PID-Namensraum. Wenn kein Argument angegeben ist, wird in den PID-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen PID-Namensraum gewechselt. -U, --user[=Datei|=:Namensraum-ID] wechselt in den Benutzer-Namensraum. Wenn kein Argument angegeben ist, wird in den Benutzer-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen Benutzer-Namensraum gewechselt. Siehe auch die Optionen --setuid und --setgid. --user-parent wechselt in den ubergeordneten Benutzernamensraum. Der ubergeordnete Benutzernamensraum wird aus jedem anderen aktivierten Benutzernamensraum abgerufen. In Kombination mit der Option --user wird der ubergeordnete Benutzernamensraum aus dem Benutzernamensraum abgerufen und ersetzt. -C, --cgroup[=Datei|=:Namensraum-ID] wechselt in den Cgroup-Namensraum. Wenn kein Argument angegeben ist, wird in den Cgroup-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen Cgroup-Namensraum gewechselt. -T, --time[=Datei|=:Namensraum-ID] wechselt in den Zeit-Namensraum. Wenn kein Argument angegeben ist, wird in den Zeit-Namensraum des Zielprozesses gewechselt. Wenn eine Datei oder :Namensraum-ID angegeben ist, wird in den durch die Datei oder Namensraum-ID angegebenen Zeit-Namensraum gewechselt. -G, --setgid GID legt die Gruppenkennung fest, die in dem Benutzer-Namensraum verwendet wird, in den gewechselt werden soll und uberspringt zusatzliche Gruppen. nsenter(1) setzt stets die GID fur Benutzer-Namensraume, die Voreinstellung ist 0. Falls das Argument >>follow<< angegeben ist, wird die Gruppenkennung des Zielprozesses verwendet. -S, --setuid UID legt die Benutzerkennung fest, die in dem Benutzer-Namensraum verwendet wird, in den gewechselt werden soll. nsenter(1) setzt stets die UID fur Benutzer-Namensraume, die Voreinstellung ist 0. Falls das Argument >>follow<< angegeben ist, wird die Benutzerkennung des Zielprozesses verwendet. --keep-caps stellt bei ubergebener Option --user sicher, dass die im Benutzernamensraum gewahrten Capabilities im Kindprozess erhalten bleiben. --preserve-credentials lasst die UID und GID unverandert, wenn in den Benutzer-Namensraum gewechselt wird. In der Voreinstellung werden zusatzliche Gruppen ubersprungen und die GID und UID auf 0 gesetzt. -r, --root[=Verzeichnis] legt das Wurzelverzeichnis fest. Wenn kein Verzeichnis angegeben ist, wird in das Wurzelverzeichnis des Zielprozesses gewechselt. Wenn ein Verzeichnis angegeben ist, wird es zum neuen Wurzelverzeichnis. Das angegebene Verzeichnis ist geoffnet, bevor es in die angegebenen Namensraume wechselt. -w, --wd[=Verzeichnis] legt das Arbeitsverzeichnis fest. Wenn kein Verzeichnis angegeben ist, wird in das Arbeitsverzeichnis des Zielprozesses gewechselt. Wenn ein Verzeichnis angegeben ist, wird es zum neuen Arbeitsverzeichnis. Das angegebene Verzeichnis wird geoffnet, bevor es in die angegebenen Namensraume wechselt, was bedeutet, dass das angegebene Verzeichnis als >>Tunnel<< zum aktuellen Namensraum fungiert. Siehe auch --wdns. -W, --wdns[=Verzeichnis] legt das Arbeitsverzeichnis fest. Das Verzeichnis ist nach dem Wechsel in die angeforderten Namensraume und nach dem chroot(2)-Aufruf geoffnet. Die Optionen --wd und --wdns schliessen sich gegenseitig aus. -e, --env ubergibt die Umgebungsvariablen des Zielprozesses an den neu zu erzeugenden Prozess. Falls diese Option nicht angegeben ist, bleiben die Umgebungsvariablen die gleichen wie im aktuellen Namensraum. -F, --no-fork veranlasst, dass >>fork<< vor dem Ausfuhren des angegebenen Programms nicht aufgerufen wird. In der Voreinstellung wird fork durch nsenter beim Wechsel in den PID-Namensraum aufgerufen, so dass sich die jeweiligen Kindprozesse auch im neuen PID-Namensraum befinden. -Z, --follow-context setzt den SELinux-Kontext, der fur die Ausfuhrung eines neuen Prozesses entsprechend des bereits durch --target PID angegebenen Prozesses verwendet wird (Util-Linux muss mit SELinux-Unterstutzung kompiliert worden sein, damit diese Option zur Verfugung steht). -c, --join-cgroup fugt den initiierten Prozess zur Cgroup des Zielprozesses hinzu. -h, --help zeigt einen Hilfetext an und beendet das Programm. -V, --version zeigt Versionsinformationen an und beendet das Programm. ANMERKUNGEN Die Option --user-parent erfordert Linux 4.9 oder hoher. Altere Kernel losen einen unangemessenen Ioctl-Fehler fur das Gerat aus. Die Angabe von Namensraumen per Namensraum-ID erfordert Linux 6.19 oder neuer. Falls der Name einer Namensraum-Datei mit einem Doppelpunkt beginnt, stellen Sie zwecks Eindeutigkeit ./ voran. AUTOREN Eric Biederman , Karel Zak SIEHE AUCH unshare(1), lsns(8), clone(2), setns(2), namespaces(7) getino(1) FEHLER MELDEN Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem . VERFUGBARKEIT Der Befehl nsenter ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.42.3 2026-09-02 NSENTER(1)