NSENTER(1) Polecenia uzytkownika NSENTER(1) NAZWA nsenter - uruchamia program w innej przestrzeni nazw SKLADNIA nsenter [opcje] [program [argumenty]] OPIS Polecenie nsenter uruchamia program w przestrzeni(ach) nazw podanych w opcjach wiersza polecen (opisanych ponizej). Jesli nie poda sie programu, uruchamiana jest powloka "${SHELL}" (domyslnie: /bin/sh). Mozna przejsc w nastepujace przestrzenie nazw: przestrzen nazw montowan Montowanie i odmontowywanie systemow plikow nie bedzie mialo wplywu na reszte systemu, z wyjatkiem systemow plikow bezposrednio oznaczonych jako wspoldzielone (za pomoca mount --make-shared; zob. /proc/self/mountinfo i znacznik shared). Wiecej szczegolow w podreczniku systemowym mount_namespaces(7) oraz opisie znacznika CLONE_NEWNS w podreczniku clone(2). przestrzen nazw UTS Ustawianie nazwy stacji (hostname) lub domeny (domainname) nie bedzie mialo wplywu na reszte systemu. Wiecej szczegolow w podreczniku systemowym uts_namespaces(7). przestrzen nazw IPC Proces bedzie mial niezalezna przestrzen nazw do celu: kolejek komunikatow POSIX oraz kolejek komunikatow Systemu V, zestawow semaforow oraz segmentow pamieci dzielonej. Wiecej szczegolow w podreczniku ipc_namespaces(7). przestrzen nazw sieci Proces bedzie mial niezalezne stosy IPv4 i IPv6, tablice trasowania IP, reguly zapory sieciowej, drzewa katalogow /proc/net i /sys/class/net, gniazd itp. Wiecej szczegolow w podreczniku network_namespaces(7). przestrzen nazw PID Potomkowie beda miec zbior przypisan od PID-u do procesu odrebny od procesu nsenter. nsenter domyslnie bedzie sie rozgalezial przy zmianie przestrzeni nazw PID, zatem nowy program i jego potomkowie beda dzielic te sama przestrzen nazw i beda wzajemnie widoczni. Jesli poda sie --no-fork, wykonywany (exec) jest nowy program, bez rozgalezienia. Wiecej szczegolow w podreczniku systemowym pid_namespaces(7). przestrzen nazw uzytkownika Proces bedzie mial odrebny zbior identyfikatorow uzytkownika, grup oraz przywilejow. Wiecej szczegolow w podreczniku systemowym user_namespaces(7). przestrzen nazw grup kontrolnych cgroup Proces bedzie mial zwirtualizowany widok /proc/self/cgroup, a nowe montowania cgroup beda zakorzenione w korzeniu przestrzeni nazw cgroup. Wiecej szczegolow w podreczniku systemowym cgroup_namespaces(7). przestrzen nazw czasu Proces bedzie mial oddzielny widok CLOCK_MONOTONIC i/lub CLOCK_BOOTTIME, ktore mozna zmienic za pomoca pliku /proc/self/timens_offsets. Wiecej szczegolow w podreczniku systemowym time_namespaces(7). Do utworzenia nowej przestrzeni nazw sluzy unshare(1). Nastepnie mozna uruchomic program w tej przestrzeni za pomoca nsenter. OPCJE Czesc z ponizszych opcji, odnoszacych sie do przestrzeni nazw przyjmuje opcjonalny argument plik. Powinien byc to jeden z plikow /proc/[pid]/ns/* opisanych w podreczniku systemowym namespaces(7) lub sciezka do montowania korzystajacego z podpiecia utworzonego na jednym z tych plikow. -a, --all Przechodzi do wszystkich przestrzeni procesu docelowego za pomoca domyslnych sciezek przestrzeni nazw /proc//ns/*. Domyslne sciezki do przestrzeni nazw procesu docelowego mozna przeslonic opcjami konkretnej przestrzeni nazw (np. --all --mount=sciezka). Przestrzen nazw uzytkownika zostanie zignorowana, jesli jest taka sama, jak obecna przestrzen nazw uzytkownika wywolujacego. W ten sposob unika sie mozliwosci odzyskania przywilejow poprzez wywolanie do setns(2) przez wywolujacego o obnizonych przywilejach. Wiecej szczegolow w tym podreczniku systemowym. -t, --target PID[:i-wezel] Okresla proces docelowy, z ktorego pozyskany bedzie kontekst. Sciezkami do kontekstu okreslonego przez PID sa: /proc/pid/ns/mnt przestrzen nazw montowan /proc/pid/ns/uts przestrzen nazw UTS /proc/pid/ns/ipc przestrzen nazw IPC /proc/pid/ns/net przestrzen nazw sieci /proc/pid/ns/pid przestrzen nazw PID /proc/pid/ns/user przestrzen nazw uzytkownika /proc/pid/ns/cgroup przestrzen nazw grup kontrolnych cgroup /proc/pid/ns/time przestrzen nazw czasu /proc/pid/root katalog glowny /proc/pid/cwd katalog roboczy Opcjonalnie, proces mozna zaadresowac za pomoca formatu PID:i-wezel. I-wezel identyfikuje unikalny deskryptor pliku procesu. Numer i-wezla procesu mozna pobrac narzedziem getino(1). -m, --mount[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw montowan. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw montowan procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw montowan okreslona plikiem lub id-prz-n. -u, --uts[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw UTS. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw UTS procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw UTS okreslona plikiem lub id-prz-n. -i, --ipc[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw IPC. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw IPC procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw IPC okreslona plikiem lub id-prz-n. -n, --net[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw sieci. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw sieci procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw sieci okreslona plikiem lub id-prz-n. -N, --net-socket deskr-pl Wchodzi do przestrzeni nazw sieci gniazda procesu docelowego. Wymaga podania procesu opcja --target. Obslugiwane od Linuksa 5.6. -p, --pid[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw PID. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw PID procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw PID okreslona plikiem lub id-prz-n. -U, --user[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw uzytkownika. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw uzytkownika procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw uzytkownika okreslona plikiem lub id-prz-n. --user-parent Wchodzi do nadrzednej przestrzeni nazw uzytkownika. Nadrzedna przestrzen nazw uzytkownika bedzie pozyskana z dowolnej innej wlaczonej przestrzeni nazw. Przy lacznym stosowaniu z opcja --user, pobierze nadrzedna przestrzen nazw uzytkownika z przestrzeni uzytkownika i zastapi ja. -C, --cgroup[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw grup kontrolnych cgroup. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw cgroup procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw cgroup okreslona plikiem lub id-prz-n. -T, --time[=plik|=:id-prz-n] Wchodzi do przestrzeni nazw czasu. Jesli nie poda sie argumentu, wchodzi w przestrzen nazw czasu procesu docelowego. Jesli poda sie plik lub :id-prz-n, wchodzi w przestrzen nazw czasu okreslona plikiem lub id-prz-n. -G, --setgid id-grupy Ustawia identyfikator grupy stosowany po wejsciu w przestrzen nazw oraz porzuca grupy dodatkowe. nsenter zawsze ustawia identyfikator grupy w przypadku przestrzeni nazw uzytkownika, domyslnym jest 0. Jesli poda sie argument "follow", to stosowany jest identyfikator grupy procesu docelowego. -S, --setuid id-uzytkownika Ustawia identyfikator uzytkownika stosowany po wejsciu w przestrzen nazw. nsenter zawsze ustawia identyfikator uzytkownika w przypadku przestrzeni nazw uzytkownika, domyslnym jest 0. Jesli poda sie argument "follow", to stosowany jest identyfikator uzytkownika procesu docelowego. --keep-caps Gdy poda sie opcje --user zapewnia, ze przywileje nadane w przestrzeni nazw uzytkownika sa zachowywane w procesie potomnym. --preserve-credentials Nie modyfikuje identyfikatorow uzytkownika i grupy przy wchodzeniu do przestrzeni nazw uzytkownika. Domyslnie grupy dodatkowe sa porzucane, a identyfikatory uzytkownika i grupy ustawiane na 0. -r, --root[=katalog] Ustawia katalog glowny. Jesli nie poda sie katalogu, ustawia katalog glowny na katalog glowny procesu docelowego. Jesli poda sie katalog, ustawia katalog glowny na podany katalog. Podany katalog jest otwierany przed przelaczeniem sie na zadane przestrzenie nazw. -w, --wd[=katalog] Ustawia katalog roboczy. Jesli nie poda sie katalogu, ustawia katalog roboczy na katalog roboczy procesu docelowego. Jesli poda sie katalog, ustawia katalog roboczy na podany katalog. Podany katalog jest otwierany przed przelaczeniem sie na zadane przestrzenie nazw, co oznacza ze podany katalog roboczy dziala jako "tunel" do biezacej przestrzeni uzytkownika. Zob. tez --wdns. -W, --wdns[=katalog] Ustawia katalog roboczy. Podany katalog jest otwierany po przelaczeniu na zadane przestrzenie nazw i po wywolaniu chroot(2). Opcje --wd i --wdns wzajemnie sie wykluczaja. -e, --env Przekazuje zmienne srodowiskowe z procesu docelowego do nowo tworzonego procesu. Jesli nie poda sie tej opcji, zmienne srodowiskowe pozostana takie same, jak w biezacej przestrzeni nazw. -F, --no-fork Nie rozgalezia sie przed wykonaniem podanego programu. Domyslnie, przy wchodzeniu do przestrzeni nazw PID, nsenter wywoluje fork przed wywolaniem exec, dzieki czemu potomkowie beda umieszczeni rowniez w tej przestrzeni nazw PID. -Z, --follow-context Ustawia kontekst bezpieczenstwa SELinux stosowany do wykonywania nowego procesu, na podstawie procesu juz dzialajacego, okreslonego opcja --target za pomoca PID (wymaga skompilowania util-linux z obsluga SELinux, w innym przypadku opcja bedzie niedostepna). -c, --join-cgroup Dodaje inicjowany proces do grupy kontrolnej cgroup procesu docelowego. -h, --help Wyswietla ten tekst i wychodzi. -V, --version Wyswietla wersje i wychodzi. UWAGI Opcja --user-parent wymaga Linuksa 4.9 lub nowszego, starsze jadra zwroca blad: nieprawidlowe ioctl dla urzadzenia. Okreslanie przestrzeni nazw za pomoca id-prz-n wymaga Linuksa 6.19. Jesli nazwa pliku przestrzeni nazw zaczyna sie dwukropkiem, dla odroznienia nalezy ja poprzedzic ./ . AUTORZY Eric Biederman , Karel Zak ZOBACZ TAKZE unshare(1), lsns(8), clone(2), setns(2), namespaces(7) getino(1) ZGLASZANIE BLEDOW Problemy nalezy zglaszac w systemie sledzenia bledow . DOSTEPNOSC Polecenie nsenter jest czescia pakietu util-linux, ktory mozna pobrac ze strony Archiwum jadra Linux . util-linux 2.42.3 2026-09-02 NSENTER(1)