يستخدم OpenClawDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/fs-safe لعمليات الملفات المحلية الحساسة أمنيًا: عمليات القراءة/الكتابة المحدودة بالجذر، والاستبدال الذري، واستخراج الأرشيفات، ومساحات العمل المؤقتة، وحالة JSON، والتعامل مع ملفات الأسرار.
الهدف هو توفير حاجز مكتبي ثابت لكود OpenClaw الموثوق الذي يتلقى أسماء مسارات غير موثوقة. هذا ليس صندوقًا رمليًا. ما تزال أذونات نظام ملفات المضيف، ومستخدمو نظام التشغيل، والحاويات، وسياسة الوكيل/الأداة تحدد نطاق التأثير الفعلي.
الافتراضي: لا يوجد مساعد Python
يعطّل OpenClaw مساعد Python الخاص بـ POSIX في fs-safe افتراضيًا. السبب:- يجب ألا يشغّل Gateway عملية Python جانبية مستمرة إلا إذا اختار المشغّل ذلك صراحة؛
- كثير من عمليات التثبيت لا تحتاج إلى التقوية الإضافية لتعديلات الدليل الأب؛
- إبقاء Python معطّلًا يجعل سلوك الحزمة/وقت التشغيل أكثر قابلية للتنبؤ عبر بيئات سطح المكتب، وDocker، وCI، والتطبيقات المضمّنة.
FS_SAFE_PYTHON_MODE وFS_SAFE_PYTHON.
ما يبقى محميًا بدون Python
مع إيقاف المساعد، لا يزال OpenClaw يستخدم مسارات Node في fs-safe من أجل:- رفض الإفلاتات عبر المسارات النسبية مثل
..، والمسارات المطلقة، وفواصل المسارات حيث لا يُسمح إلا بالأسماء؛ - حل العمليات عبر مقبض جذر موثوق بدلًا من فحوصات مخصصة مثل
path.resolve(...).startsWith(...); - رفض أنماط الروابط الرمزية والروابط الصلبة في واجهات API التي تتطلب هذه السياسة؛
- فتح الملفات مع فحوصات هوية عندما تُرجع واجهة API محتويات ملف أو تستهلكها؛
- كتابات ذرية عبر ملفات مؤقتة شقيقة لملفات الحالة/الإعدادات؛
- حدود البايت للقراءات واستخراج الأرشيفات؛
- أوضاع خاصة للأسرار وملفات الحالة حيث تتطلبها واجهة API.
ما يضيفه Python
على POSIX، يحتفظ المساعد الاختياري في fs-safe بعملية Python واحدة مستمرة، ويستخدم عمليات نظام ملفات نسبية إلى واصف ملف لتعديلات الدليل الأب مثل rename وremove وmkdir وstat/list وبعض مسارات الكتابة. يضيّق ذلك نوافذ السباق ضمن نفس UID حيث يمكن لعملية أخرى تبديل دليل أب بين التحقق والتعديل. إنه دفاع متعدد الطبقات للمضيفين حيث يمكن لعمليات محلية غير موثوقة تعديل الأدلة نفسها التي يعمل OpenClaw داخلها. إذا كان النشر لديك يتضمن هذا الخطر وكان وجود Python مضمونًا، فاستخدم:require بدلًا من auto عندما يكون المساعد جزءًا من وضعك الأمني؛ إذ إن auto يعود عمدًا إلى سلوك Node فقط إذا لم يكن المساعد متاحًا.
إرشادات Plugin والجوهر
- يجب أن يمر وصول الملفات الموجّه إلى Plugin عبر مساعدات
openclaw/plugin-sdk/*، وليسfsالخام، عندما يأتي المسار من رسالة، أو مخرجات نموذج، أو إعدادات، أو إدخال Plugin. - يجب أن يستخدم كود الجوهر أغلفة fs-safe المحلية ضمن
src/infra/*حتى تُطبّق سياسة عملية OpenClaw باتساق. - يجب أن يستخدم استخراج الأرشيفات مساعدات أرشيف fs-safe مع حدود صريحة للحجم، وعدد الإدخالات، والروابط، والوجهة.
- يجب أن تستخدم الأسرار مساعدات أسرار OpenClaw أو مساعدات الأسرار/الحالة الخاصة في fs-safe؛ لا تنشئ فحوصات أوضاع يدوية حول
fs.writeFile. - إذا كنت تحتاج إلى عزل عن مستخدم محلي عدائي، فلا تعتمد على fs-safe وحده. شغّل Gateways منفصلة تحت مستخدمي/مضيفي نظام تشغيل منفصلين أو استخدم العزل الرملي.