/Permissions & ACL – I

Permissions & ACL – I

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

Permissions & ACL p.1

ده موضوع النهاردة إن شاء الله ^_^
الناس تصحح كده شاى بالياسمين و تفاح بالنعناع و محدش يسرح الله يكرمك ^_^

دلوقتى احنا اتفقنا فى الشركة بتاعتنا عندنا ملفات و فولدرات مهمة
فيه حاجات الناس كلها عادى ممكن تتعامل معها و حاجات لا

على سبيل المثال : 
عندنا 3 Directories
Global, Hybrid, Private
و كل واحد فيهم هيكون فيه ثلاث ملفات

الأولG_Global,G_Hybrid,G_Private
الثانى : H_Global,H_Hybird,H_Private
الثالثP_Global,P_Hybird,P_Private

وعندنا 7 users
ahmed, mohammad, sasa, tefa, diaa, client, supervisor

و عندنا 3 Groups
administrators,teamleaders,members

توزيع users على groups هيكون بالشكل التالى
administrators > diaa
teamleader > sasa,tefa
members > ahmed,mohamed

لغاية كده تقريبا مفيش جديد .. كل اللى فات سهل يتعمل جدا
ناخد بريك بقى و ندخل فى الموضوع بتاعنا 😀

[divider scroll_text=””]
دلوقتى احنا عايزين نحدد صلاحيات users و groups اللى فوق دول على directories و files السالف ذكرها
بمعنى مين له الحق يفتح الملف الفلانى  او الفولدر العلانى
مين ممكن يحذف ده او يعدل فى ده و هكذا

الموضوع ده اسمه Permissions
و هم ثلاثة أساسين

  • Read
  • Write
  • Excute

و الحروف المعبرة عنهم هى

  • r
  • w
  • x

و عندنا حاجتين المفروض أظبط Permissions بتاعتهم

و هم Directories , Files

[divider scroll_text=””]

نبدأ بالـ Files

  • read

يعنى هقدر أفتح الملف .. أشوف محتواه، بس مقدرش أعدل فيه

  • write

مقدرش أفتح الملف ..بس أقدر أكتب فيه عادى 😀

  • Execute

يعنى أخلى الملف Excutable بمعنى
عارفين برنامج IDM مش لما بفتحه “بينفذ مهمات معينة” بالظبط كده
انه بيكون مبرمج على انه يعمل حاجات بمجرد الضغط عليه

و لو صبرنا حبتين هخليكم تعملوا مثال عملى يوضح الليلة ماشية ازاى

[divider scroll_text=””]

نشوف Directories

  • read

تقدر تشوف محتوى directories بس مش هتقدر تدخله

  • write

انك تقدر تنشئ- تعمل – ملفات أو فولدرات بداخل directory ده

  • execute

ده بقى عشان تقدر تدخل directory بسلام

[divider scroll_text=””]

مش منطقى..نشوف تطبيق عملى

read : يعنى انك تقدر تعمل  ls dir  و يعرض لك محتواه

 write : انك تقدر تعمل
mkdir dir/newdir
mkdir dir newfile

Execute : انك تقدر تعمل cd dir

ملحوظة مهمة جدا
فيه بعض commands مش هتشتغل إلا بوجود permissions معين
بمعنى
ان لو عندك directory واخد permission W انت مش هتقدر تعمل فيه حاجة زى أمر mkdir إلا لو هو كان واخد فى الاساس Permission X
لأن أمر mkdir بيتطلب وجود الاتنين
انما لو directory واخد permission X بس هتقدر تدخله و كل حاجة بس برضه هيكون نفس الكلام لازم يكون واخد معاه Permission W عشان تقدر تعمل mkdir جواه

**Test your self ,For Directories Commands “cp,rm,mv” will be in any part ?? “Try it by your self”

[divider scroll_text=””]

كده دلوقتى عرفت ايه هى permissions الأساسية اللى عندى و هطبقها على مين فاضل انى أعرف هطبقها لصالح مين ؟
بمعنى إنى لما أقول ان الفايل ده واخد write permission
ايوا واخد بس مين اللى له الحق يستخدمه ؟!
عندنا أربع حاجات

  1. root
  2. owner user “u”
  3. owner group “g”
  4. other “o”

الأولانية واحنا طبعا عارفينه بيفل فى الحديد 😀 له الصلاحية المطلقة على كل حاجة – على الأقل لغاية المقال ده و لفترة قدام لغاية ما نعرف ازاى ممكن نحميه من شر نفسه-

  • owner user “u”

و ده الرجل اللى عمل file أو directory او انه رجل جاى بواسطة
بمعنى ان لو محمد عمل فايل اسمه test فهيكون هو default owner user
و الحرف المعبر عنه هو “u” إلا لو جه حد زى الرووت مثلا و مخلى أحمد هو owner user كده عافية

  • owner group “g”

نفس الكلام الخاص بـ owner user هو هو بس حط كلمة group بدل user 😀 والحرف المعبر عنه هو “g”

  • other

عامة الشعب .. أى حد غير owners و مالهوش صلاحيات خاصة بيه
والحرف المعبر عنه هو “o”

الجدير بالذكر حتى هذه النقطة ..الناس اللى المفروض مسئولين على file or directory هم owner user/group

كل واحد من الثلاثة دول ممكن يكون ليه صلاحية واحدة أو اتنين أو ثلاثة
يعنى user ممكن أخليه يعمل read and write
و group ممكن أخليهم يعملوا read , write , execute
و عامة الشعب other يبقوا read بس

أقدر أترجم الشكل ده ازاى

  • u>rw-
  • g>rwx
  • o>r–

طبعا الترتيب مهم و هو ثابت ..read, write , execute
علامة – معناها ان permission المعين اللى موجود فى الصف ده غير متاح للملف أول الفولدر ده
يعنى فى حالة u هتلاقى ان execute permission غير متاح للـ u على ملف معين
و فى نفس الوقت متاح للـ g و غير متاح برضه للـ o
أقدر أترجم الكلام ده فى شكل أوامر ازاى
الأمر الأساسى عندنا فى القصة دى كلها ..اسمه chmod
و له أكتر من شكل أقدر أكتب بيه، خلينا النهارد فى الشكل البسيط جدا
لنفترض اننا عندنا file اسمه newfile ، و عايز أطبق عليه الحاجات اللى قلتها فوق
الأول اعمل الملف و انت root
/cd /home/dos 
su
touch newfile
و نبدأ نكتب permissions
هيكون بالشكل ده
chmod  u=rw-  newfile
chmod  g=rwx  newfile
chmod  o=r–  newfile

طب هل فيه طريقة انى اكتبهم كلهم فى سطر واحد ؟!
فيه طريقة و مش هقولك RTFM زى كل مرة ..اتقل تاكل لوز 😀

السؤال الجميل …انا عايز أشوف الحاجات اللى انا عملتها دى ازاى ؟؟
ببساطة أنا مفترض انك عامل newfile فى home بتاعك
عندى أنا مثلا
/home/dos/newfile
الناس فاكرين أمر ls اللى كان بيعمل List للحاجات الموجودة فى المكان اللى انا فيه
هستخدمه النهار مع أوبشن لذيذ  و مهم جدا ls -l

/First try  >>     ls /home/dos

/then try  >>    ls -l /home/dos

حد ملاحظ حاجة ..هيطلعلك حاجة بالشكل ده

Screenshot

الناس تركز معايا فى السطر الملون لأن ده اللى كان شغلى عليه نقرأ من الشمال
أول خانة دى بتحدد لى النوع
أول 3 خانات بعد الخانة الأول دول Permissions الخاص بالـ owner “u”
تانى 3 خانات خاص بـ Group “g” Permissions
آخر 3 خانات خاص بـ Other”o” permissions

انا ليه بقول خانة مش حروف ….عشان أخلى “-” معايا فى الحساب
الناس تبدأ تقارن بين الأوامر اللى كتبناها فوق و بين النتيجة اللى ظهرت لينا فى السطر اللى شرحنا عليه
لو انت عامل الملف newfile و انت رووت زى ما قلت فوق .. هتلاقى عندك فى نفس السطر كلمتين بالشكل ده root root

root الأولى
المقصود بيها اليوزر اللى اسمه root
يعنى دى من الاخر الخانة الخاصة بـ Ownership file/dir user

root الثانية
المقصود بيها الجروب اللى اسمها root
يعنى دى برضه من الاخر الخانة الخاصة بـ Ownership file/die group
يتبقى جزء صغير جدا الخاص بالملكية …ازاى أقدر أغير ownership بتاعت file or directory

الأمر الجميل chown
بقدر بيه أغير owner user , owner group
الملف اللى فوق ده مثلا انا عايز أخلى dos هو owner بتاعه و الجروب المسؤولة عنه هى admins
chown dos:admins newfile
ارجع اعمل
ls -l
و قارن و جرب و شوف الفرق 😀

Screenshot-1[divider scroll_text=””]

هيفضل سؤال معلق …users & groups اللى اتكلمت عليهم فوق دول هنعمل بيهم ايه ؟!
ببساطة دى تاسك كبيرة محترمة هنقسمها على ثلاث أو أربع مرات

تاسك النهاردة

خلى الرجل المسؤول عن dir اللى اسمه Private يكون diaa
يكون مسؤول بشكل كامل -له كل الصلاحيات من الاخر –
و يكون sasa,tefa هم المسؤولين عن dir اللى اسمه Hybird
برضه بشكل كامل
و يكون dir اللى اسمه Public أى حد يقدر يعرف محتواه و يقدر يدخله بس ميعدلش فيه
بس كده

لا قدر الله ..لو فيه حد ناوى يحل أو يعمل التاسك و عايزنى أراجعها له يا خد برنت سكرين و يبعت على أكون الفيس أو على الجيميل أو على جوجل بلس
الفيس و الجوجل بلس هتلاقيهم فى البيانات الشخصية تحت
و ده الجيميل mohammad.dosoukey@gmail.com

[divider scroll_text=””]

آخر حاجة هيكون فيه مقالة هتتكلم عن Permissions conflict أو ليها اسم تانى افتكاسات الصلاحيات 😀
عشان بس الأسئلة المجنونة و ما على شاكلتها و ما شابهها
فياريت الناس تأجل الأسئلة الإقتكاسية لغاية ما المقالة دى تنزل إن شاء الله ^_^

مع العلم ان الجزء ده تحديدا مش هيتفهم كويس جدا الا لما تجرب كل حاجة بإيدك مهما كانت صغيرة عشان توصل كويس ….و غالبا الجزء ده من السلسة هنطول معاه جبتين …لأن يعتبر أهم جزء فى دراسة اللينكس و مبنى عليه حاجات كتير.

هذا و بالله التوفيق ^_^
دمتم بود و فى أمان الله ^_^