/Permissions & ACL – III

Permissions & ACL – III

الحمد لله و كفى و صلاة و سلاما على عباده الذين اصطفى ، اللهم لك الحمد كله و لك الشكر كله و إليك يرجع الأمر كله ^_^ نصيحة من الكاتب :  لا تقرأه مرة واحدة و لا و أنت مضطرب الذهن ^_^ اشرب كوب شاى باليامسين أو عصير تفاح بالنعناع و استمتع بالقراءة 😀

بسم الله

لعل كثيرا من الناس الذين تعاملوا مع أنظمة لينكس من فترة و حتى المستخدمين الجدد قد لاحظوا أن هناك أوامر لا يستطيع المستخدم العادى التعامل معها و تشترط صلاحيات root بأى صورة ..سواء أن تستخدم su لتكون أنت root نفسه أو sudo و هذا يتطلب ان يكون اسمك فى الملف الخاص بـ sudoers و هذا سنتحدث عليه بشيئ من التفصيل لاحقا بإذن الله

واحدة من هذه الأوامر و إن شئت فقل tools التى لا غنى عنها بشكل دورى هى fdisk tool و التى تستخدمها للتعامل مع partitions الخاصة بالسيستم عندك و هى تشبه لمن تعامل مع ويندوز partition magic 

أو disk manager الذى يأتى مع ويندوز بشكل أساسى

1

هذه الأداة fdisk لا تستطيع أن تستخدمها إلا إذا كنت root أو بصلاحيات root قم بكتابة fdisk -l عندك فى التيرمنال و انت مستخدم عادى ستتفاجئ انه لم يحدث شيئ ! قم بكتابة نفس الأمر و انت root ستجد انه بدأ فى استعراض الهارد الديسك و البارتشنات الموجودة به بدون أى مشاكل

2  

بداية دعنا نستطرد أمرا هاما أغفلناه من قبل ….

ما هو الأمر الذى تكتبه على التيرمنال و ينفذ لك مهام

عندما أكتب أمر mkdir مثلا أجد أنه نفذ لى مهمة إنشاء directory فى المكان الذى أحدده بالاسم الذى أريده …إذا فكيف فعل ذلك ؟!

الأوامر التى نكتبها على التيرمنال كل ما تفعله فى الحقيقة أنها تذهب لإستدعاء أو تنفيذ binary file محفوظ أو موجود بداخل النظام أو السيستم لدينا

أى أنها تشير فى حقيقة الأمر إلى ملف فى نهاية الأمر

الدليل على ذلك أو إذا أردت رؤية هذا binary file و الوصول إليه

which mkdir

سيظهر لك المسار الحقيقى أو بمعنى أدق الفايل الذي تم تنفيذه فعلا عند كتابة الأمر

لذا فمن المنطقى أننى أذا استخدمت الفايل الأصلى نفسه لتنفيذ نفس المهمة سيفعل بدون أى مشاكل

3

كلنا لاحظنا الفايل عليه صلاحية X للـ others أى أنه من الطبيعى أى مستخدم يتعامل معه بدون أى مشاكل

ماذا يحدث إذا جعلنا هذه X مقتصرة على user فقط ؟!

4و هذا معناه أنك ممكن أن تحظر بعض المستخدمين بعينهم من استخدام أوامر بعينها قد يستخدمها غيرهم بدون أى مشاكل 

و لكن ماذا إذا أردنا العكس ؟!!

نرجع لمثال fdisk السالف ذكره بالأعلى ….الان نريد أن نجعل أى يوزر يستطيع استخدامه بدون الرجوع إلى الرووت ؟!

دعنا أولا نذهب لنرى الصلاحيات المعطاة لهذا الفايل

which fdisk

ll /sbin/fdisk

5

ستلاحظ أمرا غريبا ..أن الفايل بالفعل لدية صلاحية X للـ others و مع ذلك لم تستطع و انت يوزر عادى استخدامه !!

ولكن دعنى أنبهك لأمر …

عندما حذفت الصلاحية X من mkdir ظهرت لك رسالة خطأ permission denied و لكنك عندمااستخدمت fdisk لم يقل لك خطأ هو فقط لم يرد عليك 

ﻷن التعامل مع الهاردوير مباشرة مثل NIC HDD …. etc لابد أن يكون عن طريق الكيرنل أو السيستم و من الجانب الأمان أنه لا يدع إلا الرووت فى المقام الأول هو من يتعامل مع هذه الأشياء أو من يسمح له الرووت و هم sudoers أو من يمتلكون صلاحية root و هذا ما نتكلم عنه فى هذا المقال

أى أننا نريد بصيغة أخرى أن نجعل المستخدم dos يتعامل مع fdisk بنفس الصلاحيات التى يمتلكها الرووت دون أن يكون dos رووت او من sudores

هنا نحن نحتاج إلى ما يسمى special permissions 

تحديدا فى حالتنا هذه SUID or Set User ID 

و هى التى تمكننى من جعل أى مستخدم فى النظام من تشغيل file excutable بصلاحيات الـ owner user لهذا الفايل

و نرمز لهذه الصلاحية برمز s

كيف يمكن اضافتها

chmod u+s 

و فى حالتنا chmod u+s /sbin/fdisk

6

سيلاحظ الكثير أن الصلاحية X قد اختفت و ظهرت مكانها s “small Letter” سنؤجل هذه النقطة لآخر المقال

الان حان دور تجربة fdisk مرة أخرى بأى مستخدم عادى

7

نجحت التجربة و الحمد لله ^_^

تتبقى الان نقطة أين ذهبت x التى ظهرت مكانها s ?!

أقول لك

إذا كان الملف فى أصله لديه permission x و أضفت إليه أنت permission s يتم استبدال حرف x بحرف s small letter

و اذا كان الملف فى أصله لا يحتوى على permission x و أضفت إليه أنت permission s يتم استبدال حرف x بجرف S capital letter

للتأكد من هذا الكلام المريب 😀

8هذا و بالله التوفيق و نكمل المرة القادمة مع بقية الصلاحيات الخاصة …دمتم فى أمان الله ^_^