| RUN0(1) | run0 | RUN0(1) |
نام (NAME)
run0 - اجرای امن دستور با دسترسی کاربر دیگر (جایگزین مدرن sudo)
خلاصه دستور (SYNOPSIS)
run0 [OPTIONS...] [COMMAND...]
توضیحات (DESCRIPTION)
دستور run0 میتواند برای دستیابی موقت و تعاملی به دسترسیهای ارتقایافته یا متفاوت به کار رود. این ابزار هدفی مشابه با sudo(8) را دنبال میکند، اما در چند زمینه کلیدی عملکرد متفاوتی دارد:
در مجموع، این موارد باید جایگزینی امنتر و پایدارتر برای سازوکار sudo فراهم سازند، بهویژه در محیطهای سیستمعامل که پشتیبانی از SetUID/SetGID در دسترس نیست (برای نمونه با تنظیم متغیر NoNewPrivileges= در systemd-system.conf(5)).
هر نشستی که از طریق run0 فراخوانی شود، از طریق پشته PAM با عنوان "systemd-run0" اجرا خواهد شد.
توجه داشته باشید که run0 به عنوان یک فراخوانی چندمنظوره (multi-call) جایگزین برای systemd-run(1) پیادهسازی شده است. بدین معنی که run0 یک پیوند نمادین (symbolic link) به فایل اجرایی systemd-run است؛ اگر از طریق این پیوند نمادین فراخوانی شود رفتاری مطابق با run0 خواهد داشت، و در غیر این صورت مانند systemd-run عمل میکند.
گزینهها (OPTIONS)
گزینههای زیر پشتیبانی میشوند:
--unit=
اضافهشده در نگارش ۲۵۶.
--property=
اضافهشده در نگارش ۲۵۶.
--description=
اضافهشده در نگارش ۲۵۶.
--slice=
اضافهشده در نگارش ۲۵۶.
--slice-inherit
مثال: فرض کنید run0 در برش foo.slice فراخوانی شده و آرگومان --slice= برابر با bar باشد. در این صورت واحد زیرمجموعه foo-bar.slice قرار خواهد گرفت.
اضافهشده در نگارش ۲۵۶.
--user=, -u, --group=, -g
اضافهشده در نگارش ۲۵۶.
--nice=
اضافهشده در نگارش ۲۵۶.
--chdir=, -D
اضافهشده در نگارش ۲۵۶.
--via-shell
اضافهشده در نگارش ۲۵۸.
-i
اضافهشده در نگارش ۲۵۸.
--setenv=NAME[=VALUE]
اضافهشده در نگارش ۲۵۶.
--background=COLOR
مثال: "--background=44" برای پسزمینه آبی.
اضافهشده در نگارش ۲۵۶.
--pty, --pty-late, --pipe
گزینههای --pty و --pipe در نگارش ۲۵۷ اضافه شدند.
گزینه --pty-late در نگارش ۲۵۸ اضافه شد.
--shell-prompt-prefix=STRING
اضافهشده در نگارش ۲۵۷.
--lightweight=BOOLEAN
این گزینه در نهایت متغیر محیطی $XDG_SESSION_CLASS را که pam_systemd(8) از آن پیروی میکند، کنترل مینماید.
اضافهشده در نگارش ۲۵۸.
--area=AREA
در صورت استفاده از این گزینه، کاربر پیشفرض برای انتقال از ریشه (root) به خود کاربر فراخواننده تغییر مییابد (اما گزینه --user= اولویت دارد؛ به بالا مراجعه کنید). یا به عبارت دیگر، تعیین ناحیه بدون مشخص کردن کاربر، سازوکاری برای ایجاد یک نشست جدید از کاربر فراخواننده صرفاً با یک ناحیه متفاوت است.
این گزینه در نهایت متغیر محیطی $XDG_AREA را که pam_systemd(8) از آن پیروی میکند، کنترل مینماید.
برای جزئیات بیشتر درباره مفهوم ناحیه (area)، به pam_systemd_home(8) مراجعه فرمایید.
اضافهشده در نگارش ۲۵۸.
--empower
توجه داشته باشید که سایر فرآیندهای (غیرممتاز) کاربر انتخابشده نسبت به فرآیند فراخوانیشده دارای دسترسی کنترل خواهند بود. در محیطهایی که ممکن است فرآیندهای مخربی تحت عنوان کاربر انتخابشده در حال اجرا باشند، توصیه میشود از این گزینه استفاده نکنید.
اضافهشده در نگارش ۲۵۹.
--same-root-dir
اضافهشده در نگارش ۲۵۹.
--machine=
اضافهشده در نگارش ۲۵۶.
--no-ask-password
-h, --help
--version
تمامی آرگومانهای خط فرمان پس از نخستین آرگومان غیرگزینهای، بخشی از خط فرمان فرآیند راهاندازیشده خواهند شد. اگر هیچ خط فرمانی مشخص نشود، یک شل تعاملی فراخوانی میگردد. شلی که فراخوانی میشود را میتوان از طریق گزینه --via-shell - که در صورت تعیین، شل کاربر هدف استفاده میشود - یا --setenv=SHELL=... کنترل کرد. به طور پیشفرض، در صورت اجرای محلی، شل کاربر مبدأ اجرا میشود، یا در صورت استفاده از --machine= مسیر /bin/sh اجرا خواهد شد.
توجه داشته باشید که بر خلاف sudo، ابزار run0 همیشه شلها را با ویژگیهای معنایی شل ورود (login shell) اجرا میکند، بدون توجه به اینکه گزینه -i تعیین شده باشد یا خیر.
کدهای خروج (EXIT STATUS)
در صورت موفقیت، مقدار 0 برگردانده میشود. اگر run0 در آغاز نشست با شکست روبرو شود یا دستور تعیینشده ناموفق باشد، یک مقدار بازگشتی غیرصفر برگردانده خواهد شد.
محیط (ENVIRONMENT)
همانند systemd-run، این نشست محیط سیستم را از مدیر سرویس به ارث میبرد. علاوه بر این، متغیرهای محیطی زیر تنظیم خواهند شد:
$TERM
اضافهشده در نگارش ۲۵۶.
$SUDO_USER
اضافهشده در نگارش ۲۵۶.
$SUDO_UID
اضافهشده در نگارش ۲۵۶.
$SUDO_GID
اضافهشده در نگارش ۲۵۶.
$SHELL_PROMPT_PREFIX
اضافهشده در نگارش ۲۵۷.
متغیرهای زیر میتوانند به run0 ارسال شوند:
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX
اضافهشده در نگارش ۲۵۷.
همچنین ببینید (SEE ALSO)
systemd(1), systemd-run(1), sudo(8), machinectl(1), pam_systemd(8)
نکات (NOTES)
- 1.
- polkit
- 2.
- ANSI Escape Code (Wikipedia)
| systemd 261.2 |