Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Linuxأذونات الملفات و المجلدات

  • مفهوم الأذونات في لينكس
  • كيفية معرفة أوذنات الملفات و المجلدات في لينكس
  • كيفية قراءة الأذونات في لينكس
  • كيف تعمل الأذونات في لينكس
  • طريقة تحديد الأذونات في لينكس

مفهوم الأذونات في لينكس

الأذونات ( Permissions ) هي الصلاحيات الموضوعة للملفات و المجلدات و التي من خلالها يمكن تحديد كيف يمكن لكل مستخدم في النظام أن يتعامل معها، هل يحق له قراءتها، التعديل عليها، أو تنفيذها.

المستخدم الذي ينشئ الملف أو المجلد هو من يستطيع تحديد الأذونات الخاصة بالتعامل معه.
مدير النظام له الحق بتعديل أذونات جميع الملفات و المجلدات الموجودة في النظام بما فيها ملفات و مجلدات المستخدمين الآخرين.

كيفية معرفة أوذنات الملفات و المجلدات في لينكس

عند عرض محتوى أي مجلد باستخدام الأمر ls -l فإنه سيتم إظهار جميع أسماء و معلومات المجلدات و الملفات الموجودة مع الصلاحيات الخاصة بها على النحو التالي.

Linux Terminal

$ ls -l

drwxr-xr-x. 1 root root 106 Sep 23 11:16 Desktop
-rw-r--r--. 1 root root 1556 Sep 29 13:12 logo.svg

إذا قمنا بتحليل السطر الأخير و الذي يظهر فيه أنه يشير لملف إسمه logo.svg فإنه يمكن تحليل معلوماته كما يلي:

  • الحرف - الموضوع في البداية معناه أنه ملف.
  • الحروف rw-r--r-- تشير للأذونات الموضوعة له.
  • الكلمة root الأولى هي إسم المستخدم الذي أنشأه.
  • الكلمة root الثانية هي إسم المجموعة الأساسية التي ينتمي لها المستخدم الذي أنشأه.
  • العدد 1556 يشير لحجم الملف بالوحدة ( Byte ).
  • التاريخ Sep 29 يشير للشهر و اليوم الذي تم فيه إنشائه.
  • إسم الملف logo.svg يشر للملف الذي تم ذكر كل هذه التفاصيل بشأنه.

أول حرف يتم وضعها في بداية كل سطر يشير للنوع، في حال كان - فهذا يعني أنه ملف ( File و في حال كان d فهذا يعني أنه مجلد ( Directory و في حال كان l فهذا يعني أنه رابط ( Link لشيء آخر.

من كل هذا السطر سنركز فقط على الحروف التسعة rw-r--r-- فهي التي تشير للأذونات.

كيفية قراءة الأذونات في لينكس

الأحرف التي تشير للأذونات تتكون من ثلاث أقسام، و كل قسم منها يشير لصلاحيات القراءة، الكتابة، و التنفيذ المعطاة في كل قسم منهم.
فمثلاً لو أخذنا هذه الحروف rw-r--r-- فإنه يتم تقسيمها لثلاث مجموعات كما يلي:

  • rw- هذه الأحرف تشير للأذونات الممنوحة للمنشئ ( Owner ).
  • r-- هذه الأحرف تشير للأذونات الممنوحة للمجموعة الخاصة بالمنشئ ( Group Owner ).
  • r-- هذه الأحرف تشير للأذونات الممنوحة للمستخدمين الآخرين ( Others ).

الرموز و الأرقام المستخدمة في تحديد الأذونات

الأذونات يمكن عرضها أو تحديدها بأسلوب الرموز ( Symbolic Mode ) أو بأسلوب الأرقام ( Numberic Mode ).

قراءة الأذونات بأسلوب الرموز يعتبر أسهل و لكن عند منح الأذونات فإن أسلوب الأرقام هو الأسهل و الأسرع لذلك عليك معرفة كلا الأسلوبين.


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

الرموز التي تستعمل في تحديد الأذونات عددها 3 و توضع بالترتيب التالي:

  • الحرف r و يوضع لمنح صلاحية القراءة ( Read ).
  • الحرف w و يوضع لمنح صلاحية الكتابة ( Write ).
  • الحرف x و يوضع لمنح صلاحية التنفيذ ( Execute ).

في حال كانت الصلاحية غير ممنوحة فإنه يتم وضع الرمز - مكان الحرف الذي يمثل الصلاحية.


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

الأرقام التي تستعمل في تحديد الأذونات عددها 3 و توضع بالترتيب التالي:

  • الرقم 4 و يوضع لمنح صلاحية القراءة ( Read ).
  • الرقم 2 و يوضع لمنح صلاحية الكتابة ( Write ).
  • الرقم 1 و يوضع لمنح صلاحية التنفيذ ( Execute ).

في حال كنا سنقوم بكتابة الإذن rw-r--r-- بأسلوب الأرقام فإنه يجب تخصيص رقم واحد فقط بين 0 و 7 لكل قسم كما يلي:

  • rw- يتم تحويلها إليها 4+2+0 و هذا يساوي 6.
  • r-- يتم تحويلها إليها 4+0+0 و هذا يساوي 4.
  • r-- يتم تحويلها إليها 4+0+0 و هذا يساوي 4.

إذاً الرموز rw-r--r-- نفسها يمكن كتابتها 644 مما يعني أن الرقم 6 يشير للأذونات الممنوحة للمنشئ ( Owner و الرقم 4 الأول يشير للأذونات الممنوحة للمجموعة الخاصة بالمنشئ ( Group Owner و الرقم 4 الثاني يشير للأذونات الممنوحة لباقي المستخدمين ( Others ).

كيف تعمل الأذونات في لينكس

الأذونات تختلف فكرتها قليلاً على حسب ما إذا كنت تتعامل مع ملف أو مجلد.


صلاحية القراءة ( Read )

في حال كان المستخدم يملك صلاحية القراءة على الملف فهذا يعني أنه يستطيع قراءته أو مشاهدته، فمثلاً يمكنه استخدام الأمر cat ليشاهد ما يحتويه. كما يستطيع استعمال أي محرر نصوص متاح في النظام مثل المحرر nano لكي يقرأ محتواه من خلاله.

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


صلاحية الكتابة ( Write )

في حال كان المستخدم يملك صلاحية الكتابة في الملف فهذا يعني أنه يستطيع تعديل محتواه كيفما شاء، فمثلاً يمكنه استخدام الأمر cat > لتبديل محتوى الملف أو استخدام الأمر cat >> لإضافة محتوى جديد عليه. كما يستطيع استعمال أي محرر نصوص متاح في النظام مثل المحرر nano لكي يعدل محتواه من خلاله.

في حال كان المستخدم يملك صلاحية الكتابة في المجلد فهذا يعني أنه يستطيع إنشاء ملفات و مجلدات جديدة بداخله أو حتى نسخ ملفات موجودة في مكان آخر و إضافتها فيه، مما يعني أنه يمكنه استخدام الأمر mkdir و touch و cp و mv فيه.


صلاحية التنفيذ ( Execute )

في حال كان المستخدم يملك صلاحية التنفيذ على الملف فهذا يعني أنه يستطيع تنفيذ الأوامر الموجودة فيه، فمثلاً يستطيع استعمال منفذ الأوامر shell للملف الذي نوعه .sh و بالطبع الفكرة هي نفسها أي نوع آخر من الملفات التنفيذية.

في حال كان المستخدم يملك صلاحية التنفيذ على المجلد فهذا يعني أنه يستطيع تنفيذ أوامر مرتبطة بالمجلدات، فمثلاً يستطيع استعمال الأمر cd للإنتقال إلى داخله أو الأمر ls -l لعرض معلومات الملفات و المجلدات الموجودة فيه.

طريقة تحديد الأذونات في لينكس

يمكنك استخدام الأمر chmod لتحديث أذونات الملفات و المجلدات سواء بأسلوب الرموز ( Symbolic Mode ) أو بأسلوب الأرقام ( Numberic Mode ).

الأمر chmod هو اختصار لجملة Change Mode التي تعني تغيير الطريقة التي يمكن فيها التعامل مع الملف أو المجلد.


التحضير لتجربة تحديد الأذونات

قم بتنفيذ الأمر التالي لإنشاء ثلاث ملفات إسمها file1 و file2 و file3 في المجلد الخاص بك.

Linux Terminal

root@fedora:~$ touch file1 file2 file3

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

Linux Terminal

root@fedora:~$ ls -l
-rw-r--r--. 1 root root 0 Oct 29 11:15 file1
-rw-r--r--. 1 root root 0 Oct 29 11:15 file2
-rw-r--r--. 1 root root 0 Oct 29 11:15 file3

منح الصلاحيات بأسلوب الأعداد

في حال كنت ستحدد الأذونات لملف أو مجلد ما فسيكون عليك كتابة chmod و يليها العدد الذي يمثل الصلاحيات و يليها إسمه فقط.

قم بتنفيذ الأمر التالي لتعديل أذونات الملف file1.

Linux Terminal

root@fedora:~$ chmod 760 file1

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

Linux Terminal

root@fedora:~$ ls -l
-rwxrw----. 1 root root 0 Oct 29 11:15 file1
-rw-r--r--. 1 root root 0 Oct 29 11:15 file2
-rw-r--r--. 1 root root 0 Oct 29 11:15 file3

نلاحظ أنه تم تعديل أذونات الملف file1 لتصبح كما يلي:

  • منشئ الملف تم منحه صلاحية القراءة، الكتابة و التنفيذ.
  • مجموعة منشئ الملف تم منحها صلاحية القراءة و الكتابة فقط.
  • المستخدمين الآخرين لا يملكون أي صلاحية على الملف.

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

في حال كنت ستحدد الأذونات لملف أو مجلد ما فسيكون عليك كتابة chmod و يليها الرموز الخاصة لتمثيل الصلاحيات و يليها إسمه فقط.

بالإضافة إلى الأحرف r و w و x سيكون عليك استعمال الرموز التالية لتحديد الصلاحيات التي تريد منحها أو إزالتها للمستخدمين.

الرمز استخدامه
u لمنح الصلاحيات لمنشئ الملف أو المجلد نفسه ( Owner ).
g لمنح الصلاحيات لمجموعة منشئ الملف أو المجلد نفسه ( Group Owner ).
o لمنح الصلاحيات للمستخدمين الآخرين ( Others ).
a لمنح الصلاحيات للجميع ( All Users ) دفعة واحدة.
+ لإضافة الصلاحية المذكورة بعده.
- لإزالة الصلاحية المذكورة بعده.
= لإعطاء الصلاحية المذكورة بعده.

قم بتنفيذ الأمر التالي لتعديل أذونات الملف file2.

Linux Terminal

root@fedora:~$ chmod ug+rwx file2

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

Linux Terminal

root@fedora:~$ ls -l
-rwxrw----. 1 root root 0 Oct 29 11:15 file1
-rwxrwxr--. 1 root root 0 Oct 29 11:15 file2
-rw-r--r--. 1 root root 0 Oct 29 11:15 file3

نلاحظ أنه تم تعديل أذونات الملف file2 لتصبح كما يلي:

  • منشئ الملف و مجموعته تم إضافة صلاحية القراءة، الكتابة و التنفيذ لهم.
  • المستخدمين الآخرين لم يتم إجراء أي تعديلات على صلاحياتهم.

قم بتنفيذ الأمر التالي لتعديل أذونات الملف file3.

Linux Terminal

root@fedora:~$ chmod a=r file3

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

Linux Terminal

root@fedora:~$ ls -l
-rwxrw----. 1 root root 0 Oct 29 11:15 file1
-rwxrwxr--. 1 root root 0 Oct 29 11:15 file2
-r--r--r--. 1 root root 0 Oct 29 11:15 file3

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