الاسم¶
run0 - رفع
الصلاحيات
موجز¶
run0
[خيارات...]
[أمر...]
الوصف¶
يمكن
استخدام run0
للحصول
مؤقتًا
وتفاعليًا
على
صلاحيات
مرتفعة أو
مختلفة.
يخدم غرضًا
مشابهًا لـ
sudo(8)، لكنه
يعمل بشكل
مختلف في
عدة مجالات
رئيسية:
•لا
تُورث أي
بيانات
اعتماد
سياق تنفيذ
أو أمان من
المستدعي
إلى
الأوامر
المستدعاة،
حيث
تُستدعى من
خدمة جديدة
ومعزولة
تفرعها
مدير
الخدمة.
•يتم
الاستيثاق
عبر polkit[1]، مما
يعزل موجه
الاستيثاق
عن الطرفية
(إن أمكن).
•يُخصص
طرفية
زائفة
مستقلة
للأمر
المستدعى،
لفصل دورة
حياته
وعزله
للأمان.
•لا
تُستخدم
وظيفة بتات
الوصول
للملفات SetUID/SetGID
في
التنفيذ.
يجب أن
يوفر هذا
مجتمعًا
بديلًا
أكثر
أمانًا
ومتانة
لآلية sudo،
خاصة في
بيئات
أنظمة
التشغيل
حيث دعم SetUID/SetGID
غير متوفر
(مثلًا
بتعيين
المتغير
NoNewPrivileges= في systemd-system.conf(5)).
أي جلسة
تُستدعى
عبر run0
ستعمل عبر
مكدس PAM "systemd-run0".
لاحظ أن run0
مُنفذ
كاستدعاء
متعدد بديل
لـ systemd-run(1). أي أن
run0 رابط
رمزي للملف
التنفيذي
systemd-run، ويتصرف
كـ run0 إذا
استُدعي
عبر الرابط
الرمزي،
وإلا يتصرف
كـ systemd-run.
الخيارات¶
الخيارات
التالية
مفهومة:
--unit=
استخدم
اسم الوحدة
هذا بدلاً
من اسم مولد
آلياً.
أُضيف في
الإصدار 256.
--property=
يضبط
خاصية
لوحدة
الخدمة
المنشأة.
يأخذ هذا
الخيار
تعيينًا
بنفس تنسيق
أمر
set-property في
systemctl(1).
أُضيف في
الإصدار 256.
--description=
يوفر
وصفًا
لوحدة
الخدمة
المستدعاة.
إذا لم
يُحدد،
سيُستخدم
الأمر نفسه
كوصف. انظر
Description= في
systemd.unit(5).
أُضيف في
الإصدار 256.
--slice=
يجعل
وحدة .service
الجديدة
جزءًا من
الشريحة
المحددة،
بدلًا من user.slice.
أُضيف في
الإصدار 256.
--slice-inherit
يجعل
وحدة .service
الجديدة
جزءًا من
الشريحة
التي
استُدعي
فيها
run0 نفسه.
يمكن دمج
هذا الخيار
مع
--slice=، وفي
هذه الحالة
توضع
الشريحة
المحددة
عبر
--slice= داخل
الشريحة
التي
استُدعي
فيها أمر
run0.
مثال:
اعتبر run0
يُستدعى في
الشريحة foo.slice،
ووسيطة --slice=
هي bar. ستوضع
الوحدة
بعدها تحت
foo-bar.slice.
أُضيف في
الإصدار 256.
--user=, -u, --group=, -g
يُبدل
إلى
المستخدم/المجموعة
المحددين
بدلاً من root.
أُضيف في
الإصدار 256.
--nice=
يشغل
الجلسة
المستدعاة
بمستوى nice
المحدد.
أُضيف في
الإصدار 256.
--chdir=, -D
يشغل
الجلسة
المستدعاة
بدليل
العمل
المحدد. إذا
لم يُحدد،
المبدئي هو
دليل العمل
الحالي
للعميل إذا
كان
التبديل
للمستخدم root،
أو دليل
المنزل
للمستخدم
الهدف خلاف
ذلك.
أُضيف في
الإصدار 256.
--setenv=NAME[=VALUE]
يشغل
الجلسة
المستدعاة
مع تعيين
متغير
البيئة
المحدد.
يمكن
استخدام
هذه
الوسيطة
أكثر من مرة
لتعيين
متغيرات
متعددة. عند
حذف "=" و
VALUE،
ستُستخدم
قيمة
المتغير
بنفس الاسم
في بيئة
الاستدعاء.
أُضيف في
الإصدار 256.
--background=COLOR
يغير لون
خلفية
الطرفية
إلى لون ANSI
المحدد
طالما
استمرت
الجلسة. إذا
لم يُحدد،
ستُصبغ
الخلفية
بدرجة
حمراء عند
التشغيل كـ
root، ودرجة
صفراء عند
التشغيل
تحت UID آخر،
كتذكير
بالصلاحيات
المتغيرة.
يجب أن يكون
اللون
المحدد لون
خلفية ANSI X3.64 SGR،
أي سلاسل
مثل "40"، "41"،
...، "47"، "48;2;..."،
"48;5;...". انظر
ANSI Escape Code
(Wikipedia)[2]
للتفاصيل.
اضبط على
سلسلة
فارغة
لتعطيل.
مثال: "--background=44"
لخلفية
زرقاء.
أُضيف في
الإصدار 256.
--pty, --pipe
يطلب
تخصيص TTY زائف
لجلسة
run0 (في
حالة
--pty)، أو
يطلب تمرير
واصفات
ملفات STDIO
للمتصل
مباشرة (في
حالة
--pipe). إذا
لم يُحدد أي
من
المفتاحين،
أو إذا
حُددا
معاً،
يُختار
الوضع
آلياً: إذا
كان
الإدخال
القياسي
والإخراج
القياسي
وإخراج
الخطأ
القياسي
جميعهم
متصلين بـ TTY،
يُخصص TTY
زائف، وإلا
تُمرر
واصفات
الملفات
ذات الصلة
مباشرة.
أُضيف في
الإصدار 257.
--shell-prompt-prefix=سلسلة
يضبط
سلسلة
بادئة موجه
الصدفة.
يتحكم هذا
في النهاية
بمتغير
البيئة
$SHELL_PROMPT_PREFIX
للبرنامج
المستدعى،
والذي
يُستورد
عادة في
موجه
الصدفة.
مبدئيًا –
إذا كانت
الرموز
التعبيرية
مدعومة –،
يُظهر رمز
بطل خارق (🦸).
يمكن أيضًا
تغيير هذا
المبدئي (أو
إيقافه)
بتمرير
متغير
البيئة
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX إلى
run0، انظر
أدناه. اضبط
على سلسلة
فارغة
لتعطيل
بادئة موجه
الصدفة.
أُضيف في
الإصدار 257.
--machine=
نفذ
العملية في
حاوية
محلية. حدد
اسم حاوية
للاتصال
بها.
أُضيف في
الإصدار 256.
--no-ask-password
لا تسأل
المستخدم
عن
الاستيثاق
للعمليات
ذات
الامتيازات.
-h، --help
اطبع نص
مساعدة
قصير
واخرج.
--version
اطبع
سلسلة
إصدار
قصيرة
واخرج.
جميع
وسائط سطر
الأوامر
بعد أول
وسيطة غير
خيار تصبح
جزءاً من
سطر أوامر
العملية
المُطلقة.
إذا لم
يُحدد سطر
أوامر،
تُستدعى
صدفة
تفاعلية.
يمكن
التحكم في
الصدفة
المستدعاة
عبر --setenv=SHELL=...
وتكون
مبدئياً
صدفة
المستخدم
الأصلي (أي
ليست صدفة
المستخدم
الهدف!) إذا
كان
التشغيل
محلياً، أو
/bin/sh عند
التشغيل مع
--machine=.
حالة الخروج¶
عند
النجاح،
يُعاد 0. إذا
فشل run0 في
بدء الجلسة
أو فشل
الأمر
المحدد،
يُعاد قيمة
إرجاع غير
صفرية.
متغيرات البيئة¶
كما في
systemd-run، ترث
الجلسة
بيئة
النظام من
مدير
الخدمة.
بالإضافة
إلى ذلك،
تُضبط
متغيرات
البيئة
التالية:
$TERM
مُنسوخ
من
$TERM
للمتصل.
يمكن
تجاوزه
باستخدام
--setenv=
أُضيف في
الإصدار 256.
$SUDO_USER
مضبوط
على اسم
المستخدم
الأصلي.
أُضيف في
الإصدار 256.
$SUDO_UID
مضبوط
على معرف
المستخدم UNIX
الرقمي
للمستخدم
الأصلي.
أُضيف في
الإصدار 256.
$SUDO_GID
مضبوط
على معرف
المجموعة UNIX
الرقمي
الرئيسي
للجلسة
الأصلية.
أُضيف في
الإصدار 256.
$SHELL_PROMPT_PREFIX
مبدئياً،
مضبوط على
رمز البطل
الخارق (إذا
كان
مدعوماً)،
لكن يمكن
تجاوزه
بمتغير
البيئة
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX (انظر
أدناه)، أو
بمفتاح
--shell-prompt-prefix=
(انظر أعلاه).
أُضيف في
الإصدار 257.
يمكن
تمرير
المتغيرات
التالية
إلى run0:
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX
إذا
ضُبط،
يتجاوز
بادئة موجه
الصدفة
المبدئية
التي
يضبطها
run0
للصدفة
المستدعاة
(رمز البطل
الخارق).
اضبطه على
سلسلة
فارغة
لتعطيل
بادئة موجه
الصدفة.
أُضيف في
الإصدار 257.
ملاحظات¶
- 1.
- polkit
- 2.
- رمز هروب ANSI
(ويكيبيديا)
ترجمة¶
تُرجمت
هذه الصفحة
من الدليل
بواسطة
زايد
السعيدي
<zayed.alsaidi@gmail.com>
هذه
الترجمة هي
وثيقة
مجانية؛
راجع
رخصة
جنو العامة
الإصدار 3
أو ما بعده
للاطلاع
على شروط
حقوق النشر.
لا توجد أي
ضمانات.
إذا وجدت
أي أخطاء في
ترجمة صفحة
الدليل
هذه، يرجى
إرسال بريد
إلكتروني
إلى قائمة
بريد
المترجمين:
kde-l10n-ar@kde.org.