Scroll to navigation

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

НАЗВА

runuser - запуск команди від імені іншого користувача та групи

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

runuser [options] -u user [[--] command [argument...]]

runuser [options] [-] [user [argument...]]

ОПИС

runuser can be used to run commands with a substitute user and group ID. If the option -u is not given, runuser falls back to su-compatible semantics and a shell is executed. The difference between the commands runuser and su is that runuser does not ask for a password (because it may be executed by the root user only) and it uses a different PAM configuration. The command runuser does not have to be installed with set-user-ID permissions.

Якщо сеанс PAM не є обов’язковим, рекомендованим рішенням є використання команди setpriv(1).

Якщо викликано без аргументів, типово, runuser буде запущено інтерактивну командну оболонку від імені root.

З метою забезпечення зворотної сумісності runuser, типово, не змінює поточного каталогу і встановлює лише змінні середовища HOME і SHELLUSER та LOGNAME, якщо користувачем користувач не є root). У цій версії runuser для керування сеансом використано PAM.

Зауважте, що runuser в усіх випадках використовує PAM (pam_getenvlist()) для виконання остаточної модифікації середовища. Параметри командного рядка, зокрема --login і --preserve-environment застосовуються до середовища, перш ніж його буде змінено PAM.

Починаючи з версії 2.38, runuser скидає обмеження на ресурси процесу RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS і RLIMIT_NOFILE.

ПАРАМЕТРИ

-c, --command=команда

Передати команду командній оболонці за допомогою параметра -c.

-f, --fast

Передати оболонці -f, може бути як корисним, так і недоречним, залежно від оболонки.

-g, --group=група

Основна група, яку слід використати. Цей параметр можна використовувати лише від імені користувача root.

-G, --supp-group=група

Визначити додаткову групу. Цей параметр доступний лише користувачу root. Першу вказану додаткову групу також буде використано як основну групу, якщо не вказано параметр --group.

-, -l, --login

Запустити командну оболонку як оболонку входу до системи із середовищем, подібним для звичайної оболонки для входу:

•очищає усі змінні середовища, окрім TERM і змінних, які вказано --whitelist-environment

•ініціалізує змінні середовища HOME, SHELL, USER, LOGNAME і PATH

•змінює домашній каталог користувача призначення

•встановлює для argv[0] командної оболонки значення «-» з метою зробити оболонку оболонкою входу до системи

-m, -p, --preserve-environment

Зберегти усе середовище, тобто не встановлювати значення HOME, SHELL, USER та LOGNAME. Цей параметр буде проігноровано, якщо вказано параметр --login.

-P, --pty

Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., runuser --pty -u user -- command &). If the pseudo-terminal is enabled, then runuser works as a proxy between the sessions (sync stdin and stdout).

Цю можливість, в основному, призначено для інтерактивних сеансів. Якщо стандартним джерелом вхідних даних є не термінал, а, наприклад, канал даних (приклад: echo "date" | runuser --pty -u користувач), прапорець ECHO для псевдотермінала буде вимкнено для того, щоб уникнути безладного виведення даних.

-s, --shell=оболонка

Запустити вказану командну оболонку замість типової. Запущену оболонку буде вибрано за такими правилами, за порядком:

•командна оболонка, яку вказано за допомогою --shell.

•командна оболонка, яку вказано у змінній середовища SHELL, якщо використано параметр --preserve-environment

•командна оболонка зі списку у запису passwd користувача призначення

•/bin/sh

Якщо у користувача призначення командну оболонку обмежено (тобто її немає у списку /etc/shells), параметр --shell і змінні середовища SHELL буде проігноровано, якщо користувачем, який викликав програму, не є root.

--session-command=команда

Те саме, що і -c, але без створення сеансу. (Не радимо.)

-T, --no-pty*

Do not create a pseudo-terminal, opposite of --pty and -P. Note that running without a pseudo-terminal opens the security risk of privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection.

-u, --user=user

Run command with the effective user ID and group ID of the user name user.

-w, --whitelist-environment=_список>

Не відновлювати початкові значення змінних середовища, який вказано у списку відокремлених комами значень список при очищенні середовища для --login. «Білий» список буде проігноровано для змінних середовища HOME, SHELL, USER, LOGNAME і PATH.

-h, --help

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

-V, --version

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

ФАЙЛ НАЛАШТУВАНЬ

runuser reads the /etc/default/runuser and /etc/login.defs configuration files. The following configuration items are relevant for runuser:

ENV_PATH (рядок)

Визначає змінну середовища PATH для звичайного користувача Типовим значенням є /usr/local/bin:/bin:/usr/bin.

ENV_ROOTPATH (рядок), ENV_SUPATH (рядок)

Визначає змінну середовища PATH для root. ENV_SUPATH має пріоритет. Типовим значенням є /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

ALWAYS_SET_PATH (булеве значення)

Якщо встановлено значення yes і не вказано параметрів --login і --preserve-environment, runuser ініціалізує PATH.

Значення змінної середовища PATH може бути різним у системах, де /bin і /sbin об’єднано у /usr. На цю змінну впливає також параметр командного рядка --login і параметри системи PAM (наприклад, pam_env(8)).

СТАН ВИХОДУ

runuser normally returns the exit status of the command it executed. If the command was killed by a signal, runuser returns the number of the signal plus 128.

Стан виходу, який створено самим runuser:

1

Загальна помилка перед виконанням потрібної команди

126

Потрібну команду не вдалося виконати

127

Потрібну команду не знайдено

ФАЙЛИ

/etc/pam.d/runuser

типовий файл налаштувань PAM

/etc/pam.d/runuser-l

Файл налаштувань PAM, якщо вказано --login

/etc/default/runuser

специфічний для команди runuser файл налаштувань logindef

/etc/login.defs

загальний файл налаштувань logindef

ЖУРНАЛ

Ця команда runuser походить з su у coreutils, яку було засновано на реалізації David MacKenzie, і команди Fedora runuser, автором якої є Dan Walsh.

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

setpriv(1), su(1), login.defs(5), shells(5), pam(8)

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

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

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

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

2025-01-14 util-linux 2.40.4