English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

أمر chmod في Linux

مجمع الأوامر في لينكس

أمر 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نوع المستخدمشرح
uuserالمستخدم
ggroupالمجموعة التي ينتمي إليها مالك الملف
oothersجميع المستخدمين الآخرين
aكلالمستخدم المستخدم، يُشبه ugo

جداول الأحرف الممثلة للمشغل

المشغلشرح
+زيادة الأذونات للمستخدم المحدد
-إزالة الأذونات المحددة للمستخدم
=تعيين إعداد الأذونات المحددة للمستخدم، أي إعادة تعيين جميع الأذونات للنوع المستخدم

جداول الأحرف الممثلة للأذونات

النمطالاسمشرح
rقراءةتعيين الأذونات لقراءة
wكتابةتعيين الأذونات لكتابة
xأذونات التنفيذتعيين الأذونات التنفيذية
Xأذونات تنفيذ خاصةيتم تعيين أذونات التنفيذ فقط عندما يكون الملف دليلًا أو عندما يكون لدي المستخدمين الآخرين أذونات تنفيذ
ssetuid/gidعند تنفيذ الملف، يتم تعيين أذونات setuid أو setgid بناءً على نوع المستخدم المحدد بواسطة المعامل who
tوضع اللصقتعيين وضع اللصق، يمكن فقط للمستخدمين الساعين إعداد هذا الموضع، يمكن فقط للمستخدم u إعداد هذا الموضع

النحو الثماني

استخدام عدد الثمانية يمكن تحديد الأذونات باستخدام أمر chmod. يتم التحكم في أذونات الملف أو الدليل من خلال تسعة أذونات، كل ثلاثة أذونات كحزمة، وهي قراءة وكتابة وتنفيذ لمالك الملف (User)، قراءة وكتابة وتنفيذ لمجموعة المستخدمين (Group) وكتابة وتنفيذ للمستخدمين الآخرين (Other). تاريخياً، كانت أذونات الملف يتم وضعها في ماسك بت، حيث يتم تعيين البت المحدد في الماسك إلى 1، مما يعني أن الفئة لديها الأولوية المطلوبة.

#الصلاحياتrwxثنائي
7قراءة + كتابة + تنفيذrwx111
6قراءة + كتابةrw-110
5قراءة + تنفيذr-x101
4قراءة فقطr--100
3كتابة + تنفيذ-wx011
2كتابة فقط-w-010
1تنفيذ فقط--x001
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 كل منها رقم،ويشير إلى صلاحيات المستخدم،المجموعة،والآخرين على التوالي.

r=4،w=2،x=1

  • إذا كنت ترغب في 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/

مجمع الأوامر في لينكس