Scroll to navigation

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

НАЗВА

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.

ПАРАМЕТРИ

Передати команду командній оболонці за допомогою параметра -c.
Передати оболонці -f, може бути як корисним, так і недоречним, залежно від оболонки.
Основна група, яку слід використати. Цей параметр можна використовувати лише від імені користувача root.
Визначити додаткову групу. Цей параметр доступний лише користувачу root. Першу вказану додаткову групу також буде використано як основну групу, якщо не вказано параметр --group.
-, -l, --login
Запустити командну оболонку як оболонку входу до системи із середовищем, подібним для звичайної оболонки для входу:
  • очищає усі змінні середовища, окрім TERM і змінних, які вказано --whitelist-environment
  • ініціалізує змінні середовища HOME, SHELL, USER, LOGNAME і PATH
  • змінює домашній каталог користувача призначення
  • встановлює для argv[0] командної оболонки значення «-» з метою зробити оболонку оболонкою входу до системи
Створити псевдотермінал для сеансу Незалежний термінал надає кращий захист, оскільки користувач не використовує спільний термінал із початковим сеансом. Цим можна скористатися для запобігання втручанню у керування введенням-виведення термінала TIOCSTI та іншим атакам на дескриптори файлів термінала. Також можна перемкнути увесь сеанс у фоновий режим (наприклад, «runuser --pty -u користувач -- команда &»). Якщо увімкнено псевдотермінал, runuser працює як проксі-сервер між сеансами (синхронізує stdin і stdout).
Цю можливість, в основному, призначено для інтерактивних сеансів. Якщо стандартним джерелом вхідних даних є не термінал, а, наприклад, канал даних (приклад: echo "date" | runuser --pty -u користувач), прапорець ECHO для псевдотермінала буде вимкнено для того, щоб уникнути безладного виведення даних.
Зберегти усе середовище, тобто не встановлювати значення HOME, SHELL, USER та LOGNAME. Цей параметр буде проігноровано, якщо вказано параметр --login.
Запустити вказану командну оболонку замість типової. Запущену оболонку буде вибрано за такими правилами, за порядком:
  • командна оболонка, яку вказано за допомогою --shell
  • командна оболонка, яку вказано у змінній середовища SHELL, якщо використано параметр --preserve-environment
  • командна оболонка зі списку у запису passwd користувача призначення
  • /bin/sh
Якщо у користувача призначення командну оболонку обмежено (тобто її немає у списку /etc/shells), параметр --shell і змінні середовища SHELL буде проігноровано, якщо користувачем, який викликав програму, не є root.
Те саме, що і -c, але без створення сеансу. (Не радимо.)
Не відновлювати початкові значення змінних середовища, який вказано у списку відокремлених комами значень список при очищенні середовища для --login. «Білий» список буде проігноровано для змінних середовища HOME, SHELL, USER, LOGNAME і PATH.
Вивести дані щодо версії і завершити роботу.
Вивести текст довідки і завершити роботу.

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

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)

ДОСТУПНІСТЬ

Програма runuser є частиною пакунка util-linux і доступна зі архіву ядра Linux.

ПЕРЕКЛАД

Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>

Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.

Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.

липень 2014 року util-linux