شرح صلاحيات الملفات في لينكس: كيف تستخدم chmod وتفهم -rw-r–r– خطوة بخطوة

目次

١. المقدمة

ما هي “صلاحيات الوصول” في لينكس؟

في أنظمة Linux وUnix، تعتبر إدارة “صلاحيات الوصول” (Permissions) للملفات والمجلدات من الأمور الأساسية لأمان النظام واستقراره التشغيلي.

غالباً ما يرى المستخدمون رموزًا مثل -rw-r--r-- عند عرض قائمة الملفات في الطرفية، وقد يتساءلون: “ماذا تعني هذه الرموز؟”

العلاقة بين chmod و -rw-r–r–

تُظهر هذه الرموز صلاحيات الوصول للملفات، ويتم تعيينها أو تعديلها باستخدام أمر chmod. عند استخدامك لـ chmod وتعيين صلاحيات معينة لملف، سترى رموزًا مثل -rw-r--r-- عند عرض التفاصيل.

هدف المقال والجمهور المستهدف

في هذا المقال، سنوضح معنى -rw-r--r-- وكيفية تعيين وتعديل الصلاحيات باستخدام chmod بشكل مبسط للمبتدئين، مع التنويه لنقاط الأمان وأمثلة عملية واقعية.

نستهدف في هذا الدليل المستخدمين الجدد للينكس وأيضاً من لديهم خبرة متوسطة في التعامل مع الطرفية، بهدف بناء معرفة عملية يمكن تطبيقها في بيئة العمل.

٢. ما هو chmod؟ 【الفهم الأساسي】

دور أمر chmod

chmod (تُنطق: تشمود أو “تغيير الوضع”) هي اختصار لـ change mode، وتُستخدم في أنظمة Linux وUnix لتغيير صلاحيات الوصول للملفات والمجلدات.

يمكنك من خلال هذا الأمر التحكم الكامل في من يمكنه قراءة أو كتابة أو تنفيذ ملف أو مجلد معيّن.

ضبط الصلاحيات بشكل صحيح لا يضمن فقط الأمان، بل يمنع أيضًا المشاكل المتعلقة بمشاركة الملفات أو تشغيلها.

الصيغة الأساسية لأمر chmod

chmod [الخيارات] [تحديد الصلاحية] اسم_الملف

مثال عملي:

chmod 644 sample.txt

يقوم هذا الأمر بتغيير صلاحيات ملف sample.txt كما يلي:

-rw-r--r--  1 user group 1234 Apr 13 20:00 sample.txt
  • المالك (user): قراءة وكتابة (rw-)
  • المجموعة (group): قراءة فقط (r–)
  • الآخرون (others): قراءة فقط (r–)

طريقتان لتحديد الصلاحيات: رقمية ورمزية

يمكن تحديد صلاحيات الوصول في chmod بطريقتين:

  • الوضع الرقمي (Numberic Mode)
  • مثال: chmod 755 script.sh
  • تحديد صلاحية كل فئة مستخدم برقم.
  • الوضع الرمزي (Symbolic Mode)
  • مثال: chmod u=rw,g=r,o=r file.txt
  • تحديد الصلاحيات باستخدام الرموز: u (user)، g (group)، o (others)، r (read)، w (write)، x (execute).

كلتا الطريقتين تؤديان إلى نفس النتيجة، الوضع الرقمي أسرع لتعيين صلاحيات شائعة، والوضع الرمزي أكثر مرونة. اختر الأنسب حسب الحاجة.

تنبيه: الفرق بين chmod وchown

غالبًا ما يتم الخلط بين أمر chmod وأمر chown:

  • chmod: لتغيير صلاحيات (Permissions) الوصول.
  • chown: لتغيير “المالك” أو “المجموعة” الخاصة بملف أو مجلد.

من المهم معرفة الفرق واستخدام الأمر المناسب لكل غرض.

٣. فهم بنية -rw-r–r–

بنية رموز الصلاحيات

عند تنفيذ ls -l في لينكس، تظهر تفاصيل الملف هكذا:

-rw-r--r--  1 user group  1234 Apr 13  2025 sample.txt

أول قسم -rw-r--r-- يمثل صلاحيات الوصول (Permissions). فهم هذه الرموز ضروري لتحديد من يمكنه القيام بأي إجراء.

شرح أجزاء الرمز بالتفصيل

① أول رمز: نوع الملف

الرمزالمعنى
-ملف عادي
dمجلد (دليل)
lرابط رمزي
bجهاز كتلي
cجهاز حرفي

في مثال -rw-r--r--، الرمز الأول - يعني أنه ملف عادي.

② من الرمز الثاني للعاشر: صلاحيات الوصول (ثلاث مجموعات × ٣ أحرف)

  • المالك (user): rw- → يمكنه القراءة والكتابة، لا يمكنه التنفيذ.
  • المجموعة (group): r-- → قراءة فقط.
  • الآخرون (others): r-- → قراءة فقط.

هذا يعني أن فقط المالك يمكنه التعديل، بينما الآخرون يمكنهم القراءة فقط.

التوافق مع التمثيل العددي: معنى 644

في لينكس، يمكن تمثيل نفس الصلاحيات بـ أرقام ثمانية (Octal).

الصيغة -rw-r--r-- تعادل 644.

الفئةرمز الصلاحيةالرقمالمعنى
المالكrw-6قراءة + كتابة
المجموعةr--4قراءة فقط
الآخرونr--4قراءة فقط

احتساب الأرقام يكون هكذا:

  • القراءة (r) = 4
  • الكتابة (w) = 2
  • التنفيذ (x) = 1

لذلك rw- = 4 + 2 = 6، و r-- = 4، r-- = 4، المجموع 644.

لماذا تُستخدم هذه الصلاحية كثيرًا؟

صلاحية -rw-r--r-- (أي 644) تُستخدم غالبًا للملفات العامة وملفات المواقع (HTML, CSS) لأنها:

  • تسمح فقط للمالك بالتعديل ← تمنع التغيير غير المرغوب فيه
  • تسمح للآخرين بالقراءة فقط ← مثالية للنشر والمشاركة

إذا استُخدمت بشكل صحيح، يمكنك تحقيق التوازن بين الأمان وسهولة الاستخدام.

٤. كيفية تعيين -rw-r–r– باستخدام chmod【تطبيق عملي】

تغيير صلاحيات الوصول باستخدام أمر chmod

يمكنك تغيير صلاحيات الملفات والمجلدات بحرية باستخدام أمر chmod. إذا كنت تريد تعيين الصلاحية -rw-r--r--، فقط استخدم الرقم “644”.

طريقة التعيين باستخدام الوضع الرقمي

استخدم الصيغة التالية: chmod 644 اسم_الملف

chmod 644 document.txt

هذا الأمر يغير صلاحيات document.txt إلى:

-rw-r--r--  1 user group 1234 Apr 13 20:00 document.txt
  • المالك (user): قراءة وكتابة (rw-)
  • المجموعة (group): قراءة فقط (r–)
  • الآخرون (others): قراءة فقط (r–)

طريقة التعيين باستخدام الوضع الرمزي (Symbolic Mode)

إذا كنت تريد مزيدًا من التحكم، يمكنك استخدام الوضع الرمزي:

chmod u=rw,g=r,o=r document.txt

شرح الأمر:

  • u=rw → المالك لديه إذن القراءة والكتابة
  • g=r → المجموعة لديها إذن القراءة فقط
  • o=r → الآخرون لديهم إذن القراءة فقط

في النهاية، ستكون نفس صلاحيات الوضع الرقمي 644.

ملاحظات عند تعيين الصلاحيات على مجلدات

على عكس الملفات، إذا لم يكن للمجلد صلاحية التنفيذ (x)، فلن تستطيع الدخول إليه أو عرض محتوياته.

على سبيل المثال:

chmod 644 my_folder

في هذا الوضع، يمكن فقط قراءة أسماء الملفات داخل المجلد لكن لا يمكن فتحه فعليًا.

الإعداد الصحيح:

chmod 755 my_folder
  • المالك: قراءة، كتابة، تنفيذ
  • المجموعة والآخرون: قراءة وتنفيذ فقط

بهذا الشكل، يمكن للمستخدمين الآخرين تصفح محتويات المجلد.

تغيير الصلاحيات بشكل متكرر: خيار -R للتطبيق التكراري

إذا أردت تعيين صلاحيات على جميع الملفات والمجلدات الفرعية دفعة واحدة، استخدم خيار -R (تكراري):

chmod -R 644 my_folder

سيتم تطبيق صلاحية 644 على كل الملفات تحت my_folder. لكن يوجد ملاحظات مهمة لهذا الاستخدام!

٥. كيفية التحقق من الصلاحيات باستخدام أمر ls -l

كيفية التحقق من صلاحيات الملفات والمجلدات؟

أمر ls -l هو الطريقة الأساسية في لينكس لعرض تفاصيل الصلاحيات (permissions) واسم المالك والحجم وتاريخ التعديل الأخير وغيرها.

الاستخدام الأساسي

ls -l

يعرض الناتج مثلاً:

-rw-r--r--  1 naoya devs  2048 Apr 13 20:00 index.html

شرح عناصر هذا السطر:

العنصرالوصف
-rw-r--r--صلاحيات الوصول
1عدد الروابط الثابتة (غالباً 1)
naoyaالمالك (user)
devsالمجموعة (group)
2048حجم الملف (بايت)
Apr 13 20:00تاريخ آخر تعديل
index.htmlاسم الملف

كيفية قراءة عمود الصلاحيات

يرجى التركيز على -rw-r--r--، وهي تُقسم هكذا:

  • أول رمز: نوع الملف
  • -: ملف عادي
  • d: مجلد (دليل)
  • l: رابط رمزي
  • التسعة رموز التالية: صلاحيات الوصول (٣ مجموعات)
  • المالك: rw- (قراءة وكتابة)
  • المجموعة: r-- (قراءة فقط)
  • الآخرون: r-- (قراءة فقط)

أي أن الملف يمكن تعديله فقط من قبل المالك، بينما البقية يمكنهم قراءته فقط.

التحقق من ملف معين فقط

لتحديد صلاحيات ملف بعينه، استخدم اسمه:

ls -l index.html

هذا الأمر يوضح فقط صلاحيات الملف المطلوب في مجلد يضم ملفات عديدة.

التحقق من صلاحيات المجلدات أيضًا

يمكن التحقق من صلاحيات المجلد بواسطة ls -l، ولعرض بيانات المجلد فقط استخدم الخيار -d:

ls -ld my_folder

يعرض هذا صلاحيات المجلد نفسه بدون إظهار الملفات داخله.

إدارة الصلاحيات بأمان مع المراجعة الدورية

بعد ضبط الصلاحيات باستخدام chmod، يُنصح دائمًا بالتحقق من النتيجة بواسطة ls -l لتفادي المشكلات الأمنية.

أيضًا، يمكنك تصفية الملفات حسب الامتداد:

ls -l | grep '.sh'

يعرض فقط الملفات المنتهية بـ .sh (ملفات سكريبت شل).

٦. كيفية التحقق وتغيير الصلاحيات باستخدام أدوات GUI (للمبتدئين)

خيارات للمستخدمين الذين لا يفضلون الأوامر الطرفية

رغم أن إدارة لينكس تتم غالبًا عبر الطرفية، إلا أن بعض المبتدئين يفضلون الواجهات الرسومية (GUI) لتجنب الأخطاء.

لحسن الحظ، يمكنك مراجعة وتعديل الصلاحيات باستخدام أدوات رسومية.

إدارة الملفات في Ubuntu باستخدام Nautilus

معظم توزيعات لينكس مثل Ubuntu تأتي بمدير الملفات “Nautilus”، وهو مشابه لـ Windows Explorer.

كيفية التحقق:

  1. انقر يمينًا على الملف أو المجلد المطلوب
  2. اختر “الخصائص (Properties)”
  3. افتح تبويب “الصلاحيات (Permissions)”

يمكنك:

  • التحقق أو تغيير المالك والمجموعة (بحاجة لصلاحية إدارية)
  • تغيير أذونات القراءة/الكتابة/التنفيذ بسهولة
  • رؤية التغييرات فورًا

في الواجهات الرسومية، تُعرض الصلاحيات بعبارات بسيطة مثل “قراءة فقط” أو “قراءة وكتابة”، وهذا أسهل على المبتدئين.

WinSCP (لمستخدمي Windows للوصول عبر SFTP)

إذا كنت تتصل بسيرفر لينكس من ويندوز، يمكنك استخدام برنامج WinSCP لضبط الصلاحيات عبر واجهة رسومية.

الخطوات:

  1. سجّل الدخول إلى الخادم باستخدام WinSCP
  2. انقر يمينًا على الملف واختر “الخصائص”
  3. اضبط الأذونات بالقيم الرقمية (مثل 644) أو عن طريق مربعات الاختيار
  4. اضغط “موافق” لتطبيق التغييرات

المزايا:

  • رؤية الصلاحيات بنظامي الرموز والأرقام
  • تغيير الصلاحيات بشكل تكراري (Recursive) للمجلدات بسهولة

ملاحظة:

  • بعض الملفات تحتاج لصلاحية root أو sudo لتغييرها
WinSCP - Free SFTP and FTP client

WinSCP is a popular free file manager for Windows supporting…

FileZilla (عميل SFTP متعدد الأنظمة)

يمكنك أيضًا ضبط الصلاحيات باستخدام FileZilla على أنظمة Mac أو Linux.

الخطوات:

  1. اتصل بالسيرفر، ثم انقر يمينًا على الملف المطلوب
  2. اختر “صلاحيات الملف (File Permissions)”
  3. عيّن الأذونات بالأرقام أو مربعات التحديد، ثم اضغط “موافق”

مزايا واحتياطات استخدام أدوات GUI

المزايا:

  • أسهل للمبتدئين، يقلل الأخطاء
  • رؤية التعديلات مباشرة
  • لا حاجة لخبرة في الأوامر الطرفية

الاحتياطات:

  • قد لا تعمل بعض التغييرات حسب إعدادات الخادم أو البيئة
  • ينصح دائمًا بمراجعة الصلاحيات عبر ls -l للتأكد

FileZilla - The free FTP solution for both client and server…

٧. ملاحظات مهمة حول إعدادات chmod وحلول المشاكل الشائعة

هل لا يعمل الأمر بالشكل المتوقع؟ أسباب ذلك

أحيانًا بعد تغيير الصلاحيات باستخدام chmod، قد لا تعمل الملفات كما تتوقع. السبب غالبًا هو خطأ في إعدادات الصلاحيات أو فهم غير صحيح لها.
هنا سنستعرض أمثلة لمشاكل واقعية في العمل وكيفية حلها.

أسباب وحلول خطأ Permission denied

الوصف:

bash: ./script.sh: Permission denied

السبب:

  • الملف الذي تحاول تشغيله لا يملك صلاحية التنفيذ (x)

الحل:

chmod +x script.sh

أو باستخدام الوضع الرقمي:

chmod 755 script.sh

حتى إذا كان الملف قابلًا للقراءة والكتابة، بدون صلاحية التنفيذ لن تتمكن من تشغيله.

عدم القدرة على الدخول إلى مجلد بسبب غياب صلاحية التنفيذ

إذا قمت بتعيين chmod 644 لمجلد، لن تستطيع عرض محتوياته.

السبب:

  • في حالة المجلدات، صلاحية التنفيذ (x) ضرورية للدخول أو استعراض الملفات داخله.

مثال:

chmod 644 my_folder
ls my_folder

→ سيظهر خطأ عند محاولة الدخول.

الحل:

chmod 755 my_folder

المشاكل الناتجة عن التغيير التكراري (Recursive -R)

استخدام chmod -R قد يؤدي إلى تعيين نفس الصلاحيات على جميع الملفات والمجلدات، ما يسبب مشاكل غير متوقعة.

خطأ شائع:

chmod -R 644 /var/www/html

→ لن تستطيع الدخول إلى المجلدات لأن صلاحية التنفيذ أُلغيت!

الاستخدام الصحيح:

# الصلاحية 755 للمجلدات
find /var/www/html -type d -exec chmod 755 {} ;

# الصلاحية 644 للملفات
find /var/www/html -type f -exec chmod 644 {} ;

مشكلة المالك والمجموعة مع الصلاحيات

لا يكفي فقط استخدام chmod، بل يجب الانتباه لمن هو مالك الملف (user) أو المجموعة (group).
مثال: إذا كان مستخدم apache يحتاج لقراءة الملف، ولكن المالك شخص آخر والآخرون ليس لديهم صلاحية القراءة، لن يعمل الموقع.

الحل:

  • تغيير المالك: sudo chown www-data:www-data index.html
  • ضبط صلاحية المجموعة: chmod 640 index.html (إذا كانت المجموعة صحيحة)

تحذير: تعيين صلاحية 777 خطير جدًا!

يفترض بعض الأشخاص أن تعيين 777 سيحل كل المشاكل، لكنه خطير جدًا.

الأسباب:

  • أي شخص يمكنه قراءة، كتابة، أو تنفيذ الملف
  • تعرض الملفات لخطر التعديل أو الاستغلال من أطراف خارجية

القاعدة الأساسية:

  • الملفات: استخدم 644 أو 600
  • المجلدات: استخدم 755 أو 700
  • البرمجيات أو السكربتات: استخدم 755 عند الحاجة

٨. أمثلة واقعية وسيناريوهات استخدام chmod

كيف تُستخدم صلاحيات chmod في بيئة العمل؟

صلاحيات chmod و -rw-r--r-- تُستخدم بكثرة في إدارة السيرفرات وتطوير الويب.
فيما يلي ثلاث سيناريوهات عملية مشهورة:

١. إدارة ملفات HTML على خادم ويب

الموقف:
عند نشر ملفات HTML عبر Apache أو Nginx غالبًا ما تكون صلاحيتها -rw-r--r-- (أي 644).

chmod 644 index.html

لماذا 644؟

  • المدير (مالك الملف) يحتاج للكتابة ← صلاحية الكتابة (w)
  • خادم الويب (www-data مثلاً) يحتاج للقراءة فقط ← صلاحية القراءة (r)
  • لا حاجة للسماح للآخرين بالكتابة

هذا يحقق أمان الحد الأدنى مع النشر السليم للمحتوى.

٢. إضافة صلاحية التنفيذ لملفات السكربتات

الموقف:
أنشأت سكربت شل باسم backup.sh وعند التنفيذ ظهرت رسالة “Permission denied”.

chmod 755 backup.sh

ما معنى 755؟

  • المالك: قراءة، كتابة، تنفيذ (rwx)
  • المجموعة والآخرون: قراءة وتنفيذ فقط (rx)

الملف قابل للتنفيذ من الجميع، لكن يمكن تعديله فقط من قبل المالك.

٣. حماية ملفات سرية (مفاتيح API أو كلمات مرور)

الموقف:
لديك ملف secrets.txt وتريد أن تكون القراءة والكتابة متاحة فقط لك.

chmod 600 secrets.txt

شرح الإعداد:

  • المالك فقط يمكنه القراءة والكتابة (rw-)
  • المجموعة والآخرون: بلا صلاحيات (—)

هذا ضروري لحماية المعلومات الحساسة.

٤. مشاركة مجلد بأمان بين المطورين

الموقف:
أنشأت مجلد مشترك باسم shared_folder لعدة مطورين.

chmod 770 shared_folder

معنى الإعداد:

  • المالك والمجموعة: جميع الصلاحيات (rwx)
  • الآخرون: بلا صلاحيات (—)

اضبط المجموعة عبر chgrp للتحكم بمن يمكنه الوصول للمجلد.

٥. تجنب الأخطاء الشائعة في تعيين الصلاحيات

الموقف:
نفذت chmod -R 777 . بالخطأ، وكل الملفات أصبحت قابلة للتعديل للجميع.

طرق الوقاية:

  • استخدم دائمًا find لتعيين الصلاحيات حسب نوع الملف
  • تحقق من الصلاحيات باستخدام ls -l قبل التغيير
  • جرّب دائمًا في بيئة اختبار قبل التطبيق على النظام الحقيقي

٩. الأسئلة المتكررة (FAQ)

س1. ما الفرق بين chmod 644 و -rw-r--r--؟

ج: الفرق فقط في طريقة العرض، المعنى متطابق تمامًا.

  • chmod 644: أمر لتعيين الصلاحيات بالأرقام
  • -rw-r--r--: شكل الصلاحية كما تظهر بعد الأمر ls -l

كلاهما يعني: المالك يستطيع القراءة والكتابة، الآخرون فقط القراءة.

س2. ماذا يحدث إذا لم يكن للملف صلاحية تنفيذ؟

ج: إذا حاولت تنفيذ سكربت أو ملف ثنائي (مثل .sh أو .py) بدون صلاحية التنفيذ، ستظهر رسالة خطأ.

bash: ./script.sh: Permission denied

الحل:

chmod +x script.sh

س3. هل من المقبول تعيين 644 للمجلدات؟

ج: عادةً لا ينصح بذلك.
المجلدات تحتاج لصلاحية التنفيذ (x) ليستطيع المستخدمون الدخول إليها.

الإعداد الصحيح:

chmod 755 اسم_المجلد

س4. هل هناك ملاحظات عند استخدام chmod -R؟

ج: نعم، لأن الأمر سيطبق نفس الصلاحيات على الملفات والمجلدات، وهذا قد يسبب مشاكل في الدخول للمجلدات.
مثال:

chmod -R 644 my_project/

→ ستفقد المجلدات صلاحية الدخول إليها.

الحل الآمن:

find my_project/ -type d -exec chmod 755 {} ;
find my_project/ -type f -exec chmod 644 {} ;

س5. كيف أعرف سبب ظهور “Permission denied”؟

ج: تحقق مما يلي:

  • هل الملف يحتاج صلاحية تنفيذ ولا يملكها؟
  • هل تحاول الكتابة وأنت لست المالك؟
  • هل المجلد بلا صلاحية تنفيذ؟
  • هل ينقصك صلاحية sudo للتغيير؟

استخدم ls -l و whoami لمراجعة المستخدم الحالي وصلاحياته.

س6. أريد مشاركة ملف مع الآخرين بدون السماح بالكتابة. ماذا أفعل؟

ج: استخدم 644 أو 444.

chmod 644 share.txt
  • 644: الآخرون يمكنهم القراءة فقط
  • 444: الجميع قراءة فقط، حتى المالك

اختر بناءً على مستوى المشاركة المطلوب.

س7. أخطأت في تعيين الصلاحيات. كيف أعود للإعداد السابق؟

ج: إذا لم تكن سجلت الإعداد القديم، قارن مع ملف آخر لديه الصلاحية الصحيحة وأعد التعيين.

ls -l /path/to/ملف_صحيح

ثم طبق نفس الصلاحية عبر chmod. من الأفضل توثيق الإعدادات الأصلية دائمًا.

١٠. الخلاصة

أهمية فهم chmod والصلاحيات

تناولنا في هذا المقال شرحًا مفصلًا لأمر chmod المستخدم على نطاق واسع في لينكس/يونيكس، وكذلك دلالة رموز -rw-r--r--.
هذه ليست مجرد معرفة تقنية، بل أساسيات ضرورية لأمان النظام، وكفاءة التشغيل، وإدارة الملفات بشكل سليم.

تلخيص النقاط الأساسية

  • chmod لتغيير صلاحيات الملفات والمجلدات
  • -rw-r--r-- تعني: المالك يقرأ ويكتب، الآخرون يقرأون فقط
  • التمثيل الرقمي 644 والرمزي متكافئان
  • هناك طريقتان للتعيين: رقمية ورمزية
  • استخدم ls -l للتحقق من الصلاحيات الحالية
  • أدوات GUI (مثل Nautilus وWinSCP وFileZilla) متاحة للمبتدئين
  • انتبه للأخطاء مثل “Permission denied” عند تعيين الصلاحيات
  • اختيار الصلاحية المناسبة مبني على الأمان والغرض المطلوب

لا توجد صيغة صلاحية واحدة تناسب الجميع

الأهم هو أن كل ملف أو مجلد يحتاج لصلاحية تناسب استخدامه وحاجة الأمان، وليس هناك إعداد مثالي واحد للجميع.

نصائح أخيرة لمستخدمي صلاحيات الملفات

قد تبدو الأمور معقدة في البداية، لكن مع التعوّد على استخدام chmod وفهم الصلاحيات ستتمكن من تجنب المشاكل الأمنية والعمل بشكل احترافي.

تذكر دائمًا:
من يمكنه الوصول؟ لأي غرض؟ وما هو الحد الأدنى اللازم من الصلاحيات؟
الإجابة على هذه الأسئلة أساس الإدارة الذكية والآمنة للملفات في لينكس.

侍エンジニア塾