/Permissions & ACL – VI

Permissions & ACL – VI

الحمد لله الذى عظم قدره و منتهاه،

و الصلاة و السلام على من أحبه و اصطفاه، سيد الخلق محمد بن عبد الله،عليه أتم السلام و أفضل الصلاة

كثير منا يجب أن يدار بيته بشيئ من النظام

فمثلا تجد الأب ينبه على أولاده ألا يفتحوا الباب لأى شخص غريب 

و يكون تعريف الشخص الغريب هو أى شخص ليس الأب أو الأم أو الإخوة

أى أننا إذا افترضنا أن الأب و الأم هم بمثابة root و الإخوة بمثابة Owner Group فسيكون أى شخص غريب بمثابة Other و لكن ؟!!

ماذا إذا كان هذا الشخص هو خال أو عم – أحد من الأقارب –

ماذا إذا كان هذا الشخص هو مثلا محصل الغاز أو الكهرباء و يريد أن يأخذ قراءة أو قيمة مالية مثلا

هل ستطبق عليهم القاعدة التى بالأعلى !!! ليس منطقيا بالطبع

أى أن الأب يحتاج إلى إضافة قواعد أخرى خاص لبعض الأشخاص الذين لا ينتمون للـ Owner Group

و فى نفس الوقت لا أريد معاملتهم معاملة Other !!

اى أننا نحتاج لمزيد من التحكم فى الصلاحيات لبعض الأشخاص و المجموعات

و هنا ظهر مفهوم ACL أو Access Control List

و نستخدمها لتخصيص صلاحيات لأشخاص ليسوا Owner user او من ضمن Owner group و لا أريد معاملتهم معاملة others

أبسط و أسرع مثال ألخص به كل الكلام الذى بالأعلى : موجه وزارة التربية و التعليم الذى لا ينتمى لمدرسة معينة و له حق التفتيش على أى مدرسة سبق و أن حددت له الوزارة ذلك

إذا فكيف يتم تطبيق هذه الـ ACL !!

الأمر أو الأداة الأساسية لفعل هذا ستكون

setfacl

و السؤال المتكرر هذه الصلاحيات سنعطيها  لمن على ماذا

سنعطى بعض الصلاحيات مثل read أو write لشخص User أو مجموعة من الأشخاص و هم كما عودنا Groupعلى file او Dir معين

إذا سنحتاج لتعريف اذا كان المعطى له u أو g و تعرفهم و الصلاحيات و اسم file أو dir

على سبيل المثال هكذا

setfacl -m u:dos:rw file.txt

حيث m تشير إلى modify

و u تشير إلى user و يأتى بعدها اسم user ثم الصلاحيات التى تريد إعطائها لهذا user

و فى الاخر اسم file أو dir الذى تريد أن تطبق عليه هذه ACL

لمعرفة الـ ACL الخاصة بـ file أو dir يكفيك فقط استخدام getfacl و بعدها اسم الملف

getfacl file.txt

first

و كمثال عملى على هذا الكلام

نلاحظ أن Other ليس لهم أى صلاحية على هذا الملف ..و من ثمً إذا حاولت أن أستعرض محتويات الملف عن طريق أمر cat من خلال المستخدم dos فستكون النتيجة

second

الان نبدأ فى تخصيص ACL للمستخدم dos

setfacl -m u:dos:rw file.txt

ثم نتأكد من ACL عن طريق getfacl file.txt

فتكون النتيجة

third

لذا و من المنطقى إذا حاولنا تطبيق ما فعلناه سابقا من مجاولة استعراض محتويات الملف من خلال المستخدم dos

فستكون النتيجة

forth

و نفس الكلام إذا أردت تطبيقها على group

setfacl -m g:admins:rw file.txt

و هذا مثال عملى كامل صامت عليها 😀

fifth

ختاما ….

بالطبع يمكنك حذف ACL من يوزر معين بإستخدام option آخر …للتبحر و الاستفاضة عليك بقراءة man ^_^

و هذا هو الموضوع ببساطة 😀

تتبقى نقطة بسيطة و لكنها فى غاية الأهمية لن أتعرض لها فى الوقت الحالى و لكن لن أستطيع ألا أشير لها

حتى يتم تطبيق ACL على ملفات موجودة فى بارتشن معين لابد أن تخبر النظام بهذا أثناء عملية mount للبارتشن هذا

ما هى عملية mount كيف يمكننا أن نفعل هذا ؟ّ …كل هذا سيتم مناقشته بالتفصيل بإذن الله فى المقالات الخاص بالـ storage

ضمن سلسلة The advanced way to RedHat

و بهذا نكون قد انتهينا من الجزء الخاص بـ Permissions&ACL بفضل الله و حمده و منته …و هو واحد من أهم المواضيع فى Linux Administration

دمتم بود ..فى أمان الله ^_^

VMware Certified Professional (VCP5-DCV) Red Hat Certified Architect (RHCA) vExpert 2015