Chroot
chroot
هو أمر وبرمجية في أنظمة التشغيل Unix وأنظمة التشغيل الشبيهة بـ Unix، يتيح تغيير دليل الجذر الظاهري للعملية الحالية والعمليات المتفرعة عنها. البرنامج الذي يعمل في بيئة معدلة كهذه لا يستطيع الوصول إلى الملفات خارج شجرة الدليل المحددة. يشير مصطلح "chroot" إما إلى نداء النظام chroot(2) أو إلى برمجية التغليف chroot(8). تُعرف هذه البيئة المعدلة باسم سجن chroot (بالإنجليزية: chroot jail).
تاريخ
عدلأُضيفَ الأمر chroot
في 1979 كجزء من نظام يونكس السابع، بواسطة بيل جوي.[3] صُممَ في الأساس لإنشاء بيئات معزولة للاختبار وَالتطوير عن طريق تغيير الدليل الجذري الظاهر للعملية. في الثمانينيات وَالتسعينيات، اكتسبَ شعبية كبيرة لتأمين الخدمات مثل بروتوكول نقل الملفات عن طريق حصرها في "سجن chroot
"، مما يحد من الوصول إلى بقية النظام.
وَمع ذلك، للأمر chroot
بعض القيود، خصوصاً في مجال الأمان، حيث يمكن للمستخدمين ذوي صلاحيات الجذر تجاوز السجن. ظهرت بدائل حديثة مثل دوكر وَالآلات الافتراضية التي توفر عزلاً أقوى، لكن لا يزالُ chroot
مفيداً في استعادة الأنظمة وَالمهام الخفيفة للعزل. على الرغم من قيوده، لا يزال جزءاً من أنظمة التشغيل المبنية على يونكس حتى الآن.
الاستخدامات
عدليمكن استخدام بيئة chroot لإنشاء واستضافة نسخة افتراضية منفصلة من النظام البرمجي. قد يكون هذا مفيدًا في الحالات التالية:
- الاختبار والتطوير: يمكن إعداد بيئة اختبار داخل chroot لتجربة البرامج التي قد تكون محفوفة بالمخاطر إذا تم نشرها مباشرة على النظام الإنتاجي.
- التحكم في التبعية (بالإنجليزية: Dependency control): يمكن تطوير البرامج وبناؤها واختبارها في بيئة chroot تحتوي فقط على التبعيات المطلوبة. يساعد ذلك في منع بعض أنواع الأخطاء التي تنتج عن اختلاف المكتبات البرمجية المثبتة في بيئات التطوير المختلفة.
- التوافق: قد يتطلب تشغيل البرمجيات القديمة أو تلك التي تعتمد على ABI مختلفًا استخدام chroot، حيث أن مكتبات الدعم أو ملفات البيانات قد تتعارض مع نظيراتها في نظام التشغيل الأساسي.
- الاسترداد (بالإنجليزية: Recovery): في حالة تعطل النظام وعدم القدرة على إقلاعه، يمكن استخدام chroot للعودة إلى البيئة التالفة بعد الإقلاع من نظام ملفات جذر بديل (مثل وسائط التثبيت أو قرص حي).
- فصل الامتيازات (بالإنجليزية: Privilege separation): يسمح chroot للبرامج بحمل مؤشرات الملفات المفتوحة (بالإنجليزية: File descriptor)(مثل الملفات، أو الأنابيب (بالإنجليزية: Pipeline) أو اتصالات الشبكة) إلى داخل بيئة chroot. يُسهل هذا تصميم السجن الافتراضي لأنه يصبح غير ضروري ترك ملفات العمل داخل دليل chroot. كما يبسط عملية تشغيل أجزاء البرنامج الحساسة في بيئة معزولة، لمنع حدوث اختراق أمني. يُلاحظ أن chroot وحده ليس كافيًا دائمًا لاحتواء عملية ذات امتيازات الجذر (root).
المراجع
عدل- ^ ا ب وصلة مرجع: http://mdoc.su/-/chroot.2.
- ^ ا ب وصلة مرجع: http://mdoc.su/-/chroot.8.
- ^ "jail, section 9". docs.freebsd.org. مؤرشف من الأصل في 2017-01-05. اطلع عليه بتاريخ 2016-03-14.