Scroll to navigation

NSENTER(1) Comenzi utilizator NSENTER(1)

NUME

nsenter - rulează programul în diferite spații de nume

REZUMAT

nsenter [opțiuni] [program [argumente]]

DESCRIERE

Comanda nsenter execută programul în spațiul (spațiile) de nume care sunt specificate în opțiunile liniei de comandă (descrise mai jos). Dacă program nu este indicat, se execută «${SHELL}» (implicit: /bin/sh).

Spațiile de nume care pot fi introduse sunt:

mount namespace

Montarea și demontarea sistemelor de fișiere nu va afecta restul sistemului, cu excepția sistemelor de fișiere care sunt marcate în mod explicit ca fiind partajate (cu mount --make-shared; a se vedea /proc/self/mountinfo pentru fanionul shared). Pentru mai multe detalii, consultați mount_namespaces(7) și discuția despre fanionul CLONE_NEWNS din clone(2).

UTS namespace

Stabilirea numelui de gazdă sau a numelui de domeniu nu va afecta restul sistemului. Pentru mai multe detalii, consultați uts_namespaces(7).

IPC namespace

Procesul va avea un spațiu de nume independent pentru cozile de mesaje POSIX, precum și pentru cozile de mesaje System V, seturile de semafoare și segmentele de memorie partajată. Pentru mai multe detalii, consultați ipc_namespaces(7).

network namespace

Procesul va avea stive IPv4 și IPv6 independente, tabele de direcționare IP, reguli de paravan de protecție, arborii de directoare /proc/net și /sys/class/net, socluri etc. Pentru mai multe detalii, consultați network_namespaces(7).

PID namespace

Procesele-copil vor avea un set de corespondențe între PID și proces separat de procesul nsenter. nsenter va crea implicit o bifurcație în cazul în care se schimbă spațiul de nume PID, astfel încât noul program și procesele-copil ale acestuia să împartă același spațiu de nume PID și să fie vizibili unul pentru celălalt. Dacă se utilizează --no-fork, noul program va fi executat fără a se ramifica. Pentru mai multe detalii, a se vedea pid_namespaces(7).

user namespace

Procesul va avea un set distinct de UID-uri, GID-uri și capacități. Pentru mai multe detalii, a se vedea user_namespaces(7).

cgroup namespace

Procesul va avea o vizualizare virtualizată a /proc/self/cgroup, iar noile montări cgroup vor fi înrădăcinate la rădăcina spațiului de nume cgroup. Pentru mai multe detalii, consultați cgroup_namespaces(7).

time namespace

Procesul poate avea o viziune distinctă asupra CLOCK_MONOTONIC și/sau CLOCK_BOOTTIME, care poate fi modificată cu ajutorul /proc/self/timens_offsets. Pentru mai multe detalii, a se vedea time_namespaces(7).

OPȚIUNI

Diverse dintre opțiunile de mai jos care se referă la spațiile de nume acceptă un argument opțional fișier. Acesta ar trebui să fie unul dintre fișierele /proc/[pid]/ns/* descrise în namespaces(7) sau numele de rută al unei montări de legătură care a fost creată pe unul dintre aceste fișiere.

-a, --all

Introduce toate spațiile de nume ale procesului țintă prin rutele implicite ale spațiilor de nume /proc/[pid]/ns/*. Rutele implicite către spațiile de nume ale procesului țintă pot fi suprascrise de opțiuni specifice spațiului de nume (de exemplu, --all --mount=[path]).

Spațiul de nume de utilizator va fi ignorat dacă este același cu spațiul de nume de utilizator curent al apelantului. Aceasta împiedică un apelant care a renunțat la capacități să le recupereze prin intermediul unui apel la setns(). A se vedea setns(2) pentru mai multe detalii.

-t, --target PID

Specifică un proces țintă de la care se obțin contexte. Rutele către contextele specificate de pid sunt:

/proc/pid/ns/mnt

spațiul de nume de montare

/proc/pid/ns/uts

spațiul de nume UTS

/proc/pid/ns/ipc

spațiul de nume IPC

/proc/pid/ns/net

spațiul de nume de rețea

/proc/pid/ns/pid

spațiul de nume PID

/proc/pid/ns/user

spațiul de nume de utilizator

/proc/pid/ns/cgroup

spațiul de nume cgroup

/proc/pid/ns/time

spațiul de nume de timp

/proc/pid/root

directorul rădăcină

/proc/pid/cwd

respectiv directorul de lucru

-m, --mount[=fișier]

Introduce spațiul de nume de montare. Dacă nu se specifică niciun fișier, introduce spațiul de nume de montare al procesului țintă. Dacă se specifică fișier, se introduce spațiul de nume de montare specificat de fișier.

-u, --uts[=fișier]

Introduce spațiul de nume UTS. Dacă nu se specifică niciun fișier, introduce spațiul de nume UTS al procesului țintă. Dacă se specifică fișier, se introduce spațiul de nume UTS specificat de fișier.

-i, --ipc[=fișier]

Introduce spațiul de nume IPC. Dacă nu se specifică niciun fișier, introduce spațiul de nume IPC al procesului țintă. Dacă se specifică fișier, se introduce spațiul de nume IPC specificat de fișier.

-n, --net[=fișier]

Introduce spațiul de nume de rețea. Dacă nu se specifică niciun fișier, introduce spațiul de nume de rețea al procesului țintă. Dacă se specifică fișier, se introduce spațiul de nume de rețea specificat de fișier.

-p, --pid[=fișier]

Introduce spațiul de nume PID. Dacă nu se specifică niciun fișier, introduce spațiul de nume PID al procesului țintă. Dacă se specifică fișier, introduce spațiul de nume PID specificat de fișier.

-U, --user[=fișier]

Introduce spațiul de nume de utilizator. Dacă nu este specificat niciun fișier, introduce spațiul de nume de utilizator al procesului țintă. Dacă se specifică fișier, se introduce spațiul de nume de utilizator specificat de fișier. A se vedea, de asemenea, opțiunile --setuid și --setgid.

--user-parent

Introduce spațiul de nume al utilizatorului părinte. Spațiul de nume de utilizator părinte va fi preluat de la orice alt spațiu de nume activat. Dacă este combinată cu opțiunea --user, spațiul de nume al utilizatorului părinte va fi preluat din spațiul de nume al utilizatorului și îl va înlocui.

-C, --cgroup[=fișier]

Introduce spațiul de nume cgroup. Dacă nu se specifică niciun fișier, introduce spațiul de nume cgroup al procesului țintă. Dacă este specificat fișier, se introduce spațiul de nume al cgroup specificat de fișier.

-T, --time[=fișier]

Introduce spațiul de nume de timp. Dacă nu se specifică niciun fișier, introduce spațiul de nume de timp al procesului țintă. Dacă se specifică fișier, se introduce spațiul de nume de timp specificat de fișier.

-G, --setgid gid

Stabilește ID-ul grupului care va fi utilizat în spațiul de nume introdus și se renunță la grupurile suplimentare. nsenter stabilește întotdeauna GID pentru spațiile de nume de utilizator, valoarea implicită este 0. Dacă se specifică argumentul „follow”, se utilizează GID-ul procesului țintă.

-S, --setuid uid

Stabilește ID-ul utilizatorului care va fi utilizat în spațiul de nume introdus. nsenter stabilește întotdeauna UID pentru spațiile de nume de utilizator, valoarea implicită este 0. Dacă se specifică argumentul „follow”, se utilizează UID-ul procesului țintă.

--keep-caps

În cazul în care se oferă opțiunea --user, se asigură că capacitățile acordate în spațiul de nume al utilizatorului sunt păstrate în procesul-copil.

--preserve-credentials

Nu modifică UID și GID atunci când intră în spațiul de nume de utilizator. Valoarea implicită este de a renunța la grupurile suplimentare și de a stabili GID și UID la 0.

-r, --root[=director]

Stabilește directorul rădăcină. Dacă nu se specifică niciun director, se stabilește directorul rădăcină la directorul rădăcină al procesului țintă. Dacă este specificat directorul, se stabilește directorul rădăcină la directorul specificat. Se deschide directorul specificat înainte de a trece la spațiile de nume solicitate.

-w, --wd[=director]

Stabilește directorul de lucru. Dacă nu se specifică niciun director, se stabilește directorul de lucru la directorul de lucru al procesului țintă. Dacă se specifică directorul, se stabilește directorul de lucru la directorul specificat. Directorul director specificat este deschis înainte de a trece la spațiile de nume solicitate, ceea ce înseamnă că directorul specificat funcționează ca un „tunel” către spațiul de nume curent. A se vedea, de asemenea, --wdns.

-W, --wdns[=director]

Stabilește directorul de lucru. directorul este deschis după trecerea la spațiile de nume solicitate și după apelul chroot(2). Opțiunile --wd și --wdns se exclud reciproc.

-e, --env

Transferă variabilele de mediu de la procesul țintă la noul proces care se creează. Dacă această opțiune nu este furnizată, variabilele de mediu vor rămâne aceleași ca în spațiul de nume curent.

-F, --no-fork

Nu creează o bifurcație înainte de a executa programul specificat. În mod implicit, atunci când se intră într-un spațiu de nume PID, nsenter apelează fork înainte de a apela exec, astfel încât toate procesele-copil să fie, de asemenea, în spațiul de nume PID nou intrat.

-Z, --follow-context

Stabilește contextul de securitate SELinux utilizat pentru executarea unui nou proces în funcție de procesul deja în desfășurare specificat prin --target PID (util-linux trebuie să fie compilat cu suport SELinux, altfel opțiunea nu este disponibilă).

-c, --join-cgroup

Adaugă procesul inițiat în cgroup-ul procesului țintă.

-h, --help

Afișează acest mesaj de ajutor și iese.

-V, --version

Afișează informațiile despre versiune și iese.

NOTE

Opțiunea --user-parent necesită Linux 4.9 sau o versiune mai recentă, nucleele mai vechi vor genera un ioctl necorespunzător pentru erori de dispozitiv.

AUTORI

Eric Biederman <biederm@xmission.com>, Karel Zak <kzak@redhat.com>

CONSULTAȚI ȘI

clone(2), setns(2), namespaces(7)

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor la <https://github.com/util-linux/util-linux/issues>.

DISPONIBILITATE

Comanda nsenter face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

2025-01-14 util-linux 2.40.4