
Drop: صندوق رمل لينكس بدون root مع دعم gVisor
Drop صندوق رمل مفتوح المصدر لنظام لينكس يعزل البرامج ووكلاء البرمجة في بيئات مؤقتة. لا يحتاج إلى root، ويستخدم التوزيعة المثبّتة بدلاً من الحاويات، ويمكنه تشغيل البرامج على نواة فضاء المستخدم في gVisor.
Drop صندوق رمل (sandbox) مفتوح المصدر لنظام لينكس يعزل البرامج ووكلاء البرمجة في بيئات مؤقتة من دون الانتقال إلى الحاويات. نُشر المشروع على الموقع droprun.sh، وشيفرته متاحة على GitHub، وظهر على Hacker News كمشاركة Show HN. ويعالج Drop المسألة نفسها التي تعالجها Docker وPodman بمقاربة أخف بكثير.
عزل من دون root
سير العمل مستوحى من virtualenv في بايثون: تنشئ بيئة، تدخل إليها وتعمل بشكل معتاد، لكن نظام التشغيل هو الذي يفرض العزل. لا يحتاج Drop إلى root. تعمل كل بيئة داخل user namespace في لينكس مع فضاءات أسماء خاصة للعمليات والتحميل والشبكة وIPC وcgroup، وقبل تشغيل أي برنامج معزول يسقط Drop كل قدرات user namespace، فلا يمكنه تنفيذ عمليات متميزة مثل bind mount.
لكل بيئة دليل منزل دائم خاص بها، بينما يُخفى الدليل المنزلي الأصلي. تُعرض أدلة النظام من المضيف للقراءة فقط، ويبقى /var و/tmp خاصين، ولا تتاح إلا أجهزة أساسية قليلة، والوصول إلى الخدمات التي تستمع على localhost مرفوض افتراضياً؛ وتتولى pasta إدارة الشبكة.
الاستخدامات
الاستخدام الأساسي هو وكلاء البرمجة. تشغيل وكيل من دون طلبات إذن أقل خطورة عندما يفرض نظام التشغيل، لا النموذج، الحدود: أمر rm -rf ~ الناتج عن خطأ لا يمس الدليل المنزلي الحقيقي، وحقن الأوامر الموجّه إلى ~/.ssh لا يجد شيئاً. الاستخدام الثاني برامج الأطراف الثالثة: حزمة من PyPI أو npm تعمل داخل بيئة، فتبقى آثار إصدار خبيث أو مخترق في الداخل.
على خلاف محركات الحاويات، يستخدم Drop التوزيعة المثبّتة أصلاً على الجهاز: لا صورة تحتاج إلى بناء ولا إعداد حاويات، وبرامج المضيف متاحة كما هي. يحدّد ملف TOML الملفات والأدلة وخدمات الشبكة المحلية التي ستُعرض، وتتشارك جميع البيئات إعداداً أساسياً واحداً افتراضياً.
gVisor والتثبيت
يتوفر وقتا تشغيل: الوضع الافتراضي native يشغّل البرامج مباشرة على نواة المضيف عبر فضاءات الأسماء، بينما يشغّلها gvisor إضافة على نواة فضاء المستخدم الخاصة بـ gVisor كي لا تصل نداءات النظام مباشرة إلى النواة. يتطلب ذلك تثبيت runsc، ويُختار الوضع في ملف TOML (runtime = "gvisor") أو لأمر واحد. يضيف gVisor كلفة على نداءات النظام وليس متوافقاً تماماً مع النواة الاعتيادية. ويحتاج التثبيت إلى حزمة passt/pasta؛ في Ubuntu 24 يجب أن يسمح ملف AppArmor للبرنامج drop باستخدام user namespace، وفي Fedora يجب توسيع سياسة SELinux كي تتمكن pasta من فتح ملفات فضاءات الأسماء.
القيود
Drop أداة طرفية: لا تعمل البرامج ذات الواجهة الرسومية بالإعداد الافتراضي، وكشف مقابس X يمنح صلاحيات واسعة أكثر من اللازم، ولا يمكن تشغيل الصوت أو تسجيله. لا تعمل برامج setuid إطلاقاً، والبرامج التي تعتمد بنفسها على user namespace مثل Podman أو تطبيقات Snap غير مدعومة.
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.