Chmodchmod وهو اختصار من change mode.[2] في الأنظمة الشبيهة بيونكس هو أمر لتغيير تصاريح نظام الملفات للملفات والمجلدات، يتم فلترة الطلبات عبر Umask. تاريخظهر لأول مرة في الإصدار الأول لـ AT&T Unix. كما نمت الأنظمة في عدد وأنواع قوائم التحكم بوصول المستخدمين [3] لذلك تمت إضافته إلى العديد من أنظمة الملفات لجعلها أكثر مرونة. صيغة الأمرchmod [options] mode[,mode] file1 [file2...]
الخيارات تتضمن:
التصريح المراد وضعه أو mode ينقسم إلى جزئين:
octal modeال 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 والسطر التالي يوضح ملخص التعبير على التصاريح:
وبالتالى عند إضافة هذه الأرقام إلى بعضها البعض نبدأ في تكوين التصريح المطلوب وضعه على الملف أو المجلد مثلا نريد وضع تصريح القراءة والكتابة على ملف ما كل ما علينا فعله إضافة الرقم 4 إلى الرقم 2 ليصبح التصريح كالتالى:
أما لو أردنا وضع تصريح القراءة والكتابة والتنفيذ معاً على ملف يكون الناتج بالشكل التالي:
ولو رجعنا قليلا لأعلى ذكرنا أن التصريح بشكلٍ عام مكون من أربعة أقسام نوع الملف، تصريح المالك، تصريح المجموعة، تصريح أي مستخدم آخر، فيتم استخدام الأرقام بأعلى لتكوين التصريح ونضرب مثالأ على ذلك: لو أردنا إعطاء التصريحات التالية للملف one.txt لكل من: المالك، المجموعة، أي مستخدم آخر بالترتيب التالي:
بالنسبة لأى مستخدم آخر لا شيء. فيكون على الشكل التالي
إذا التصريح بشكل نهائي يمكن كتابته على الصورة التالية بعد اضافته للأمر chmod كالتالي: وإذا استعراضنا تصريح الملف الجديد بعد وضعه بالأمر ls -l سيظهر تصريح الملف بالشكل التالي: ملحوظة: وجود ال - أو dash يعنى انتفاء التصريح الذي توجد هذه العلامة مكانه. symbolic modeفي هذا الوضع تم الاستعاضة عن الأرقام بالرموز العادية، ما أقصده بالرموز العادية هي r، w، x بمعنى حينما تود وضع تصريح القراءة أضف r، كذلك تود وضع تصريح الكتابة أضف w، كذلك تصريح التنفيذ x ولكن السؤال كيف ذلك ؟؟ يتم ذلك باستخدام الحروف u، g، o حيث يرمز الحرف u إلى كلمة user والتي تعنى تصريح المالك، ويرمز الحرف g إلى كلمة مجموعة والتي تعنى تصريح المجموعة، ويرمز الحرف o إلى كلمة other والتي تعنى تصريح أي شخص آخر على النظام ويتم إضافة التصريح للملف باستخدام ثلاثة رموز هي +، -، == حيث ترمز العلامة + إلى كلمة add أو إضافة وترمز العلامة- إلى كلمة minus أو إنقاص (تنبه هي نفس علامة- والاستخدام هنا نوعاً ما مختلف) وترمز العلامة == إلى كلمة equal أو يساوي ولفهم ذلك كله نفترض المثال السابق: إذا أردنا إعطاء التصريحات التالية للملف one.txt لكل من: المالك، المجموعة، أي مستخدم آخر بالترتيب التالي:
بالنسبة لأى مستخدم آخر لا شيء. فيكون بالشكل التالي:
إذا لوضع التصريح بشكل كامل تكون صيغته الكاملة كالتالى: في البداية وضع تصريح المالك مستخدماً الرمز = أو يساوى وبعد ذلك قمت بكتابة "،" أو comma لوضع تصريح آخر مع تصريح المالك هو تصريح المجموعة ثم قمت بكتابة، أو comma أخرى لإضافة تصريح المستخدمين الآخرين ولكن لاحظ معى أنى قمت باستخدام الرمز - أو minus لسحب أي تصريح بالنسبة لأى مستخدم آخر وفي السؤال كان المطلوب عدم إعطاء أي تصريح لأى مستخدم آخر. وبالتالى حينما تود إضافة تصريحات متشابهة سواء للمالك أو المجموعة أو أي مستخدم آخر فلا يتطلب ذلك فصل كل عملية باستخدام، أو comma ولكن تستطيع إضافة العناصر المتشابهة إلى بعضها البعض. مثال: قم بإعطاء تصريح القراءة والكتابة والتنفيذ لكل من المالك والمجموعة وتصريح القراءة والتنفيذ لأى مستخدم آخر للملف one.txt
مثال: قم بسحب تصريح الكتابة والتنفيذ للمجموعة وسحب أيضا تصريح التنفيذ من أي مستخدم آخر:
لاحظ معى قمت بإضافة كلام من المجموعة وأى مستخدم آخر إلى بعضهما البعض مع أنى أريد تنفيذ مهام مختلفة فكيف ذلك ؟ لو لاحظت معى أن الملف one.txt يوجد عليه التصريح rwxrwxr-x وما طلبته في سؤالى سحب كل من تصريح القراءة والتفيذ للمجموعة وتصريح التنفيذ لأى مستخدم آخر وذلك لأن تصريح الكتابة بالنسبة لأى مستخدم آخر في الأصل هو غير متوافر على التصريح الكامل للملف ولكن يوجد عامل مشترك وهو سحب تصريح التنفيذ لكلٍ من المجموعة وأى مستخدم آخر وذلك لمجرد التسهيل ليس إلا فكان من الممكن كتابة التصريح بالشكل التالي:
وسوف تكون النتيجة مطابقة لما بأعلى وأود تنبيهك إلى شيء مهم أن كلا ً من الرمزين +، - يقومان بإضافة وسحب تصريح موجود بالفعل بمعنى لو كان تصريح ملف معين بالشكل التالي:
وأردت إضافة تصريح الكتابة لكل من المجموعة وأى مستخدم آخر فسيتم إضافة التصريحات الجديدة دون احداث تغيير في أي تصريح موجود بالفعل ولاحظ ذلك:
يكون ناتج التصريح عند عمل الأمر ls -l بالشكل التالي:
ولكن ماذا لو أردنا وضع تصريح مماثل للأقسام الثلاثة أعنى المالك والمجموعة وأى مستخدم آخر ألا يوجد بديل ل u، g، o ؟؟ بالطبع يوجد الحرف a والذي يرمز إلى كلمة all أو الكل بمعنى تود أضافة تصريح التنفيذ لملف ما لكل من المالك والمجموعة وأى مستخدم آخر كل ما عليك فعله التالي:
والجدول التالي ملخص لكل من الحروف والرموز الخاصة بالوضع symbolic mode: Numeric Permissionsباستخدام Numeric Permissions وفي العادة تستخدم في سيرفرات الأنظمة الشبيهة بيونكس وتحديد الصلاحيات على الملفات والسكربتات.... على الإنترنت. مثل التصريح 777,755
400+040+004+200+100+010+001 = 755 لتغيير التصريح إلى التصريح 755 نطبق الأمر التالي: حيث filename هو اسم الملف المراد تغيير تصريحه أو ان نضع مسار الملف/مجلد... كامل التصريح 755 يعادل التصريح rwxr-xr-x اما التصريح 777 يعادل انظر أيضاًمراجع
وصلات خارجية
|