ذكري المظهر

أمر Chmod في نظام التشغيل Linux (أذونات الملفات)

Linux File Permissions: Commands with Examples - Linux Tutorial 6

Linux File Permissions: Commands with Examples - Linux Tutorial 6

جدول المحتويات:

Anonim

في Linux ، تتم إدارة الوصول إلى الملفات من خلال أذونات الملف وسماته وملكيته. هذا يضمن أن المستخدمين والعمليات المصرح لهم فقط يمكنهم الوصول إلى الملفات والدلائل.

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

أذونات ملفات Linux

قبل المضي قدمًا ، دعنا نوضح نموذج أذونات Linux الأساسية.

في نظام Linux ، يرتبط كل ملف بمالك ومجموعة ويتم تعيين حقوق إذن الوصول لثلاثة فئات مختلفة من المستخدمين:

  • صاحب الملف.أعضاء المجموعة.أخرى (الجميع).

يمكن تغيير ملكية الملف باستخدام الأوامر chown و chgrp .

هناك ثلاثة أنواع أذونات الملفات التي تنطبق على كل فئة:

  • إذن القراءة. إذن الكتابة. إذن التنفيذ.

يتيح لك هذا المفهوم تحديد المستخدمين المسموح لهم بقراءة الملف أو الكتابة إلى الملف أو تنفيذه.

يمكن عرض أذونات الملف باستخدام الأمر ls :

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type

يعرض الحرف الأول نوع الملف. يمكن أن يكون ملفًا عاديًا ( - ) أو دليلًا ( d ) أو رابطًا رمزيًا ( l ) أو أي نوع خاص آخر من الملفات.

الأحرف التسعة التالية تمثل أذونات الملف ، ثلاثة توائم من ثلاثة أحرف لكل منهما. يُظهر أول ثلاثة أشياء أذونات المالك ، وأذونات مجموعة واحدة ثانية ، وأخرى ثلاثية يعرض أذونات الجميع. يمكن أن يكون للأذونات معنى مختلف اعتمادًا على نوع الملف.

في المثال أعلاه ( rw-r--r-- ) يعني أن مالك الملف لديه أذونات القراءة والكتابة ( rw- ) ، المجموعة والآخرين لديهم أذونات القراءة فقط ( r-- ).

يمكن إنشاء كل من ثلاثة توائم إذن ثلاثة من الأحرف التالية ويكون لها تأثيرات مختلفة ، اعتمادًا على ما إذا تم تعيينها إلى ملف أو إلى دليل:

تأثير الأذونات على الملفات

الإذن حرف معنى في الملف
اقرأ - الملف غير قابل للقراءة. لا يمكنك عرض محتويات الملف.
r الملف قابل للقراءة.
كتابة - لا يمكن تغيير الملف أو تعديله.
w يمكن تغيير الملف أو تعديله.
نفذ - اعدم - لا يمكن تنفيذ الملف.
x يمكن تنفيذ الملف.
s إذا وجدت في user ثلاثة أضعاف فإنه يعين بت setuid . إذا وجدت في group ثلاثية ، فإنه يعين بت setgid . وهذا يعني أيضًا أنه تم تعيين علامة x .

عندما يتم تعيين إشارات setuid أو setgid على ملف قابل للتنفيذ ، يتم تنفيذ الملف باستخدام مالك الملف و / أو امتيازات المجموعة.

S مثل s ولكن لم يتم تعيين علامة x . نادراً ما يتم استخدام هذا العلم في الملفات.
t إذا وجدت في others ثلاثة أضعاف فإنه يحدد بت sticky .

وهذا يعني أيضًا أنه تم تعيين علامة x . هذا العلم لا طائل منه في الملفات.

T مثل t لكن العلم x غير مضبوط. هذا العلم لا طائل منه في الملفات.

تأثير الأذونات على الدلائل (المجلدات)

في Linux ، تعتبر الدلائل أنواعًا خاصة من الملفات التي تحتوي على ملفات وأدلة أخرى.

الإذن حرف معنى في الدليل
اقرأ - لا يمكن عرض محتويات الدليل.
r يمكن أن تظهر محتويات الدليل.

(على سبيل المثال ، يمكنك سرد الملفات داخل الدليل باستخدام ls .)

كتابة - لا يمكن تغيير محتويات الدليل.
w يمكن تغيير محتويات الدليل.

(على سبيل المثال ، لا يمكنك إنشاء ملفات جديدة ، وحذف الملفات.. إلخ.)

نفذ - اعدم - لا يمكن تغيير الدليل إلى.
x يمكن تصفح الدليل باستخدام cd .
s إذا وجدت في user الثلاثي ، فإنه يعين بت setuid . إذا وجدت في group ثلاثة أضعاف فإنه يعين بت setgid . وهذا يعني أيضًا أنه تم تعيين علامة x . عند تعيين علامة setgid على دليل ، ترث الملفات الجديدة التي تم إنشاؤها داخلها معرف مجموعة الدليل (GID) ، بدلاً من معرف المجموعة الأساسي للمستخدم الذي أنشأ الملف.

setuid له أي تأثير على الدلائل.

S مثل s ولكن لم يتم تعيين علامة x . هذا العلم لا طائل منه في الدلائل.
t إذا وجدت في others ثلاثة أضعاف فإنه يحدد بت sticky .

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

T مثل t لكن العلم x غير مضبوط. هذا العلم لا طائل منه في الدلائل.

باستخدام chmod

يأخذ الأمر chmod الشكل العام التالي:

chmod MODE FILE…

يسمح لك الأمر chmod بتغيير الأذونات على ملف باستخدام إما وضع رمزي أو رقمي أو ملف مرجعي. سنشرح الأوضاع بمزيد من التفاصيل لاحقًا. يمكن للأمر قبول واحد أو أكثر من الملفات و / أو الدلائل مفصولة بمسافة كوسائط.

فقط الجذر ، يمكن لمالك الملف أو المستخدم مع امتيازات sudo تغيير أذونات الملف. كن حذرًا عند استخدام chmod ، خاصة عند تغيير الأذونات بشكل متكرر.

الطريقة الرمزية (النص)

يحتوي بناء جملة الأمر chmod عند استخدام الوضع الرمزي على التنسيق التالي:

chmod perms… FILE…

المجموعة الأولى من الأعلام ( ) ، يقوم إشارات المستخدمين ، بتحديد المستخدمين الذين يقومون بتغيير أذونات الملف.

  • u - صاحب الملف. g - المستخدمين الذين هم أعضاء في المجموعة. o - جميع المستخدمين الآخرين. a - جميع المستخدمين ، مطابقة لـ ugo .

إذا تم حذف علامة المستخدمين ، فإن العلامة الافتراضية هي a ولن تتأثر الأذونات التي تم تعيينها بواسطة umask.

المجموعة الثانية من الأعلام ( ) ، علامات العملية ، تحدد ما إذا كان سيتم إزالة الأذونات أو إضافتها أو تعيينها:

  • - يزيل الأذونات المحددة. + يضيف الأذونات المحددة. = تغيير الأذونات الحالية إلى الأذونات المحددة. في حالة عدم تحديد أذونات بعد الرمز = ، تتم إزالة جميع الأذونات من فئة المستخدم المحددة.

يمكن تعيين الأذونات ( perms… ) بشكل صريح باستخدام صفر أو واحد أو أكثر من الأحرف التالية: r و w و x و X و s و t . استخدم حرفًا واحدًا من مجموعة u و g و o عند نسخ الأذونات من فئة إلى فئة مستخدمين أخرى.

عند تعيين أذونات لأكثر من فئات مستخدمين ( ) ، استخدم الفواصل (بدون مسافات) لفصل الأوضاع الرمزية.

فيما يلي بعض الأمثلة عن كيفية استخدام الأمر chmod في الوضع الرمزي:

  • امنح أعضاء المجموعة إذنًا لقراءة الملف ، ولكن ليس لكتابته وتنفيذه:

    chmod g=r filename

    إزالة إذن التنفيذ لجميع المستخدمين:

    chmod ax filename

    قم بإزالة إذن الكتابة للمستخدمين الآخرين:

    chmod -R ow dirname

    أزل إذن القراءة والكتابة والتنفيذ لجميع المستخدمين باستثناء مالك الملف:

    chmod og-rwx filename

    يمكن تحقيق نفس الشيء باستخدام النموذج التالي:

    chmod og= filename

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

    chmod u=rwx, g=r, o= filename

    أضف أذونات مالك الملف إلى الأذونات التي يتمتع بها أعضاء مجموعة الملف:

    chmod g+u filename

    أضف قليلا لزجة إلى دليل معين:

    chmod o+t dirname

الطريقة الرقمية

يحتوي بناء جملة الأمر chmod عند استخدام الطريقة الرقمية على التنسيق التالي:

chmod NUMBER FILE…

عند استخدام الوضع الرقمي ، يمكنك تعيين أذونات فئات المستخدمين الثلاثة (المالك والمجموعة وجميع الفئات الأخرى) في نفس الوقت.

يمكن أن يتكون NUMBER من 3 أو 4 أرقام.

عند استخدام رقم مكون من 3 أرقام ، يمثل الرقم الأول أذونات مالك الملف ، والثاني من مجموعة الملف وآخر آخر لكل المستخدمين الآخرين.

كل أذونات الكتابة والقراءة والتنفيذ لها قيمة الرقم التالية:

  • r (اقرأ) = 4 w (كتابة) = 2 x (تنفيذ) = 1no أذونات = 0

يتم تمثيل رقم أذونات فئة مستخدم معين بواسطة مجموع قيم أذونات تلك المجموعة.

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

  • المالك: rwx = 4 + 2 + 1 = 7Group: rx = 4 + 0 + 1 = 5 أخرى: rx = 4 + 0 + 0 = 4

باستخدام الطريقة المذكورة أعلاه نصل إلى الرقم 754 ، والذي يمثل الأذونات المطلوبة.

لإعداد إشارات sticky bit setuid و setgid sticky bit ، استخدم أربعة أرقام.

عند استخدام الرقم المكون من 4 أرقام ، يكون الرقم الأول ذا المعنى التالي:

  • setuid = 4setgid = 2sticky = 1no يتغير = 0

الأرقام الثلاثة التالية لها نفس المعنى عند استخدام رقم مكون من 3 أرقام.

إذا كان الرقم الأول يساوي 0 فيمكن حذفه ، ويمكن تمثيل الوضع بثلاثة أرقام. الوضع الرقمي 0755 هو نفس 755 .

لحساب الوضع الرقمي ، يمكنك أيضًا استخدام طريقة أخرى (الطريقة الثنائية) ، لكنها أكثر تعقيدًا. معرفة كيفية حساب الوضع الرقمي باستخدام 4 و 2 و 1 كافية لمعظم المستخدمين.

يمكنك التحقق من أذونات الملف في التدوين الرقمي باستخدام الأمر stat :

stat -c "%a" filename

644

فيما يلي بعض الأمثلة عن كيفية استخدام الأمر chmod في الوضع الرقمي:

  • امنح مالك الملف أذونات القراءة والكتابة وقراءته فقط لأعضاء المجموعة وجميع المستخدمين الآخرين:

    chmod 644 dirname

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

    chmod 750 dirname

    إعطاء أذونات القراءة والكتابة والتنفيذ ، وقليلًا من اللزوم إلى دليل معطى:

    chmod 1777 dirname

    قم بتعيين أذونات القراءة والكتابة والتنفيذ بشكل متكرر لمالك الملف وأي أذونات لجميع المستخدمين الآخرين في دليل محدد:

    chmod -R 700 dirname

باستخدام ملف مرجعي

يسمح لك الخيار --reference=ref_file بتعيين أذونات الملف لتكون مماثلة أذونات الملف المرجعي المحدد ( ref_file ).

chmod --reference=REF_FILE FILE

على سبيل المثال ، سيقوم الأمر التالي بتعيين أذونات file1 إلى file2

chmod --reference=file1 file2

بشكل متكرر تغيير أذونات الملف

للعمل بشكل متكرر على جميع الملفات والدلائل ضمن الدليل المحدد ، استخدم الخيار -R ( -R --recursive ):

chmod -R MODE DIRECTORY

على سبيل المثال ، لتغيير أذونات جميع الملفات والدلائل ضمن دليل /var/www إلى 755 يمكنك استخدام:

chmod -R 755 /var/www

تعمل على الروابط الرمزية

الارتباطات الرمزية دائما 777 أذونات.

بشكل افتراضي ، عند تغيير أذونات chmod ، سيغيّر chmod الأذونات على الملف الذي يشير إليه الارتباط.

chmod 755 symlink

هناك احتمالات أنه بدلاً من تغيير الملكية المستهدفة ، سوف تحصل على خطأ "لا يمكن الوصول إلى" symlink ": تم رفض الإذن".

يحدث الخطأ لأن الارتباطات الافتراضية في معظم توزيعات Linux محمية ، ولا يمكنك العمل على الملفات المستهدفة. هذا الخيار محدد في /proc/sys/fs/protected_symlinks . 1 يعني تمكين و 0 تعطيل. يوصى بعدم تعطيل حماية الارتباط الرمزي.

تغيير أذونات الملفات بكميات كبيرة

في بعض الأحيان تكون هناك مواقف قد تحتاج فيها إلى تغيير أذونات الملفات والدلائل بالجملة.

السيناريو الأكثر شيوعًا هو تغيير أذونات ملف موقع الويب بشكل متكرر إلى 644 وأذونات الدليل إلى 755 .

باستخدام الطريقة الرقمية:

find /var/www/my_website -type d -exec chmod 755 {} ; find /var/www/my_website -type f -exec chmod 644 {} ;

باستخدام الطريقة الرمزية:

find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ; find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;

سيبحث الأمر find عن الملفات والدلائل الموجودة تحت /var/www/my_website كل ملف ودليل تم العثور /var/www/my_website إلى الأمر chmod لتعيين الأذونات.

استنتاج

يغير الأمر chmod أذونات الملف. يمكن تعيين الأذونات باستخدام الوضع الرمزي أو الرقمي.

لمعرفة المزيد حول chmod تفضل بزيارة صفحة chmod man.

محطة chmod