شرح أذونات الملفات (File Permissions) على لينكس ويونكس
تعتبر أذونات الملفات واحدة من أهم مفاهيم إدارة النظام في بيئات لينكس ويونكس. إن فهم كيفية إدارة الأذونات بشكل صحيح يعد أمرًا أساسيًا في الحفاظ على أمان النظام وسلامته. في بيئة متعددة المستخدمين مثل لينكس ويونكس، يمكن لكل ملف أن يحتوي على مجموعة من الأذونات التي تحدد من يمكنه الوصول إلى هذا الملف وكيفية الوصول إليه، مما يؤدي إلى تحسين الأمان والمرونة في إدارة النظام.
1. مقدمة في أذونات الملفات
تُستخدم أذونات الملفات في أنظمة لينكس ويونكس للتحكم في من يستطيع قراءة، تعديل، أو تنفيذ الملفات. يتم تحديد الأذونات عادةً من خلال ثلاث فئات رئيسية من المستخدمين: المالك (Owner)، المجموعة (Group)، وبقية المستخدمين (Others).
1.1. المالك (Owner)
المالك هو المستخدم الذي يملك الملف أو الدليل. عادةً ما يكون هذا هو المستخدم الذي أنشأ الملف. يمكن أن يتمتع المالك بقدرة كاملة على التحكم في الملف.
1.2. المجموعة (Group)
المجموعة تشير إلى مجموعة من المستخدمين الذين يمكنهم الوصول إلى الملف. المستخدمون الذين ينتمون إلى نفس المجموعة التي ينتمي إليها المالك، يمكنهم الحصول على الأذونات التي تم تعيينها لهم.
1.3. الآخرون (Others)
هذه الفئة تشمل جميع المستخدمين الآخرين الذين ليسوا مالكين للملف أو جزءًا من المجموعة المرتبطة بالملف. يتم تحديد الأذونات لهذه الفئة بشكل منفصل.
2. الأذونات الأساسية
في أنظمة لينكس ويونكس، تتكون الأذونات من ثلاثة أنواع رئيسية: القراءة (Read)، الكتابة (Write)، و التنفيذ (Execute).
2.1. قراءة (Read)
الحق في القراءة يمنح المستخدم القدرة على قراءة محتوى الملف. في حالة الملفات العادية، يعني هذا أن المستخدم يستطيع مشاهدة محتوى الملف. في حالة الدلائل، يعني ذلك أن المستخدم يمكنه إدراج محتويات الدليل (أي عرض أسماء الملفات الموجودة فيه).
2.2. كتابة (Write)
الحق في الكتابة يسمح للمستخدم بتعديل محتوى الملف. في حالة الملفات العادية، يمكن للمستخدم تعديل محتوى الملف أو استبداله. بالنسبة للدلائل، يعني هذا أن المستخدم يمكنه إضافة أو حذف ملفات داخل الدليل.
2.3. تنفيذ (Execute)
الحق في التنفيذ يمنح المستخدم القدرة على تنفيذ الملف كبرنامج. في حالة الملفات العادية، يعني هذا أن الملف يمكن أن يُنفذ ككود أو برنامج. أما في حالة الدلائل، يعني هذا أن المستخدم يمكنه الانتقال إلى داخل الدليل واستخدامه كدليل عمل.
3. التمثيل الرمزي للأذونات
عند عرض أذونات الملفات في أنظمة لينكس ويونكس، يتم استخدام تمثيل رمزي يتكون من 10 أحرف. الشكل المعتاد هو كما يلي:
diff-rwxr-xr-x
3.1. الحرف الأول
الحرف الأول في السلسلة يحدد نوع الكائن. قد يكون أحد الأنواع التالية:
-
-: ملف عادي. -
d: دليل (دليل). -
l: رابط رمزي (symlink). -
c: جهاز حرفي (Character device). -
b: جهاز كتلة (Block device).
3.2. الحروف التالية
بعد الحرف الأول، توجد ثلاثة مجموعات من ثلاثة أحرف، حيث تمثل كل مجموعة الأذونات للمستخدم المالك، المجموعة، وبقية المستخدمين على التوالي:
-
الحروف
rتشير إلى حق القراءة. -
الحروف
wتشير إلى حق الكتابة. -
الحروف
xتشير إلى حق التنفيذ.
إذا لم يكن هناك إذن، يتم استبدال الحرف بالرمز -.
مثال:
diff-rwxr-xr-x
-
rwxتعني أن المالك لديه حق القراءة والكتابة والتنفيذ. -
r-xتعني أن المجموعة لديها حق القراءة والتنفيذ فقط. -
r-xتعني أن بقية المستخدمين لديهم حق القراءة والتنفيذ فقط.
4. التمثيل الرقمي للأذونات
في نظام لينكس ويونكس، يمكن تمثيل الأذونات أيضًا باستخدام قيم عددية. يتم تعيين قيمة عددية لكل إذن كما يلي:
-
قراءة (r) = 4
-
كتابة (w) = 2
-
تنفيذ (x) = 1
عند الجمع بين الأذونات، يتم إضافة هذه القيم. على سبيل المثال:
-
rwx(قراءة + كتابة + تنفيذ) = 4 + 2 + 1 = 7 -
r-x(قراءة + تنفيذ) = 4 + 1 = 5 -
rw-(قراءة + كتابة) = 4 + 2 = 6
إذن، في مثال rwxr-xr-x، تكون الأذونات الرقمية كما يلي:
-
المالك: 7 (rwx)
-
المجموعة: 5 (r-x)
-
الآخرون: 5 (r-x)
إذاً، التمثيل الرقمي لهذا المثال سيكون:
755
5. أوامر إدارة الأذونات
5.1. أمر chmod
أداة chmod (اختصار لـ change mode) تستخدم لتغيير الأذونات. يمكن استخدامه بنمطين:
-
النمط الرمزي: حيث يتم تحديد الأذونات باستخدام الأحرف مثل
r,w,x. -
النمط الرقمي: حيث يتم تحديد الأذونات باستخدام القيم العددية.
مثال على تغيير الأذونات باستخدام النمط الرمزي:
bashchmod u+x file.txt
هذا الأمر يضيف إذن التنفيذ (+x) للمستخدم المالك (u) للملف file.txt.
مثال على تغيير الأذونات باستخدام النمط الرقمي:
bashchmod 755 file.txt
هذا الأمر يحدد الأذونات للمستخدم المالك، المجموعة، وبقية المستخدمين باستخدام القيم الرقمية.
5.2. أمر chown
يستخدم أمر chown لتغيير المالك والمجموعة المرتبطة بالملف. على سبيل المثال:
sqlchown user:group file.txt
سيغير هذا الأمر مالك الملف file.txt إلى user والمجموعة إلى group.
5.3. أمر chgrp
أمر chgrp يُستخدم لتغيير المجموعة المرتبطة بالملف. على سبيل المثال:
bashchgrp group file.txt
سيغير هذا الأمر المجموعة المرتبطة بالملف file.txt إلى group.
6. أذونات الدلائل
في حالة الدلائل، يكون هناك بعض الاختلافات في الأذونات:
-
إذن القراءة (r): يتيح للمستخدم عرض محتويات الدليل.
-
إذن الكتابة (w): يتيح للمستخدم إضافة أو حذف ملفات من الدليل.
-
إذن التنفيذ (x): يتيح للمستخدم الدخول إلى الدليل واستخدامه.
على سبيل المثال، إذا كانت الأذونات r-x على دليل، فإن المستخدم يمكنه قراءة محتويات الدليل (لكن لا يستطيع إضافة أو حذف الملفات) والدخول إلى الدليل، ولكن لا يستطيع تعديل الملفات الموجودة فيه.
7. الأذونات الخاصة
بجانب الأذونات العادية، توجد بعض الأذونات الخاصة التي يمكن تعيينها للملفات والدلائل في أنظمة لينكس ويونكس:
-
SUID (Set User ID): عندما يتم تعيين هذا الإذن لملف تنفيذي، يعمل الملف كأنه يتم تنفيذه بواسطة المالك وليس المستخدم الذي ينفذه.
-
SGID (Set Group ID): عند تعيين هذا الإذن لملف تنفيذي أو دليل، يعمل الملف كأنه يتم تنفيذه بواسطة المجموعة المرتبطة به، بدلاً من المستخدم الذي ينفذه.
-
Sticky Bit: يستخدم هذا الإذن على الدلائل ويمنع المستخدمين من حذف الملفات التي لا يملكونها داخل الدليل.
8. أهمية الأذونات في الأمان
تعد الأذونات أداة أساسية لحماية النظام من الوصول غير المصرح به. في بيئة متعددة المستخدمين مثل لينكس ويونكس، يمكن للمستخدمين الوصول إلى ملفات الآخرين إذا كانت الأذونات لا تم تحديدها بشكل صحيح. من خلال تعيين الأذونات المناسبة، يمكن تقليل خطر الوصول إلى البيانات الحساسة ومنع التلاعب غير المرغوب فيه.
على سبيل المثال، يجب أن يتم تعيين الأذونات الخاصة بالملفات التنفيذية بعناية فائقة، حيث يمكن أن يؤدي تنفيذ برنامج ضار إلى تهديد الأمان. كما أن أذونات الكتابة على الملفات أو الدلائل يجب أن تكون محدودة على من يحتاج إليها فقط، لتجنب التعديلات غير المرغوب فيها.
9. الخلاصة
تعد الأذونات جزءًا أساسيًا من إدارة الملفات في أنظمة لينكس ويونكس. من خلال الفهم الصحيح للأذونات وتطبيقها بشكل مناسب، يمكن للمستخدمين والمشرفين حماية النظام والبيانات الخاصة بهم من الوصول غير المصرح به أو التلاعب.

