بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله ويركاته
بعض الشرح عن أمر su وفرق بين التوزيعات التي تم بنائها على بعض التوزيعات مثل أبونتو والتوزيعات الأخرى في هذا الشأن هناك بعض اللغط حول هذا الأمر خاصة من إعتاد التوزيعات التي تم بنائها على أبونتو ثم إنتقل لتوزيعات أخرى مثلا فيدورا أو أرش ودبيان وعلى ما أظن أوبن سوزا أو العكس صحيح سأحاول قدر الإمكان تبسيط الشرح .
1-كلنا نعرف ان كل شيء من مجلدات وملفات خارج مجلد المنزل لدينا بشكل إفتراضي يمتلكهم مستخدم root وهو مستخدم يأتي إفتراضيا وهو الأعلى سلطة في النظام ولا يمكن لنا أن نغير أي شيء في هذه الملفات والمجلدات إلا من خلال اولا بإستخدام مستخدم root نفسه, ثانيا من خلال إستخدام صلاحياته مثلا من خلال sudo ,ثالثا إذا سمح لنا بهذا مستخدم root مثل مجلد tmp/ الخاص بالملفات المؤقته رابعا تغير ملكية الملف أو المجلد بما فيه من ملكية مستخدم root إلى ملكية المستخدم الخاص بنا مثلا مستخدم yucef وهناك أيضا تغير الصلاحيات لكن هذا أمر غير محبب إطلاقا وليس موضوعنا الأن.
2-الأن ما هو عمل su .
الجزء الأول :
ممكن من هذا الأمر الدخول بمستخدم أخر لتنفيذ امر أو عدة اوامر مثلا في فيدورا الأن إذا كتبت كلمة su من دون ما أحدد إسم المستخدم الذي أريد الدخول منه سيعتبر النظام أني أقصد مستخدم root .
أمر pwd لنعرف في أي مجلد نحن الأن .
أمر whoami يعرض بأي مستخدم دخلنا منه نحن الأن وأمر exit للخروج.
نلاحظ عند إستخلام أمر su من دون تحديد إسم المستخدم سيتم الدخول على مستخدم root لكن نلاحظ اننا مازلنا في مجلد المنزل الخاص بنا بالمناسبة في التوزيعات التي لم يتم بنائها على أبونتو كلمة مرور مستخدم root قد تكون مختلفة عن كلمة مرور المستخدم الخاص بنا يعني على حسب ما وضعتاه أثناء التثبيت مثال عن فيدورا نلاحظ الصورة في الأسفل أثناء التثبيت من هنا نضع كلمة مرور مستخدم root ومن جانبه ننشأ مستخدم خاص بنا ونضع له كلمة مرور وليس شرط أن يكونو ذات كلمة المرور .
الأن مثلا في التوزيعات التي تم بنائها على أبونتو أثناء التثبيت لا نضع كلمة مرور لمستخدم root لهذا عند محاول الدخول منه من خلال أمر su سيطلب كلمة مرور ومهما حاولنا لن ينجح الدخول لأننا بالأصل لم نحدد كلمة مرور لهذا المستخدم .
لكن يمكننا ان ندخل على مستخدم root من خلال أمر sudo -i ونستخدم ذات كلمة مرور المستخدم الخاص بنا.
ممكن أيضا تعين كلمة مرور لمستخدم root ويصبح الأمر مثل في فيدورا أو أرش و...إلخ من خلال أمر sudo passwd ثم نضع كلمة مرور الخاصة بنا ليعمل أمرsudo ثم نحدد كلمة مرور خاصة لمستخدم root وليس بالضرورة أن تكون ذات كلمة مرور المستخدم الخاص بنا على العموم نضع كلمة المرور مرتين والأفضل أن تكون كلمة مرور قوية حتى يقبلها النظام .
ملاحظة ممكن إستخدام أيضا أمر sudo passwd root ذات شيء لأن أمر passwd إذا لم نحدد له إسم المستخدم المراد تحديد أو تغير كلمة المرور الخاصة به سيعتبر أن المقصود المستخدم الأساسي root .
الأن نلاحظ كما في الصورة في الأسفل ان أصبح بإمكاننا الدخول من خلال مستخدم root كما في فيدورا او أرش و..إلخ.
الجزء الثاني :
كما نعرف ان كل مستخدم ممكن أن يكون لديه مجلد خاص به داخل مجلد home مثلا home/yucef/ هذا الأمر يسري على كل المستخدمين إفتراضيا ما عدا مستخدم root يكون له مجلد خاص به بهذا المسار root/ وطبعا يكون فيه ملفات إعدادات خاصة لهذا نلاحظ أحيانا عند تشغيل برنامج رسومي بصلاحيات root أو بإستخدام صلاحيات root من خلال أمر sudo نلاحظ أن شكل البرنامج غير مألوف لأن كما للمستخدم الخاص بنا إعدادات خاصة في مجلد المنزل الخاص به لمستخدم root إعادادات خاصة أيضا الأن يمكننا الدخول من مستخدم root إلى مجلد المنزل الخاص به مباشرتا من خلال أمر - su أمر su زائد علامة الناقص أو su -l ذات الشيء.
الجرء الثالث :
لا يقتصر عمل أمر su للدخول على مستخدام root ممكن الدخول من خلاله أيضا على أي مستخدم أخر من خلال إستخدام كلمة مرور هذا المستخدم لنفترض ان إسمك yucef ولديك كلمة مرور خاصة بك ولك أخ إسمه osman لديه حساب على ذات الجهاز طبعا وله كلمة مرور خاصة أيضا طبعا أنت لا تستطيع الدخول على مجلد المنزل الخاص به أو مثلا تنفيذ أمر من صلاحياته إلا من خلال مستخدم root أو إستخدام صلاحيات root لنفترض انك لا تعرف كلمة مرور المستخدم root وليس لك صلاحيات إستخدام أمر sudo الحل أن تقول لأخوك أن يعطيك كلمة المرور لأنك مثلا تريد أن تجلب شيء من مجلد المنزل الخاص به ويتم هذا الأمر من خلال أمر su ثم إسم المستخدم الأخر ثم نضع كلمة مرور هذا المستخدم نتابع الصور ذات المبدأ في الشرح في الأعلى لمستخدم root نستخدمه لأي مستخدم نعرف كلمة المرور الخاصة به.
الجزء الرابع :
ممكن أيضا من خلال أمر su تنفيذ أمر واحد بصلاحيات اي مستخدم يعني شيء كأمر sudo من خلال إستخدام خيار c- ووضع الأمر داخل علامتي تنصيص نتابع الصور ملاحظة أذكر في حال عدم ذكر إسم المستخدم سيعتبر اننا نقصد المستخدم الأساسي root .
لمزيد من المعلومات .
man su
أخيرا أريد أن أذكر شيء أن في أخر إصدارات مدير الدخول الرسومي gdm لواجهة gnome shell لا تسمح بالدخول عليها من خلال مستخدم root وفي التوزيعات التي تضع كلمة مرور للمستخدم root أثناء التثبيت هناك بعض البرامج خاصة البرامج القديمة والتي تطلب كلمة مرور لتعمل علينا ان ننتبه بعض البرامج تطلب كلمة مرور المستخدم الخاص بنا لتستخدم شيء مثل sudo وبعض البرامج تطلب كلمة مرور مستخدم root نفسه لهذا نتفاجأ أحيانا أنه يتم رفض كلمة المرور لكن نكون متاكدين ان كلمة المرور صحيحة لكننا لم ننتبه انه يطلب كلمة مرور المستخدم root نفسه وليس كلمة مرور المستخدم الخاص بنا.