العمل مع قدرات لينكس

المقدمة

إمكانات Linux هي سمات خاصة في نواة Linux تمنح العمليات والملفات التنفيذية الثنائية امتيازات محددة محفوظة عادةً للعمليات التي يكون معرف المستخدم الفعال فيها 0 (المستخدم الجذر ، والمستخدم الأساسي فقط ، لديه UID 0).

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

المتطلبات الأساسية

  • نظام Linux يكون لديك وصول الجذر إليه (إما عبر مستخدم الجذر أو مستخدم لديه وصول sudo).

تفسير

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

يمكن تعيين القدرات على العمليات والملفات القابلة للتنفيذ. يمكن للعملية الناتجة عن تنفيذ ملف اكتساب قدرات هذا الملف.

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

  • CAP_CHOWN: قم بإجراء تغييرات على معرف المستخدم ومعرف المجموعة للملفات
  • CAP_DAC_OVERRIDE: تجاوز DAC (التحكم في الوصول التقديري). على سبيل المثال ، vto تجاوز تجاوزات إذن القراءة / الكتابة / التنفيذ.
  • CAP_KILL: التحقق من إذن التجاوز لإرسال إشارات إلى العمليات.
  • CAP_SYS_NICE: رفع رقة العمليات ( يمكن العثور على شرح لجمال هنا )
  • CAP_SYS_TIME: تعيين النظام وساعة الأجهزة في الوقت الحقيقي

للحصول على القائمة الكاملة ، قم بتشغيل man 7 capabilities.

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

عند ضبط القدرات في الملف ، سنستخدم دائمًا "المسموح به" و "الفعال" ، على سبيل المثال CAP_DAC_OVERRIDE+ep. لاحظ +ep، الذي يشير إلى المجموعات المذكورة أعلاه.

العمل مع قدرات الملف

الحزم المطلوبة

هناك نوعان من الأدوات الرئيسية، getcapو setcapالتي يمكن عرضها على التوالي وتعيين هذه الصفات.

  • على Debian و Ubuntu ، يتم توفير هذه الأدوات بواسطة libcap2-binالحزمة ، والتي يمكن تثبيتها مع:apt install libcap2-bin
  • في CentOS و Fedora ، تكون libcapالحزمة مطلوبة:yum install libcap
  • في Arch Arch ، يتم توفيرها libcapأيضًا من خلال:pacman -S libcap

قدرات القراءة

لمعرفة ما إذا كان الملف يحتوي على أي قدرات ، يمكنك ببساطة تشغيل getcap /full/path/to/binary، على سبيل المثال:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

إذا كنت ترغب في معرفة الإمكانيات التي تم تعيينها بالفعل على نظامك ، فيمكنك البحث في نظام الملفات بالكامل بشكل متكرر باستخدام الأمر التالي:

getcap -r /

نظرًا لحقيقة أن أنظمة الملفات الظاهرية (مثل /proc) لا تدعم هذه العمليات ، فإن الأمر أعلاه سينتج آلاف الأخطاء ، لذلك للحصول على إخراج أنظف ، استخدم ما يلي:

getcap -r / 2>/dev/null 

تعيين وإزالة القدرات

لتعيين قدرة معينة على ملف ، استخدم setcap "capability_string" /path/to/file.

لإزالة جميع القدرات من ملف ، استخدم setcap -r /path/to/file.

من أجل العرض التوضيحي ، سننشئ ملفًا فارغًا في الدليل الحالي ونمنحه إمكانية وإزالته. ابدأ بما يلي:

root@demo:~# touch testfile
root@demo:~# getcap testfile

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

بعد ذلك ، قم بتعيين قدرة للملف:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

تم استخدام "CAP_CHOWN + ep" كمثال ، ولكن يمكن تعيين أي طريقة أخرى بهذه الطريقة.

الآن ، قم بإزالة كافة القدرات من testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

مرة أخرى ، لن يكون هناك إخراج ، لأنه تمت إزالة "CAP_CHOWN + ep".

استنتاج

للقدرات العديد من الاستخدامات المحتملة ويمكن أن تساعد في تشديد أمان أنظمتك. إذا كنت تستخدم بت SUID على الملفات التنفيذية الخاصة بك ، ففكر في استبدالها بالقدرة المحددة المطلوبة.



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

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

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

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

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد