'\" t .\" Title: runuser .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-05-18 .\" Manual: أوامر المستخدم .\" Source: util-linux 2.42.1 .\" Language: English .\" .TH "RUNUSER" "1" "2026-05-18" "util\-linux 2.42.1" "أوامر المستخدم" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "الاسم" runuser \- يُشغّل أمراً بمعرف مستخدم ومجموعة بديل .SH "موجز" .sp \fBrunuser\fP [خيارات] \fB\-u\fP \fI‎مستخدم\fP [[\-\-] \fIأمر\fP [\fI‎معامل\fP.\|.\|.]] .sp \fBrunuser\fP [خيارات] [\fB\-\fP] [\fI‎مستخدم\fP [\fI‎معامل\fP.\|.\|.]] .SH "الوصف" .sp يمكن استخدام \fBrunuser\fP لتشغيل الأوامر بمعرف مستخدم ومجموعة بديل. إذا لم يُعط الخيار \fB\-u\fP، يعود \fBrunuser\fP إلى دلالات متوافقة مع \fBsu\fP وتُنفذ صدفة. الفرق بين الأمرين \fBrunuser\fP و \fBsu\fP هو أن \fBrunuser\fP لا يطلب كلمة مرور (لأنه لا يُنفذ إلا بواسطة المستخدم الجذري root فقط) ويستخدم إعدادات PAM مختلفة. لا يلزم تثبيت الأمر \fBrunuser\fP بأذونات set\-user\-ID. .sp إذا كانت جلسة PAM غير مطلوبة، فإن الحل الموصى به هو استخدام الأمر \fBsetpriv\fP(1). .sp عند استدعائه دون معاملات، يعمل \fBrunuser\fP مبدئياً على تشغيل صدفة تفاعلية كـ \fIroot\fP. .sp للتوافقية مع الإصدارات السابقة، يعمل \fBrunuser\fP مبدئياً على عدم تغيير الدليل الحالي وعلى ضبط متغيرات البيئة \fBHOME\fP و \fBSHELL\fP فقط (بالإضافة إلى \fBUSER\fP و \fBLOGNAME\fP إذا لم يكن \fIالمستخدم\fP المستهدف جذرياً root). يستخدم هذا الإصدار من \fBrunuser\fP نظام PAM لإدارة الجلسات. .sp لاحظ أن \fBrunuser\fP في جميع الحالات يستخدم PAM (عبر ‎\fBpam_getenvlist\fP(3)‎) لإجراء التعديل النهائي على البيئة. خيارات سطر الأوامر مثل ‎\fB\-\-login\fP‎ و ‎\fB\-\-preserve\-environment\fP‎ تؤثر على البيئة قبل تعديلها بواسطة PAM. .sp منذ الإصدار 2.38، يعيد \fBrunuser\fP ضبط حدود موارد العملية RLIMIT_NICE و RLIMIT_RTPRIO و RLIMIT_FSIZE و RLIMIT_AS و RLIMIT_NOFILE. .SH "الخيارات" .sp \fB\-c\fP، \fB\-\-command\fP=\fIأمر\fP .RS 4 يمرر الأمر \fIcommand\fP إلى الصدفة مع الخيار ‎\fB\-c\fP‎. ينشئ جلسة جديدة عبر ‎\fBsetsid\fP(2)‎. ارجع إلى ‎\fB\-\-session\-command\fP‎ للإبقاء على نفس الجلسة. .RE .sp \fB\-f\fP، \fB\-\-fast\fP .RS 4 يُمَرر الخيار \fB\-f\fP إلى الصدفة، وهو ما قد يكون مفيداً أو غير مفيد، اعتماداً على الصدفة. .RE .sp \fB\-g\fP، \fB\-\-group\fP=\fIمجموعة\fP .RS 4 المجموعة الأساسية المراد استخدامها. يُسمح بهذا الخيار للمستخدم الجذري root فقط. .RE .sp \fB\-G\fP، \fB\-\-supp\-group\fP=\fIمجموعة\fP .RS 4 حدد مجموعة تكميلية. هذا الخيار متاح للمستخدم الجذر (root) فقط. تُستخدم أول مجموعة تكميلية محددة كمجموعة أساسية أيضًا إذا لم يُحدد الخيار \fB\-\-group\fP. .RE .sp \fB\-\fP، \fB\-l\fP، \fB\-\-login\fP .RS 4 ابدأ الصدفة كصدفة ولوج ببيئة مماثلة للولوج الحقيقي: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} يمسح جميع متغيرات البيئة باستثناء \fBTERM\fP، و \fBCOLORTERM\fP، و \fBNO_COLOR\fP والمتغيرات المحددة بواسطة ‎\fB\-\-whitelist\-environment\fP‎ .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} يُهيئ متغيرات البيئة \fBHOME\fP، و \fBSHELL\fP، و \fBUSER\fP، و \fBLOGNAME\fP، و \fBPATH\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} ينتقل إلى الدليل المنزلي للمستخدم المستهدف .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} يضبط argv[0] للصدفة إلى \*(Aq\fB\-\fP\*(Aq لجعل الصدفة صدفة ولوج .RE .RE .sp \fB\-m\fP، \fB\-p\fP، \fB\-\-preserve\-environment\fP .RS 4 أبقِ على البيئة كاملة، أي لا تضبط \fBHOME\fP، أو \fBSHELL\fP، أو \fBUSER\fP، أو \fBLOGNAME\fP. يُتجاهل هذا الخيار إذا حُدد الخيار \fB\-\-login\fP. .RE .sp \fB\-P\fP، \fB\-\-pty\fP .RS 4 ينشئ طرفية زائفة للجلسة. توفر الطرفية المستقلة أماناً أفضل لأن المستخدم لا يتشارك الطرفية مع الجلسة الأصلية. يرجى ملاحظة نصيحة الأمان حول ثغرة TIOCSTI أدناه. .sp يمكن أيضاً نقل الجلسة بأكملها إلى الخلفية (على سبيل المثال، ‎\fBrunuser \-\-pty \-u user \(em command &\fP‎). إذا تم تفعيل الطرفية الزائفة، فإن \fBrunuser\fP يعمل كوكيل بين الجلسات (مزامنة المداخل القياسية والمخارج القياسية). .sp صُممت هذه الميزة أساسًا للجلسات التفاعلية. إذا لم يكن الدخل القياسي طرفية، بل كان أنبوبًا مثلاً (مثل \fBecho "date" | runuser \-\-pty \-u\fP \fIالمستخدم\fP)، فستُعطل علامة \fBECHO\fP للطرفية الوهمية لتجنب المخرجات الفوضوية. .RE .sp \fB\-s\fP، \fB\-\-shell\fP=\fIصدفة\fP .RS 4 شغّل \fIصدفة\fP المحددة بدلاً من المبدئية. تُختار الصدفة التي ستُشغل وفق القواعد التالية، بالترتيب: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} الصدفة المحددة بـ \fB\-\-shell\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} الصدفة المحددة في متغير البيئة \fBSHELL\fP إذا استخدم الخيار \fB\-\-preserve\-environment\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} الصدفة المدرجة في مدخلة passwd للمستخدم المستهدف .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} /bin/sh .sp إذا كان للمستخدم المستهدف صدفة مقيدة (أي أنها غير مدرجة في \fI/etc/shells\fP)، فيتجاهَل خيار \fB\-\-shell\fP ومتغيرات بيئة \fBSHELL\fP ما لم يكن المستدعِي هو root. .RE .RE .sp \fB\-\-session\-command=\fP\fIأمر\fP .RS 4 نفس عمل ‎\fB\-c\fP‎، ولكن لا ينشئ جلسة جديدة. (غير مستحسن.) يرجى ملاحظة نصيحة الأمان حول ثغرة TIOCSTI أدناه. .RE .sp \fB\-T\fP، \fB\-\-no\-pty\fP .RS 4 لا ينشئ طرفية زائفة، عكس خيار ‎\fB\-\-pty\fP‎ و ‎\fB\-P\fP‎. يرجى ملاحظة نصيحة الأمان حول ثغرة TIOCSTI أدناه. .RE .sp \fB\-u\fP، \fB\-\-user\fP=\fIمستخدم\fP .RS 4 تشغيل \fIأمر\fP بمعرف المستخدم ومعرف المجموعة الفعليين لاسم المستخدم \fIمستخدم\fP. .RE .sp \fB\-w\fP، \fB\-\-whitelist\-environment\fP=\fIقائمة\fP .RS 4 عدم تصفير متغيرات البيئة المحددة في القائمة المفصول بينها بفواصل \fIقائمة\fP عند مسح البيئة لخيار \fB\-\-login\fP. تُتجاهل القائمة البيضاء لمتغيرات البيئة \fBHOME\fP و \fBSHELL\fP و \fBUSER\fP و \fBLOGNAME\fP و \fBPATH\fP. .RE .sp \fB\-h\fP، \fB\-\-help\fP .RS 4 اعرض نص المساعدة ثم اخرج. .RE .sp \fB\-V\fP، \fB\-\-version\fP .RS 4 اعرض الإصدار واخرج. .RE .SH "ملفات الضبط" .sp يقرأ \fBrunuser\fP ملفي إعداد \fI/etc/default/runuser\fP و \fI/etc/login.defs\fP. عناصر الإعداد التالية ذات صلة بـ \fBrunuser\fP: .sp \fBENV_PATH\fP (string) .RS 4 يُعرف متغير بيئة PATH للمستخدم العادي. القيمة المبدئية هي \fI/usr/local/bin:/bin:/usr/bin\fP. .RE .sp \fBENV_ROOTPATH\fP (string), \fBENV_SUPATH\fP (سلسلة محارف) .RS 4 يُعرف متغير بيئة \fBPATH\fP للمستخدم root. تكون الأولوية لـ \fBENV_SUPATH\fP. القيمة المبدئية هي \fI/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\fP. .RE .sp \fBALWAYS_SET_PATH\fP (منطقي) .RS 4 إذا ضُبط على \fIyes\fP ولم يُحدد خياري \fB\-\-login\fP و \fB\-\-preserve\-environment\fP، يبدأ \fBrunuser\fP تهيئة \fBPATH\fP. .RE .sp قد يختلف متغير البيئة \fBPATH\fP في الأنظمة التي دُمج فيها \fI/bin\fP و \fI/sbin\fP ضمن \fI/usr\fP؛ يتأثر هذا المتغير أيضًا بخيار سطر الأوامر \fB\-\-login\fP وإعدادات نظام PAM (مثل \fB(8)pam_env\fP). .SH "حالة الخروج" .sp يعيد \fBrunuser\fP عادة حالة الخروج للأمر الذي نفذه. إذا قُتل الأمر بإشارة، يعيد \fBrunuser\fP رقم الإشارة زائد 128. .sp حالة الخروج التي ولّدها \fBrunuser\fP نفسه: .sp 1 .RS 4 خطأ عام قبل تنفيذ الأمر المطلوب .RE .sp 126 .RS 4 تعذر تنفيذ الأمر المطلوب .RE .sp 127 .RS 4 لم يُعثر على الأمر المطلوب .RE .SH "الملفات" .sp \fI/etc/pam.d/runuser\fP .RS 4 ملف تهيئة PAM المبدئي .RE .sp \fI/etc/pam.d/runuser\-l\fP .RS 4 ملف تهيئة PAM في حال تحديد \fB\-\-login\fP .RE .sp \fI/etc/default/runuser\fP .RS 4 ملف تهيئة logindef الخاص بـ runuser .RE .sp \fI/etc/login.defs\fP .RS 4 ملف تهيئة logindef العام .RE .SH "ملاحظات الأمان" .sp إذا كان \fBrunuser\fP يتشارك طرفية مع الجلسة الأصلية، فإنه يكون عرضة لثغرة تصعيد الامتيازات عبر حقن أوامر ioctl من نوع TIOCSTI/TIOCLINUX. توجد طريقتان مدمجتان لمنع ذلك: إما باستخدام \fBrunuser\fP مع الخيار ‎\fB\-c\fP‎، والذي يبدأ جلسة جديدة عبر ‎\fBsetsid\fP(2)‎ بدون طرفية تحكم. أو، إذا كانت حالة الاستخدام تتطلب طرفية تحكم، مثل الجلسة التفاعلية، يمكنك توجيه \fBrunuser\fP لاستخدام طرفية زائفة عبر الخيار ‎\fB\-\-pty\fP‎ أو ‎\fB\-P\fP‎. .SH "تاريخ" .sp اشتُقّ الأمر \fBrunuser\fP هذا من \fBsu\fP التابع لـ coreutils، والذي استند إلى تنفيذ بواسطة David MacKenzie، وأمر \fBrunuser\fP الخاص بـ Fedora بواسطة Dan Walsh. .SH "انظر أيضاً" .sp \fBsetpriv\fP(1)، \fBsu\fP(1)، \fBlogin.defs\fP(5)، \fBshells\fP(5)، \fBpam\fP(8) .SH "التبليغ عن الأخطاء" .sp لتقارير العِلل، استخدم \c .URL "https://github.com/util\-linux/util\-linux/issues" "مُتتبع المشكلات" "." .SH "التوفر" .sp الأمر \fBrunuser\fP جزء من حزمة util\-linux التي يمكن تنزيلها من \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "أرشيف نواة لينكس" "."