تخطَّ إلى المحتوى

🐧 شرح Linux وسطر الأوامر

الصلاحيات: chmod و chown

الدرس 6 من 27· ⏱ 4 دقائق قراءة· 🗓 آخر تحديث: ١٨ أكتوبر ٢٠٢٦

لماذا الصلاحيات؟

Linux نظام متعدّد المستخدمين منذ البداية: على نفس الخادم يعمل مستخدمك، وخادم الويب، وقاعدة البيانات، كلٌّ بحسابه. الصلاحيات تحدّد من يقرأ ويعدّل ويشغّل كل ملف. خطأ فيها إمّا يكسر برنامجك ("Permission denied") أو يفتح ثغرة (ملف أسرار يقرؤه الجميع).

قراءة الصلاحيات

ls -l
# -rwxr-xr-- 1 baraa dev 1234 Oct 18 10:00 deploy.sh

أول عمود عشرة رموز:

-   rwx   r-x   r--
│   │     │     └── الآخرون (others): قراءة فقط
│   │     └──────── المجموعة (group): قراءة وتنفيذ
│   └────────────── المالك (user): قراءة وكتابة وتنفيذ
└────────────────── النوع: - ملف، d مجلّد، l رابط رمزي

ثم المالك (baraa) والمجموعة (dev). وحين تحاول الوصول لملف، يفحص النظام: هل أنت المالك؟ إذن تُطبَّق صلاحيات المالك. وإلا هل أنت في المجموعة؟ إذن صلاحيات المجموعة. وإلا صلاحيات الآخرين.

r و w و x: المعنى يختلف للمجلّدات

للملفللمجلّد
r (4)قراءة المحتوىعرض أسماء ما بداخله (ls)
w (2)تعديل المحتوىإنشاء وحذف وإعادة تسمية ملفات بداخله
x (1)تشغيله كبرنامجالدخول إليه (cd) والوصول لما بداخله

نقطتان تفاجئان الجميع:

  • حذف ملف تحدّده صلاحية المجلّد لا الملف. تستطيع حذف ملف للقراءة فقط إذا كان لك w على المجلّد الذي يحتويه.
  • مجلّد بلا x لا يُستخدم، حتى مع r. لهذا المجلّدات تأخذ 755 عادة لا 644.

chmod بالأرقام

كل فئة رقم واحد هو مجموع صلاحياتها: r=4 وw=2 وx=1:

chmod 755 deploy.sh    # rwx r-x r-x : المالك كل شيء، والبقية قراءة وتشغيل
chmod 644 notes.txt    # rw- r-- r-- : الملفات العادية
chmod 600 .env         # rw- --- --- : أسرار يقرؤها المالك فقط
chmod 700 private/     # rwx --- --- : مجلّد خاص
الرقمالصلاحياتالاستخدام المعتاد
755rwxr-xr-xالبرامج والسكربتات والمجلّدات
644rw-r--r--الملفات العادية
600rw-------مفاتيح SSH، ملفات .env
700rwx------مجلّدات خاصة مثل ~/.ssh

chmod بالرموز

حين تريد تغيير صلاحية واحدة دون لمس الباقي:

chmod +x script.sh     # أضف التنفيذ للجميع
chmod u+x script.sh    # للمالك فقط (u=user, g=group, o=others, a=all)
chmod go-w file.txt    # اسحب الكتابة من المجموعة والآخرين
chmod -R g+rX shared/  # المجموعة تقرأ كل شيء، و X الكبيرة: تنفيذ للمجلّدات (ولما هو قابل للتشغيل أصلًا)

X الكبيرة حيلة مفيدة مع -R: تضيف x للمجلّدات (لتُفتح) وللملفات التي لها x أصلًا عند أحد، دون جعل الملفات العادية قابلة للتشغيل.

chown: تغيير المالك

sudo chown www-data site/index.html       # المالك
sudo chown www-data:www-data -R site/     # المالك والمجموعة لكل المحتوى

تغيير المالك يحتاج sudo عادة، لأن مستخدمًا عاديًا لا يستطيع "إهداء" ملفاته لغيره. مثال واقعي: خادم nginx يعمل كمستخدم www-data، فإذا كانت ملفات الموقع ملكك بصلاحية 600 سيظهر للزائر خطأ 403.

umask: الصلاحيات الافتراضية

umask          # غالبًا 0022
touch new.txt && ls -l new.txt   # -rw-r--r--

الملفات الجديدة تبدأ من 666 والمجلّدات من 777، ثم يُطرح منها umask. مع 022 تصبح الملفات 644 والمجلّدات 755. لهذا لا يكون أي ملف جديد قابلًا للتشغيل تلقائيًا: تضيف x بنفسك.

sudo

sudo ينفّذ أمرًا واحدًا بصلاحيات المدير (root). التفاصيل في درس المستخدمين والمجموعات.

أخطاء شائعة

  • chmod 777 لحلّ "Permission denied": يعطي أي مستخدم على الجهاز حق تعديل الملف أو استبداله. اكتشف من يحتاج الوصول وأعطه إياه فقط (chown أو مجموعة).
  • chmod -R 644 على مجلّد: المجلّدات تفقد x فلا يمكن دخولها. استخدم chmod -R u=rwX,go=rX.
  • مفتاح SSH بصلاحيات واسعة: ssh يرفض استخدامه ("UNPROTECTED PRIVATE KEY FILE"). اجعله 600.
  • نسيان أن الحذف صلاحية مجلّد: حماية ملف بـ 444 لا تمنع حذفه.
  • sudo لكل أمر: ملفات تنشئها بـ sudo تصبح ملك root، فتظهر لك "Permission denied" عليها لاحقًا.

🎯 التالي: المستخدمون والمجموعات.

شرح الصلاحيات: chmod و chown — Linux وسطر الأوامر بالعربي
الصلاحيات: chmod و chown — Linux وسطر الأوامر بالعربي · The Code Fix

📚 لمزيد من التعمّق في Linux وسطر الأوامر، راجِع صفحات دليل Linux الرسمية.

هل كان هذا الدرس مفيدًا؟