دليلك الشامل لإدارة الصلاحيات في لينكس: chmod و chown من الصفر إلى الاحتراف

📑 جدول المحتويات
نظام الصلاحيات في لينكس هو حجر الأساس في أمن النظام. فهمه جيداً يعني أنك تستطيع حماية ملفاتك، وإدارة المستخدمين، وتفادي ثغرات أمنية خطيرة. في هذا الدليل المفصّل سنشرح كل ما تحتاج معرفته عن الصلاحيات من الصفر.
لماذا الصلاحيات مهمة؟
لينكس نظام متعدد المستخدمين (multi-user) منذ تصميمه الأول. هذا يعني أن عدة أشخاص قد يستخدمون نفس الجهاز، ولكل منهم ملفاته الخاصة. نظام الصلاحيات هو ما يمنع المستخدم العادي من حذف ملفات النظام، أو من قراءة ملفات مستخدم آخر دون إذن.
قاعدة ذهبية: في لينكس، كل شيء عبارة عن ملف — حتى الأجهزة والمجلدات. وبالتالي فإن نظام الصلاحيات يطبّق على كل شيء.
قراءة الصلاحيات: الأمر ls -l
عندما تكتب الأمر التالي في الطرفية:
ls -l
ستحصل على نتيجة مشابهة لهذه:
-rw-r--r-- 1 abdellah users 4096 Jun 10 09:30 file.txt drwxr-xr-x 2 abdellah users 4096 Jun 10 09:31 myfolder
دعنا نفكّك أول عمود -rw-r--r-- حرفاً حرفاً:
- الحرف الأول: نوع الملف. الشرطة
-تعني ملفاً عادياً، وdتعني مجلداً (directory)، وlتعني رابطاً رمزياً (symbolic link). - الأحرف 2-4 (rw-): صلاحيات المالك (owner).
- الأحرف 5-7 (r--): صلاحيات المجموعة (group).
- الأحرف 8-10 (r--): صلاحيات الآخرين (others).
معاني الرموز الثلاثة
| الرمز | المعنى للملف | المعنى للمجلد |
|---|---|---|
| r (read) | قراءة محتوى الملف | عرض قائمة الملفات داخل المجلد |
| w (write) | تعديل الملف | إنشاء وحذف ملفات داخل المجلد |
| x (execute) | تنفيذ الملف كبرنامج | الدخول إلى المجلد (cd) |
تغيير الصلاحيات بالأمر chmod
الأمر chmod (اختصار change mode) يستخدم لتغيير الصلاحيات. هناك طريقتان لاستخدامه:
الطريقة الأولى: النظام الرمزي
chmod u+x script.sh # أضف صلاحية التنفيذ للمالك chmod g-w file.txt # احذف صلاحية الكتابة عن المجموعة chmod o+r file.txt # أضف صلاحية القراءة للآخرين chmod a+x program # أضف التنفيذ للجميع (all)
حيث u = المالك، g = المجموعة، o = الآخرون، a = الجميع.
الطريقة الثانية: النظام الرقمي (الثُماني)
هذه الطريقة الأكثر استخداماً بين المحترفين. كل صلاحية لها قيمة رقمية:
- r = 4
- w = 2
- x = 1
نجمع القيم لكل فئة. مثلاً rwx = 4+2+1 = 7، و rw- = 4+2 = 6، و r-x = 4+1 = 5.
chmod 755 script.sh # المالك: rwx (7) | المجموعة: r-x (5) | الآخرون: r-x (5) chmod 644 file.txt # المالك: rw- (6) | المجموعة: r-- (4) | الآخرون: r-- (4) chmod 600 id_rsa # المالك: rw- (6) | المجموعة: --- (0) | الآخرون: --- (0) ← ضروري لمفاتيح SSH
تغيير المالك بالأمر chown
الأمر chown (change owner) يغيّر مالك الملف والمجموعة:
sudo chown abdellah file.txt # تغيير المالك فقط sudo chown abdellah:developers file.txt # تغيير المالك والمجموعة sudo chown -R www-data:www-data /var/www # بشكل متكرر لكل المجلد
السطر الأخير من أكثر الأوامر استخداماً عند إعداد سيرفرات الويب، حيث يعمل خادم Apache أو Nginx عادةً بمستخدم www-data ويحتاج ملكية الملفات.
⚠️ تحذير: الخيار -R (recursive) قوي جداً. تأكد دائماً من المسار قبل تنفيذه، فقد يغيّر صلاحيات آلاف الملفات دفعة واحدة.
صلاحيات خاصة: SUID و SGID و Sticky Bit
بالإضافة للصلاحيات الأساسية، هناك ثلاث صلاحيات خاصة متقدمة:
- SUID (4): يجعل الملف يُنفّذ بصلاحيات مالكه وليس بصلاحيات من شغّله. مثال شهير: أمر
passwd. - SGID (2): مشابه لكن للمجموعة. مفيد جداً للمجلدات المشتركة.
- Sticky Bit (1): يمنع المستخدمين من حذف ملفات بعضهم في مجلد مشترك. مثال: مجلد
/tmp.
chmod 4755 program # تفعيل SUID chmod 2755 shared/ # تفعيل SGID chmod 1777 /tmp # تفعيل Sticky Bit
💡 من منظور الاختراق الأخلاقي: ملفات SUID المملوكة لـ root أول ما يبحث عنه مختبِر الاختراق لتصعيد الصلاحيات. افحص نظامك بـ: find / -perm -4000 -type f 2>/dev/null
أخطاء شائعة يجب تجنبها
- chmod 777 على كل شيء: خطأ أمني فادح! يعطي الجميع صلاحية كاملة. لا تستخدمه إلا للضرورة القصوى وفي بيئة معزولة.
- نسيان صلاحية x للمجلدات: دون x لا يمكنك الدخول للمجلد حتى لو كان لديك r.
- تغيير ملكية ملفات النظام: قد يعطّل خدمات مهمة.
خلاصة
إتقان الصلاحيات في لينكس مهارة أساسية لكل مستخدم جاد، سواء كنت مطوراً أو مسؤول نظام (sysadmin) أو مهتماً بالأمن السيبراني. تدرّب على الأوامر في بيئة آمنة، واحفظ الأرقام الثُمانية الشائعة (644 للملفات، 755 للمجلدات والسكربتات، 600 للملفات السرية) وستصبح إدارة الصلاحيات أمراً بديهياً.
💬 التعليقات (0)
كن أول من يضيف تعليقاً!
أضف تعليقاً