فك تشفير أذونات نظام ملفات Linux

نشرت: 2017-02-24

قد تبدو أذونات ملفات Linux مثل الهيروغليفية لنظرية الأرقام الغامضة للبعض وهي مفهومة. ينبع نموذج إذن نظام ملفات Linux من إرث UNIX. ومع ذلك ، فمن السهل جدًا فهمها بمجرد أن تفهم المنطق الكامن وراءها.

مجموعات وأنواع الأذونات

يتم تعريف التحكم في الوصول إلى جميع الملفات والمجلدات في نظام الملفات باستخدام المعلومات التالية:

  • ثلاث مجموعات أذونات: u للمالك ، أو g ، أو المجموعة ، أو o أو a ، لجميع المستخدمين.
  • ثلاثة أنواع للإذن: r ، read ، x ، تنفيذ ، w ، كتابة.

أنواع الأذونات هي الأحرف "r" و "x" و "w" ، وتسمى العلامات ، ويتم عرضها على هذا النحو إذا قمت بإدراج أذونات الملف أو المجلد بطريقة ما. يتم تصوير الأعلام غير المحددة بحرف "-". تُستخدم مجموعة الأذونات في الأوامر التي تغير ملكية الملف ومجموعة من الملفات ، والتي سنبحث فيها قريبًا.

أذونات المشاهدة

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

افتح Terminal واكتب الأمر التالي:

اختبار اللمس $

اختبار $ ls -la

-rw-r – r– 1 فريق yorgos 0 23 فبراير 17:07 اختبار

تحتوي السلسلة "-rw-r- r–" على معلومات إذن نظام الملفات التي نهتم بها. تعرض الحقول المتبقية من اليسار إلى اليمين المعلومات التالية:

  • كم عدد الروابط الموجودة لهذا الملف (1)
  • المالك userid (yorgos)
  • معرف المجموعة (طاقم العمل)
  • طول الملف بالبايت (0)
  • تاريخ الإنشاء (23 فبراير)
  • وقت الإنشاء (17:07)
  • اسم الملف (اختبار)

بت إذن

ستلاحظ أن هناك 9 مجموعات مختلفة من مجموعات الأذونات وأنواعها ، ولكن هناك 10 مواضع للعلم. يعرض الأول علامة نوع الملف بينما يشير الأخير إلى الأذونات نفسها. يمكن أن تكون أنواع الملفات: "-" للملفات ، و "l" للارتباطات الرمزية (هذه روابط نظام الملفات التي تشير فقط إلى ملف آخر) و "d" للأدلة. نظرًا لأن الحرف / العلم الأول في مثالنا هو "-" ، فإننا نتحدث عن ملف بسيط. للاستمرار ، دعنا نقسم حقل الأذونات:

- : نوع الملف (يمكن أن يحتوي على l أو - أو d)

rw- : أذونات القراءة والكتابة (بدون تنفيذ). هذه الأذونات للمالك.

r– : إذن قراءة ، لا كتابة وتنفيذ إذن. هذه الأذونات تعتبر مستخدمين ينتمون إلى مجموعة.

r– : إذن قراءة ، عدم الكتابة والتنفيذ. أخيرًا ، هذه الأذونات تهم أي شخص آخر.

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

تعديل الأذونات

لتعديل أذونات ملف أو مجلد ، مرة أخرى ، إما أن تستخدم أمر واجهة المستخدم الرسومية (هذا خارج نطاق هذه المقالة ، لذلك لن نذهب إلى هناك) أو تستخدم أوامر معينة من نظام التشغيل Linux في جهازك الطرفي. الأمر الذي سنستخدمه يسمى chmod (تغيير وضع الملف). يقبل الأمر chmod مجموعة متنوعة من المعلمات التي تغير سلوكه بعدة طرق مختلفة ، ولكن استخدامها العام هو كما يلي:

$ chmod <الوضع> <ملف>

يتم تحديد <الوضع> بالرموز التالية:

ص علم القراءة

ث علم الكتابة

x علم التنفيذ

u علامة إذن المستخدم / المالك

g علامة إذن المجموعة

o علم إذن المستخدمين الآخرين

هناك زوجان آخران ، لكننا سنناقش ذلك في القسم الأخير من مقالتنا.

لذلك ، لنفترض أنك تريد منح أذونات التنفيذ للمستخدمين المنتمين إلى المجموعة (ولكن تأكد من أنك مالك الملف أولاً!):

اختبار $ chown g + x
اختبار $ ls -l
-rwxrwxrwx 1 فريق yorgos 0 فبراير 23 17:07 اختبار

أو ربما تحتاج إلى قفل أي شخص آخر تمامًا. لن يتمكنوا من قراءة الملف أو كتابته أو تنفيذه:

اختبار $ chown o-rwx
اختبار $ ls -l
-rwxrwx— 1 طاقم yorgos 0 23 فبراير 17:07 اختبار

هنا نرى الرايات الأخيرة كلها غير مضبوطة على "-".
إذا كنت تريد رؤية المزيد من الأمثلة ، فاستشر صفحة الدليل لـ chmod بإصدار الأمر التالي:

$ رجل chmod

الملاك والمجموعات

يمكنك أيضًا تغيير ملكية الملف والمجموعة لملف باستخدام الأمر chown .

يقبل الأمر chown العديد من المعلمات التي تغير سلوكه بطريقة ما ، ولكن الاستخدام الأكثر شيوعًا هو ما يلي:

# chown <owner> <ملف>

أو

# chown <owner: group> <ملف>

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

# اختبار لا أحد chown

# ls -l اختبار

-rwxrwxrwt 1 لا أحد الموظفين 0 23 فبراير 17:07 اختبار

تم الكشف الآن أن الملف مملوك لمعرف المستخدم "لا أحد" وليس لـ "yorgos" بعد الآن.

وبالمثل فإن الأمر:

# chown لا أحد: اختبار العجلة

# ls -l اختبار

-rwxrwxrwt 1 عجلة لا أحد 0 23 فبراير 17:07 اختبار


يغير ملكية الملف إلى لا أحد والمجموعة للعجلة .

إذا كنت تريد معرفة المزيد عن الأمر ومعلماته المختلفة ، فاستشر صفحة chown manual عن طريق إصدار الأمر:

$ رجل تشاون

أذونات خاصة

إلى جانب أنواع الأذونات والمجموعات التي ذكرناها بالفعل في المقالة ، هناك نوعان آخران يسمى "الأذونات الخاصة".

هذه هي:

س       علامة Set User ID و Set Group ID.

ر       العلم اللاصق.

يتم تعيين الأول باستخدام علامة "s" في الأمر chmod بالطريقة المعتادة ، على هذا النحو:

اختبار $ chmod u + s
اختبار $ ls -l
-rwsrwx—   1 يورجوس   العاملين   0 فبراير 23 17:07 اختبار

يُطلق على هذه العلامة أيضًا علامة SUID (Set User ID) أو SGID (Set Group ID). إذا تم تعيين هذا البت ، فإن الملف يرث حقوق الوصول لمالكه. هذا يعني أن أي شخص يقوم بتنفيذ الملف ، يقوم بذلك بصفته المالك. إن SGID مشابه ، لكن الملف يرث حق الوصول لمجموعته. هذا ، بالطبع ، يمكن أن يؤدي إلى مشاكل أمنية ، لذلك يجب توخي الحذر.

البتة اللاصقة أو "t" مفيدة بشكل خاص. عند التعيين في دليل ، تتم مشاركته عادةً مثل / tmp ، لا يمكن إعادة تسمية الملفات التي تم إنشاؤها هناك أو حذفها إلا من قبل أصحابها المعنيين. إذا لم يتم تعيين البت اللاصق ، فلن يتحكم مالك الدليل بها.

يمكنك جعل الدليل "ثابتًا" بإصدار الأمر التالي:

$ chmod + t / directory

تمثيل ثماني

بالإضافة إلى استخدام العلامات لتحديد الأذونات مثل "r" و "w" ، يمكنك أيضًا استخدام القيم الرقمية. يقوم الأمر chmod بتعيين القيم التالية للأذونات:

"ص" = 4

"ث" = 2

"س" = 1

لذلك من أجل تعيين ملف للقراءة / الكتابة / التنفيذ للمالك ، والقراءة / التنفيذ لأي شخص آخر ، وهذا يعني "-rwxr-xr-x" ، نحسب القيمة العددية على هذا النحو:

rwx = 4 + 2 + 1 = 7

ص = 4 + 1 = 5

أخيرًا نصدر الأمر:

اختبار $ chmod 755
ls $ - اختبار
-rwxr-xr-x   1 يورجوس   العاملين   21 فبراير 24 02:08 اختبار

تدرب بمفردك باستخدام أذونات مختلفة وقيم عددية للحصول على تعليق منه!