الاثنين، 6 سبتمبر 2021

دورة تعلم Bash (الأذونات) : الجزء الثاني

 بسم الله الرحمن الرحيم

الأذونات (Permissions):

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

  • كيف اعرف الأذونات على أي ملف أو مجلد :

بواسطة الأمر ls فقط ارفق الأمر ls بعلامة -l :

abgoor@DESKTOP:~$ ls -l /bin/bash
-rwxr-xr-x 1 root root 1183448 Jun 18  2020 /bin/bash

لنبدأ من بداية سطر المعطيات أول حرف في السطر هو - , هذا الحرف يدل على نوع الملف كما في الصورة التالية :

و الأن لتقسيم الصلاحيات :

مالك الملف و المجموعة موجودة في معطيات الأمر ls :


شرح الصلاحيات :


في نظام لينكس تستطيع تعديل هذه الأذونات بواسطة الأمر chmod , و سوف نستخدمه لتطبيق الأمثلة لفهم أكبر للأذونات في نظام لينكس , و لمثالنا قم بأنشاء المجلد test و الملف test.txt بداخل المجلد ( أذا لم تقرأ الجزء الأول من هذه التدوينة فأنصحك بذلك على هذا الرابط ) .

abgoor@DESKTOP:~$ mkdir test
abgoor@DESKTOP:~$ cd test
abgoor@DESKTOP:~$ touch test.txt

لنعرض أولا الأذونات على الملف test.txt باستخدام الأمر ls :

abgoor@DESKTOP:~$ ls -l test.txt
-rw_r--r-- 1 abgoor abgoor 1183448 Jun 18  2020 test.txt

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

لنفترض بأنك تريد بأن تسمح للمجموعة بالكتابة باستخدام الأمر chmod :

abgoor@DESKTOP:~$ chmod g+w test.txt


الحرف g يرمز للمجموعة (group) و الأشارة + تدل على أنك ستضيف أذن الكتابة , و لنفترض بأنك تريد بأن تمنع الأخرين من قراءة الملف فقط نفذ الأمر كالتالي :

abgoor@DESKTOP:~$ chmod o-w test.txt

و هذه الصورة تحمل الرموز الخاصة الحرفية :

طبعا هناك الطريقة باستخدام القيم الرقمية لتعديل الأذونات , كل أذن له قيمة و لكي تحصل على القيمة النهائية أجمع القيم و ستحصل على القيمة الخاصة بالأذن , في هذا الجدول ستحصل على جميع القيم :


لنفترض بأنك تريد أن تعطي نفسك جميع الأذونات سنجمع 1 + 2 + 5 = 7 , و لنعطي المجموعة حق التنفيذ و القراءة 4 + 1 = 5 , أما الباقية فلن نعطيهم أي أذن :

abgoor@DESKTOP:~$ chmod 750 test.txt


تذكر الترتيب في الأرقام في رقم الأذونات , من اليسار لليمين المالك للملف ثم المجموعة و أخيرا باقي المستخدمين .

حاول أن تغير الأذونات للمالك الملف و جرب أن تحاول حذف الملف أو قراءة محتوياته , و الأن الى نقطة تختلف في المجلدات كما ترى لا يمكن تنفيذ المجلد (execute) , لكن هذا الأذن يمكنك من الوصول لملف بداخل مجلد حتى لو لم تكن لديك الصلاحية لقراءة محتويات المجلد أو التعديل على محتوياته

abgoor@DESKTOP:~$ date > test.txt
abgoor@DESKTOP:~$ cd ..
abgoor@DESKTOP:~$ chmod 111 test/ 

 في السطر الأول قمنا بحفظ معطيات الأمر date في ملفنا test.txt ثم غيرنا المجلد الحالي الى المجلد الأعلى في المسار , و غيرنا تصريح مجلدنا test إلى التنفيذ فقط , جرب أن تنفذ الأمر ls على المجلد test :

abgoor@DESKTOP:~$ ls test/
ls: cannot open directory 'test/': Permission denied 

 و اﻷن جرب الأمر cat لعرض محتويات الملف test.txt بداخل المجلد test :

abgoor@DESKTOP:~$ cat test/test.txt
Tue  7 Sep 01:58:17 +04 2021 
 

في النهاية هذا الجزء نصيحة حاول ألا تقوم بتغير أذونات الملفات الخاصة بالنظام فهذا قد يؤثر على عمل نظامك , في الجزء القادم سنبدأ في كتابة أو برامجنا .

 

ليست هناك تعليقات:

إرسال تعليق