الحمد لله الذى عظم قدره و منتهاه،
و الصلاة و السلام على من أحبه و اصطفاه، سيد الخلق محمد بن عبد الله،عليه أتم السلام و أفضل الصلاة
كثير منا يجب أن يدار بيته بشيئ من النظام
فمثلا تجد الأب ينبه على أولاده ألا يفتحوا الباب لأى شخص غريب
و يكون تعريف الشخص الغريب هو أى شخص ليس الأب أو الأم أو الإخوة
أى أننا إذا افترضنا أن الأب و الأم هم بمثابة 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
و كمثال عملى على هذا الكلام
نلاحظ أن Other ليس لهم أى صلاحية على هذا الملف ..و من ثمً إذا حاولت أن أستعرض محتويات الملف عن طريق أمر cat من خلال المستخدم dos فستكون النتيجة
الان نبدأ فى تخصيص ACL للمستخدم dos
setfacl -m u:dos:rw file.txt
ثم نتأكد من ACL عن طريق getfacl file.txt
فتكون النتيجة
لذا و من المنطقى إذا حاولنا تطبيق ما فعلناه سابقا من مجاولة استعراض محتويات الملف من خلال المستخدم dos
فستكون النتيجة
و نفس الكلام إذا أردت تطبيقها على group
setfacl -m g:admins:rw file.txt
و هذا مثال عملى كامل صامت عليها 😀
ختاما ….
بالطبع يمكنك حذف ACL من يوزر معين بإستخدام option آخر …للتبحر و الاستفاضة عليك بقراءة man ^_^
و هذا هو الموضوع ببساطة 😀
تتبقى نقطة بسيطة و لكنها فى غاية الأهمية لن أتعرض لها فى الوقت الحالى و لكن لن أستطيع ألا أشير لها
حتى يتم تطبيق ACL على ملفات موجودة فى بارتشن معين لابد أن تخبر النظام بهذا أثناء عملية mount للبارتشن هذا
ما هى عملية mount كيف يمكننا أن نفعل هذا ؟ّ …كل هذا سيتم مناقشته بالتفصيل بإذن الله فى المقالات الخاص بالـ storage
ضمن سلسلة The advanced way to RedHat
و بهذا نكون قد انتهينا من الجزء الخاص بـ Permissions&ACL بفضل الله و حمده و منته …و هو واحد من أهم المواضيع فى Linux Administration
دمتم بود ..فى أمان الله ^_^