الانتقال إلى المحتوى
الأدلة

أداة exec في OpenClaw

واجهة shell قادرة على التعديل مع حل المضيف بين sandbox وgateway وnode، وأوضاع السياسة الخمسة من deny إلى full، والمراجع التلقائي، والتقييم المضمن الصارم، ومعالجة المسار، والتجاوزات لكل جلسة

مدة القراءة: ⁨8⁩ د

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

المعاملات ومكان التشغيل

  • الأمر هو المعامل الإلزامي الوحيد؛ وتكمل الواجهة معاملات أخرى: مجلد العمل، وتجاوزات متغيرات البيئة، ومهلة انتظار قبل النقل إلى الخلفية، وعلامة للتشغيل في الخلفية فورًا، ومهلة لكل استدعاء بالثواني، وعلامة طرفية زائفة (pseudo-terminal) للبرامج التي لا تعمل إلا في طرفية، ووضع ask، ومحدد للعقدة، وعلامة elevated؛ والمهلة التي قيمتها صفر تعطل مهلة العملية في ذلك الاستدعاء.
  • لا يقبل المعامل host إلا auto أو sandbox أو gateway أو node، وهو ليس محددًا لاسم المضيف؛ ترث القيمة auto المضيف المضبوط بما في ذلك تجاوزات الوكيل والجلسة، وعندما يكون هذا أيضًا auto فإنه يحل إلى البيئة المعزولة عندما تكون بيئة تشغيل معزولة نشطة وإلى gateway في غير ذلك، بينما تبقى الجلسة التي تتطلب بيئة معزولة داخلها في كل الأحوال.
  • ما دامت بيئة تشغيل معزولة نشطة، تبقي القيمة auto الأداة exec داخل البيئة المعزولة وترفض تجاوزات gateway أو node لكل استدعاء، لذا فإن فرض أي منهما يعني ضبط المضيف في الإعدادات صراحة؛ ويحتاج التشغيل على عقدة إلى عقدة مقترنة ومتصلة تدعم أمر التشغيل، وعندما تتصل عدة عُقد مؤهلة يجب تحديد هدف في الإعدادات أو لكل جلسة.
  • يرفض التنفيذ على المضيف تجاوزات متغيرات البيئة الخاصة بالمسار والمحمل لمنع اختطاف الملفات التنفيذية، ويوحد تجاوز أداة عرض الصفحات (pager) إلى قيمة فارغة بدلًا من تمرير اسم ملف تنفيذي، ويضبط متغيرًا مميزًا لتتمكن ملفات تعريف shell من اكتشاف سياق exec، وعلى gateway يدمج مسار shell تسجيل الدخول مع تحميل لقطة بدء تشغيل ملتقطة تستبعد المتغيرات التي تبدو أسرارًا.
exec واجهة shell قادرة على التعديل: يمكن للأوامر إنشاء الملفات أو تعديلها أو حذفها حيثما يسمح المضيف المحدد أو نظام ملفات البيئة المعزولة.

الأوضاع الخمسة والمراجع

المفتاح mode هو أداة التحكم المرجعية في السياسة، وكل ما عداه مشتق منه. يحظر deny الأداة exec تمامًا. ويشغل allowlist الأوامر المدرجة في قائمة السماح أو أوامر safe-bin فقط، ولا يسأل عن شيء. ويشغل ask المطابقات مع قائمة السماح مباشرة ويرسل كل ما عداها إلى إنسان. ويشغل auto المطابقات مباشرة ويسلم الحالات المؤهلة غير المطابقة إلى مراجع أصلي يعيد allow أو deny أو ask، حيث تشغل allow الأمر منخفض الخطورة أو متوسطها مرة واحدة، وتعيد deny سببًا يجب على الوكيل احترامه لا الالتفاف عليه، وثلاث حالات رفض متتالية في جلسة واحدة تصعد الأمر الثالث إلى إنسان. ويعمل full دون مطالبات السياسة العادية، والتنفيذ على المضيف دون موافقة هو الافتراضي في gateway وnode بسبب القيم الافتراضية لسياسة المضيف، لا بسبب المضيف auto. وعلى gateway يجب أن تجتاز الأوامر فحوص ربط الملفات القابلة للتغيير قبل المراجعة: تربط سلسلة الإطلاق كاملة وقت المراجعة ويعاد التحقق منها قبل الإطلاق، الملفات التنفيذية المحمية بمسارها الحقيقي المحلول، والقابلة للكتابة بتجزئة محتواها أيضًا، لذا فإن ظهور ملف تنفيذي جديد في موضع أسبق من مسار البحث يؤدي إلى رفض التشغيل الذي تمت الموافقة عليه. أما مغلفات أوامر shell وتعيينات متغيرات البيئة وغيرها من السلاسل التي لا يمكن ربطها فتتخطى المراجع وتسلك بدلًا منه مسار الموافقة البشرية لمرة واحدة.

التقييم المضمن والمسارات والجلسات

  • التقييم المضمن الصارم خيار منفصل يفعل صراحة، وهو معطل افتراضيًا: عندما يجري التقييم العادي لموافقة المضيف، يشترط موافقة المراجع أو موافقة صريحة لصيغ المفسرات المضمنة المعروفة حتى عندما تسمح السياسة بالقيمتين full وoff، ويشمل ذلك علامات eval في المفسرات والأدوات الناقلة الشائعة، ولا تتحول صيغ التقييم المضمن أبدًا إلى قواعد سماح دائمة.
  • تختلف معالجة المسار حسب المضيف: يدمج gateway مسار shell تسجيل الدخول ويضيف المجلدات المضبوطة في بدايته بأمان قبيل التنفيذ مباشرة، وتشغل البيئة المعزولة shell تسجيل دخول داخل الحاوية، لذا قد يعيد ملف التعريف ضبط المسار، وتضاف الإدخالات المضبوطة في بدايته بعد تحميل ملف التعريف، أما الأجهزة المضيفة للعُقد فتتجاهل تجاوزات المسار كليًا، لذا فمكان الإدخالات الإضافية هو بيئة خدمة العقدة.
  • يضبط أمر الجلسة القيم الافتراضية لمكان التشغيل لكل جلسة، بينما لا تنطبق security وask إلا على الرسالة الحالية؛ ولا يؤخذ به إلا من المرسلين المخولين، ويمكن للمرسلين الخارجيين حفظ القيم الافتراضية لمكان التشغيل بينما يحتاج العملاء الداخليون إلى نطاق إداري، وعندما يكون للجلسة وضع أذونات فإن التجاوز لكل جولة لا يستطيع إلا تشديده، ولا يخففه أبدًا.

يشرح مقال موافقات التنفيذ في OpenClaw مسار الموافقة الذي تغذيه هذه الأوضاع، ويشرح مقال موافقات التنفيذ المتقدمة في OpenClaw قواعد safe-bin والربط التي تقف خلفها.

خطآن شائعان

الأول هو افتراض أن أدوات الملفات هي واجهة الكتابة: فتعطيلها لا يجعل exec للقراءة فقط، لأن shell يكتب حيثما يسمح المضيف المحدد. والثاني هو افتراض أن البيئة المعزولة مفعلة: فهي معطلة افتراضيًا، لذا يحل المضيف auto الضمني إلى gateway، بينما يرفض طلب sandbox الصريح التنفيذ (fail closed) بدلًا من التشغيل على المضيف بصمت. ومن المفيد معرفة الأداة الفرعية للتصحيح المنظم (structured patch) للسبب نفسه، إذ إن السماح بالأداة write يسمح بها ضمنيًا، بينما رفض write لا يرفضها. والتعطيل الكامل للأداة exec قرار يخص سياسة الأدوات، وخارج جلسة الوصول الكامل تظل الحدود الدنيا لموافقة المضيف سارية. يوضح دليل البيئة المعزولة في OpenClaw العزل، ويوضح مقال المهارات في OpenClaw ملفات التعليمات التي تقود هذه الأوامر عادة.

على Diali

على Diali يعمل كل مساعد في محركه الخاص، مع إعدادات تولد من لوحة التحكم وتستبدل عند كل إصدار، لذا فإن shell الذي يصل إليه الوكيل هو محرك ذلك العميل ولا شيء غيره. OpenClaw المستضاف على Diali يصف المساعد المستضاف، والأمان في Diali يصف الحدود المحيطة به.

  • تعطيل أدوات الملفات لا يجعل shell للقراءة فقط.
  • البيئة المعزولة معطلة افتراضيًا؛ لذا تعني auto عندها gateway.
  • التجاوزات لكل جولة تشدد السياسة، ولا تخففها أبدًا.
ابدأ الآن

كفاك قراءة، ابنِ وكيلك الخاص

جهز وكيلًا، واختر قناة، واجعله يعمل داخل التطبيق المفتوح لديك دائمًا.