НАЗВА
runuser — запуск команди від імені іншого користувача та групиКОРОТКИЙ ОПИС
runuser [параметри] -u користувач [[--] команда [ аргумент...]]ОПИС
runuser можна скористатися для запуску команд із підставлянням ідентифікаторів користувача і групи. Якщо не вказано параметр -u, runuser повертається до сумісної із su семантики і виконує командну оболонку. Відмінності між командами runuser і su полягають у тому, що runuser не питає про пароль (оскільки програму можна запустити лише від імені користувача root) і використовує інші налаштування PAM. Команду runuser не потрібно встановлювати з правами доступу set-user-ID.ПАРАМЕТРИ
-c, --command=командаПередати
команду
командній
оболонці
за
допомогою
параметра
-c.
Передати
оболонці -f,
може бути
як
корисним,
так і
недоречним,
залежно
від
оболонки.
Основна
група, яку
слід
використати.
Цей
параметр
можна
використовувати
лише від
імені
користувача
root.
Визначити
додаткову
групу. Цей
параметр
доступний
лише
користувачу
root. Першу
вказану
додаткову
групу
також буде
використано
як основну
групу, якщо
не вказано
параметр
--group.
Запустити
командну
оболонку
як
оболонку
входу до
системи із
середовищем,
подібним
для
звичайної
оболонки
для входу:
•очищає
усі змінні
середовища,
окрім 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 стосуються такі записи налаштувань:Визначає
змінну
середовища
PATH для
звичайного
користувача
Типовим
значенням
є /usr/local/bin:/bin:/usr/bin.
Визначає
змінну
середовища
PATH для root. ENV_SUPATH
має
пріоритет.
Типовим
значенням
є
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.
Якщо
встановлено
значення yes
і не
вказано
параметрів
--login і --preserve-environment, runuser
ініціалізує
PATH.
СТАН ВИХОДУ
runuser, зазвичай, повертає стан виходу виконаної команди. Якщо команду буде перервано сигналом, runuser поверне номер сигналу плюс 128.Загальна
помилка
перед
виконанням
потрібної
команди
Потрібну
команду не
вдалося
виконати
Потрібну
команду не
знайдено
ФАЙЛИ
/etc/pam.d/runuserтиповий
файл
налаштувань
PAM
файл
налаштувань
PAM, якщо
вказано --login
специфічний
для
команди runuser
файл
налаштувань
logindef
загальний
файл
налаштувань
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 Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <[email protected]> Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ. Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: [email protected]11 травня 2022 року | util-linux 2.38.1 |