تصاريح الملفات والمجلدات في لينكس
تعد من خصائص انظمه التشغيل التي توفر خاصية تعدد المستخدمين هي خاصية permission وهي التي تحدد صلاحيات الملفات والمجلدات.
و permission تعني نفس معناها الحرفي وهو التصاريح المسموح بها الممنوحة لكل أنواع المستخدمين الموجودون في النظم فكل ملف أو مجلد ينشا في النظام يتحدد له التصريح الذي يحدد له صلاحيات استخدامه من قبل المستخدمين علي النظام أو المجموعة التي ينتمي إليها أو بقيه المستخدمين ويمكن عرض هذه التصاريح باستخدام الأمر
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)
ماهو الاختلاف بين التصاريح الخاصة بالملفات والمجلدات ؟
يختلف rwx التصاريح بالقراءة أو الكتابة أو التنفيذ بين الملف و المجلد ذلك لان طبيعة المجلد مختلفة عن طبيعة الملف فينما تستطيع الكتابة داخل الملف إلا انك لا تستطيع الكتابة داخل المجلد لذلك فإن التصريح بالكتابة للملف مختلف عن المجلد
المجلد dir- التصريح read أو القراءة تعني عرض محتوي المجلد أو عمل ls
- تصريح write أو الكتابة وتعني إنشاء أو حذف ملفات أو مجلدات داخل المجلد
- التصريح execute فيعني الدخول داخل المجلد cd أو عمل ls -l
- التصريح read أو القراءة تعني فتح الملف وعرض ما بداخلة
- تصريح write أو الكتابة وتعني الكتابة بداخل الملف وتعديل محتواه أو حذفة
- التصريح execute فيعني أن الملف ملف تنفيذي
وهي الخانة التي تتواجد في الأول وتحدد نوع الملف ويتم عرضها بالأمر 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 نستخدم الأمر ls -l سوف يظهر التالي شرح ناتج الأمر
لتعديل التصاريح permission نستخدم الأمر التالي chmod وصيغته كالتالي :
chmod <mode> file
و mode المقصود بيه هو permission وللتعديل علي permission فسيتم استخدام الحروف الدالة عليه وهي rwx
نريد التعديل علي الملف file وإعطائه تصاريح wx للمجموعة فيصبح الأمر
chmod g+wx file
ls -l
file ثم استخدام ls -l لعرض التصاريح بعد التعديل
لحذف التصاريح wx للمجموعة
chmod g-wx file
ls -l
ثم استخدام ls -l لعرض التصاريح بعد التعديل
تفسير الرموز المستخدمة مع الأمر
- ( + ) تعني إضافة تصريح
- ( – ) تعني حذف تصريح
- ( = ) تعني إعطاء التصريح الحالي وحذف القديم (setting permissions)
- ( a ) وتعني إعطاء تصاريح للكل (alluser و group و others)
مثال إعطاء تصريح user , group –>rx وإعطاء w other فقط للملف file
chmod ug=rx,o=w file
ls -l
فنجد انه باستخدام ( = ) قام بإعطاء التصاريح الجديدة دون النظر إلي القديمة وقمنا بإعطاء تصاريح user و group و others في خطوه واحده باستخدام علامة الفاصلة ( , )
مثال إعطاء للثلاث user group others –> rwx
chmod a=rwx file
chmod =rwx file سوف يتم تطبيقها علي مالك الملف فقط
2- numeric permissions
وتعني استبدال الحروف السابقة rwx بأرقام ولكن قبل التكلم عن ذلك سوف نستعرض الأمر stat فهذا الأمر يعرض التصاريح في شكل الحروف والرموز.
stat file
فسوف نجد انه قد تم عرض permission بجانب كلمه access
ماذا تعني هذه الأرقام 7 7 7 ؟هذه الأرقام هي الأرقام الخاصة permission ولقد تم الإشارة إلي user برقم 7 والي group برقم 7 والي others برقم 7 وهم الثلاث أنواع من المستخدمين كما في الطريقة السابقة symbolic permission ولكن تم إبدال هذه القيم (rwxrwx) إلي أرقام.
شرح التعامل مع الارقام- read ( r ) برقم 4
- write ( w ) برقم 2
- execute ( x ) برقم 1
إذا المجوع الخاص بهم 4+2+1=7 وقيس علي ذلك لثلاثة user,group,others
سوف نقوم باستخدام نفس الأمر السابق وهو chmod لتعديل التصاريح
chmod <mode> file
mode المقصود بيه هو permission وللتعديل علي التصريح permission فسيتم استخدام الأرقام الدالة عليه وهي 4 2 1
مثال أريد إعطاء تصريح permission للمجدل dir1
user=rwx group=r others=x
chmod 741 dir1
ls -l
ننظر إلي access سوف نجد التصريح أصبح 741
مثال أخر أريد إعطاء تصريح
user=rwx group=r others=r للمجلد dir1
chmod 744 dir1
stat dir1/
ملحوظة : في حاله لو أردت إعطاء تصريح لمجلد وما تحته من ملفات سوف يتم إضافة -R بجوار الأمر
مثال أريد إعطاء تصريح
user=rwx group=rx others=rx للمجلد dir1 وما بداخله
chmod -R 755 dir1
ls -l dir1/
الكلمات الأخيرة
تهانينا! لديك أخيرًا تصاريح الملفات والمجلدات في لينكس . أخبرنا في التعليقات كيف تمكنت من القيام بذلك ولا تنس مشاركتها مع زملائك.
المراجع
- موقع en.wikipedia.org
- موقع errorhat.com