Scroll to navigation

NSENTER(1) Команди користувача NSENTER(1)

НАЗВА

nsenter - запуск програми у різних просторах назв

КОРОТКИЙ ОПИС

nsenter [options] [program [arguments]]

ОПИС

Програма nsenter виконує програму у просторах назв, які вказано у параметрах рядка команди (описаних нижче). Якщо програму не задано, буде запущено «${SHELL}» (типово, /bin/sh).

Можливий вхід до таких просторів назв:

mount namespace

Монтування і демонтування файлових систем не впливає на решту системи, окрім файлових систем, якщо явно позначено як спільні (за допомогою mount --make-shared; див. /proc/self/mountinfo щодо прапорця shared). Щодо подробиць, див. mount_namespaces(7) і обговорення прапорця CLONE_NEWNS у підручнику з clone(2).

UTS namespace

Встановлення назви вузла або назви домену не стосуватиметься решти системи. Щоб дізнатися більше, див. uts_namespaces(7).

IPC namespace

Процес матиме незалежний простір назв для черги повідомлень POSIX, а також черг повідомлень System V, наборів семафорів та сегментів спільної пам’яті. Щоб дізнатися більше, ознайомтеся зі сторінкою підручника ipc_namespaces(7).

network namespace

Процес матиме незалежні стеки IPv4 і IPv6, таблиці IP-маршрутизації, правила брандмауера, ієрархії каталогів /proc/net і /sys/class/net, сокети тощо. Щоб дізнатися більше, див. network_namespaces(7).

PID namespace

Дочірні процеси матимуть окремий набір PID для прив’язок процесів щодо процесу nsenter. nsenter, типово, виконає відгалуження при зміні простору назв PID, отже, нова програма і її дочірні процеси матимуть спільний простір назв PID, який буде видимим для кожного з них. Якщо використано --no-fork, для нової програми буде використано exec без відгалуження. Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо pid_namespaces(7).

user namespace

Процес матиме окремий набір UID, GID і можливостей. Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо user_namespaces(7).

cgroup namespace

Процес матиме віртуалізований перегляд /proc/self/cgroup і нові монтування cgroup матимуть корінь у корені cgroup простору назв. Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо cgroup_namespaces(7).

time namespace

Процес може мати окремий перегляд CLOCK_MONOTONIC і/або CLOCK_BOOTTIME, що може бути змінено за допомогою /proc/self/timens_offsets. Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо time_namespaces(7).

ПАРАМЕТРИ

До різних параметрів, описаних нижче, таких, що стосуються просторів назв, додають аргумент файл. Це має бути один з файлів /proc/[pid]/ns/*, які описано на сторінці підручника щодо namespaces(7), або шлях монтування з прив’язкою, яке було створено для одного з цих файлів.

-a, --all

Увійти до усіх просторів назв процесу призначення за типовими шляхами простору назв /proc/[pid]/ns/*. Типові шляхи до просторів назв призначення може бути перезаписано певними параметрами простору назв (наприклад, --all --mount=[шлях]).

Простір назв користувача буде проігноровано, якщо він збігається із простором назв поточного користувача засобу виклику. Це запобігає повторному набуттю прав доступу засобу виклику, який скинув права доступу за допомогою виклику setns(). Див. setns(2), щоб дізнатися більше.

-t, --target PID

Вказати цільовий процес для отримання контексту. Шляхами до контексту, що задається pid, є такі:

/proc/pid/ns/mnt

простір назв монтування

/proc/pid/ns/uts

простір назв UTS

/proc/pid/ns/ipc

простір назв IPC

/proc/pid/ns/net

простір назв мережі

/proc/pid/ns/pid

простір назв PID

/proc/pid/ns/user

простір назв користувача

/proc/pid/ns/cgroup

простір назв cgroup

/proc/pid/ns/time

простір назв часу

/proc/pid/root

кореневий каталог

/proc/pid/cwd

відповідний робочий каталог

-m, --mount[=файл]

Увійти до простору назв mount. Якщо файл не вказано, увійти до простору назв mount цільового процесу. Якщо вказано файл, увійти до простору назв mount, який вказано файлом.

-u, --uts[=файл]

Увійти до простору назв UTS. Якщо файл не вказано, увійти до простору назв UTS цільового процесу. Якщо вказано файл, увійти до простору назв UTS, який вказано файлом.

-i, --ipc[=файл]

Увійти до простору назв IPC. Якщо файл не вказано, увійти до простору назв IPC цільового процесу. Якщо вказано файл, увійти до простору назв IPC, який вказано файлом.

-n, --net[=файл]

Увійти до простору назв мережі. Якщо файл не вказано, увійти до простору назв мережі цільового процесу. Якщо вказано файл, увійти до простору назв мережі, який вказано файлом.

-p, --pid[=файл]

Увійти до простору назв PID. Якщо файл не вказано, увійти до простору назв PID цільового процесу. Якщо вказано файл, увійти до простору назв PID, який вказано файлом.

-U, --user[=файл]

Увійти до простору назв користувача. Якщо файл не вказано, увійти до простору назв користувача цільового процесу. Якщо вказано файл, увійти до простору назв користувача, який вказано файлом. Див. також параметри --setuid і --setgid.

--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[=файл]

Увійти до простору назв cgroup. Якщо файл не вказано, увійти до простору назв cgroup цільового процесу. Якщо вказано файл, увійти до простору назв cgroup, який вказано файлом.

-T, --time[=файл]

Увійти до простору назв time. Якщо файл не вказано, увійти до простору назв time цільового процесу. Якщо вказано файл, увійти до простору назв time, який вказано файлом.

-G, --setgid gid

Set the group ID which will be used in the entered namespace and drop supplementary groups. nsenter always sets GID for user namespaces, the default is 0. If the argument "follow" is specified the GID of the target process is used.

-S, --setuid uid

Set the user ID which will be used in the entered namespace. nsenter always sets UID for user namespaces, the default is 0. If the argument "follow" is specified the UID of the target process is used.

--keep-caps

When the --user option is given, ensure that capabilities granted in the user namespace are preserved in the child process.

--preserve-credentials

Не змінювати UID і GID при вході до простору назв користувача. Типовим є скидання додаткових груп і встановлення для GID і UID значень 0.

-r, --root[=каталог]

Встановити кореневий каталог. Якщо каталог не вказано, для кореневого каталогу буде використано кореневий каталог процесу призначення. Якщо каталог вказано, встановити для кореневого каталогу вказаний каталог. Вказаний каталог буде відкрито до того, як буде виконано перехід на бажані простори назв.

-w, --wd[=каталог]

Встановити робочий каталог. Якщо каталог не вказано, для робочого каталогу буде використано робочий каталог процесу призначення. Якщо каталог вказано, для робочого каталогу буде використано вказаний каталог. Вказаний каталог буде відкрито до перемикання до бажаних просторів назв. Це означає, що вказаний каталог працюватиме як «тунель» до поточного простору назв. Див. також --wdns.

-W, --wdns[=каталог]

Встановити робочий каталог. Каталог буде відкрито після перемикання до бажаних просторів назв і після виклику chroot(2). Параметри --wd і --wdns є взаємно виключними.

-e, --env

Pass environment variables from the target process to the new process being created. If this option is not provided, the environment variables will remain the same as in the current namespace..

-F, --no-fork

Не робити відгалуження до виконання exec для вказаної програми. Типово, при вході до простору назв PID nsenter викликає fork до виклику exec, отже, будь-який дочірній процес також потрапить до нового простору назв PID, до якого здійснено вхід.

-Z, --follow-context

Встановити контекст захисту SELinux, який буде використано для виконання нового процесу відповідно до вже запущеного процесу, який вказано за допомогою PID --target. (util-linux має бути зібрано з підтримкою SELinux, інакше параметром не можна буде скористатися.)

-c, --join-cgroup

Add the initiated process to the cgroup of the target process.

-h, --help

Вивести текст довідки і завершити роботу.

-V, --version

Вивести дані щодо версії і завершити роботу.

ЗАУВАЖЕННЯ

The --user-parent option requires Linux 4.9 or higher, older kernels will raise inappropriate ioctl for device error.

АВТОРИ

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

ТАКОЖ ПЕРЕГЛЯНЬТЕ

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

ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ

Для звітування щодо вад скористайтеся системою стеження за вадами - <https://github.com/util-linux/util-linux/issues>.

ДОСТУП ДО ПРОГРАМИ

Програма nsenter є частиною пакунка util-linux, який можна отримати з архіву ядра Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.

2024-04-03 util-linux 2.40