Linuxأذونات الملفات و المجلدات
- مفهوم الأذونات في لينكس
- كيفية معرفة أوذنات الملفات و المجلدات في لينكس
- كيفية قراءة الأذونات في لينكس
- كيف تعمل الأذونات في لينكس
- طريقة تحديد الأذونات في لينكس
مفهوم الأذونات في لينكس
الأذونات ( Permissions ) هي الصلاحيات الموضوعة للملفات و المجلدات و التي من خلالها يمكن تحديد كيف يمكن لكل مستخدم في النظام أن يتعامل معها، هل يحق له قراءتها، التعديل عليها، أو تنفيذها.
المستخدم الذي ينشئ الملف أو المجلد هو من يستطيع تحديد الأذونات الخاصة بالتعامل معه.
مدير النظام له الحق بتعديل أذونات جميع الملفات و المجلدات الموجودة في النظام بما فيها ملفات و مجلدات المستخدمين الآخرين.
كيفية معرفة أوذنات الملفات و المجلدات في لينكس
عند عرض محتوى أي مجلد باستخدام الأمر ls -l
فإنه سيتم إظهار جميع أسماء و معلومات المجلدات و الملفات الموجودة مع الصلاحيات الخاصة بها على النحو التالي.
Linux Terminal
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
إذا قمت بعرض محتوى المجلد الخاص بك مع إظهار المعلومات الخاصة بكل ملف فيه فإنه سيكون كما يلي.
Linux Terminal
-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
إذا قمت بعرض محتوى المجلد الخاص بك مع إظهار المعلومات الخاصة بكل ملف فيه فإنه سيكون كما يلي.
Linux Terminal
-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
إذا قمت بعرض محتوى المجلد الخاص بك مع إظهار المعلومات الخاصة بكل ملف فيه فإنه سيكون كما يلي.
Linux Terminal
-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
إذا قمت بعرض محتوى المجلد الخاص بك مع إظهار المعلومات الخاصة بكل ملف فيه فإنه سيكون كما يلي.
Linux Terminal
-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
و أصبح جميع المستخدمين يملكون صلاحية القراءة فقط من الملف.