كيفية إضافة صلاحية القراءة للمستخدمين الآخرين في لينكس
title: "How to Add Read Access for Other Users in Linux" publishedAt: "2024-08-27" summary: "" author: "LightNode" authorImg: "/images/logo-z.svg"
مقدمة
يعتمد نظام التشغيل لينكس، كنظام متعدد المستخدمين، بشكل كبير على نظام قوي لصلاحيات الملفات لضمان أمن البيانات وخصوصية المستخدم. إحدى المهام الأكثر شيوعًا التي يواجهها مسؤولو النظام والمستخدمون المتقدمون هي إدارة هذه الصلاحيات، خاصة عندما يتعلق الأمر بمنح حق القراءة للمستخدمين الآخرين. هذه العملية، رغم أهميتها للعمل التعاوني وإدارة النظام، تتطلب نهجًا حذرًا للحفاظ على الأمن العام للنظام.
في لينكس، تعتبر صلاحيات الملفات جانبًا أساسيًا من نموذج الأمان في نظام التشغيل. فهي تحدد من يمكنه قراءة أو كتابة أو تنفيذ الملفات والمجلدات. بشكل افتراضي، يقوم لينكس بإعداد هيكل صلاحيات أساسي عند إنشاء الملفات والمجلدات، ولكن غالبًا ما يحتاج هذا إلى تعديل لاستيعاب احتياجات المستخدم المحددة أو متطلبات النظام.
لا يمكن المبالغة في أهمية إدارة حق القراءة في لينكس. إليك السبب في أهمية ذلك:
-
التعاون: في البيئات التي يحتاج فيها مستخدمون متعددون إلى الوصول إلى نفس الملفات، تسهل صلاحيات القراءة المناسبة التعاون السلس دون المساس بسلامة الملف.
-
الأمان: تساعد صلاحيات القراءة المُدارة بعناية في حماية البيانات الحساسة من خلال ضمان أنه يمكن للمستخدمين المصرح لهم فقط عرض ملفات أو مجلدات معينة.
-
وظائف النظام: تعتمد العديد من عمليات النظام والتطبيقات على صلاحيات القراءة الصحيحة للعمل بشكل صحيح. يمكن أن تؤدي الصلاحيات غير الصحيحة إلى أخطاء في النظام أو ثغرات أمنية.
-
الامتثال: في بعض الصناعات، يتطلب الامتثال التنظيمي تحكمًا صارمًا في من يمكنه الوصول إلى أنواع معينة من البيانات.
-
تجربة المستخدم: تضمن صلاحيات القراءة المناسبة أن المستخدمين يمكنهم الوصول إلى الموارد التي يحتاجونها دون عوائق غير ضرورية، مما يحسن تجربة المستخدم العامة والإنتاجية.
في هذا الدليل، سنستكشف المفاهيم وراء صلاحيات ملفات لينكس، ونتعمق في الطرق المختلفة لإضافة حق القراءة للمستخدمين الآخرين، ونناقش أفضل الممارسات، ونتعلم كيفية التحقق من التغييرات التي نجريها. سواء كنت مسؤول نظام، أو مطور يعمل في بيئة فريق، أو متحمس للينكس يتطلع إلى تعميق فهمك، ستزودك هذه المقالة بالمعرفة والأدوات لإدارة حق القراءة بفعالية في لينكس.
فهم صلاحيات ملفات لينكس
قبل أن نتعمق في طرق إضافة حق القراءة، من الضروري أن يكون لدينا فهم قوي لكيفية عمل صلاحيات ملفات لينكس. تشكل هذه المعرفة الأساس لإدارة حقوق الوصول بفعالية في أنظمة لينكس.
1. أنواع الصلاحيات الأساسية
تم بناء صلاحيات ملفات لينكس حول ثلاثة أنواع أساسية من الإجراءات التي يمكن تنفيذها على ملف أو مجلد:
- القراءة (r): تسمح للمستخدم بعرض محتويات الملف أو سرد محتويات المجلد.
- الكتابة (w): تسمح للمستخدم بتعديل أو حذف ملف، أو إضافة أو إزالة أو إعادة تسمية الملفات داخل مجلد.
- التنفيذ (x): بالنسبة للملفات، يسمح هذا للمستخدم بتشغيل الملف كبرنامج أو نص برمجي. بالنسبة للمجلدات، يسمح للمستخدم بالدخول إلى المجلد والوصول إلى محتوياته.
2. فئات المستخدمين
يقسم لينكس المستخدمين إلى ثلاث فئات عندما يتعلق الأمر بصلاحيات الملفات:
- المالك: المستخدم الذي أنشأ الملف أو المجلد، أو الذي تم تعيين الملكية له.
- المجموعة: مجموعة من المستخدمين الذين يشتركون في نفس صلاحيات الوصول إلى الملف أو المجلد.
- الآخرون: جميع المستخدمين الآخرين في النظام الذين ليسوا المالك ولا جزءًا من المجموعة.
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
تعني تعديل ACLu:username:r
تحدد المستخدم، اسم المستخد م، وصلاحية القراءة
أمثلة على إضافة حق القراءة باستخدام setfacl
لمنح حق القراءة لمستخدم محدد:
setfacl -m u:john:r filename
لمنح حق القراءة لمجموعة محددة:
setfacl -m g:developers:r filename
للتحقق من إعدادات ACL، استخدم:
getfacl filename
توفر هذه الطرق أدوات قوية لإدارة حق القراءة في لينكس. الأمر chmod
رائع للتغييرات السريعة والواسعة، بينما يوفر setfacl
تحكمًا أكثر دقة عندما تحتاج إلى إدارة الصلاحيات لمستخدمين أو مجموعات محددة.
أفضل الممارسات
عند إضافة حق القراءة أو تعديل الصلاحيات بشكل عام، من المهم اتباع ممارسات معينة للحفاظ على أمن النظام وسلامته.
اعتبارات الأمان
-
مبدأ الامتياز الأقل: امنح فقط الحد الأدنى من مستوى الوصول الضروري للمستخدمين لأداء مهامهم. تجنب منح صلاحيات أكثر مما هو مطلوب.
-
التدقيق المنتظم: راجع دوريًا صلاحيات الملفات والمجلدات للتأكد من أنها لا تزال مناسبة ولم يتم تغييرها بشكل غير متوقع.
-
استخدام المجموعات: كلما أمكن ذلك، قم بإدارة الصلاحيات من خلال المجموعات بدلاً من المستخدمين الفرديين. هذا النهج أكثر قابلية للتوسع وأسهل في الصيانة.
-
كن حذرًا مع التغييرات التكرارية: عند استخدام الخيار
-R
معchmod
أوsetfacl
لتغيير الصلاحيات بشكل تكراري، كن حذرًا جدًا. من السهل الكتابة فوق إعدادات الصلاحيات المهمة عن طريق الخطأ. -
حماية ملفات النظام: كن حذرًا للغاية عند تعديل الصلاحيات على ملفات ومجلدات النظام. يمكن أن تؤدي الصلاحيات غير الصحيحة إلى ثغرات أمنية أو أعطال في النظام.
تجنب الأخطاء الشائعة
-
لا تستخدم 777: تجنب تعيين الصلاحيات إلى 777 (rwxrwxrwx) حيث أن هذا يمنح الجميع تحكمًا كاملًا في الملف أو المجلد. هذا نادرًا ما يكون ضروريًا ويشكل مخاطر أمنية كبيرة.
-
انتبه لـ Umask: كن على دراية بإعداد umask للنظام، والذي يؤثر على الصلاحيات الافتراضية للملفات والمجلدات التي تم إنشاؤها حديثًا.
-
فكر في التأثير: قبل تغيير الصلاحيات، فكر في التأثير المحتمل على العمليات الجارية والتطبيقات والمستخدمين الآخرين.
-
وثق التغييرات: احتفظ بسجل للتغييرات الهامة في الصلاحيات، خاصة في بيئات الإنتاج.
-
استخدم 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
باستخدام هذه الأوامر، يمكنك التحقق بسرعة من أن حق القراءة قد تم تطبيقه بشكل صحيح على المستخدمين أو المجموعات المقصودة.
تذكر، التحقق المناسب هو خطوة أساسية في عملية إدارة صلاحيات الملفات. فهو يساعد على ضمان تطبيق التغييرات المقصودة بشكل صحيح وأنك لم تقدم عن غير قصد أي ثغرات أمنية.
موارد إضافية
-
صفحات الدليل:
man chmod man setfacl man getfacl
-
الوثائق عبر الإنترنت:
- مشروع توثيق لينكس
- سطر أوامر لينكس بواسطة William Shotts
-
أدوات مفيدة:
chown
: تغيير ملكية الملفumask
: تعيين صلاحيات الملف الافتراضيةfind
: تغييرات الصلاحيات بالجملة
-
موارد الأمان:
-
بيئات التدريب:
- الأجهزة الافتراضية
- بيئات لينكس القائمة على السحابة
تذكر: الممارسة المنتظمة في بيئات آمنة هي المفتاح لإتقان صلاحيات ملفات لينكس.
الأسئلة الشائعة: صلاحيات ملفات لينكس وحق القراءة
س: ما الفرق بين 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 المفصلة، بما في ذلك الصلاحيات لمستخدمين محددين.
س: هل يمكن لصلاحيات الملف أن تتجاوز صلاحيات المجلد؟
ج: لا، للوصول إلى ملف، يحتاج المستخدم إلى صلاحيات مناسبة على كل من الملف والمجلدات الأصلية. صلاحية التنفيذ للمجلد مطلوبة للوصول إلى محتوياته.