الحمد لله و كفى بها نعمة و صلاة و سلاما على عباده الذين اصطفى .. لاسيما عبده المصطفى وآله وصحبه ومن اقتفى
رب يسر و أعن
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
ايوا واخد بس مين اللى له الحق يستخدمه ؟!
عندنا أربع حاجات
- root
- owner user “u”
- owner group “g”
- 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
حد ملاحظ حاجة ..هيطلعلك حاجة بالشكل ده
الناس تركز معايا فى السطر الملون لأن ده اللى كان شغلى عليه نقرأ من الشمال
أول خانة دى بتحدد لى النوع
أول 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
و قارن و جرب و شوف الفرق 😀
هيفضل سؤال معلق …users & groups اللى اتكلمت عليهم فوق دول هنعمل بيهم ايه ؟!
ببساطة دى تاسك كبيرة محترمة هنقسمها على ثلاث أو أربع مرات
تاسك النهاردة
خلى الرجل المسؤول عن dir اللى اسمه Private يكون diaa
يكون مسؤول بشكل كامل -له كل الصلاحيات من الاخر –
و يكون sasa,tefa هم المسؤولين عن dir اللى اسمه Hybird
برضه بشكل كامل
و يكون dir اللى اسمه Public أى حد يقدر يعرف محتواه و يقدر يدخله بس ميعدلش فيه
بس كده
لا قدر الله ..لو فيه حد ناوى يحل أو يعمل التاسك و عايزنى أراجعها له يا خد برنت سكرين و يبعت على أكون الفيس أو على الجيميل أو على جوجل بلس
الفيس و الجوجل بلس هتلاقيهم فى البيانات الشخصية تحت
و ده الجيميل mohammad.dosoukey@gmail.com
[divider scroll_text=””]
آخر حاجة هيكون فيه مقالة هتتكلم عن Permissions conflict أو ليها اسم تانى افتكاسات الصلاحيات 😀
عشان بس الأسئلة المجنونة و ما على شاكلتها و ما شابهها
فياريت الناس تأجل الأسئلة الإقتكاسية لغاية ما المقالة دى تنزل إن شاء الله ^_^
مع العلم ان الجزء ده تحديدا مش هيتفهم كويس جدا الا لما تجرب كل حاجة بإيدك مهما كانت صغيرة عشان توصل كويس ….و غالبا الجزء ده من السلسة هنطول معاه جبتين …لأن يعتبر أهم جزء فى دراسة اللينكس و مبنى عليه حاجات كتير.
هذا و بالله التوفيق ^_^
دمتم بود و فى أمان الله ^_^
Thanks alot for these marvelous lessons. 🙂
شرح بسيط ورائع 🙂
أستمر … ربنا يوفقك