ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

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

a-hand-using-a-laptop-and-linux-mascot-coming-out-of-the-screen-with-a-gear-and-some-files-behind-scaled ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

الملخص

  • يحدد بت التنفيذ ما إذا كان يتم منح الإذن لتشغيل ملف كبرنامج أو نص برمجي أم لا.
  • يحدد تعيين بت التنفيذ على دليل ما قدرة الوصول، مما يسمح بالدخول والوصول إلى الملفات.
  • إن فهم أذونات الملفات والتلاعب بها باستخدام أوامر مثل stat وchmod أمر ضروري لمستخدمي Linux.

إن نظام أذونات الملفات الأساسي في Linux بسيط وقوي، وليس من المستغرب أنه ظل سليمًا لأكثر من 50 عامًا. لكن بت التنفيذ عنصر مربك، وهو عنصر يستحق الفهم بالتفصيل.

طالع أيضا
1 من 73

ما هو بت التنفيذ وكيف يمكنني معرفة ما هو؟

يحتوي كل ملف على نظام Linux على مجموعة من الأذونات التي تتحكم في ما يمكن القيام به به: هل يمكن قراءته أو كتابته أو تنفيذه؟ هناك ثلاثة مستويات من المستخدمين، ولكل منها مجموعة خاصة من الأذونات: مالك الملف (المستخدم)، وأعضاء المجموعة التي تمتلك الملف، وكل شخص آخر (آخرون). تمنحنا هذه الإجراءات الثلاثة والأنواع الثلاثة من المستخدمين ما مجموعه تسعة أذونات لكل ملف:

اقرأ أيضا:  تشغيل Adobe Photoshop على Linux باستخدام Wine

unix-permissions ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

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

إن أذونات القراءة والكتابة واضحة إلى حد ما، ولكن “بت التنفيذ” أكثر غموضًا وسحرًا. ومع ذلك، بمجرد فهمه، فإنه واضح إلى حد ما ومفيد بشكل خاص عندما تحتاج إليه.

يمكنك فحص أذونات الملف باستخدام أداة مثل ls أو stat. حاول تشغيل ls -l على ملف على نظامك، وسترى شيئًا مثل التالي:

linux-ls-l-1 ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

هناك الكثير من المعلومات حول الملف هنا، لكن الأذونات هي مجرد مجموعة من الحروف في البداية. في هذه الحالة، تعني “rwxr-xr-x” أنه بينما يمكن لمالك الملف فقط الكتابة إليه، يمكن لأي شخص آخر قراءته وتنفيذه. ستسمع مصطلح “بت التنفيذ”، لكن في الحقيقة، هناك ثلاثة بتات تنفيذ لكل ملف.

ماذا يفعل بت التنفيذ بالملف؟

الغرض الرئيسي من بت التنفيذ هو التحكم فيما إذا كان يمكنك تشغيل ملف كبرنامج أو نص برمجي أم لا. إذا أدخلت اسم ملف على سطر الأوامر، فستحاول واجهة المستخدم تنفيذه. ستؤدي محاولة تنفيذ ملف بيانات مثل مستند أو صورة إلى حدوث خطأ في الأذونات:

linux-execute-error ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

يرجع هذا إلى عدم تعيين بت التنفيذ على مثل هذا الملف. ومع ذلك، فإن بت التنفيذ ليس سحرًا؛ فلا يمكنك تحريك عصا chmod الخاصة بك على ملف صورة وتحويله إلى برنامج قابل للتنفيذ:

linux-execute-image ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

لا يمكنك تنفيذ ملف إلا إذا كان من نوع معين. وبصورة عامة، هناك نوعان من الملفات التي يمكنك تشغيلها مباشرة على Linux:

  • ملف قابل للتنفيذ ثنائي: هذا ملف تم تجميعه من كود المصدر وتعبئته لهندسة معينة، باستخدام تعليمات كود الآلة لتنفيذ مهمته. يمكنك تجميع مثل هذا البرنامج من المصدر، أو تنزيله، أو تثبيته باستخدام مدير الحزم.
  • ملف نصي: هذا ملف نصي مكتوب بلغة يمكن قراءتها بواسطة الإنسان ويمكن تشغيله باستخدام برنامج آخر، وهو مفسّر. قد يكون نصًا برمجيًا أو برنامجًا بلغة برمجة نصية مثل Perl أو PHP.

عند تشغيل ملف نصي مباشرةً، عن طريق كتابة مساره، يقرر غلافك المفسّر الذي يجب استخدامه بناءً على سطر النص البرمجي. على سبيل المثال، قد يبدأ نص Python بهذا السطر:

#!/usr/bin/python

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

اقرأ أيضا:  أوامر لينكس الأساسية لإدارة الملفات بسهولة

من المهم أن نفهم أن بت التنفيذ ليس طريقة مضمونة لمنع التنفيذ. خذ نص الواجهة هذا كمثال:

#!/bin/sh
echo "pretend this script does something dangerous like rm -rf / ..."

ربما تعتقد أن إزالة إذن التنفيذ يحافظ على سلامتك:

linux-execute-denied ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

ومع ذلك، ضع في اعتبارك الحالة التالية:

linux-script-danger ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

كارثة! يتم تشغيل البرنامج النصي الآن لأن:

يمكن لأي شخص تنفيذ برنامج /bin/sh.

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

ماذا يفعل بت التنفيذ بدليل؟

يعمل بت التنفيذ بشكل مختلف تمامًا عند تعيينه على دليل. بعد كل شيء، لا يمكن أن يكون الدليل برنامجًا، لذلك لا معنى لتنفيذه. بدلاً من ذلك، يحدد بت التنفيذ ما إذا كان يمكنك الدخول إلى دليل والوصول إلى ملفاته.

مع تعيين بت التنفيذ على دليل، يمكنك استخدام الأمر cd للدخول إليه والأمر ls لعرض تفاصيل محتوياته:

linux-enter-list-directory ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

ومع ذلك، إذا قمت بإزالة هذا الإذن، فلن تتمكن بعد الآن من الدخول إلى هذا الدليل أو عرض تفاصيل الملفات الموجودة بداخله:

linux-dir-no-execute ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

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

اقرأ أيضا:  كيفية استيراد ملفات OVA وتصديرها في برنامج VirtualBox

يمكن أن يؤدي هذا إلى أخطاء مربكة إذا كان لديك اسم مستعار للأمر. على سبيل المثال، في نظام Ubuntu الخاص بي، يتم استخدام اسم مستعار لأمر ls إلى ls –color، والذي يستخدم بيانات ملف معينة لتلوين ناتجه. في دليل غير قابل للتنفيذ، ينتج عن هذا أخطاء:

 

linux-ls-perms ما هو بت التنفيذ في أنظمة Linux ولماذا هو مهم؟

ولكن بدون هذا الخيار، يعمل الأمر ls بشكل جيد على مثل هذا الدليل لأنه لا يحتاج إلا إلى عرض أسماء الملفات.

كيف يمكنني استخدام وتغيير بت التنفيذ؟

إذا كنت بحاجة إلى التركيز فقط على أذونات الملف، فيمكنك استخدام الأمر stat للحصول على نتائج أكثر دقة من الأمر ls. يتيح لك خيار -c في برنامج stat تحديد تنسيق لاستخراج البيانات الوصفية الدقيقة التي تحتاجها. على سبيل المثال، لإظهار أذونات الملف فقط إلى جانب اسمه، استخدم هذا التنسيق:

stat -c "%a %n"

ملاحظة
ستحتاج إلى تعديل هذا الأمر على نظام macOS الذي يستخدم إصدار BSD من stat بدلاً من إصدار Linux GNU:

stat -f "%Sp %N"

إذا كنت تريد فقط سلسلة الأذونات، فيمكنك إسقاط “%n”، أي:

stat -c "%a"

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

stat -c "%a" ~/home/projects/all/*/* | sort | uniq -c | sort

يمكنك تغيير أذونات الملف باستخدام الأمر chmod. إن بناء جملة الأمر chmod بالكامل معقد للغاية لأنه أداة قوية. ومع ذلك، إذا تذكرت الإجراءات الأساسية القائمة على الحروف والاختصارات (u=user/owner، g=group، o=other، a=all)، فسيكون من السهل استخدامه.

لجعل الملف قابلاً للتنفيذ بواسطة أي شخص، استخدم هذا الأمر:

chmod a+x file

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

chmod a-x file

بت التنفيذ في Linux هو جزء أساسي من نظام إدارة الملفات، حيث يحدد ما إذا كان يمكن تنفيذ الملف كبرنامج أم لا. فهم هذه الأذونات وإدارتها بشكل صحيح يمكن أن يحسن من أمان وكفاءة نظامك. جرب الأوامر التي قدمناها في هذه المقالة وشاركنا تجربتك: هل واجهت أي تحديات في إدارة الأذونات؟ وهل لديك نصائح أخرى لتضيفها؟ لا تنسَ مشاركة هذه المقالة مع الآخرين لتعميم الفائدة.

قد يعجبك ايضا