/Permissions & ACL – IV

Permissions & ACL – IV

الحمد لله و كفى و صلاة و سلاما على عباده الذين اصطفى … اللهم لك الحمد كله و لك الشكر كله و إليك يُرجع الأمر كله … اللهم صلى و سلم على محمد و آله وصحبه

المهندس أحمد هو أدمن النظام الحالى و هو من يدير Root Account 

قام بإنشاء Group  بإسم admins و جعلها Group Ownership على Directory بإسم important

المشكلتين التى ظهرت لنا …أنه يجب أن تكون هذه Group ليست مسئولة عن Dir. فحسب بل و أيضا كل الملفات القديمة التى تم إنشائها قبل وجود هذه الجروب !!!

وليس من المنطقى أن أجعل Root يذهب لكل ملف ليغير Ownership الخاصة به …أى أننا نريد أن نقوم بها على خطوة واحدة ….

هذه كانت الأولى …

أما الثانية فأريد لكل الملفات مستقبلا التى سيتم إنشائها فى هذا الـ Dir. أيضا تكون الجروب admins هى المسؤولة عنها بشكل تلقائ بدون أن أضطر لتغيير كل فايل بعد إنشائه …

فى الوضع الطبيعى إذا قام Root بإنشاء Dir. بإسم important و جعل الـ … فلندع بقية الكلام للصورة فهى أبلغ من أى تعبير ^_^

1.png

كما نلاحظ على الرغم من أنى غيرت Group Ownership للفولدر important إلا أن الملفات القديمة مازالت مِلكَاً للجروب root !!

الحل بسيط جدا و هو أن نضيف option للأمر chgrp

هذا option هو R و يرمز لـ Recursion أو Recursive بمعنى أنك ستطبق هذا الأمر على كل محتويات الـ Dir. مهما كان عددها أو حجمها

و تكون الصورة بالشكل التالى …..

2.png

ولكن إذا قمت بإنشاء ملف جديد بداخل important ستجد ….

3.png

انه لم يأخذ بشكل تلقائى Group Ownership الخاصة بـ admins

كيف نحل هذه المعضلة فتكون بشكل تلقائى ؟!

نحن نحتاج إلى Special Permissions تقوم بهذه المهمة من اجل راحة و توفير وقت الرووت 😀

الـ Special Permission التى سوف نستخدمها اليوم هى SGID أو Set Group ID

و دورها أن تورث صفة Group Ownership للـ Dir. الأب أو الأساسى لكل ماسيحتويه مستقبلا من ملفات أو فولدرات بداخله “الأبناء

يرمز لها أيضا برمز s

كيف نستخدمها ؟!

chmod g+s

4.png

تم حل المشكلة و الحمد لله ^_^

تكلمنا سابقا عن SUID و مكان وجود s و عن شكلها و هيئتها إذا كان يوجد معها x أو لا يوجد

نفس الكلام هنا أيضا بإختلاف بسيط وهو أن مكانها فى الجزء الخاص بصلاحيات Group و هذا ما لاحظناه من الصور

سؤال شهير …كيف أفرق بين SUID & SGID و كلاهما نرمز لهما بـ s

ببساطة s حينما تأتى مع صلاحيات user ستكون SUID

و إذا أتت مع صلاحيات Group ستكون GUID

😀

أيضا أغلب استخدام SUID يكون مع Executable Files و أغلب استخدام GUID مع Dirs “Directories”

هذا و الله ولى التوفيق  و نكمل المرة القادمة مع  Special Permission آخر بإذن الله ^_^