| SETPRIV(1) | أوامر المستخدم | SETPRIV(1) |
الاسم
setpriv - شغّل برنامجاً بإعدادات امتيازات لينكس مختلفة
موجز
setpriv [خيارات] برنامج وسائط]
الوصف
يضبط أو يستعلم عن إعدادات امتيازات لينكس المتنوعة التي تُورّث عبر execve(2).
بالمقارنة مع su(1) و runuser(1)، لا يستخدم setpriv الاستيثاق عبر PAM، ولا يطلب كلمة سر. هو غلاف بسيط، ليس من فئة set-user-ID، حول execve(2)، ويمكن استخدامه للتخلي عن الامتيازات بنفس طريقة setuidgid(8) من daemontools، أو chpst(8) من runit، أو أدوات مماثلة تُشحن مع مديري الخدمات الآخرين.
الخيارات
--clear-groups
-d، --dump
--groups group...
--inh-caps (+|-)cap..., --ambient-caps (+|-)cap..., --bounding-set (+|-)cap...
تبدأ مجموعة الإمكانيات بالمجموعة المورّثة الحالية لـ --inh-caps، والمجموعة المحيطة الحالية لـ --ambient-caps، ومجموعة الحدود الحالية لـ --bounding-set.
لاحظ القيود التالية (المفصلة في capabilities(7)) بخصوص تعديل مجموعات الإمكانيات هذه:
إذا حذفت قدرة من مجموعة الحدود دون حذفها أيضاً من المجموعة الموروثة، فمن المرجح أن يحدث ارتباك. لا تفعل ذلك.
--keep-groups
--init-groups
--list-caps
--nnp, --no-new-privs
بت no_new_privs متاح منذ لينكس 3.5.
--rgid gid، --egid gid، --regid gid
للأمان، يجب تحديد أحد الخيارات --clear-groups أو --groups أو --keep-groups أو --init-groups إذا ضُبط أي معرف مجموعة (gid) أساسي.
--ruid uid، --euid uid، --reuid uid
إن ضبط uid أو gid لا يغير القدرات، رغم أن استدعاء exec في النهاية قد يغيرها. هذا يعني أنك إذا كنت مستخدمًا جذرًا (root)، فستحتاج على الأرجح للقيام بشيء مثل:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all
--securebits (+|-)securebit...
--pdeathsig keep|clear|<إشارة>
--ptracer معرّف-العملية|any|none
--selinux-label لصيقة
--apparmor-profile تشكيلة
--landlock-access وصول
احظر كل وصول لنظام الملفات:
setpriv --landlock-access fs
احظر كل عمليات حذف الملفات وإنشاء الأدلة:
setpriv --landlock-access fs:remove-file,make-dir
للحصول على مجموعة كاملة من فئات الوصول المتاحة، استخدم setpriv --help.
العنصر النائب العام "fs" عرضة للتغيير وقد يمتد في الإصدارات المستقبلية لدعم أنواع وصول جديدة.
--landlock-rule دور
الصيغة كالتالي:
--landlock-rule $ruletype:$access:$rulearg
على سبيل المثال، امنح وصول قراءة الملفات لكل شيء تحت /boot:
--landlock-rule path-beneath:read-file:/boot
--seccomp-filter ملف
يمكن إنشاء المرشحات على سبيل المثال باستخدام enosys.
--reset-env
قد يختلف متغير البيئة PATH في الحواسيب التي دُمج فيها /bin و /sbin داخل /usr.
-h، --help
-V، --version
ملاحظات
إذا فشل تطبيق أي خيار محدد، فلن يُشغل برنامج وسيعود setpriv بحالة خروج 127.
كن حذرًا مع هذه الأداة — فقد يكون لها تبعات أمنية غير متوقعة. على سبيل المثال، قد يؤدي ضبط no_new_privs ثم تنفيذ برنامج مقيد بواسطة SELinux (كما تفعل هذه الأداة) إلى منع قيود SELinux من العمل.
أمثلة
إذا كنت تبحث عن سلوك مشابه لـ su(1)/runuser(1)، أو sudo(8) (دون الخيار -g)، جرب شيئاً مثل:
setpriv --reuid=1000 --regid=1000 --init-groups
إذا كنت تريد محاكاة setuid(8) الخاصة بـ daemontools، جرب:
setpriv --reuid=1000 --regid=1000 --clear-groups
المؤلفين
Andy Lutomirski <luto@amacapital.net>
انظر أيضاً
التبليغ عن الأخطاء
لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.
التوفر
الأمر setpriv جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-05-18 | util-linux 2.42.1 |