المقدمة
كلنا بنحتاج chmod في وقت من الأوقات، ولو مدرسناش Linux فبتبقي الأرقام اللي بتعبر عن الصلاحيات مٌحيرة فعلاً ، وما بنكونش عارفين هما جابوا الكلام دا منين. فورقة وقلم ويلا بينا نتكلم عن الـ Linux File Permissions 🚀

Linux File Permissions
موضوع صلاحيات ال Linux دا متقسم ل ٣ أقسام بنجمعهم مع بعض زى الـ puzzle.
- الأمر Command
- المستخدمين Users
- الصلاحيات Permissions
كل ملف أو مجلد في Linux بينقسم مستخدميه لل ٣ فئات دي :
- مالك (Owner) وهو الذي أنشأ الملف أو المجلد
- مجموعة (Group) قائمة بيها مجموعة من المستخدمين لهم صلاحيات محددة
- آخرون (Others) أي مستخدم آخر
و كل فئة من الفئات دي ليها صلاحيات محتملة:

تغيير الصلاحيات ما هو إلا تعديل الصلاحيات لكل فئة من دي، وخلونا نشرحه بمثال فلو حبينا نعرض الملفات في Directory معينة مع صلاحيتها بنستخدم
Ls -lفهيعرضلنا
[الاسم] [التاريخ] [الحجم] [المجموعة] [المالك] [عدد الروابط] [الصلاحيات]
-rwxr-xr–- 1 user dev 4096 Feb 10 script.
drwxr-xr–- 1 user dev 6952 Jan 20 MyProjectsهنا الصلاحيات بالنسبة للملف -rwxr-xr– ولكن معناها إيه؟!
لينكس بيوضح دائما الصلاحيات بترتيب الملكية فدائمًا هنعرض صلاحيات ال Owner ثم ال Group ثم ال Others بدون فاصلة
- هنلاقي إن صلاحيات المالك:
-rwxودا يعني إن له صلاحيات القراءة والتعديل والتنفيذ - هنلاقي إن صلاحيات المجموعة :
R-xودا يعني إن للمجموعة صلاحيات القراءة و التنفيذ فقط - هنلاقي إن صلاحيات الآخرين:
R–وعلامة - في البداية تشير إن دا ملف وكذلك علامة d في البداية تشير إن دا مجلدDirectory
ودا كان التمثيل الرمزي للصلاحيات في تمثيل ثاني ليها باستخدام الأرقام ودا الأكثر شيوعًا في استخدامنا في الأوامر كمبرمجين ، وبيعتمد أنه بنمثل كل رمز عملية برقم ونجمع الأرقام بالنهاية للحصول علي صلاحيات المستخدم والجدول في الصورة بيوضحها بالتفصيل

تغيير الصلاحيات chmod
لتغيير صلاحيات ملف أو مجلد بنستخدم أمر chmod واللي هو اختصار لـ change mode.
فكمثال بالطريقة الرقمية
chmod 754 script.shهنا الرقم 754 يعني rwxr-xr– ودا نتيجة إننا جمعنا الصلاحيات لكل فئة ووضعناها في رقم
- فئة المالك (الخانة الأولي) | rwx | 4+2+1 = 7 |
- فئة المجموعة (الخانة الثانية) | r-x | 4+0+1 = 5 |
- فئة الآخرين (الخانة الثالثة) | r– | 4+0+0 = 4 |
طبعًا بيجي من هنا الميم لما مبرمج يكون مخنوق من ال Permissions ويفضل يعمل chmod 777 لكل الملفات عشان مشاكل ال Access تتحل، طبعًا مش محتاجين نوضح إن دا حل خطر أمنيًا لأنه بيدي كل الصلاحيات لكل المستخدمين.
و استخدام 755 بيكون مناسب في معظم الأحوال لأنه بيحتفظ بالتعديل فقط للمالك.
أمثلة علي الطريقة الرمزية
chmod u+x script.sh # إضافة execute للمالك
chmod g-w script.sh # إزالة write من المجموعة
chmod o=r script.sh # جعل الآخرين قراءة فقططبعًا في Special Permissions زي SUID و SGID و Sticky Bit ولكنهم أقل استخدامًا لأنهم بيوفروا ميزات متقدمة في تحديد الصلاحيات مش بنحتاجها كل يوم إلا لو بندير Servers وتقدروا تطلعوا عليهم أكثر في المصادر
المصادر

Discussion