يحوي نظام التشغيل لينكس (Linux) كما باقي أنظمة التشغيل نظام صلاحياتٍ يتم تطبيقه على الملفات والمجلدات لمنع المستخدمين من التعامل معها بشكلٍ غير مصرحٍ به، ويعتبر نظام الصلاحيات في لينكس مختلفًا بعض الشيء عن باقي أنظمة التشغيل، ولهذه الصلاحيات العديد من الأنواع وكذلك الطرق للتعامل معها، فلنتعرّف عليها تباعًا.

مفهوم الصلاحيات في لينكس

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

وبما أن كافة ملفات ومجلدات الحاسب يمكن الوصول إليها بعدة طرقٍ ومن خلال عدة مستخدمين فتكون الصلاحيات بمثابة جدار الحماية للملفات الهامة والتي قد تضر بنظام التشغيل، لذا تعطى مثل تلك الملفات أقل حدٍ ممكن من الصلاحيات للمستخدمين وصلاحيات كاملة لمستخدم مسؤول واحد يمكنه تعديل صلاحياتها كما يشاء.1

أنواع الصلاحيات في لينكس

لكل ملفٍ أو مجلدٍ موجود ضمن نظام التشغيل لينكس ثلاثة أنواعٍ من الصلاحيات، يمكن إعطاؤها للمستخدمين من قبل المستخدم المسؤول، وهذه الصلاحيات هي:

  • القراءة: يشير هذا الخيار إلى إمكانية فتح الملف وقراءة محتواه فقط لاغير، أي القدرة على الوصول إلى داخله.
  • الكتابة: يمنح إذن الكتابة صلاحيات تعديل محتوى الملف وليس فقط رؤيتها، ويمكن بشكلٍ عامٍ تغيير مكان الملف أو المجلد وتغيير اسمه عن طريق إذن الكتابة، أما في حال كان المستخدم يملك إذن الكتابة في الملف ولا يملك سوى إذن القراءة في المجلد الذي يحوي هذا الملف فلن يتمكن حينها من نقل الملف أو تغيير اسمه ولكن فقط تغيير محتواه.
  • التنفيذ: جميعنا يعلم أن الملفات القابلة للتنفيذ في نظام ويندوز تحمل اللاحقة exe والتي تخول المستخدم تنفيذها، أمّا في لينكس لا يمكن تنفيذ ملفٍ ما لم يعطى المستخدم إذن التنفيذ، وطالما أن هذا الإذن غير موجودٍ لا يمكن سوى قراءة الملف في حال إذن القراءة، أو تعديل محتواه في حال إذن الكتابة.2

المستخدمون

يمكن تقسيم المستخدمين ذوي الصلاحيات في لينكس أي القادرين على التعامل مع ملفات ومجلدات النظام في لينكس إلى ثلاثة أنواعٍ أساسية، حيث يكون لكل مجلدٍ ولكل ملفٍ ثلاثة أقسام من المستخدمين وهم:

  • المالك Owner: هو المستخدم المسؤول عن الملف أو المجلد والذي يمكنه تطبيق أي صلاحيةٍ يريدها فيه.
  • المجموعات Groups: مجموعةٌ معينةٌ من المستخدمين تحت اسمٍ معينٍ، تأخذ هذه المجموعة صلاحياتٍ معينةً مثلًا الكتابة فيتمكن أي مستخدمٍ في هذه المجموعة القيام بالكتابة على الملف.
  • كافة المستخدمين All Users: يشير هذا النوع إلى جميع المستخدمين عدا المالك والمجموعات؛ أي أن أي مستخدمٍ لا ينتمي إلى مجموعةٍ لها صلاحياتٌ محددةٌ على الملف أو المجلد ستطبق عليه الأذونات والصلاحيات الممنوحة لهذا الجزء من المستخدمين.3

تغيير صلاحيات مجلد أو ملف والأرقام الدالة عليها

يتبع لكل مجلدٍ أو ملف بياناتٍ من ثمانية بتات مهمتها تعريف الأذونات المسموح بها لهذا الملف، وتكون هذه البتات في الحالة الأولية 0؛ أي لا توجد أي صلاحياتٍ أو 000 بالشكل الثنائي، وعند إضافة صلاحية القراءة فهي تضيف 4 بتات، مما يعني أن الرقم سيصبح 4 أو 100 بالشكل الثنائي، وعند إضافة صلاحية الكتابة فهي تضيف 2 بت، مما يعني أن الرقم سيصبح 2 أو 010 بالشكل الثنائي، وعند إضافة صلاحية التنفيذ فهي تضيف بتًا واحد ويقابله 001، وبالمختصر تكون الأرقام الأساسية:

  • القراءة تعادل 4.
  • الكتابة تعادل 2.
  • التنفيذ يعادل 1.

عندما نريد تعيين الصلاحيات في لينكس لملفٍ ما فإننا نعبر عنها بالرقم المقابل لها، فمثلًا لإضافة صلاحيات القراءة والكتابة معًا يكون الرقم 4+2=6، ولإضافة صلاحيات القراءة والكتابة والتنفيذ يكون الرقم 1+2+4=7، وإنّ ملخص الأرقام هو كالتالي:

  • 0 بلا صلاحية.
  • 1 صلاحية التنفيذ.
  • 2 صلاحية الكتابة.
  • 3 صلاحية التنفيذ والكتابة.
  • 4 صلاحية القراءة.
  • 5 صلاحية القراءة والتنفيذ.
  • 6 صلاحية القراءة والكتابة.
  • 7 صلاحية القراءة والكتابة والتنفيذ.

عند منح أو إزالة الصلاحيات فإننا نلاحظ أن الرقم يكتب 777 أو 755 على سبيل المثال لا الحصر، وسبب ذلك أن كل رقمٍ منها يعبر عن الصلاحية الممنوحة للمستخدم المقابل له، حيث يعبر الرقم الأول في مرتبة المئات عن الصلاحيات الممنوحة للمالك، ويعبر الرقم في مرتبة العشرات عن صلاحيات المجموعة، ويكون الرقم في مرتبة الآحاد للدلالة على صلاحيات باقي المستخدمين مهما كانوا.

إذن، فلنتعرف على كيفية منح وإزالة الصلاحيات في لينكس عن ملفٍ ما، ولنعتبر أننا نريد منح المالك كافة الصلاحيات ومنح البقية القراءة والكتابة؛ أي أن الرقم المقابل هنا سيكون 766 فتكون التعليمة المقابلة التي سنكتبها ضمن سطر الأوامر كما يلي:

chmod 766 /path/to/file4

المراجع