الدليل العملي الشامل لإتقان أمر chmod في لينكس

مقدمة عامة

تُمثّل منظومة الصلاحيات في بيئات لينكس خط الدفاع الأساسي لحماية البيانات وضمان سلامة نظام التشغيل، حيث يبرز أمر chmod كأداة مركزية لا غنى عنها لكل مدير نظام أو مطور. يستعرض هذا المقال آليات توزيع أذونات الوصول وقراءتها بدقة، موضحاً الفروق الجوهرية بين التعيين الرقمي الثماني (كأوضاع 755 و 644) والأسلوب الرمزي (rwx)، مدعوماً بتطبيقات حية من سطر الأوامر لتثبيت المفاهيم الهندسية الكامنة خلفها.

1. بنية تصاريح الملفات في لينكس وفحص الحالة الحالية (ls -l)

لتهيئة بيئة تجريبية معزولة واختبار تبديل الامتيازات دون التأثير على ملفات النظام الأساسية، نبدأ بتشييد دليل عمل مخصص عبر تنفيذ الأمر mkdir -p ~/chmod_demo && cd ~/chmod_demo.

إنشاء مسار العمل والانتقال المباشر إليه

نقوم بعد ذلك بإنشاء ملف نصي فارغ لاستخدامه كعينة فحص وتطبيق للأوامر التالية عن طريق تشغيل touch sample.txt.

إنشاء ملف تجريبي فارغ للمعاينة

لاستجلاء سمات الملف الوليد ومعاينة مصفوفة الصلاحيات الممنوحة له تلقائياً من قبل النظام، نُصدر الأمر ls -l sample.txt.
تُشكل الخانات العشر الأولى في المُخرج (-rw-r--r--) توصيفاً دقيقاً لطبيعة العنصر؛ حيث توضح أول خانة نوع الكائن (ملف عادي هنا)، تليها تسع خانات مقسمة إلى ثلاثة أقسام تحدد امتيازات القراءة والكتابة لمالك الملف، ثم أذونات القراءة لأعضاء المجموعة المالكة، وأخيراً حق القراءة لسائر المستخدمين الآخرين.
⚙️ [أبرز خيارات العرض المساعدة للأمر ls]

-l : يفعّل نمط الاستعراض التفصيلي (Long format)، عارضاً مصفوفة الأذونات، وهوية المالك والمجموعة، وحجم الكائن، وتوقيت آخر تعديل.
-a : يُدرج في القائمة كافة الملفات والمجلدات دون استثناء، متضمناً العناصر المخفية التي تستهل أسماؤها بنقطة (.).
-h : يُترجم أحجام الملفات إلى وحدات قياس ملائمة للعين البشرية (مثل كيلوبايت وميجابايت) عند اقترانه بالخيار -l.
-d : يستهدف قراءة بيانات المجلد ككيان مستقل وأذوناته الخاصة، عوضاً عن سرد محتوياته وتفريعاته الداخلية.
-R : يُجري فحصاً تكرارياً شاملاً (Recursive) يجوب المجلدات الفرعية ويعرض تسلسل كافة الملفات المتداخلة فيها.

معاينة السمات التفصيلية للملف عبر نمط القائمة الطويلة

2. ضبط الصلاحيات بالنظام الرقمي الثماني (chmod 644, 755)

نضمن أولاً وجودنا داخل مسار التطبيق المعد مسبقاً بتنفيذ أمر التوجيه cd ~/chmod_demo.

الولوج إلى مسار الاختبار

عند الحاجة لتمكين المالك من كامل الصلاحيات الحسابية (قراءة 4 + كتابة 2 + تشغيل 1 = 7)، مع قصر صلاحيات المجموعة والآخرين على الاستعراض والتنفيذ فقط (قراءة 4 + تشغيل 1 = 5)، نطبق أمر التهيئة chmod 755 sample.txt.

تخصيص الأذونات الرقمية 755 للملف التجريبي

نتحقق من انعكاس القيم الجديدة وظهور النمط -rwxr-xr-x بواسطة ls -l sample.txt.
يُلاحظ بجلاء اكتمال حزمة الصلاحيات للمالك بصيغة rwx، بينما حظيت المجموعة وبقية الحسابات بصيغة r-x، مما يعني دخول خاصية التنفيذ (x) حيز التفعيل للجميع.

التحقق من سريان النمط 755 بعد التعديل

ولإعادة ضبط الملف ليتطابق مع المعيار الأمني الشائع للمستندات والملفات النصية غير التنفيذية (حق القراءة والتعديل للمالك 6، وحق القراءة المجرد للمجموعة والآخرين 4)، نعتمد الأمر chmod 644 sample.txt.

إعادة ضبط تصاريح الملف النصي إلى 644

يُظهر الاستعلام اللاحق عبر ls -l sample.txt عودة التمثيل إلى -rw-r--r--.
تكشف هذه الحالة سحب صفة التشغيل التنفيذي بالكامل، والاحتفاظ فقط بقنوات القراءة والكتابة المحددة.

التأكد من إلغاء صفة التنفيذ واستقرار الصلاحيات على 644

3. تعديل الامتيازات بدقة عبر التمثيل الرمزي (Symbolic Notation)

نُعيد تموضع جلسة العمل للتأكد من التواجد في الدليل الصحيح بكتابة cd ~/chmod_demo.

التحقق من المسار الحالي للعمليات

نقوم بإنشاء سكربت شل تفاعلي لاختبار آليات الترقية التنفيذية عبر الأمر echo '#!/bin/bash\necho "Hello Linux"' > test.sh.

توليد سكربت باش تجريبي عبر إعادة التوجيه

لتفعيل سمة التشغيل وإتاحتها لجميع أطياف المستخدمين (المالك، المجموعة، وسائر الحسابات) بضربة واحدة دون المساس بباقي الأذونات، ننفذ chmod +x test.sh.

منح رخصة التنفيذ العامة للسكربت باستخدام الوسم +x

عند استعراض نتائج الأمر بواسطة ls -l test.sh، نجد أن التركيبة أصبحت -rwxr-xr-x.
يؤكد هذا الناتج نجاح إضافة مؤشر التنفيذ (x) عبر كافة فئات الحسابات دون الإخلال بحقوق القراءة والكتابة الأصلية.

فحص أثر إضافة إذن التشغيل لجميع الأطراف

يتيح التمثيل الرمزي أيضاً دمج تعليمات متعددة مفصولة بفاصلة؛ فلحرمان المجموعة من ميزة التعديل وسلب حق المطالعة من الغرباء، نستخدم chmod g-w,o-r test.sh.

حذف امتيازات محددة بالتوازي عبر التدوين الرمزي

يكشف التحقق الإضافي عبر ls -l test.sh تحول حالة الملف إلى -rwxr-x--x.
يبرهن هذا المظهر على انتزاع صلاحية الكتابة من خانة المجموعة، مع إقصاء إذن القراءة (r) تماماً عن الفئة العامة.

معاينة الحصيلة النهائية لتقييد صلاحيات المجموعة وبقية المستخدمين

4. الإدارة التكرارية لتصاريح المجلدات والملفات الفرعية (الخيار -R)

في السيناريوهات التشغيلية الضخمة، تدعو الحاجة لمعالجة مجلدات تضم مئات الملفات؛ ولتطبيق ذلك ننشئ هيكلية شجرية تتضمن مسارات للمشروع وسجلاته عبر mkdir -p ~/chmod_demo/project/logs.

بناء هيكل أدلة متدرج لاختبار التمرير التكراري

نملأ هذا الهيكل بكود بايثون تجريبي وملف تتبع للأحداث بتنفيذ touch ~/chmod_demo/project/app.py ~/chmod_demo/project/logs/app.log.

توزيع ملفات برمجية وملفات سجلات داخل المسارات الفرعية

لتوحيد أذونات الشجرة بالكامل وفرض النمط 750 على دليل المشروع وكافة تشعباته وعناصره الدفينة، نمرر المعامل الشامل عبر chmod -R 750 ~/chmod_demo/project.
ينجم عن هذا الإجراء إعطاء المالك صلاحية مطلقة (7)، وإمداد المجموعة بإمكانات القراءة والتصفح التنفيذي (5)، مع حجب مطلق (0) يمنع أي متطفل خارجي من الوصول إلى المجلد أو أي من مرافقه التابعة.

فرض مستوى الأمان 750 شجرياً على كامل مسار المشروع

للتثبت أولاً من أذونات المجلد الجذر الخارجي دون الغوص في محتواه، نشغل ls -ld ~/chmod_demo/project.
يُظهر السطر الناتج الهيئة drwxr-x---، وهي دلالة قطعية على تمتع المالك بصلاحيات rwx، والمجموعة بـ r-x، وانعدام أي منفذ لبقية المستخدمين ---.

مطالعة صلاحيات المجلد الأب حصراً عبر ls -ld

نختم بفحص تغلغل التعديل داخل الأحشاء الداخلية للمسار باستدعاء ls -l ~/chmod_demo/project.
يتبين فوراً خضوع الملف البرمجي app.py والدليل الفرعي logs للأذونات -rwxr-x--- و drwxr-x--- تباعاً، ما يؤكد دقة وكفاءة المعامل -R في إنفاذ السياسات الأمنية تكرارياً وبشكل موحد.

التأكد من توريث الصلاحيات الجديدة لجميع الملفات والأدلة المتفرعة

قدم هذا الدليل استعراضاً معمارياً وعملياً للتحكم في أذونات الملفات عبر أداة chmod، مبيناً الخلفيات الرياضية للأرقام الثمانية والبدائل الرمزية الدقيقة مع أمثلة الحوسبة الميدانية. يُنصح دائماً بمراجعة وتطبيق مبدأ الحد الأدنى من الصلاحيات (Least Privilege) لضمان حماية بيئات لينكس وسيرفرات أوبونتو بكفاءة واحترافية.