NSENTER(1)

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

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

nsenter [параметри] [програма [аргументи]]

ОПИС

Програма 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[=файл]
    Увійти до простору назв мережі. Якщо файл не вказано, увійти до простору назв мережі цільового процесу. Якщо вказано файл, увійти до простору назв мережі, який вказано файлом.

-N, --net-socket дф
    Enter the network namespace of the target process’s socket. It requires --target process specified. Supported since Linux 5.6.

-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
    Встановити ідентифікатор групи, який буде використано для простору користувача, до якого буде здійснено вхід, і скинути додаткові групи. nsenter завжди встановлює ідентифікатор групи для просторів користувача, типовим є 0. Якщо вказано аргумент "follow", буде використано GID процесу призначення.

-S, --setuid uid
    Встановити ідентифікатор користувача, який буде використано для простору користувача, до якого буде здійснено вхід. nsenter завжди встановлює ідентифікатор користувача для просторів користувача, типовим є 0. Якщо вказано аргумент "follow", буде використано GID процесу призначення.

--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.

АВТОРИ

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

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

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

Для звітування щодо вад скористайтеся

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

Програма nsenter є частиною пакунка util-linux, який можна отримати з