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). 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]) uberschrieben 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() wiederzuerlangen. Siehe setns(2) fur weitere Details. -t, --target PID 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 -m, --mount[=file] wechselt in den Einhange-Namensraum. Wenn keine Datei angegeben ist, wird in den Einhange-Namensraum der Zieldatei gewechselt. Wenn eine Datei angegeben ist, wird in den Einhange-Namensraum der angegebenen Datei gewechselt. -u, --uts[=file] wechselt in den UTS-Namensraum. Wenn keine Datei angegeben ist, wird in den UTS-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den UTS-Namensraum der angegebenen Datei gewechselt. -i, --ipc[=file] wechselt in den IPC-Namensraum. Wenn keine Datei angegeben ist, wird in den IPC-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den IPC-Namensraum der angegebenen Datei gewechselt. -n, --net[=file] wechselt in den Netzwerk-Namensraum. Wenn keine Datei angegeben ist, wird in den Netzwerk-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den Netzwerk-Namensraum der angegebenen Datei gewechselt. -N, --net-socket fd Enter the network namespace of the target process's socket. It requires --target process specified. Supported since Linux 5.6. -p, --pid[=file] wechselt in den PID-Namensraum. Wenn keine Datei angegeben ist, wird in den PID-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den PID-Namensraum der angegebenen Datei gewechselt. -U, --user[=file] wechselt in den Benutzer-Namensraum. Wenn keine Datei angegeben ist, wird in den Benutzer-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den Benutzer-Namensraum der angegebenen Datei gewechselt. --user-parent Enter the parent user namespace. Parent user namespace will be acquired from any other enabled namespace. If combined with --user option the parent user namespace will be fetched from the user namespace and replace it. -C, --cgroup[=file] wechselt in den Cgroup-Namensraum. Wenn keine Datei angegeben ist, wird in den Cgroup-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den Cgroup-Namensraum der angegebenen Datei gewechselt. -T, --time[=file] wechselt in den Zeit-Namensraum. Wenn keine Datei angegeben ist, wird in den Zeit-Namensraum des Zielprozesses gewechselt. Wenn eine Datei angegeben ist, wird in den Zeit-Namensraum der angegebenen Datei 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[=directory] 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[=directory] 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 ist 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[=directory] 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 Display version and exit. ANMERKUNGEN The --user-parent option requires Linux 4.9 or higher, older kernels will raise inappropriate ioctl for device error. AUTOREN Eric Biederman , Karel Zak SIEHE AUCH clone(2), setns(2), namespaces(7) FEHLER MELDEN For bug reports, use the issue tracker . VERFUGBARKEIT Der Befehl nsenter ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.41 2025-03-29 NSENTER(1)