كيفية إضافة صلاحية القراءة للمستخدمين الآخرين في لينكس

2024-08-27


title: "How to Add Read Access for Other Users in Linux" publishedAt: "2024-08-27" summary: "" author: "LightNode" authorImg: "/images/logo-z.svg"

مقدمة

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

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

لا يمكن المبالغة في أهمية إدارة حق القراءة في لينكس. إليك السبب في أهمية ذلك:

  1. التعاون: في البيئات التي يحتاج فيها مستخدمون متعددون إلى الوصول إلى نفس الملفات، تسهل صلاحيات القراءة المناسبة التعاون السلس دون المساس بسلامة الملف.

  2. الأمان: تساعد صلاحيات القراءة المُدارة بعناية في حماية البيانات الحساسة من خلال ضمان أنه يمكن للمستخدمين المصرح لهم فقط عرض ملفات أو مجلدات معينة.

  3. وظائف النظام: تعتمد العديد من عمليات النظام والتطبيقات على صلاحيات القراءة الصحيحة للعمل بشكل صحيح. يمكن أن تؤدي الصلاحيات غير الصحيحة إلى أخطاء في النظام أو ثغرات أمنية.

  4. الامتثال: في بعض الصناعات، يتطلب الامتثال التنظيمي تحكمًا صارمًا في من يمكنه الوصول إلى أنواع معينة من البيانات.

  5. تجربة المستخدم: تضمن صلاحيات القراءة المناسبة أن المستخدمين يمكنهم الوصول إلى الموارد التي يحتاجونها دون عوائق غير ضرورية، مما يحسن تجربة المستخدم العامة والإنتاجية.

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

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

قبل أن نتعمق في طرق إضافة حق القراءة، من الضروري أن يكون لدينا فهم قوي لكيفية عمل صلاحيات ملفات لينكس. تشكل هذه المعرفة الأساس لإدارة حقوق الوصول بفعالية في أنظمة لينكس.

1. أنواع الصلاحيات الأساسية

تم بناء صلاحيات ملفات لينكس حول ثلاثة أنواع أساسية من الإجراءات التي يمكن تنفيذها على ملف أو مجلد:

  1. القراءة (r): تسمح للمستخدم بعرض محتويات الملف أو سرد محتويات المجلد.
  2. الكتابة (w): تسمح للمستخدم بتعديل أو حذف ملف، أو إضافة أو إزالة أو إعادة تسمية الملفات داخل مجلد.
  3. التنفيذ (x): بالنسبة للملفات، يسمح هذا للمستخدم بتشغيل الملف كبرنامج أو نص برمجي. بالنسبة للمجلدات، يسمح للمستخدم بالدخول إلى المجلد والوصول إلى محتوياته.

2. فئات المستخدمين

يقسم لينكس المستخدمين إلى ثلاث فئات عندما يتعلق الأمر بصلاحيات الملفات:

  1. المالك: المستخدم الذي أنشأ الملف أو المجلد، أو الذي تم تعيين الملكية له.
  2. المجموعة: مجموعة من المستخدمين الذين يشتركون في نفس صلاحيات الوصول إلى الملف أو المجلد.
  3. الآخرون: جميع المستخدمين الآخرين في النظام الذين ليسوا المالك ولا جزءًا من المجموعة.

3. التمثيل الرقمي للصلاحيات

في حين يمكن تمثيل الصلاحيات رمزيًا (باستخدام r و w و x)، غالبًا ما يتم التعبير عنها في شكل رقمي، خاصة عند استخدام أوامر معينة. في هذا النظام:

  • القراءة (r) يتم تمثيلها بالرقم 4
  • الكتابة (w) يتم تمثيلها بالرقم 2
  • التنفيذ (x) يتم تمثيله بالرقم 1

يتم جمع هذه الأرقام معًا لتمثيل الصلاحيات لكل فئة مستخدم. على سبيل المثال:

  • 7 (4+2+1) يمثل الصلاحيات الكاملة (قراءة، كتابة، تنفيذ)
  • 6 (4+2) يمثل صلاحيات القراءة والكتابة
  • 5 (4+1) يمثل صلاحيات القراءة والتنفيذ
  • 4 يمثل صلاحية القراءة فقط

عادة ما يتم تمثيل مجموعة كاملة من الصلاحيات بثلاثة أرقام، واحد لكل من المالك والمجموعة والآخرين. على سبيل المثال:

  • 755 تعني rwx (7) للمالك، و rx (5) لكل من المجموعة والآخرين
  • 644 تعني rw (6) للمالك، و r (4) لكل من المجموعة والآخرين

فهم هذا النظام الرقمي أمر بالغ الأهمية عند استخدام أوامر مثل chmod لتعديل الصلاحيات.

عرض الصلاحيات الحالية

لعرض الصلاحيات الحالية لملف أو مجلد، يمكنك استخدام الأمر ls -l. سيبدو الناتج مشابهًا لهذا:

-rw-r--r-- 1 user group 4096 Aug 27 10:00 example.txt

هنا، تمثل الأحرف العشرة الأولى نوع الملف والصلاحيات:

  • الحرف الأول يشير إلى نوع الملف ('-' للملف العادي، 'd' للمجلد)
  • الأحرف الثلاثة التالية (rw-) تظهر صلاحيات المالك
  • الأحرف الثلاثة التالية (r--) تظهر صلاحيات المجموعة
  • الأحرف الثلاثة الأخيرة (r--) تظهر صلاحيات الآخرين

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

طرق إضافة حق القراءة

الآن بعد أن فهمنا أساسيات صلاحيات ملفات لينكس، دعونا نستكشف الطرق العملية لإضافة حق القراءة للمستخدمين الآخرين. سنركز على نهجين أساسيين: استخدام الأمر chmod واستخدام الأمر setfacl.

1. استخدام الأمر chmod

الأمر chmod (تغيير الوضع) هو الطريقة الأكثر شيوعًا وبساطة لتعديل صلاحيات الملفات في لينكس.

الصيغة والاستخدام

الصيغة الأساسية لأمر chmod هي:

chmod [options] mode file

يمكنك استخدام إما الوضع الرمزي أو الوضع الرقمي لتحديد الصلاحيات.

أمثلة باستخدام الوضع الرمزي

في الوضع الرمزي، تستخدم الحروف والرموز لتعديل الصلاحيات:

  • u للمستخدم (المالك)
  • g للمجموعة
  • o للآخرين
  • a للجميع (المستخدم والمجموعة والآخرين)

لإضافة حق القراءة للآخرين:

chmod o+r filename

لإضافة حق القراءة لكل من المجموعة والآخرين:

chmod go+r filename

لإضافة حق القراءة للجميع (بما في ذلك المالك):

chmod a+r filename

أمثلة باستخدام الوضع الرقمي

في الوضع الرقمي، تستخدم الأرقام التي ناقشناها سابقًا:

لتعيين الصلاحيات إلى القراءة فقط للمجموعة والآخرين (مع الاحتفاظ بالصلاحيات الكاملة للمالك):

chmod 744 filename

لمنح صلاحيات القراءة والتنفيذ للمجموعة والآخرين:

chmod 755 filename

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

2. استخدام الأمر setfacl

في حين أن chmod كافٍ لإدارة الصلاحيات الأساسية، يوفر الأمر setfacl تحكمًا أكثر دقة من خلال قوائم التحكم في الوصول (ACLs).

مقدمة لقوائم التحكم في الوصول (ACLs)

تسمح ACLs بمنح صلاحيات محددة لمستخدمين أو مجموعات محددة، بما يتجاوز النموذج التقليدي للمستخدم-المجموعة-الآخرين.

الصيغة الأساسية لـ setfacl

الصيغة الأساسية لإضافة حق القراءة باستخدام setfacl هي:

setfacl -m u:username:r filename

حيث:

  • -m تعني تعديل ACL
  • u:username:r تحدد المستخدم، اسم المستخد م، وصلاحية القراءة

أمثلة على إضافة حق القراءة باستخدام setfacl

لمنح حق القراءة لمستخدم محدد:

setfacl -m u:john:r filename

لمنح حق القراءة لمجموعة محددة:

setfacl -m g:developers:r filename

للتحقق من إعدادات ACL، استخدم:

getfacl filename

توفر هذه الطرق أدوات قوية لإدارة حق القراءة في لينكس. الأمر chmod رائع للتغييرات السريعة والواسعة، بينما يوفر setfacl تحكمًا أكثر دقة عندما تحتاج إلى إدارة الصلاحيات لمستخدمين أو مجموعات محددة.

أفضل الممارسات

عند إضافة حق القراءة أو تعديل الصلاحيات بشكل عام، من المهم اتباع ممارسات معينة للحفاظ على أمن النظام وسلامته.

اعتبارات الأمان

  1. مبدأ الامتياز الأقل: امنح فقط الحد الأدنى من مستوى الوصول الضروري للمستخدمين لأداء مهامهم. تجنب منح صلاحيات أكثر مما هو مطلوب.

  2. التدقيق المنتظم: راجع دوريًا صلاحيات الملفات والمجلدات للتأكد من أنها لا تزال مناسبة ولم يتم تغييرها بشكل غير متوقع.

  3. استخدام المجموعات: كلما أمكن ذلك، قم بإدارة الصلاحيات من خلال المجموعات بدلاً من المستخدمين الفرديين. هذا النهج أكثر قابلية للتوسع وأسهل في الصيانة.

  4. كن حذرًا مع التغييرات التكرارية: عند استخدام الخيار -R مع chmod أو setfacl لتغيير الصلاحيات بشكل تكراري، كن حذرًا جدًا. من السهل الكتابة فوق إعدادات الصلاحيات المهمة عن طريق الخطأ.

  5. حماية ملفات النظام: كن حذرًا للغاية عند تعديل الصلاحيات على ملفات ومجلدات النظام. يمكن أن تؤدي الصلاحيات غير الصحيحة إلى ثغرات أمنية أو أعطال في النظام.

تجنب الأخطاء الشائعة

  1. لا تستخدم 777: تجنب تعيين الصلاحيات إلى 777 (rwxrwxrwx) حيث أن هذا يمنح الجميع تحكمًا كاملًا في الملف أو المجلد. هذا نادرًا ما يكون ضروريًا ويشكل مخاطر أمنية كبيرة.

  2. انتبه لـ Umask: كن على دراية بإعداد umask للنظام، والذي يؤثر على الصلاحيات الافتراضية للملفات والمجلدات التي تم إنشاؤها حديثًا.

  3. فكر في التأثير: قبل تغيير الصلاحيات، فكر في التأثير المحتمل على العمليات الجارية والتطبيقات والمستخدمين الآخرين.

  4. وثق التغييرات: احتفظ بسجل للتغييرات الهامة في الصلاحيات، خاصة في بيئات الإنتاج.

  5. استخدم Sudo بحكمة: عند استخدام sudo لتغيير الصلاحيات، كن على دراية بأنك تعمل بامتيازات مرتفعة. تحقق مرتين من أوامرك قبل تنفيذها.

التحقق من حق القراءة

بعد تعديل الصلاحيات، من الضروري التحقق من أن التغييرات قد تم تطبيقها بشكل صحيح. هنا طريقتان رئيسيتان للتحقق من صلاحيات الملفات:

استخدام الأمر ls

الأمر ls مع الخيار -l هو أسرع طريقة لعرض صلاحيات الملفات:

ls -l filename

سيعرض هذا صلاحيات الملف والمالك والمجموعة والحجم وتاريخ آخر تعديل.

للحصول على عرض أكثر تفصيلاً، بما في ذلك ACLs، استخدم الخيارات -la:

ls -la filename

استخدام الأمر getfacl

يوفر الأمر getfacl عرضًا شاملاً لـ ACL الخاص بالملف:

getfacl filename

يعرض هذا الأمر:

  • اسم الملف
  • المالك والمجموعة
  • الصلاحيات الأساسية (المستخدم، المجموعة، الآخرون)
  • إدخالات ACL (إن وجدت)
# عرض صلاحيات الملف الأساسية
ls -l filename

# عرض الصلاحيات التفصيلية بما في ذلك ACLs
ls -la filename

# عرض معلومات ACL الشاملة
getfacl filename

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

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

موارد إضافية

  1. صفحات الدليل:

    man chmod
    man setfacl
    man getfacl
    
  2. الوثائق عبر الإنترنت:

  3. أدوات مفيدة:

    • chown: تغيير ملكية الملف
    • umask: تعيين صلاحيات الملف الافتراضية
    • find: تغييرات الصلاحيات بالجملة
  4. موارد الأمان:

  5. بيئات التدريب:

    • الأجهزة الافتراضية
    • بيئات لينكس القائمة على السحابة

تذكر: الممارسة المنتظمة في بيئات آمنة هي المفتاح لإتقان صلاحيات ملفات لينكس.

إضافة حق القراءة للآخرين

الأسئلة الشائعة: صلاحيات ملفات لينكس وحق القراءة

س: ما الفرق بين chmod و setfacl؟

ج: يستخدم chmod لتعيين صلاحيات الملفات الأساسية (قراءة، كتابة، تنفيذ) للمالك والمجموعة والآخرين. يستخدم setfacl للتحكم بشكل أكثر دقة، مما يسمح لك بتعيين صلاحيات لمستخدمين أو مجموعات محددة خارج الفئات الثلاث الأساسية.

س: هل يمكنني استخدام chmod على المجلدات؟

ج: نعم، يعمل chmod على كل من الملفات والمجلدات. عند استخدامه على المجلدات، فإنه يؤثر على المجلد نفسه ويمكن أيضًا تطبيقه بشكل تكراري على محتوياته.

س: ماذا يعني "chmod 755"؟

ج: chmod 755 يعين صلاحيات القراءة والكتابة والتنفيذ (7) للمالك، وصلاحيات القراءة والتنفيذ (5) لكل من المجموعة والآخرين. في الترميز الرمزي، يعادل ذلك rwxr-xr-x.

س: كيف أزيل حق القراءة؟

ج: لإزالة حق القراءة، يمكنك استخدام chmod مع علامة الطرح. على سبيل المثال، chmod o-r filename يزيل حق القراءة للآخرين.

س: ماذا يحدث إذا قمت بتعيين الصلاحيات الخاطئة؟

ج: يمكن أن تؤدي الصلاحيات غير الصحيحة إلى ثغرات أمنية أو تمنع المستخدمين (بما في ذلك أنت) من الوصول إلى الملفات. تحقق دائمًا من أوامرك مرتين واختبر بعد إجراء التغييرات.

س: هل يمكنني تعيين صلاحيات قراءة مختلفة لمستخدمين مختلفين في نفس المجموعة؟

ج: لا يسمح chmod الأساسي بذلك، ولكن يمكنك استخدام setfacl لتعيين صلاحيات محددة لمستخدمين فرديين، بغض النظر عن عضويتهم في المجموعة.

س: كيف تؤثر صلاحيات الملفات على تشغيل النصوص البرمجية؟

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

س: ما الفرق بين صلاحيات 444 و 644؟

ج: 444 (r--r--r--) يمنح حق القراءة فقط للجميع. 644 (rw-r--r--) يمنح حق القراءة والكتابة للمالك، ولكن حق القراءة فقط للمجموعة والآخرين.

س: كيف أتحقق مما إذا كان لدى مستخدم معين حق القراءة لملف ما؟

ج: يمكنك استخدام الأمر getfacl filename لرؤية معلومات ACL المفصلة، بما في ذلك الصلاحيات لمستخدمين محددين.

س: هل يمكن لصلاحيات الملف أن تتجاوز صلاحيات المجلد؟

ج: لا، للوصول إلى ملف، يحتاج المستخدم إلى صلاحيات مناسبة على كل من الملف والمجلدات الأصلية. صلاحية التنفيذ للمجلد مطلوبة للوصول إلى محتوياته.