'\" t .\" Title: su .\" 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 "SU" "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 "الاسم" su \- شغل أمراً بمعرّف مستخدم ومعرّف مجموعة بديلين .SH "موجز" .sp \fBsu\fP [خيارات] [\fB\-\fP] [\fIuser\fP|\fIUID\fP [\fIargument\fP.\|.\|.]] .SH "الوصف" .sp يسمح \fBsu\fP بتشغيل الأوامر بمعرّف مستخدم ومعرّف مجموعة بديلين. .sp عند استدعائه دون تحديد \fIمستخدم\fP، يشغل \fBsu\fP صدفة تفاعلية كـ \fIroot\fP مبدئياً. وعند تحديد \fIالمستخدم\fP، يمكن توفير \fIمعطى\fPات إضافية، وفي هذه الحالة تُمرّر إلى الصدفة. .sp للتوافق مع الإصدارات السابقة، لا يغير \fBsu\fP الدليل الحالي مبدئياً ويضبط فقط متغيرات البيئة \fBHOME\fP و \fBSHELL\fP (إضافة إلى \fBUSER\fP و \fBLOGNAME\fP إذا لم يكن \fIالمستخدم\fP المستهدف هو root). يوصى دائماً باستخدام الخيار \fB\-\-login\fP (بدلاً من اختصاره \fB\-\fP) لتجنب الآثار الجانبية الناجمة عن خلط البيئات. .sp يستخدم هذا الإصدار من \fBsu\fP نظام PAM للاستيثاق وإدارة الحسابات والجلسات. وبعض خيارات التهيئة الموجودة في عمليات تنفيذ \fBsu\fP الأخرى، مثل دعم مجموعة wheel، يجب تهيئتها عبر PAM. .sp صُمّم \fBsu\fP غالباً للمستخدمين غير ذوي الامتيازات، والحل الموصى به للمستخدمين ذوي الامتيازات (مثل البرمجيات النصية التي ينفذها root) هو استخدام أمر ليس من نوع set\-user\-ID وهو \fBrunuser\fP(1) الذي لا يتطلب استيثاقاً ويوفر تهيئة PAM منفصلة. وإذا كانت جلسة PAM غير مطلوبة على الإطلاق، فإن الحل الموصى به هو استخدام الأمر \fBsetpriv\fP(1). .sp لاحظ أن \fBsu\fP يستخدم PAM‏ (\fBpam_getenvlist\fP(3)) في جميع الحالات لإجراء تعديل البيئة النهائي. وتؤثر خيارات سطر الأوامر مثل \fB\-\-login\fP و \fB\-\-preserve\-environment\fP على البيئة قبل أن يُعدلها PAM. .sp منذ الإصدار 2.38، يعيد \fBsu\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 لاحظ أنه في الأنظمة المعتمدة على \fBsystemd\fP(1)، قد تُعرف الجلسة الجديدة كنقطة دخول حقيقية للنظام. ومع ذلك، فإن \fBsu\fP لا ينشئ جلسة حقيقية (عبر PAM) من وجهة النظر هذه. ستحتاج لاستخدام أدوات مثل ‎\fBsystemd\-run\fP(1)‎ أو ‎\fBmachinectl\fP(1)‎ لبدء جلسة حقيقية كاملة. .sp يقوم \fBsu\fP بـ: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} clear all the environment variables except \fBTERM\fP, \fBCOLORTERM\fP, \fBNO_COLOR\fP and variables specified by \fB\-\-whitelist\-environment\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} initialize the environment variables \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP, \fBLOGNAME\fP, and \fBPATH\fP .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} change to the target user\(cqs home directory .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} set argv[0] of the shell to \*(Aq\fB\-\fP\*(Aq in order to make the shell a login shell .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 يمكن أيضاً نقل الجلسة بأكملها إلى الخلفية (على سبيل المثال، ‎\fBsu \-\-pty \- user \-c application &\fP‎). إذا تم تفعيل الطرفية الزائفة، فإن \fBsu\fP يعمل كوكيل بين الجلسات (مزامنة المداخل القياسية والمخارج القياسية). .sp صُممت هذه الميزة أساسًا للجلسات التفاعلية. إذا لم يكن المدخل القياسي طرفية، بل أنبوبًا على سبيل المثال (مثال: \fBecho "date" | su \-\-pty\fP)، فعندئذٍ تُعطل علامة \fBECHO\fP للطرفية الوهمية لتجنب المخرجات الفوضوية. .RE .sp \fB\-s\fP، \fB\-\-shell\fP \fIصدفة\fP .RS 4 شغل \fIصدفة\fP المحددة بدلاً من المبدئية. وإذا كان لدى المستخدم المستهدف صدفة مقيدة (أي غير مدرجة في \fI/etc/shells\fP)، فسيُتجاهل خيار \fB\-\-shell\fP ومتغيرات بيئة \fBSHELL\fP ما لم يكن المستخدم المستدعي هو root. .sp تُختار الصدفة المراد تشغيلها وفقاً للقواعد التالية، بالترتيب: .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 .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\-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 عند تلقي إما \fBSIGINT\fP أو \fBSIGQUIT\fP أو \fBSIGTERM\fP، ينهي \fBsu\fP تابعه وبعد ذلك ينهي نفسه بالإشارة المتلقاة. يُنهى التابع بواسطة \fBSIGTERM\fP، وبعد محاولة غير ناجحة وتأخير مدته ثانيتان يُقتل التابع بواسطة \fBSIGKILL\fP. .SH "ملفات الضبط" .sp يقرأ \fBsu\fP ملفي إعداد \fI/etc/default/su\fP و \fI/etc/login.defs\fP. عناصر الإعداد التالية ذات صلة بـ \fBsu\fP: .sp \fBFAIL_DELAY\fP (number) .RS 4 التأخير بالثواني في حالة فشل الاستيثاق. يجب أن يكون الرقم صحيحاً غير سالب. .RE .sp \fBENV_PATH\fP (string) .RS 4 يُعرّف متغير البيئة \fBPATH\fP للمستخدم العادي. القيمة المبدئية هي \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، فإن \fBsu\fP يجهز \fBPATH\fP. .sp قد يختلف متغير البيئة \fBPATH\fP في الأنظمة التي دُمج فيها \fI/bin\fP و \fI/sbin\fP ضمن \fI/usr\fP؛ يتأثر هذا المتغير أيضًا بخيار سطر الأوامر \fB\-\-login\fP وإعدادات نظام PAM (مثل \fB(8)pam_env\fP). .RE .SH "حالة الخروج" .sp يعيد \fBsu\fP عادةً حالة الخروج للأمر الذي نفذه. إذا قُتل الأمر بواسطة إشارة، يعيد \fBsu\fP رقم الإشارة + 128. .sp حالة الخروج المولّدة بواسطة \fBsu\fP نفسه: .sp 1 .RS 4 خطأ عام قبل تنفيذ الأمر المطلوب .RE .sp 126 .RS 4 تعذر تنفيذ الأمر المطلوب .RE .sp 127 .RS 4 لم يُعثر على الأمر المطلوب .RE .SH "الملفات" .sp \fI/etc/pam.d/su\fP .RS 4 ملف تهيئة PAM المبدئي .RE .sp \fI/etc/pam.d/su\-l\fP .RS 4 ملف تهيئة PAM في حال تحديد \fB\-\-login\fP .RE .sp \fI/etc/default/su\fP .RS 4 ملف إعداد logindef الخاص بالأمر .RE .sp \fI/etc/login.defs\fP .RS 4 ملف تهيئة logindef العام .RE .SH "ملاحظات الأمان" .sp إذا كان \fBsu\fP يتشارك طرفية مع الجلسة الأصلية، فإنه يكون عرضة لثغرة تصعيد الامتيازات عبر حقن أوامر ioctl من نوع TIOCSTI/TIOCLINUX. توجد طريقتان مدمجتان لمنع ذلك: إما باستخدام \fBsu\fP مع الخيار ‎\fB\-c\fP‎، والذي يبدأ جلسة جديدة عبر ‎\fBsetsid\fP(2)‎ بدون طرفية تحكم. أو، إذا كانت حالة الاستخدام تتطلب طرفية تحكم، مثل الجلسة التفاعلية، يمكنك توجيه \fBsu\fP لاستخدام طرفية زائفة عبر الخيار ‎\fB\-\-pty\fP‎ أو ‎\fB\-P\fP‎. .sp لأسباب أمنية، يسجل \fBsu\fP دائماً محاولات الولوج الفاشلة في ملف \fIbtmp\fP، لكنه لا يكتب في ملف \fIlastlog\fP على الإطلاق. يمكن استخدام هذا الحل للتحكم في سلوك \fBsu\fP عبر إعداد PAM. إذا كنت تريد استخدام ملحق \fBpam_lastlog\fP(8) لطباعة رسالة تحذير حول محاولات الولوج الفاشلة، فيجب ضبط \fBpam_lastlog\fP(8) لتحديث ملف \fIlastlog\fP أيضاً. على سبيل المثال عبر: .RS 3 .ll -.6i .sp session required pam_lastlog.so nowtmp .br .RE .ll .SH "تاريخ" .sp اشتق أمر \fBsu\fP هذا من \fBsu\fP الخاص بـ coreutils، والذي اعتمد على تنفيذ بواسطة David MacKenzie. نُقّحت نسخة util\-linux بواسطة Karel Zak. .SH "انظر أيضاً" .sp \fBsetpriv\fP(1)، \fBlogin.defs\fP(5)، \fBshells\fP(5)، \fBpam\fP(8)، \fBrunuser\fP(1) .SH "التبليغ عن الأخطاء" .sp لتقارير العِلل، استخدم \c .URL "https://github.com/util\-linux/util\-linux/issues" "مُتتبع المشكلات" "." .SH "التوفر" .sp الأمر \fBsu\fP جزء من حزمة util\-linux التي يمكن تنزيلها من \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "أرشيف نواة لينكس" "."