Provided by: util-linux-locales_2.39.3-9ubuntu6.3_all 

НАЗВА
runuser - запуск команди від імені іншого користувача та групи
КОРОТКИЙ ОПИС
runuser [параметри] -u користувач [[--] команда [аргумент...]]
runuser [параметри] [-] [користувач [аргумент...]]
ОПИС
runuser можна скористатися для запуску команд із підставлянням ідентифікаторів користувача і групи. Якщо
не вказано параметр -u, runuser повертається до сумісної із su семантики і виконує командну оболонку.
Відмінності між командами runuser і su полягають у тому, що runuser не питає про пароль (оскільки
програму можна запустити лише від імені користувача root) і використовує інші налаштування PAM. Команду
runuser не потрібно встановлювати з правами доступу set-user-ID.
Якщо сеанс PAM не є обов’язковим, рекомендованим рішенням є використання команди setpriv(1).
Якщо викликано без аргументів, типово, runuser буде запущено інтерактивну командну оболонку від імені
root.
З метою забезпечення зворотної сумісності runuser, типово, не змінює поточного каталогу і встановлює лише
змінні середовища HOME і SHELL (і USER та 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] командної оболонки значення «-» з метою зробити оболонку оболонкою входу
до системи
-P, --pty
Створити псевдотермінал для сеансу Незалежний термінал надає кращий захист, оскільки користувач не
використовує спільний термінал із початковим сеансом. Цим можна скористатися для запобігання
втручанню у керування введенням-виведення термінала TIOCSTI та іншим атакам на дескриптори файлів
термінала. Також можна перемкнути увесь сеанс у фоновий режим (наприклад, runuser --pty -u користувач
-- команда &). Якщо увімкнено псевдотермінал, runuser працює як проксі-сервер між сеансами
(синхронізує stdin і stdout).
Цю можливість, в основному, призначено для інтерактивних сеансів. Якщо стандартним джерелом вхідних
даних є не термінал, а, наприклад, канал даних (приклад: echo "date" | runuser --pty -u користувач),
прапорець ECHO для псевдотермінала буде вимкнено для того, щоб уникнути безладного виведення даних.
-m, -p, --preserve-environment
Зберегти усе середовище, тобто не встановлювати значення HOME, SHELL, USER та LOGNAME. Цей параметр
буде проігноровано, якщо вказано параметр --login.
-s, --shell=оболонка
Запустити вказану командну оболонку замість типової. Запущену оболонку буде вибрано за такими
правилами, за порядком:
• командна оболонка, яку вказано за допомогою --shell.
• командна оболонка, яку вказано у змінній середовища SHELL, якщо використано параметр
--preserve-environment
• командна оболонка зі списку у запису passwd користувача призначення
• /bin/sh
Якщо у користувача призначення командну оболонку обмежено (тобто її немає у списку /etc/shells),
параметр --shell і змінні середовища SHELL буде проігноровано, якщо користувачем, який викликав
програму, не є root.
--session-command=команда
Те саме, що і -c, але без створення сеансу. (Не радимо.)
-w, --whitelist-environment=_список>
Не відновлювати початкові значення змінних середовища, який вказано у списку відокремлених комами
значень список при очищенні середовища для --login. «Білий» список буде проігноровано для змінних
середовища HOME, SHELL, USER, LOGNAME і PATH.
-h, --help
Вивести текст довідки і завершити роботу.
-V, --version
Вивести дані щодо версії і завершити роботу.
ФАЙЛ НАЛАШТУВАНЬ
runuser читає файли налаштувань /etc/default/runuser і /etc/login.defs. 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, зазвичай, повертає стан виходу виконаної команди. Якщо команду буде перервано сигналом, runuser
поверне номер сигналу плюс 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/>.
util-linux 2.39.3 2025-06-05 RUNUSER(1)