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

НАЗВА

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

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

       runuser [параметри] -u користувач [[--] команда [аргумент...]]

       runuser [параметри] [-] [користувач [аргумент...]]

ОПИС

       runuser можна скористатися для запуску команд із підставлянням ідентифікаторів користувача
       і групи. Якщо не вказано параметр -u, runuser повертається до сумісної із su семантики і
       виконує командну оболонку. Відмінності між командами runuser і su полягають у тому, що
       runuser не питає про пароль (оскільки програму можна запустити лише від імені користувача
       root) і використовує інші налаштування PAM. Команду runuser не потрібно встановлювати з
       правами доступу set-user-ID.

       Якщо сеанс 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] командної оболонки значення «-» з метою зробити оболонку
               оболонкою входу до системи

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