table of contents
- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
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 і SHELL (і USER та LOGNAME, якщо користувачем користувач не є root). У цій версії runuser для керування сеансом використано PAM.
Зауважте, що runuser в усіх випадках використовує PAM (pam_getenvlist()) для виконання остаточної модифікації середовища. Параметри командного рядка, зокрема --login і --preserve-environment застосовуються до середовища, перш ніж його буде змінено PAM.
ПАРАМЕТРИ¶
- -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.
- -V, --version
- Вивести дані щодо версії і завершити роботу.
- -h, --help
- Вивести текст довідки і завершити роботу.
ФАЙЛ НАЛАШТУВАНЬ¶
runuser читає файли налаштувань /etc/default/runuser і /etc/login.defs. runuser стосуються такі записи налаштувань:
ENV_PATH (рядок)
ENV_ROOTPATH (рядок)
ENV_SUPATH (рядок)
ALWAYS_SET_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 |