logo

أمر Chmod في Linux/Unix مع أمثلة

يُستخدم أمر Linux chmod لتغيير أذونات الوصول للملفات والأدلة. انها تقف ل غير الطريقة . لا يمكن تغيير إذن الروابط الرمزية. حتى أنه يتجاهل الروابط الرمزية التي تأتي عبر اجتياز الدليل العودي.

في ال لينكس نظام الملفات، كل ملف يرتبط بمالك معين وله إذن الوصول لمستخدمين مختلفين. قد تكون فئات المستخدم:

  • مالك
  • عضو المجموعة
  • الآخرين (الجميع)

أذونات الملفات في Linux هي الأنواع الثلاثة التالية:

  • قراءة (ص)
  • اكتب (ث)
  • تنفيذ (x)

تاريخ موجز للشمود

أولاً، يتم تمثيل الأمر chmod في الإصدار 1 من AT&T UNIX مع استدعاء نظام chmod. تم تضمين قوائم التحكم في الوصول في العديد من أنظمة الملفات بالإضافة إلى هذه الأوضاع الأكثر شيوعًا لتعزيز المرونة نظرًا لنمو الأنظمة من حيث الأنواع وعدد المستخدمين.

تم تحديد إصدار chmod المرتب في ملفات GNU الأساسية بواسطة Jim Meyering وDavid MacKenzie. هذا الأمر موجود كحزمة معزولة لنظام التشغيل Microsoft Windows كعنصر من مجموعة منافذ Win32 الأصلية لـ UnxUtils من الأدوات المساعدة الأساسية المشابهة لـ GNU Unix. بالإضافة إلى ذلك، تم شحن الأمر chmod إلى نظام التشغيل IBM i OS.

دعونا نرى كيفية تغيير إذن الملف باستخدام الأمر chmod.

بناء الجملة:

بحث عدائي

بناء الجملة الأساسي لأمر chmod هو كما يلي:

 chmod 

الخيارات المنفذة بشكل عام هي:

    -ر:إنه يرمز إلى العودية، أي إضافة كائنات إلى الدلائل الفرعية.-في:إنه يرمز إلى كائنات العرض المطولة والمعدلة (لا يتم عرض الكائنات غير المعدلة).

يتأثر الكائن المستهدف إذا تم ذكر رابط رمزي. لا يتم عادةً استخدام أوضاع الملفات المرتبطة بالارتباطات الرمزية نفسها بشكل مباشر.

المكون الأساسي لإذن chmod:

على سبيل المثال، روكسر-x---

تحدد جميع المجموعات المكونة من ثلاثة أحرف أذونات لجميع الفئات:

    روكس:تحدد الأحرف الثلاثة الموجودة في أقصى اليسار الأذونات لمالك الملف (أي فئة المستخدم).ص-س:تحدد الأحرف الوسطى الثلاثة أذونات المجموعة التي تمتلك الملف (أي فئة المجموعة).---:تحدد الأحرف الثلاثة الموجودة في أقصى اليمين أذونات الفئة الأخرى. لا يمكن للمستخدمين الذين ليسوا مالكي الملف وأعضاء المجموعة الوصول إلى الملف.

خيارات:

يدعم الأمر chmod خيارات سطر الأوامر التالية:

-ج، --التغييرات: وهو مشابه للخيار المطول، ولكن الفرق هو أنه يتم الإبلاغ عنه في حالة إجراء تغيير.

سري رامانوجان

-f، --صامت، --هادئ: يتم استخدامه لمنع رسائل الخطأ.

-v، --verbose: يتم استخدامه لعرض التشخيص لكل ملف تمت معالجته.

--لا يوجد جذر للحفظ: يتم استخدامه لعدم التعامل مع رمز الشرطة المائلة العكسية ('/')، وخاصة (الافتراضي).

--الحفاظ على الجذر: إذا تم استخدام هذا الخيار، فسوف يفشل في العمل بشكل متكرر على الشرطة المائلة العكسية ('/').

--المرجع=RFILE: يتم استخدامه لتحديد وضع RFILE بدلاً من قيم MODE.

-R، --العودي: يتم استخدامه لتغيير الملفات والدلائل بشكل متكرر.

--يساعد: يتم استخدامه لعرض دليل المساعدة الذي يحتوي على وصف موجز لخيارات الاستخدام والدعم.

--إصدار: يتم استخدامه لعرض معلومات الإصدار.

بناء جملة إذن الملف

إذا كنت مستخدمًا جديدًا، فقد تخلط بين الأنواع المختلفة من الحروف المستخدمة لتعيين إذن الملف. لذلك، قبل المضي قدمًا في استخدام الأمر chmod، دعونا نفهم بناء جملة إذن الملف.

لتعيين إذن ملف أو دليل، علينا تحديد الأمور التالية:

  • من: من نحن. (مستخدم)
  • ماذا: ما التغيير الذي سنقوم به (مثل إضافة الإذن أو إزالته)؟
  • أي: أي من الأذونات؟

يتم تمثيل بيان الإذن في مؤشرات مثل u+x، u-x. حيث يشير 'u' إلى 'user'، و'+' يشير إلى الإضافة، و'-' يشير إلى الإزالة، و'x' يشير إلى الملف القابل للتنفيذ (الذي).

قائمة كمصفوفة

يمكن أن تكون قيمة المستخدم:

ش: مالك الملف

ز: عضو المجموعة

س: غيرهم

ج: الكل

يمكن أن تكون أنواع الأذونات r وw وx.

إعداد وتحديث الأذونات

لتعيين إذن الملف، قم بتنفيذ بيان إذن باستخدام الأمر chmod. على سبيل المثال، نريد تعيين إذن القراءة والكتابة لجميع المستخدمين ومجموعات الملف 'Demo.txt'. يتعين علينا تمرير بيان الإذن 'u=rw,go=rw Demo.txt' باستخدام أمر chmod. لعرض إذن الملف، قم بتنفيذ الأمر أدناه:

 ls -l Demo.txt 

سيعرض الأمر أعلاه إذن الملف الحالي للملف 'Demo.txt'.

لتغيير الإذن، قم بتنفيذ الأمر أدناه:

 chmod u=rw,go=rw Demo.txt 

النظر في الإخراج أدناه:

أمر لينكس شمود

من الناتج أعلاه، تغير إذن الوصول إلى 'Demo.txt'.

تحديد الأذونات لملفات متعددة

يمكننا تعيين الأذونات لملفات متعددة مرة واحدة باستخدام الأمر chmod. لتغيير إذن الملف لملفات متعددة، حدد نمط الملف باستخدام الأمر chmod. على سبيل المثال، إذا أردنا تعيين إذن القراءة والكتابة لجميع الملفات النصية، فحدد الملف *. نمط النص مع الأمر chmod.

لعرض إذن كافة الملفات النصية من دليل العمل الحالي، قم بتنفيذ الأمر أدناه:

عينة من كود جافا
 ls -l *.txt 

وسوف يسرد جميع الملفات النصية مع وضع الأذونات الخاصة بها. النظر في الإخراج أدناه:

أمر لينكس شمود

من الناتج أعلاه، العديد من الملفات لديها إذن قراءة فقط للمستخدمين الآخرين.

لتعيين إذن القراءة والكتابة للمستخدمين الآخرين، قم بتنفيذ الأمر أدناه:

 chmod o+w *.txt 

سيقوم بتعيين إذن القراءة والكتابة للمستخدمين الآخرين للملفات النصية. النظر في الإخراج أدناه:

أمر لينكس شمود

الاختزال العددي

يمكننا استخدام القيم الرقمية بدلاً من الحروف لتحديد الأذونات. يتم استخدام قيمة مكونة من ثلاثة أرقام لتحديد الإذن. يمثل الرقم الموجود في أقصى اليسار المالك (u)، ويمثل الرقم الأوسط أعضاء المجموعة (g). يمثل الرقم الموجود في أقصى اليمين الأرقام الأخرى (o).

يمثل الجدول التالي الأرقام وأذوناتها:

أرقام الأذونات
000 لا يوجد إذن
001 تنفيذ إذن
010 إذن الكتابة
011 كتابة وتنفيذ الأذونات
100 قراءة إذن
101 قراءة وتنفيذ الأذونات
110 أذونات القراءة والكتابة
111 قراءة وكتابة وتنفيذ الأذونات

وسائط رمزية

أيضًا، يقبل الأمر chmod التدوين الرمزي الدقيق، والذي يسمح بتغيير أوضاع معينة. يتكون الوضع الرمزي من ثلاثة عناصر، يتم دمجها لتكوين سلسلة نصية واحدة:

 $ chmod [references] [operator] [modes] file... 

يطبق برنامج chmod عامل تشغيل لتحديد كيفية ترتيب أوضاع الملف. تمت الموافقة على المشغلين أدناه:

المشغل أو العامل وصف
+ ويضيف الموصوف إلى الفئات الموصوفة.
- يقوم بإزالة الوضع الموصوف من الفئات الموصوفة.
= إنه يمثل أن الأوضاع الموصوفة سيتم إنشاؤها بنفس الأوضاع للفئات الموصوفة.

تمثل الأوضاع الأذونات التي سيتم إزالتها أو منحها من الفئات الموصوفة. هناك ثلاثة أوضاع شائعة تتعلق بالأذونات العامة:

اسم وضع وصف
يقرأ ص يقرأ ملفًا أو يسرد محتويات الدليل.
يكتب في يكتب إلى دليل أو ملف.
ينفذ س يتكرر شجرة الدليل أو ينفذ ملفًا.
تنفيذ خاص X إنه ليس إذنًا ولكن بدلاً من ذلك يمكن استخدامه بدلاً من x. يستخدم أذونات التنفيذ للأدلة على الرغم من أذوناتها الحالية ويستخدم أذونات التنفيذ لملف يحتوي على مجموعة بت لأذونات التنفيذ على الأقل. يكون ذلك مفيدًا إذا تم استخدامه مع عامل التشغيل '+' وبدون تعيين إذن التنفيذ الذي سيحدث إذا استخدمنا للتو chmod -R a+rx .، بينما يمكننا تنفيذ chmod -R a+rx . مع x بدلاً من ذلك.

يمكن وصف التعديلات المتعددة عن طريق عزل أوضاع رمزية متعددة مع الفواصل. سيقوم الأمر chmod بفحص الملف umask إذا لم يتم تحديد المستخدم.

أوضاع خاصة

كما يمكن لأمر chmod أيضًا تغيير الأوضاع الخاصة والأذونات الإضافية للدليل أو الملف. تطبق الأوضاع الرمزية 's' للإشارة إلى وضعي setgid وsetuid و't' للإشارة إلى الوضع الثابت. يتم استخدام الوضع فقط للفئات الصحيحة، بغض النظر عما إذا تم ذكر الفئات الأخرى أم لا.

تدعم جميع أنظمة التشغيل تقريبًا مواصفات الوضع الخاص عدديًا، وتحديدًا النظام الثماني، لكن القليل منها لا يدعمها. يمكن تطبيق الأوضاع الرمزية فقط على هذه الأنظمة.

بعض الأمثلة على سطر الأوامر:

يأمر وصف
chmod a+r publicComments.txt سيضيف إذن القراءة لكل فئة (أي المجموعة والمالك وغيرهم).
chmod a-x publicComments.txt سيؤدي إلى إزالة إذن التنفيذ لكل فئة.
chmod a+rx viewer.sh سيضيف أذونات التنفيذ والقراءة لكل فئة.
chmod u=rw, g=r, o=internalPlan.txt سيقوم بتعيين أذونات الكتابة والقراءة للمستخدم، وقراءة المجموعة، ورفض الوصول للآخرين.
chmod -R u+w, go-w docs سيتم تضمين إذن الكتابة في مستندات الدليل وكل محتوياته للمالك وحذف إذن الكتابة للآخرين والمجموعة.
chmod و=rw groupAgreements.txt سيقوم بتعيين أذونات الكتابة والقراءة للمجموعة والمستخدم.
شمود 664 global.txt سيقوم بتعيين أذونات الكتابة والقراءة للمجموعة والمستخدم ويمنح إذن القراءة للآخرين.
شمود 744 Show_myCV.sh سيقوم بتعيين أذونات التنفيذ والكتابة والقراءة للمستخدم ويمنح إذن القراءة للمجموعة والآخرين.