chmod
عودة للموسوعةنوع |
أداة يونكس قياسية
|
---|---|
نظام التشغيل |
شبيه يونكس
|
مسقط الويب |
www.gnu.org
|
لغة البرمجة |
سي
|
---|---|
الإصدار الأخير |
8.5 (23 апреля 2010)
|
الرخصة |
رخصة جنوالعمومية
|
chmod وهواختصار من change mode. في الأنظمة الشبيهة بيونكس هوأمر لتغيير تصاريح نظام الملفات للملفات والمجلدات، يتم فلترة الطلبات عبر Umask.
تاريخ
ظهر لأول مرة في الإصدار الأول لـ AT&T Unix.
كما نمت الأنظمة في عدد وأنواع قوائم التحكم بوصول المستخدمين لذلك تمت إضافته إلى الكثير من أنظمة الملفات لجعلها أكثر مرونة.
صيغة الأمر
chmod [options] mode[,mode] file1 [file2...]
- chmod هوأمر تغيير الصلاحيات.
- options هوالخيارات التي يمكن استخدامها مع الأمر.
- mode هوالتصريح المراد وضعه على الملف أوالمجلد.
- file1، file2 هواسم المجلد أوالملف المطلوب وضع التصريح له.
الخيارات تتضمن:
- -R جميع الملفات والمجلدات الفرعية وملفاتها.
- -f الاستمرار في التطبيق حتى مع حدوث أخطاء.
- -v إظهار مزيد من المعلومات حول تقدم العملية.
التصريح المراد وضعه أوmode ينقسم إلى جزئين:
octal mode
symbolic mode
octal mode
ال octal هونظام الأعداد الثماني أي يبدأ بالعدد 0 وحتى العدد رقمسبعة وتم استخدامه من قِبل فهماء الكمبيوتر للتعبير عن الأرقام بمعنى، الكمبيوتر كجهاز لا يفهم الحدثة مثلا " word " كله ما يفهمه هو0 أو1 أوبمعنى set or reset إلى غير ذلك، ولكى تتم العملية بالشكل المطلوب لابد من تحويل الرموز أوالحروف أوحتى الأرقام العادية في صورة أصفار وواحائد فقط أي بطريقة مثل هذه 01011101 هنا ظهرت طرق للتعبير عن هذه الرموز أوالحروف أوالأرقام العادية لعمل ذلك التحويل بطريقة بسيطة على سبيل المثال طريقة الأعداد ال binary representation أوالتمثيل الثنائي وهوإما 0 أو1، وطريقة ال octal representation أوالتمثيل الثماني ويضم الأعداد من 0 وحتى الرقم 7، وطريقة ال hexidecimal representation أوالتمثيل السادس عشر ويضم الأعداد من 0 حتى الرقمتسعة ومن الحرف A حتى الحرف F، حيث يمثل الحرف A الرقمعشرة والحرف B الرقم 11 إلى غير ذلك انتهاءً بالحرف F والذي يمثل الرقم 15 وبالتالى تكون هناك طريقة بسيطة للتحويل ما بين هذه الأنظمة خصوصا الثمانى والسادس عشر مع النظام الثنائي والذي يستخدمه الكمبيوتر في تطبيق عملياته والجدول التالي يوضح كيف من الممكن أن يمكن تحويل رقم من نظام ثمانى إلى ثنائي، ومن سادس عشر إلى ثنائي:
باستخدام النظام الثمانى أمكن تخزين التصاريح الخاصة بأي ملف أومجلد على النظام بطريقة بسيطة جدا حيث تم التعويض عن رمز جميع تصريح بعدد معين مثلا الرمز r والذي يرمز إلى تصريح القراءة تم التعويض عنه بالرقم 4، والرمز w والذي يمثل تصريح الكتابة تم التعويض عنه بالرقم 2، كذلك الرمز x والذي يمثل تصريح التطبيق تم التعويض عنه بالرقم 1 والسطر التالي يوضح ملخص التعبير على التصاريح:
read or r =4 write or w =2 execute or x =1
وبالتالى عند إضافة هذه الأرقام إلى بعضها البعض نبدأ في تكوين التصريح المطلوب وضعه على الملف أوالمجلد مثلا نريد وضع تصريح القراءة والكتابة على ملف ما جميع ما علينا عمله إضافة الرقم أربعة إلى الرقم 2 ليصبح التصريح كالتالى:
r + w = rw أربعة + 2 =ستة
أما لوأردنا وضع تصريح القراءة والكتابة والتطبيق معاً على ملفقد يكون الناتج بالشكل التالي:
r + w + x = rwx أربعة + 2 + 1 = 7
ولورجعنا قليلا لأعلى ذكرنا حتى التصريح بشكلٍ عام مكون من أربعة أقسام نوع الملف، تصريح المالك، تصريح المجموعة، تصريح أي مستخدم آخر، فيتم استخدام الأرقام بأعلى لتكوين التصريح ونضرب مثالأ على ذلك:
لوأردنا إعطاء التصريحات التالية للملف one.txt لكل من: المالك، المجموعة، أي مستخدم آخر بالترتيب التالي:
- بالنسبة للمالك القراءة والكتابة.
- بالنسبة للمجموعة القراءة فقط.
بالنسبة لأى مستخدم آخر لا شيء.
فيكون على الشكل التالي
- بالنسبة للمالك التصريح المطلوب القراءة والكتابة:
r + w + - = rw- أربعة + 2 + 0 = 6
- بالنسبة للمجموعة المطلوب تصريح القراءة فقط:
r + - + - = r-- أربعة + 0 + 0 = 4
- بالنسبة لأى مستخدم آخر المطلوب لا شيء:
- + - + - = --- 0 + 0 + 0 = 0
إذا التصريح بشكل نهائي يمكن كتابته على الصورة التالية بعد اضافته للأمر chmod كالتالي: chmod 640 one.txt
وإذا استعراضنا تصريح الملف الجديد بعد وضعه بالأمر ls -l سيظهر تصريح الملف بالشكل التالي: -rw-r----
إشارة: وجود ال - أوdash يعنى انتفاء التصريح الذي توجد هذه العلامة مكانه.
symbolic mode
في هذا الوضع تم الاستعاضة عن الأرقام بالرموز العادية، ما أقصده بالرموز العادية هي r، w، x بمعنى حينما تود وضع تصريح القراءة أضف r، كذلك تود وضع تصريح الكتابة أضف w، كذلك تصريح التطبيق x ولكن السؤال كيف من الممكن أن ذلك ؟؟
يتم ذلك باستخدام الحروف u، g، o حيث يرمز الحرف u إلى حدثة user والتي تعنى تصريح المالك، ويرمز الحرف g إلى حدثة مجموعة والتي تعنى تصريح المجموعة، ويرمز الحرف o إلى حدثة other والتي تعنى تصريح أي إنسان آخر على النظام ويتم إضافة التصريح للملف باستخدام ثلاثة رموز هي +، -، == حيث ترمز العلامة + إلى حدثة add أوإضافة وترمز العلامة- إلى حدثة minus أوإنقاص (تنبه هي نفس علامة- والاستخدام هنا نوعاً ما مختلف) وترمز العلامة == إلى حدثة equal أويساوي ولفهم ذلك كله نفترض المثال السابق:
إذا أردنا إعطاء التصريحات التالية للملف one.txt لكل من: المالك، المجموعة، أي مستخدم آخر بالترتيب التالي:
- بالنسبة للمالك القراءة والكتابة.
- بالنسبة للمجموعة القراءة فقط.
بالنسبة لأى مستخدم آخر لا شيء.
فيكون بالشكل التالي:
- بالنسبة للمالك التصريح المطلوب هوتصريح القراءة والكتابة:
u=rw
- النسبة للمجموعة التصريح المطلوب هوتصريح القراءة فقط:
g=r
- بالنسبة لأى مستخدم آخر التصريح المطلوب هولا شيء:
o-rwx
إذا لوضع التصريح بشكل تام تكون صيغته الكاملة كالتالى: chmod u=rw,g=r,o-rwx filename
في البداية وضع تصريح المالك مستخدماً الرمز = أويساوى وبعد ذلك قمت بكتابة "،" أوcomma لوضع تصريح آخر مع تصريح المالك هوتصريح المجموعة ثم قمت بكتابة، أوcomma أخرى لإضافة تصريح المستخدمين الآخرين ولكن لاحظ معى أنى قمت باستخدام الرمز - أوminus لسحب أي تصريح بالنسبة لأى مستخدم آخر وفي السؤال كان المطلوب عدم إعطاء أي تصريح لأى مستخدم آخر.
وبالتالى حينما تود إضافة تصريحات متشابهة سواء للمالك أوالمجموعة أوأي مستخدم آخر فلا يحتاج ذلك فصل جميع عملية باستخدام، أوcomma ولكن تستطيع إضافة العناصر المتشابهة إلى بعضها البعض.
مثال: قم بإعطاء تصريح القراءة والكتابة والتطبيق لكل من المالك والمجموعة وتصريح القراءة والتطبيق لأى مستخدم آخر للملف one.txt
chmod ug=rwx,o=rx one.txt
مثال: قم بسحب تصريح الكتابة والتطبيق للمجموعة وسحب أيضا تصريح التطبيق من أي مستخدم آخر:
chmod go-wx one.txt
لاحظ معى قمت بإضافة كلام من المجموعة وأى مستخدم آخر إلى بعضهما البعض مع أنى أريد تطبيق مهام مختلفة فكيف ذلك ؟
لولاحظت معى حتى الملف one.txt يوجد عليه التصريح rwxrwxr-x وما طلبته في سؤالى سحب جميع من تصريح القراءة والتفيذ للمجموعة وتصريح التطبيق لأى مستخدم آخر وذلك لأن تصريح الكتابة بالنسبة لأى مستخدم آخر في الأصل هوغير متوافر على التصريح الكامل للملف ولكن يوجد عامل مشهجر وهوسحب تصريح التطبيق لكلٍ من المجموعة وأى مستخدم آخر وذلك لمجرد التسهيل ليس إلا فكان من الممكن كتابة التصريح بالشكل التالي:
chmod g-wx,o-x one.txt
وسوف تكون النتيجة مطابقة لما بأعلى وأود تنبيهك إلى شيء مهم حتى كلا ً من الرمزين +، - يقومان بإضافة وسحب تصريح موجود بالعمل بمعنى لوكان تصريح ملف معين بالشكل التالي:
- rw-r--r-x
وأردت إضافة تصريح الكتابة لكل من المجموعة وأى مستخدم آخر فسيتم إضافة التصريحات الجديدة دون احداث تغيير في أي تصريح موجود بالعمل ولاحظ ذلك:
chmod go+w filenmae
يكون ناتج التصريح عند عمل الأمر ls -l بالشكل التالي:
rwxrw-rwx
ولكن ماذا لوأردنا وضع تصريح مماثل للأقسام الثلاثة أعنى المالك والمجموعة وأى مستخدم آخر ألا يوجد بديل ل u، g، o ؟؟
بالطبع يوجد الحرف a والذي يرمز إلى حدثة all أوالكل بمعنى تود أضافة تصريح التطبيق لملف ما لكل من المالك والمجموعة وأى مستخدم آخر جميع ما عليك عمله التالي:
chmod a+x filename
والجدول التالي ملخص لكل من الحروف والرموز الخاصة بالوضع symbolic mode:
Numeric Permissions
باستخدام Numeric Permissions وفي العادة تستخدم في سيرفرات الأنظمة الشبيهة بيونكس وتحديد الصلاحيات على الملفات والسكربتات.... على الإنترنت. مثل التصريح 777,755
400 صلاحية قراءة للمستخدم مالك الملف
040 صلاحية قراءة من المجموعة المالكة للملف/المجلد
004 صلاحية قراءة من المستخدمين الاخرين على النظام
200 صلاحية كتابة للمستخدم مالك الملف
020 صلاحية كتابة من المجموعة المالكة للملف/المجلد
002 صلاحية كتابة من المستخدمين الاخرين على النظام
100 صلاحية تطبيق للمستخدم مالك الملف
010 صلاحية تطبيق من المجموعة المالكة للملف/المجلد
001 صلاحية تطبيق من المستخدمين الاخرين على النظام
400+040+004+200+100+010+001 = 755
لتغيير التصريح إلى التصريح 755 نطبق الأمر التالي: chmod 755 filename
حيث filename هواسم الملف المراد تغيير تصريحه أوان نضع مسار الملف/مجلد... كامل
التصريح 755 يعادل التصريح rwxr-xr-x
اما التصريح 777 يعادل rwxrwxrwx
أي يعطينا تصريح القراءة والكتابة والتطبيق لكل من المستخدم والمجموعة مالكة الملف والمستخدمون الآخرون على النظام.
انظر أيضاً
- تصاريح نظام الملفات
- أوامر يونكس
مراجع
- ^ http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html
- ^ Tutorial for chmod نسخة محفوظة 26 ديسمبر 2017 على مسقط واي باك مشين.
- ^ "AIX 5.3 System managment". IBM knowledge Center. IBM. مؤرشف من الأصل في أربعة مارس 2016. اطلع عليه بتاريخ 30 أغسطس 2015.
- ^ chmod نسخة محفوظة 06 يناير 2018 على مسقط واي باك مشين.
وصلات خارجية
- — صفحة مرشد من أدوات جنوالأساسية.
- GNU "Setting Permissions" manual
- CHMOD-Win 3.0 — Freeware Windows' ACL ←→ CHMOD converter.
- Beginners tutorial with on-line "live" example
- Online Chmod Calculator
التصنيفات: أمن نظام التشغيل, برامج يونكس القياسية, برمجيات متعلقة بنظم ملفات يونكس, خدمات مواصفات يونكس المنفردة, تصاريح نظام الملفات, قالب أرشيف الإنترنت بوصلات واي باك, صفحات بها وصلات إنترويكي, صفحات بها بيانات ويكي بيانات, صفحات بها مراجع ويكي بيانات, صفحات تستخدم خاصية P31, صفحات تستخدم خاصية P306, صفحات تستخدم خاصية P856, صفحات تستخدم خاصية P277, صفحات تستخدم خاصية P348, صفحات تستخدم خاصية P275, صفحات تستخدم خاصية P18, بوابة برمجيات حرة/مقالات متعلقة, بوابة أمن الحاسوب/مقالات متعلقة, جميع المقالات التي تستخدم شريط بوابات