بسم الله الرحمن الرحيم
السلام عليكم
سأتحدث اليوم عن sudo لنعطي يوزر أو مجموعه بعض او كل صلاحيات الرووت ، من المعروف ان صلاحيات الرووت موجودة فقط مع هذا اليوزر بشكل افتراضي من النظام ،بعكس الوندوز تماما ففي لينوكس تجبر على عمل يوزر مستقل ليس له كل الصلاحيات بجانب يوزر الجذر أو الروت اللي له كل الصلاحيات على النظام ، لان الوندوز لما تركبه يعطيك افتراضيا صلاحيات الادمن واقرب باتش بجهازك صار معه فل اكسس على النظام ممايجعلك عرضة للجلطات الدماغيه خخخخخخ
نقوم بتحرير ملف /etc/sudoers بالامر visudo
ولنعطي المستخدم samer الاوامر
كود:
useradd
userdel
usermod
groupadd
groupdel
groupmod
هذه كلها اوامر الرووت الخاصه بالتحكم بالمستخدمين والمجموعات بالنظام ، وكون سامر هو المسؤول عن المستخدمين فأني ساعطيه ترخيص لاستخدام هذه الاوامر بثلاث خطوات
أولا / نقوم بتعريف اليوزر (سامر) في خانة ( User alias specification ) ونكتب مايلي
كود:
User_Alias USERSADMIN=samer
ثانيا / نقوم بتعريف الاوامر المطلوبة في خانة ( Cmnd alias specification ) ونكتب التالي
كود:
Cmnd_Alias USERSCMD=/sbin/useradd,/sbin/userdel,/sbin/usermod,/sbin/groupadd,/sbin/groupdel,/sbin/groupmod
ثالثا / نقوم بتخصيص هذه الاوامر لهذا اليوزر في خانة ( Defaults specification ) ونكتب
كود:
USERSADMIN ALL=USERSCMD
ملاحظات :
* يجب عليك كتابة الاوامر من مكانها الصحيح وليس الامر فقط.
* يجب عليك تحرير الملف بواسطة visudo عبر محرر vim الشهير ، عند حفظة بطريقة صحيحة سيقوم نفس الامر بالتدقيق على المدخلات وسيخبرك ان كان هناك خطأ فيها ، لذا لاتحرر الملف بشكل يدوي.
* يستحسن عمل التعريفات ، كل تعريف في مكانه مما يساعد على التنظيم والترتيب لتكون مفهومة بشكل أفضل عند القراءة فيما بعد
الان يمكن لسامر ان يستخدم الاوامر
كود:
useradd
userdel
usermod
groupadd
groupdel
groupmod
بهذا الشكل
كود:
[samer@ex4mple ~]$ sudo useradd
Password:
usage: useradd [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] [-M] [-n] [-r] [-l] name
useradd -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire ]
[samer@ex4mple ~]$ sudo useradd LinuxAC
[samer@ex4mple ~]$
بالامر الثاني قمنا باضافة اليوزر LinuxAC باستخدام يوزر سامر ، مع العلم ان الامر المستخدم هو خاص فقط للرووت.
واذا بغينا نعطي كل الاوامر للمستخدم الجديد LinuxAC ماعدا الشل ، نكتب مايلي
كود:
LinuxAC ALL=ALL, !SHELL
سيمكنه هذا من تنفيذ sudo مع كل الاوامر ، ماعدا الامرين
هذه المقدمة تقودنا لعالم آخر من استخدامات sudo الدقيقه أو المتقدمه
لمن اراد المزيد عن sudo يكتب الامر man sudo ، ويمكن الاطلاع على هذا المقال القديم من هنا