Chmod
المحتويات
- التصريح 755 يعادل التصريح rwxr-xr-x
- chmod [options] mode[,mode] file1 [file2...]
- فيكون على الشكل التالي
- Numeric Permissions
- chmod g-wx,o-x one.txt
- 020 صلاحية كتابة من المجموعة المالكة للملف/المجلد
- rwxrw-rwx
- 400+040+004+200+100+010+001 = 755
- 040 صلاحية قراءة من المجموعة المالكة للملف/المجلد
- تاريخ
- chmod go-wx one.txt
- 010 صلاحية تنفيذ من المجموعة المالكة للملف/المجلد
- octal mode
- chmod ug=rwx,o=rx one.txt
- symbolic mode
- chmod a+x filename
- rw-r--r-x
- GNU "Setting Permissions" manual
- chmod go+w filenmae

في البداية، chmod وهو اختصار من change mode. في الأنظمة الشبيهة بيونكس هو أمر لتغيير تصاريح نظام الملفات للملفات والمجلدات، يتم فلترة الطلبات عبر Umask. وتعرض الأقسام التالية جوانب أخرى من الموضوع.
التصريح 755 يعادل التصريح rwxr-xr-x
- انظر كذلك
- تصاريح نظام الملفات
- أوامر يونكس
- مراجع
ومن ناحية أخرى، اما التصريح 777 يعادل rwxrwxrwx أي يعطينا تصريح القراءة والكتابة والتنفيذ لكل من المستعمل والمجموعة مالكة الملف والمستعملون الآخرون على النظام.
chmod [options] mode[,mode] file1 [file2...]
- chmod هو أمر تغيير الصلاحيات.
- options هو الخيارات التي يمكن استخدامها مع الأمر.
- mode هو التصريح المراد وضعه على الملف أو المجلد.
- file1، file2 هو اسم المجلد أو الملف المطلوب وضع التصريح له.
- الخيارات تتضمن:
- -R جميع الملفات والمجلدات الفرعية وملفاتها.
- -f الاستمرار في التنفيذ حتى مع حدوث أخطاء.
- -v إظهار مزيد من المعلومات حول تقدم العملية.
- التصريح المراد وضعه أو mode ينقسم إلى جزئين:
- octal mode
- symbolic mode
فيكون على الشكل التالي
في هذا الإطار، وإذا استعراضنا تصريح الملف الجديد بعد وضعه بالأمر ls -l سيظهر تصريح الملف بالشكل التالي: -rw-r----
- بالنسبة للمالك التصريح المطلوب القراءة والكتابة: r + w + - = rw- 4 + 2 + 0 = 6
- بالنسبة للمجموعة المطلوب تصريح القراءة فقط: r + - + - = r-- 4 + 0 + 0 = 4
- بالنسبة لأى مستعمل آخر المطلوب لا شيء: - + - + - = --- 0 + 0 + 0 = 0
إضافةً إلى ذلك، إذا التصريح بشكل نهائي يمكن كتابته على الصورة التالية بعد اضافته للأمر chmod كالتالي: chmod 640 one.txt
كذلك، ملحوظة: وجود ال - أو dash يعنى انتفاء التصريح الذي توجد هذه العلامة مكانه.
Numeric Permissions
ومن جهة أخرى، باستخدام Numeric Permissions وفي العادة تستعمل في سيرفرات الأنظمة الشبيهة بيونكس وتحديد الصلاحيات على الملفات والسكربتات.... على الإنترنت. مثل التصريح 777,755
400 صلاحية قراءة للمستعمل مالك الملف
chmod g-wx,o-x one.txt
إضافةً إلى ذلك، وسوف تكون النتيجة مطابقة لما بأعلى وأود تنبيهك إلى شيء مهم أن كلا ً من الرمزين +، - يقومان بإضافة وسحب تصريح موجود بالفعل بمعنى لو كان تصريح ملف معين بالشكل التالي:
020 صلاحية كتابة من المجموعة المالكة للملف/المجلد
002 صلاحية كتابة من المستعملين الاخرين على النظام
100 صلاحية تنفيذ للمستعمل مالك الملف
rwxrw-rwx
من جانب آخر، بالطبع يوجد الحرف a والذي يرمز إلى كلمة all أو الكل بمعنى تود أضافة تصريح التنفيذ لملف ما لكل من المالك والمجموعة وأى مستعمل آخر كل ما عليك فعله التالي:
إضافةً إلى ذلك، ولكن ماذا لو أردنا وضع تصريح مماثل للأقسام الثلاثة أعنى المالك والمجموعة وأى مستعمل آخر ألا يوجد بديل ل u، g، o ؟؟
400+040+004+200+100+010+001 = 755
وفي هذا السياق، لتغيير التصريح إلى التصريح 755 نطبق الأمر التالي: chmod 755 filename
ومن ناحية أخرى، حيث filename هو اسم الملف المراد تغيير تصريحه أو ان نضع مسار الملف/مجلد... كامل
040 صلاحية قراءة من المجموعة المالكة للملف/المجلد
200 صلاحية كتابة للمستعمل مالك الملف
004 صلاحية قراءة من المستعملين الاخرين على النظام
تاريخ
صيغة الأمر
وفي السياق ذاته، كما نمت الأنظمة في عدد وأنواع قوائم التحكم بوصول المستعملين لذلك تمت إضافته إلى الكثير من أنظمة الملفات لجعلها أكثر مرونة.
ظهر لأول مرة في الإصدار الأول لـ AT&T Unix.
chmod go-wx one.txt
وفي هذا الصدد، لو لاحظت معى أن الملف one.txt يوجد عليه التصريح rwxrwxr-x وما طلبته في سؤالى سحب كل من تصريح القراءة والتفيذ للمجموعة وتصريح التنفيذ لأى مستعمل آخر وذلك لأن تصريح الكتابة بالنسبة لأى مستعمل آخر في الأصل هو غير متوافر على التصريح الكامل للملف ولكن يوجد عامل مشترك وهو سحب تصريح التنفيذ لكلٍ من المجموعة وأى مستعمل آخر وذلك لمجرد التسهيل ليس إلا فكان من الممكن كتابة التصريح بالشكل التالي:
وعلى صعيد آخر، لاحظ معى قمت بإضافة كلام من المجموعة وأى مستعمل آخر إلى بعضهما البعض مع أنى أريد تنفيذ مهام مختلفة فكيف ذلك ؟
010 صلاحية تنفيذ من المجموعة المالكة للملف/المجلد
001 صلاحية تنفيذ من المستعملين الاخرين على النظام
octal mode
- بالنسبة للمالك القراءة والكتابة.
- بالنسبة للمجموعة القراءة فقط.
- بالنسبة لأى مستعمل آخر لا شيء.
من جهة ثانية، ولو رجعنا قليلا لأعلى ذكرنا أن التصريح بشكلٍ عام مكون من أربعة أقسام نوع الملف، تصريح المالك، تصريح المجموعة، تصريح أي مستعمل آخر، فيتم استخدام الأرقام بأعلى لتكوين التصريح ونضرب مثالأ على ذلك:
من جانب آخر، أما لو أردنا وضع تصريح القراءة والكتابة والتنفيذ معاً على ملف يكون الناتج بالشكل التالي:
r + w + x = rwx 4 + 2 + 1 = 7
وفي هذا الصدد، لو أردنا إعطاء التصريحات التالية للملف one.txt لكل من: المالك، المجموعة، أي مستعمل آخر بالترتيب التالي:
read or r =4 write or w =2 execute or x =1
إضافةً إلى ذلك، ال octal هو نظام الأعداد الثماني أي يبدأ بالعدد 0 وحتى العدد رقم 7 وتم استخدامه من قِبل علماء الكمبيوتر للتعبير عن الأرقام بمعنى، الكمبيوتر كجهاز لا يعلم الكلمة مثلا " word " كله ما يعلمه هو 0 أو 1 أو بمعنى set or reset وهكذا، ولكى تتم العملية بالشكل المطلوب لابد من تحويل الرموز أو الحروف أو حتى الأرقام العادية في صورة أصفار وواحائد فقط أي بطريقة مثل هذه 01011101 هنا ظهرت طرق للتعبير عن هذه الرموز أو الحروف أو الأرقام العادية لعمل ذلك التحويل بطريقة بسيطة مثلًا طريقة الأعداد ال binary representation أو التمثيل الثنائي وهو إما 0 أو 1، وطريقة ال octal representation أو التمثيل الثماني ويشمل الأعداد من 0 وحتى الرقم 7، وطريقة ال hexidecimal representation أو التمثيل السادس عشر ويشمل الأعداد من 0 حتى الرقم 9 ومن الحرف A حتى الحرف F، حيث يمثل الحرف A الرقم 10 والحرف B الرقم 11 وهكذا انتهاءً بالحرف F والذي يمثل الرقم 15 وبالتالى تكون هناك طريقة بسيطة للتحويل ما بين هذه الأنظمة خصوصا الثمانى والسادس عشر مع النظام الثنائي والذي يستعمله الكمبيوتر في تنفيذ عملياته والجدول التالي يوضح كيف يمكن تحويل رقم من نظام ثمانى إلى ثنائي، ومن سادس عشر إلى ثنائي:
ومن ناحية أخرى، باستخدام النظام الثمانى أمكن تخزين التصاريح الخاصة بأي ملف أو مجلد على النظام بطريقة سهلة جدا حيث تم التعويض عن رمز كل تصريح بعدد معين مثلا الرمز r والذي يرمز إلى تصريح القراءة تم التعويض عنه بالرقم 4، والرمز w والذي يمثل تصريح الكتابة تم التعويض عنه بالرقم 2، كذلك الرمز x والذي يمثل تصريح التنفيذ تم التعويض عنه بالرقم 1 والسطر التالي يوضح ملخص التعبير على التصاريح:
r + w = rw 4 + 2 = 6
من جهة ثانية، وبالتالى عند إضافة هذه الأرقام إلى بعضها البعض نبدأ في تكوين التصريح المطلوب وضعه على الملف أو المجلد مثلا نريد وضع تصريح القراءة والكتابة على ملف ما كل ما علينا فعله إضافة الرقم 4 إلى الرقم 2 ليصبح التصريح كالتالى:
chmod ug=rwx,o=rx one.txt
إضافةً إلى ذلك، مثال: قم بسحب تصريح الكتابة والتنفيذ للمجموعة وسحب كذلك تصريح التنفيذ من أي مستعمل آخر:
symbolic mode
في هذا الإطار، في البداية وضع تصريح المالك مستعملاً الرمز = أو يساوى ولاحقًا قمت بكتابة "،" أو comma لوضع تصريح آخر مع تصريح المالك هو تصريح المجموعة ثم قمت بكتابة، أو comma أخرى لإضافة تصريح المستعملين الآخرين ولكن لاحظ معى أنى قمت باستخدام الرمز - أو minus لسحب أي تصريح بالنسبة لأى مستعمل آخر وفي السؤال كان المطلوب عدم إعطاء أي تصريح لأى مستعمل آخر.
- بالنسبة للمالك القراءة والكتابة.
- بالنسبة للمجموعة القراءة فقط.
- بالنسبة لأى مستعمل آخر لا شيء.
- فيكون بالشكل التالي:
- بالنسبة للمالك التصريح المطلوب هو تصريح القراءة والكتابة: u=rw
- النسبة للمجموعة التصريح المطلوب هو تصريح القراءة فقط: g=r
- بالنسبة لأى مستعمل آخر التصريح المطلوب هو لا شيء: o-rwx
في هذا الإطار، يتم ذلك باستخدام الحروف u، g، o حيث يرمز الحرف u إلى كلمة user والتي تعنى تصريح المالك، ويرمز الحرف g إلى كلمة مجموعة والتي تعنى تصريح المجموعة، ويرمز الحرف o إلى كلمة other والتي تعنى تصريح أي شخص آخر على النظام ويتم إضافة التصريح للملف باستخدام ثلاثة رموز هي +، -، == حيث ترمز العلامة + إلى كلمة add أو إضافة وترمز العلامة- إلى كلمة minus أو إنقاص (تنبه هي نفس علامة- والاستخدام هنا نوعاً ما مختلف) وترمز العلامة == إلى كلمة equal أو يساوي ولفهم ذلك كله نفترض المثال السابق:
وفي هذا السياق، في هذا الوضع تم الاستعاضة عن الأرقام بالرموز العادية، ما أقصده بالرموز العادية هي r، w، x بمعنى حينما تود وضع تصريح القراءة أضف r، كذلك تود وضع تصريح الكتابة أضف w، كذلك تصريح التنفيذ x ولكن السؤال كيف ذلك ؟؟
إضافةً إلى ذلك، مثال: قم بإعطاء تصريح القراءة والكتابة والتنفيذ لكل من المالك والمجموعة وتصريح القراءة والتنفيذ لأى مستعمل آخر للملف one.txt
إضافةً إلى ذلك، وبالتالى حينما تود إضافة تصريحات متشابهة سواء للمالك أو المجموعة أو أي مستعمل آخر فلا يتطلب ذلك فصل كل عملية باستخدام، أو comma ولكن تستطيع إضافة العناصر المتشابهة إلى بعضها البعض.
وفي هذا الصدد، إذا لوضع التصريح بشكل كامل تكون صيغته الكاملة كالتالى: chmod u=rw,g=r,o-rwx filename
كذلك، إذا أردنا إعطاء التصريحات التالية للملف one.txt لكل من: المالك، المجموعة، أي مستعمل آخر بالترتيب التالي:
chmod a+x filename
كذلك، والجدول التالي ملخص لكل من الحروف والرموز الخاصة بالوضع symbolic mode:
rw-r--r-x
من جهة ثانية، وأردت إضافة تصريح الكتابة لكل من المجموعة وأى مستعمل آخر فسيتم إضافة التصريحات الجديدة دون احداث تغيير في أي تصريح موجود بالفعل ولاحظ ذلك:
GNU "Setting Permissions" manual
CHMOD-Win 3.0 — Freeware Windows' ACL ←→ CHMOD converter.
Beginners tutorial with on-line "live" example
chmod go+w filenmae
يكون ناتج التصريح عند عمل الأمر ls -l بالشكل التالي:
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟