يحتاج لينكس، مثل غيره من أنظمة التشغيل متعدّدة المستخدمين Multi-user system إلى طريقة للتحكّم في وصول المستخدمين إلى مختلف الملفات. ليس من المحبّذ مثلا أن يعدّل مستخدم آخر على ملفات الإعداد التي أخذ ضبطها كثيرا من وقتك. يُطبَّق مبدأُ الفصلِ هذا على نظام تشغيل لينكس بآلية الأذونات Permissions.
كيف تعمل الأذونات
يُخزَّن كلّ ملف على النظام بأذوناته الخاصّة. كيف تُمثَّل؟ من الراجح أنك صادفتها أثناء عملك على نظام لينكس:
drwxr-xr-x -r-w-rwrw- -rwxr--r--
تظهر الأذونات عند تنفيذ أوامر مثل ls -l
. تخبر سلسلة المحارف Charcters بمعلومات الملف؛ يمكن تقسيم سلسلة المحارف الخاصّة بمعلومات الملف إلى أربعة أقسام:
- القسم الأول: هو المِحرف الأول الذي يدلّ على نوع الملفّ.
- القسم الثاني: يحوي المحارف من 2 إلى 4؛ وهي أذونات المستخدِم مالك الملف؛ أي ما يحقّ لهذا المستخدم فعله على الملف.
- القسم الثالث: المحارف من 5 إلى 7؛ وهي أذونات المجموعة مالكة الملف.
- القسم الرابع: المحارف من 8 إلى 10؛ وهي أذونات بقية المستخدمين (ليسوا مالك الملف ولا ينتمون للمجموعة مالكة الملف).
يمكن للمحرف الأول أن يكون أحد المحارف التالية:
-
-
للملفات العادية. -
d
: للمجلّدات. -
l
: للوصلات الرمزية Symbolic link. -
s
: لمقابس Socket يونكس. -
p
: لأنابيب الاتّصال. -
c
: للأجهزة الطرفيّة المحرفيّة Character device file. -
b
: للأجهزة الطرفيّة الكتليّة Block device file.
توضّح المحارف التسعة التالية لنوع الملف الأذونات في ثلاثة أقسام من ثلاثة محارف (القسم الثاني، الثالث والرابع المذكورة أعلاه): تعرض المحارف الثلاثة الأولى أذونات القراءة، الكتابة والتنفيذ بالنسبة لمالك الملف. تعرض المحارف الثلاثة الموالية نفس الأذونات ولكن بالنسبة للمجموعة مالكة الملف؛ والمحارف الثلاثة الأخيرة الأذونات بالنسبة لبقية المستخدمين. يعني المحرف الأول من كل قسم من إذن القراءة (r
)، المحرف الثاني إذن الكتابة (w
) والمحرف الثالث إذن التنفيذ (x
). يدلّ ذكر المحرف (w
، r
وx
) على وجود الإذن أما غياب الإذن فيُشار إليه بعارضة -
. يعني وجود عارضة مكان إذن القراءة (أو الكتابة أو التنفيذ) أن المعني (المالك، المجموعة أو الآخرين) ليس لديه هذا الإذن.
بالعودة إلى المثال:
drwxr-xr-x
يعني هذا السطر أننا أمام مجلّد (المحرف الأول d
)، لدى مالك الملف (المحارف من 2 إلى 4) جميع الأذونات (rwx
)، لدى المجموعة المالكة (المحارف من 5 إلى 7) إذنا القراءة والتنفيذ ولكن ليس لديها إذن الكتابة (r-x
)، ونفس الشيء بالنسبة لبقية المستخدمين.
تعديل الأذونات
يُستخدَم أمر chmod
لتعديل الأذونات. توجد طريقتان لذلك: الأولى باستخدام الأحرف المذكورة أعلاه (w
، r
وx
)، والثانية باستخدام أرقام. سنشرح الطريقة الأخيرة هنا لأنها أسرع كثيرا.
chmod 775 ~/my/file
نلقي نظرة على القائمة التالية لفهم معنى الأرقام:
-
4
=r
-
2
=w
-
1
=w
- = إذن غير موجود
نجمع الأرقام للحصول على الأذونات. بالنسبة لإذن rwx
فيجب أن يكون 4+2+1
=7
؛ إذن r-x
يجب أن يكون 4+0+1=5
وهكذا. بما أن لدينا ثلاثة أقسام من الأذونات (المستخدِم المالك، المجموعة المالكة وبقية المستخدمين) فسنحتاج إلى ثلاثة أرقام، رقم لكلّ قسم. أي أننا نجمع الأرقام المقابلة لأذونات كل قسم ونضعها جنبا إلى جنب في عدد من ثلاثة أرقام: الرّقم على اليسار لأذونات المستخدم المالك، الرقم في الوسط للمجموعة المالكة والرقم على اليمين لبقية المستخدمين.
نعرف، بتنفيذ المبدأ أعلاه ، أن الأمر السابق يعدّل أذونات الملف /my/file/~
لتصبح كالتالي (طبقنا الأمر على ملف عادي، وبالتالي تظهر -
في معلومات الملف تليها الأذونات):
-rwxrwxr-x
تعديل ملكية ملف
يوجد أمران لتعديل ملكية الملف، الأول وهو chown
يغيّر المستخدم المالك والثاني chgrp
ويغيّر المجموعة المالكة.
تغيير المستخدم المالك (المالك الجديد للملف /my/file/~
هو user
):
chown user ~/my/file
تغيير المجموعة المالكة (المجموعة الجديدة هي group
):
chgrp group ~/my/file
إن لم تكن مالكَ الملف أو تنفذ الأمرين أعلاه بصلاحيات المستخدم الأعلى root
فلن ينجح تنفيذ الأمر.
ترجمة -وبتصرّف- للمقال Linux File Permissions Explained لصاحبه Radek Pazdera.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.