شروحات عامة

تصاريح الملفات والمجلدات في لينكس

تصاريح الملفات والمجلدات في لينكس

تعد من خصائص انظمه التشغيل التي توفر خاصية تعدد المستخدمين هي خاصية permission وهي التي تحدد صلاحيات الملفات والمجلدات.

و permission تعني نفس معناها الحرفي وهو التصاريح المسموح بها الممنوحة لكل أنواع المستخدمين الموجودون في النظم فكل ملف أو مجلد ينشا في النظام يتحدد له التصريح الذي يحدد له صلاحيات استخدامه من قبل المستخدمين علي النظام أو المجموعة التي ينتمي إليها أو بقيه المستخدمين ويمكن عرض هذه التصاريح باستخدام الأمر

ls -l
تصاريح الملفات والمجلدات في لينكس
ls -l

فنجد الناتج من الأمر عبارة عن مجلد باللون الأزرق وملف باللون الأبيض ولكن ما يهمنا في هذا المثال هو الحروف المكتوبة فهي التي تبين التصاريح الممنوحة لكل من المجلد أو الملف

  • فنجد في بداية سطر المجلد dir1 ذو اللون الأزرق حرف d والذي يشير إلي انه directory وحرف d ليس جزء من التصاريح permission ثم يتبعه الحروف rwx ثم يتكرر الحرفان r-x فقط دون الحرف w وقد تم وضع علامة <-> بدل منه ثم يعاد تكرار الحرفان  r-x للمرة الثالثة.
  • أما السطر الثاني file فيحتوي علي أحرف اقل من السطر الأول فنراه يبدأ بعلامة <-> والتي تشير إلي انه ملف وليس  مجلد ثم بعد ذلك نجد الحروف اقل من السابق -rw ثم – -r ثم – -r

هذه باختصار شكل  permission أو التصاريح

تصاريح الملفات والمجلدات في لينكس

فهم التصاريح permission  :

لكي يتم فهم التصاريح permission  بطريقه بسيطة سوف يتم تقسيمها إلي قسمين

1- symbolic permission

وهي التي تعتمد علي الرموز السابقة (rwx) فمالك الملف و root هما الوحيدين التي لهم القدرة علي تغير تصاريح الملف أو المجلد

التعرف علي الرموز (rwx)

  • r وتعني read إمكانية قراءة الملف فقط
  • w تعني write وتعني إمكانية الكتابة داخل الملف
  • x وتعني execute أي أن الملف ملف تنفيذي أو انه برنامج

والرموز السابقة يتم تكرارها إلي ثلاث مرات rwx rwx rwx والسبب في تكرارها أن النظام يصنف المستخدمين إلي ثلاث أنواع

  • مالك الملف أو المجلد user أو owner ويرمز له بالرمز (u)
  • المجموعة groups وهي المستخدمين المشتركين معه في نفس المجموعة ويرمز لها بالرمز (g)
  • باقي المستخدمين others وهم باقي مستخدمين النظام ويرمز لهم بالرمز (o)
تصاريح الملفات والمجلدات في لينكس
permission
تصاريح الملفات والمجلدات في لينكس
permission
تصاريح الملفات والمجلدات في لينكس

ماهو الاختلاف بين التصاريح الخاصة بالملفات والمجلدات ؟

يختلف rwx التصاريح بالقراءة أو الكتابة أو التنفيذ بين الملف و المجلد ذلك لان طبيعة المجلد مختلفة عن طبيعة الملف فينما تستطيع الكتابة داخل الملف إلا انك لا تستطيع الكتابة داخل المجلد لذلك فإن التصريح بالكتابة للملف مختلف عن المجلد

المجلد dir
  • التصريح read أو القراءة تعني عرض محتوي المجلد أو عمل ls
  • تصريح write أو الكتابة وتعني إنشاء أو حذف ملفات أو مجلدات داخل المجلد
  • التصريح execute فيعني الدخول داخل المجلد cd أو عمل ls -l
ملحوظة : لعرض محتوي المجلد في execute لابد من وجود read عند حذفه فإنه لن يعرض المحتوي وأيضا عند حذف execute ووجود read فانه سوف يعرض المحتوي ولكن ليس بالتفصيل
الملفات file
  • التصريح read أو القراءة تعني فتح الملف وعرض ما بداخلة
  • تصريح write أو الكتابة وتعني الكتابة بداخل الملف وتعديل محتواه أو حذفة
  • التصريح execute فيعني أن الملف ملف تنفيذي
معرفة file type : نوع الملفات

وهي الخانة التي تتواجد في الأول وتحدد نوع الملف ويتم عرضها بالأمر ls -l

  • ( – ) تعني انه ملف file
  • ( d ) تعني انه مجلد dir
  • character device ( c ) هي التي تقوم بالعمل character by character أو حرف بحرف مثل keyboard
  • block device ( b ) وتعني انه block مثل hard disk
  • pipe device ( p ) أي يأخذ data ويضعها في منطقه أخري مثل network
  • link file ( l ) مثل short cut في windows
تصاريح الملفات والمجلدات في لينكس
نوع المفات في لينكس
تعديل permission :

لعرض permission نستخدم الأمر ls -l سوف يظهر التالي شرح ناتج الأمر

تصاريح الملفات والمجلدات في لينكس
ls -l شرح ناتج الأمر
ls -l شرح ناتج الأمر

لتعديل التصاريح permission نستخدم الأمر التالي chmod وصيغته كالتالي :

chmod <mode> file

و mode المقصود بيه هو permission وللتعديل علي permission فسيتم استخدام الحروف الدالة عليه وهي rwx

u=rwx g=rwx o=rwx

نريد التعديل علي الملف file وإعطائه تصاريح wx للمجموعة فيصبح الأمر

chmod g+wx file
ls -l

file ثم استخدام ls -l لعرض التصاريح بعد التعديل

chmod g+wx file

لحذف التصاريح wx للمجموعة

chmod g-wx file
ls -l

ثم استخدام ls -l لعرض التصاريح بعد التعديل

chmod g-wx file
تفسير الرموز المستخدمة مع الأمر
  • ( + ) تعني إضافة تصريح
  • ( – ) تعني حذف تصريح
  • ( = ) تعني إعطاء التصريح الحالي وحذف القديم (setting permissions)
  • ( a ) وتعني إعطاء تصاريح للكل (alluser و group و others)

مثال إعطاء تصريح user , group –>rx وإعطاء w other فقط للملف file

chmod ug=rx,o=w file
ls -l
chmod ug=rx,o=w file

فنجد انه باستخدام ( = ) قام بإعطاء التصاريح الجديدة دون النظر إلي القديمة وقمنا بإعطاء تصاريح user و group و others في خطوه واحده باستخدام علامة الفاصلة ( , )

مثال إعطاء للثلاث user group others –> rwx

chmod a=rwx file
chmod =rwx file  سوف يتم تطبيقها علي مالك الملف فقط
chmod a=rwx file

2- numeric permissions

وتعني استبدال الحروف السابقة rwx بأرقام ولكن قبل التكلم عن ذلك سوف نستعرض الأمر stat فهذا الأمر يعرض التصاريح في شكل الحروف والرموز.

stat file
stat file

فسوف نجد انه قد تم عرض permission بجانب كلمه access

ماذا تعني هذه الأرقام 7 7 7 ؟

هذه الأرقام هي الأرقام الخاصة permission ولقد تم الإشارة إلي user برقم 7 والي group برقم 7 والي others برقم 7 وهم الثلاث أنواع من المستخدمين كما في الطريقة السابقة symbolic permission ولكن تم إبدال هذه القيم (rwxrwx) إلي أرقام.

ماذا تعني هذه الأرقام 7 7 7 ؟
شرح التعامل مع الارقام
  • read ( r ) برقم 4
  • write ( w ) برقم 2
  • execute ( x ) برقم 1

إذا المجوع الخاص بهم 4+2+1=7 وقيس علي ذلك لثلاثة user,group,others

1+2+4=7
ملحوظة : هذه الأرقام السابقة لا يمكن أن يحدث تعارض بينها بحيث إذ جمع رقمين من الثلاثة لا يمكن ان ينتج عنه قيمه الرقم الثالث
شرح تعديل permission

سوف نقوم باستخدام نفس الأمر السابق وهو chmod لتعديل التصاريح

chmod <mode> file

mode المقصود بيه هو permission وللتعديل علي التصريح permission فسيتم استخدام الأرقام الدالة عليه وهي 4 2 1

مثال أريد إعطاء تصريح permission للمجدل dir1

user=rwx group=r others=x

chmod 741 dir1
ls -l
chmod 741 dir1
stat dir1

ننظر إلي access سوف نجد التصريح أصبح 741

مثال أخر أريد إعطاء تصريح

user=rwx group=r others=r   للمجلد dir1

chmod 744 dir1
stat dir1/
chmod 744 dir1
ملحوظة : في هذه الطريقة يجب التعامل مع الثلاثة(user,group,others) بمعني انه يجب إعطاء التصاريح لهم سواء هناك تغير في احدهم أو الجميع أما في طريقة symbolic permission فيتم التعامل مع المراد تغير permission فقط

ملحوظة : في حاله لو أردت إعطاء تصريح لمجلد وما تحته من ملفات سوف يتم إضافة -R بجوار الأمر

مثال أريد إعطاء تصريح

user=rwx group=rx others=rx للمجلد dir1 وما بداخله

chmod -R 755 dir1
ls -l dir1/
chmod -R 755 dir1

الكلمات الأخيرة

تهانينا! لديك أخيرًا تصاريح الملفات والمجلدات في لينكس . أخبرنا في التعليقات كيف تمكنت من القيام بذلك ولا تنس مشاركتها مع زملائك.

المراجع

علي طه

مؤسس ارور هات. خبرة في المحاكاة الافتراضية ، الحوسبة السحابية ، أنظمة Linux / UNIX ، البرمجة ، أنظمة التخزين ، HA ، Server Clustering وغيرها .

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى