تحدد صلاحيات الملفات في لينكس وmacOS من يستطيع قراءة كل ملف وكتابته وتنفيذه. وتُعرض بطريقتين: أرقام مثل 755 في أوامر chmod، وأحرف مثل rwxr-xr-x في مخرجات ls -l. تحوّل هذه الحاسبة بين الصيغتين، وتشرح ما يستطيع كل صنف من المستخدمين فعله، وتكتب لك أمر chmod.
كيف تعمل
تأتي الصلاحيات في ثلاث مجموعات: مالك الملف، ومجموعته، وكل من عداهم. ولكل مجموعة ثلاث بتات: القراءة (r = 4) والكتابة (w = 2) والتنفيذ (x = 1). اجمع البتات التي تريدها لكل مجموعة لتحصل على رقم واحد من 0 إلى 7.
فـ 7 = 4 + 2 + 1 = rwx، و5 = 4 + 1 = r-x، و4 = r--. وتشكّل الأرقام الثلاثة معًا، المالك ثم المجموعة ثم الآخرون، الصيغة: فـ 754 تعني rwxr-xr--.
في المجلد، يعني التنفيذ إذن الدخول إليه والوصول إلى الملفات داخله، وتعني القراءة إذن عرض محتوياته. وعادةً يحتاج المجلد إلى x إضافة إلى r ليكون مفيدًا.
يحدد رقم رابع اختياري في المقدمة بتات خاصة: 4 هو setuid و2 هو setgid و1 هو sticky bit. وتظهر على هيئة s أو t بدلًا من x. وعادةً يستخدم المجلد /tmp البت اللاصق (sticky bit) حتى لا يحذف المستخدمون ملفات بعضهم.
مثال محلول
لسكربت نشر تريد تشغيله بنفسك، وأن يقرأه فريقك، وأن يُحجب عن الجميع، استخدم 754. يحصل المالك على 7 (قراءة وكتابة وتنفيذ)، وتحصل المجموعة على 5 (قراءة وتنفيذ)، ويحصل الآخرون على 4 (قراءة فقط). رمزيًا هي rwxr-xr--، والأمر هو chmod 754 deploy.sh.
أمثلة إضافية
يمنح chmod 600 المالك القراءة والكتابة ولا يمنح أحدًا غيره شيئًا (rw-------)، وهو الإعداد المعتاد للمفاتيح الخاصة وملفات الأسرار.
أخطاء شائعة
- استخدام 777 لإصلاح خطأ في الصلاحيات.
- نسيان أن المجلدات تحتاج إذن التنفيذ للدخول إليها.
- ضبط صلاحيات الملفات دون المجلد الذي يحويها.
- تجاهل بتات setuid وsetgid في الصيغ ذات الأرقام الأربعة.
أسئلة يطرحها الناس
ماذا يعني chmod 755؟
يستطيع المالك القراءة والكتابة والتنفيذ؛ وتستطيع المجموعة وكل من عداها القراءة والتنفيذ. وهو الإعداد المعتاد للسكربتات والبرامج ومجلدات الويب: rwxr-xr-x.
ماذا يعني chmod 644؟
يستطيع المالك القراءة والكتابة؛ ولا يستطيع غيره سوى القراءة: rw-r--r--. وهو الإعداد الافتراضي الشائع للملفات العادية مثل صفحات الويب وملفات الإعدادات التي لا تحتاج إلى تشغيل.
لماذا يُعد chmod 777 خطيرًا؟
لأنه يتيح لكل مستخدم على النظام قراءة الملف وتغييره وتشغيله. وعلى الخادم قد يمكّن ذلك عملية مخترَقة أو مستخدمًا آخر من تعديل شيفرتك. امنح ما يلزم فقط، مثل 755 أو 644.
ما الصلاحيات التي ينبغي أن يملكها مفتاح SSH الخاص؟
600 (rw-------): قابل للقراءة والكتابة من المالك وحده. ترفض عملاء SSH استخدام مفتاح خاص يستطيع مستخدمون آخرون قراءته.
كيف أغيّر صلاحيات مجلد وكل ما بداخله؟
أضف -R: chmod -R 755 folder. وكن حذرًا، لأنه يعطي الملفات والمجلدات الصيغة نفسها. والنهج الشائع هو 755 للمجلدات و644 للملفات، تُضبط كلٌّ على حدة بالأمر find.