English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
أمر chmod في Linux (النطق الكامل: change mode) هو أمر يتحكم في صلاحيات المستخدمين على الملفات.
تُقسّم صلاحيات ملفات Linux/Unix إلى ثلاثة مستويات: مالك الملف (Owner)،المجموعة (Group)،المستخدمون الآخرون (Other Users).
يمكن فقط لمالك الملف والمستخدمين الرئيسيين تعديل صلاحيات الملف أو الدليل. يمكن استخدام نمط النقاط السبعة (الرقم الثماني) أو نمط الرموز لتعيين الصلاحيات.
الصلاحيات : جميع المستخدمين
chmod [-cfvR] [--help] [--version] mode file...
mode : سلسلة إعداد الصلاحيات،تنسيقها كالتالي:
[ugoa...][[+-=][rwxX]...][,...]
من بينها:
u يُمثل مالك الملف،g يُمثل الأفراد الذين يتبعون المجموعة(group) المالك،o يُمثل الأفراد الآخرين،a يُمثل جميع الثلاثة.
+ يعني زيادة الأذونات، - يعني إلغاء الأذونات، = يعني تعيين الأذونات بشكل حصري.
r يعني القراءة، w يعني الكتابة، x يعني التنفيذ، X يعني فقط إذا كان الملف دليلًا أو تم تعيينه مسبقًا كقابل للتنفيذ.
شرح الأنواع الأخرى للمعاملات:
-c : إذا تم بالفعل تعديل أذونات الملف، أظهر تغيير الأذونات
-f : لا تظهر رسائل الخطأ إذا لم يتم تعديل أذونات الملف
-v : عرض تفاصيل تغيير الأذونات
-R : تنفيذ تغيير الأذونات على جميع الملفات والمجلدات في الدليل الحالي (أي تنفيذ متكرر خطوة بخطوة)
--help : عرض التعليمات
--version : عرض الإصدار
يمكن استخدام الأحرف الممثلة لضبط عدة مشاريع: who (نوع المستخدم)، operator (المشغل) و permission (الأذونات)، يمكن استخدام كل إعداد للمشروع بفصل كل إعداد بالكومياء. سيفيح chmod تعديل أذونات الوصول إلى الملف للمستخدمين المحددين بواسطة who، حيث يتم توضيح نوع المستخدمين من خلال حرف أو أكثر في مكان who، كما هو موضح في جدول الأحرف الممثلة:
who | نوع المستخدم | شرح |
---|---|---|
u | user | المستخدم |
g | group | المجموعة التي ينتمي إليها مالك الملف |
o | others | جميع المستخدمين الآخرين |
a | كل | المستخدم المستخدم، يُشبه ugo |
جداول الأحرف الممثلة للمشغل
المشغل | شرح |
---|---|
+ | زيادة الأذونات للمستخدم المحدد |
- | إزالة الأذونات المحددة للمستخدم |
= | تعيين إعداد الأذونات المحددة للمستخدم، أي إعادة تعيين جميع الأذونات للنوع المستخدم |
جداول الأحرف الممثلة للأذونات
النمط | الاسم | شرح |
---|---|---|
r | قراءة | تعيين الأذونات لقراءة |
w | كتابة | تعيين الأذونات لكتابة |
x | أذونات التنفيذ | تعيين الأذونات التنفيذية |
X | أذونات تنفيذ خاصة | يتم تعيين أذونات التنفيذ فقط عندما يكون الملف دليلًا أو عندما يكون لدي المستخدمين الآخرين أذونات تنفيذ |
s | setuid/gid | عند تنفيذ الملف، يتم تعيين أذونات setuid أو setgid بناءً على نوع المستخدم المحدد بواسطة المعامل who |
t | وضع اللصق | تعيين وضع اللصق، يمكن فقط للمستخدمين الساعين إعداد هذا الموضع، يمكن فقط للمستخدم u إعداد هذا الموضع |
استخدام عدد الثمانية يمكن تحديد الأذونات باستخدام أمر chmod. يتم التحكم في أذونات الملف أو الدليل من خلال تسعة أذونات، كل ثلاثة أذونات كحزمة، وهي قراءة وكتابة وتنفيذ لمالك الملف (User)، قراءة وكتابة وتنفيذ لمجموعة المستخدمين (Group) وكتابة وتنفيذ للمستخدمين الآخرين (Other). تاريخياً، كانت أذونات الملف يتم وضعها في ماسك بت، حيث يتم تعيين البت المحدد في الماسك إلى 1، مما يعني أن الفئة لديها الأولوية المطلوبة.
# | الصلاحيات | rwx | ثنائي |
---|---|---|---|
7 | قراءة + كتابة + تنفيذ | rwx | 111 |
6 | قراءة + كتابة | rw- | 110 |
5 | قراءة + تنفيذ | r-x | 101 |
4 | قراءة فقط | r-- | 100 |
3 | كتابة + تنفيذ | -wx | 011 |
2 | كتابة فقط | -w- | 010 |
1 | تنفيذ فقط | --x | 001 |
0 | لا شيء | --- | 000 |
على سبيل المثال،سيتم تفسير 765 هكذا:
تمثيل أرقام الصلاحيات للمالك: مجموع أرقام الثلاثة مواقع الصلاحيات للمالك.
تمثيل أرقام الصلاحيات للمجموعات: مجموع أرقام مواقع الصلاحيات للمجموعات.
تمثيل أرقام الصلاحيات للمستخدمين الآخرين: مجموع أرقام مواقع الصلاحيات للمستخدمين الآخرين.
يُعين ملف file1.txt على أن يتمكن الجميع من القراءة:
chmod ugo+r file1.txt
يُعين ملف file1.txt على أن يتمكن الجميع من القراءة:
chmod a+r file1.txt
يُعين ملف file1.txt وfile2.txt على أن يتمكن المالك وكذلك الأعضاء في نفس المجموعة من الكتابة،لكن الأشخاص الآخرين لا يمكنهم الكتابة:
chmod ug+w,o-w file1.txt file2.txt
يُضاف صلاحية التنفيذ للمالك لملف ex1.py:
chmod u+x ex1.py
يُعين جميع الملفات والمجلدات في الدليل الحالي والفرعية على أن يتمكن أي شخص من القراءة:
chmod -R a+r *
بالإضافة إلى ذلك،يمكن استخدام الأرقام أيضًا لتمثيل الصلاحيات مثل:
chmod 777 file
النحو هو:
chmod abc file
حيث أن a،b،c كل منها رقم،ويشير إلى صلاحيات المستخدم،المجموعة،والآخرين على التوالي.
إذا كنت ترغب في rwx الخاصية فإن 4+2+1=7;
إذا كنت ترغب في rw- الخاصية فإن 4+2=6;
إذا كنت ترغب في r-x الخاصية فإن 4+1=5.
chmod a=rwx file
و
chmod 777 file
تأثير مشابه
chmod ug=rwx,o=x file
و
chmod 771 file
تأثير مشابه
إذا استخدمت chmod 4755 filename يمكن لهذا البرنامج الحصول على صلاحيات root.
أمر | شرح |
---|---|
chmod a+r ملف | إضافة صلاحيات القراءة للمستخدمين للملف |
chmod a-x ملف | إزالة صلاحيات التنفيذ للمستخدمين للملف |
chmod a+rw ملف | إضافة صلاحيات القراءة والكتابة للمستخدمين للملف |
chmod +rwx ملف | إضافة صلاحيات القراءة والكتابة والتنفيذ للمستخدمين للملف |
chmod u=rw,go= ملف | تعيين صلاحيات القراءة والكتابة للمالك، وإزالة جميع الصلاحيات للمجموعة والآخرين للملف (الفراغ يمثل عدم وجود صلاحية) |
chmod -R u+r,go-r docs | إضافة صلاحية القراءة للمستخدم للملفات في مجلد docs وكل بنية هندسة مجلداته الفرعية، وإزالة صلاحيات القراءة للمجموعة والآخرين للمستخدمين |
chmod 664 ملف | تعيين صلاحيات القراءة والكتابة للمالك والمجموعة للملف، وإزالة صلاحيات القراءة للآخرين للمستخدمين |
chmod 0755 ملف | يساوي u=rwx (4+2+1), go=rx (4+1 & 4+1). 0 لا يحتوي على نموذج خاص. |
chmod 4755 ملف | 4 قام بتعيين التعيينمعرف المستخدمالموقع، والباقي يساوي u=rwx (4+2+1), go=rx (4+1 & 4+1). |
find path/ -type d -exec chmod a-x {} \; | حذف صلاحيات التنفيذ لمسار path/ وجميع مجلدها (لا تشمل الملفات) لجميع المستخدمين باستخدام '-type f' لتطابق الملفات |
find path/ -type d -exec chmod a+x {} \; | يسمح لجميع المستخدمين بالتصفح أو الدخول عبر مسار path/ |