gateway أو node). وهي
قفل أمان: لا تُسمح الأوامر إلا عندما تتفق السياسة + قائمة السماح +
موافقة المستخدم (الاختيارية) كلها. تُطبَّق موافقات تنفيذ الأوامر فوق
سياسة الأدوات وبوابة الصلاحيات المرتفعة (ما لم تُضبط الصلاحيات المرتفعة على full، إذ
تتجاوز الموافقات).
للحصول على نظرة عامة مرتكزة على الأوضاع حول deny وallowlist وask وauto وfull،
وتخطيط Codex Guardian، وأذونات حاضنة ACPX، راجع
أوضاع الأذونات.
السياسة الفعالة هي الأكثر تقييدًا بين
tools.exec.* والقيم الافتراضية
للموافقات؛ إذا حُذف حقل موافقات، تُستخدم قيمة tools.exec. يستخدم تنفيذ الأوامر على المضيف
أيضًا حالة الموافقات المحلية على ذلك الجهاز - فوجود ask: "always" محليًا للمضيف
في ملف موافقات مضيف التنفيذ يستمر في طلب التأكيد حتى إذا طلبت القيم الافتراضية للجلسة
أو الإعدادات ask: "on-miss".فحص السياسة الفعالة
| الأمر | ما يعرضه |
|---|---|
openclaw approvals get / --gateway / --node <id|name|ip> | السياسة المطلوبة، ومصادر سياسة المضيف، والنتيجة الفعالة. |
openclaw exec-policy show | العرض المدمج للجهاز المحلي. |
openclaw exec-policy set / preset | مزامنة السياسة المحلية المطلوبة مع ملف موافقات المضيف المحلي في خطوة واحدة. |
host=node، يبلّغ exec-policy show عن ذلك
النطاق على أنه مُدار من العقدة وقت التشغيل بدلًا من الإيحاء بأن ملف
الموافقات المحلي هو مصدر الحقيقة.
إذا كانت واجهة مستخدم تطبيق المرافق غير متاحة، فإن أي طلب كان سيؤدي
عادةً إلى مطالبة يُحسم عبر بديل السؤال (الافتراضي: deny).
أين تُطبَّق
تُفرض موافقات تنفيذ الأوامر محليًا على مضيف التنفيذ:- مضيف Gateway → عملية
openclawعلى جهاز Gateway. - مضيف العقدة → مشغّل العقدة (تطبيق مرافق macOS أو مضيف عقدة بلا واجهة).
نموذج الثقة
- يُعد المتصلون المصادق عليهم عبر Gateway مشغلين موثوقين لذلك Gateway.
- توسع العقد المقترنة قدرة المشغل الموثوق تلك إلى مضيف العقدة.
- تقلل موافقات تنفيذ الأوامر خطر التنفيذ العرضي، لكنها ليست حد مصادقة لكل مستخدم أو سياسة قراءة ملفات فقط.
- بعد الموافقة، يستطيع الأمر تعديل الملفات وفقًا لأذونات المضيف المحدد أو أذونات نظام ملفات صندوق الحماية.
- تربط عمليات مضيف العقدة الموافق عليها سياق التنفيذ القانوني: دليل العمل القانوني، وargv الدقيق، وربط البيئة عند وجوده، ومسار الملف التنفيذي المثبّت عند انطباق ذلك.
- بالنسبة إلى سكربتات shell واستدعاءات ملفات المفسرات/بيئات التشغيل المباشرة، يحاول OpenClaw أيضًا ربط مُعامل ملف محلي ملموس واحد. إذا تغيّر ذلك الملف المرتبط بعد الموافقة وقبل التنفيذ، تُرفض العملية بدلًا من تنفيذ محتوى انجرف.
- ربط الملفات مقصود أن يكون بأفضل جهد، وليس نموذجًا دلاليًا كاملًا لكل مسار تحميل لكل مفسر/بيئة تشغيل. إذا تعذر على وضع الموافقة تحديد ملف محلي ملموس واحد بالضبط لربطه، فإنه يرفض إصدار تشغيل مدعوم بالموافقة بدلًا من ادعاء تغطية كاملة.
فصل macOS
- يمرر خدمة مضيف العقدة
system.runإلى تطبيق macOS عبر IPC محلي. - يفرض تطبيق macOS الموافقات وينفذ الأمر في سياق واجهة المستخدم.
الإعدادات والتخزين
توجد الموافقات في ملف JSON محلي على مضيف التنفيذ. عند ضبطOPENCLAW_STATE_DIR، يتبع الملف دليل الحالة ذلك؛
وإلا فإنه يستخدم دليل حالة OpenClaw الافتراضي:
$OPENCLAW_STATE_DIR/exec-approvals.sock، أو
~/.openclaw/exec-approvals.sock عندما لا يكون المتغير مضبوطًا.
مثال مخطط:
عناصر التحكم في السياسة
tools.exec.mode
tools.exec.mode هو سطح السياسة المطبع المفضل لتنفيذ أوامر المضيف.
القيم هي:
deny- حظر تنفيذ أوامر المضيف.allowlist- تشغيل الأوامر الموجودة في قائمة السماح فقط من دون سؤال.ask- استخدام سياسة قائمة السماح والسؤال عند عدم التطابق.auto- استخدام سياسة قائمة السماح، وتشغيل التطابقات الحتمية مباشرة، وإرسال حالات عدم التطابق التي تحتاج موافقة عبر المراجع التلقائي الأصلي في OpenClaw قبل الرجوع إلى مسار موافقة بشري.full- تشغيل تنفيذ أوامر المضيف من دون مطالبات موافقة.
tools.exec.security / tools.exec.ask القديمة مدعومة وتظل لها الأولوية
عند ضبطها في نطاق جلسة أو وكيل أضيق.
exec.security
deny- حظر جميع طلبات تنفيذ أوامر المضيف.allowlist- السماح بالأوامر الموجودة في قائمة السماح فقط.full- السماح بكل شيء (مكافئ للصلاحيات المرتفعة).
exec.ask
سياسة السؤال المضبوطة لتنفيذ أوامر المضيف. تتحكم في سلوك مطالبة الموافقة
الأساسي من
tools.exec.ask والقيم الافتراضية لموافقات المضيف. لا يستطيع
وسيط الأداة ask لكل استدعاء (راجع أداة Exec)
إلا تشديد ذلك الأساس، وتتجاهله استدعاءات النموذج الناشئة من القنوات
عندما يكون سؤال المضيف الفعال off.off- لا تطالب أبدًا.on-miss- المطالبة فقط عندما لا تطابق قائمة السماح.always- المطالبة عند كل أمر. الثقة الدائمةallow-alwaysلا تكبت المطالبات عندما يكون وضع السؤال الفعالalways.
askFallback
الحسم عندما تكون المطالبة مطلوبة لكن لا توجد واجهة مستخدم يمكن الوصول إليها. إذا حُذف هذا
الحقل، يستخدم OpenClaw القيمة الافتراضية
deny.deny- الحظر.allowlist- السماح فقط إذا طابقت قائمة السماح.full- السماح.
tools.exec.strictInlineEval
عند
true، يعامل OpenClaw صيغ تقييم الشيفرة المضمنة على أنها تتطلب الموافقة فقط
حتى إذا كان ملف المفسر التنفيذي نفسه موجودًا في قائمة السماح. هذا دفاع متعمق
لمحملات المفسرات التي لا تنطبق بوضوح على مُعامل ملف ثابت واحد.python -cnode -e,node --eval,node -pruby -eperl -e,perl -Ephp -rlua -eosascript -e
allow-always إدخالات قائمة سماح جديدة لها تلقائيًا.
tools.exec.commandHighlighting
يتحكم في العرض فقط ضمن مطالبات الموافقة على تنفيذ الأوامر. عند تفعيله،
قد يرفق OpenClaw مقاطع أوامر مشتقة من المحلل حتى تتمكن مطالبات الموافقة عبر Web
من تمييز رموز الأوامر. اضبطه على
true لتفعيل
تمييز نص الأمر.security أو ask أو مطابقة قائمة السماح أو
سلوك تقييم الشيفرة المضمنة الصارم أو تمرير الموافقات أو تنفيذ الأوامر.
يمكن ضبطه عموميًا تحت tools.exec.commandHighlighting أو لكل
وكيل تحت agents.list[].tools.exec.commandHighlighting.
وضع YOLO (بلا موافقة)
إذا أردت تشغيل تنفيذ أوامر المضيف من دون مطالبات موافقة، فيجب فتح طبقتي السياسة معًا - سياسة تنفيذ الأوامر المطلوبة في إعدادات OpenClaw (tools.exec.*) و سياسة الموافقات المحلية للمضيف في
ملف موافقات مضيف التنفيذ.
يضبط OpenClaw القيمة الافتراضية لـ askFallback المحذوفة على deny. اضبط
askFallback للمضيف على full صراحةً عندما ينبغي لمطالبة موافقة بلا واجهة مستخدم
أن ترجع إلى السماح.
| الطبقة | إعداد YOLO |
|---|---|
tools.exec.security | full على gateway/node |
tools.exec.ask | off |
askFallback للمضيف | full |
--permission-mode bypassPermissions عندما تكون سياسة تنفيذ الأوامر الفعالة في OpenClaw
هي YOLO. بالنسبة إلى جلسات Claude الحية المُدارة من OpenClaw، تكون
سياسة تنفيذ الأوامر الفعالة في OpenClaw هي المرجع على وضع أذونات Claude الأصلي:
يطبع YOLO عمليات الإطلاق الحية إلى --permission-mode bypassPermissions، وتطبع
سياسة تنفيذ الأوامر الفعالة المقيّدة عمليات الإطلاق الحية إلى
--permission-mode default، حتى إذا حددت وسائط Claude الخلفية الخام وضعًا آخر.
إذا أردت إعدادًا أكثر تحفظًا، شدد سياسة تنفيذ الأوامر في OpenClaw مجددًا إلى
allowlist / on-miss أو deny.
إعداد دائم “عدم المطالبة أبدًا” لمضيف Gateway
اختصار محلي
tools.exec.host/security/askالمحلي.- القيم الافتراضية لملف الموافقات المحلي، بما في ذلك
askFallback: "full".
openclaw approvals set --gateway أو
openclaw approvals set --node <id|name|ip>.
مضيف العقدة
بالنسبة إلى مضيف العقدة، طبّق ملف الموافقات نفسه على تلك العقدة بدلًا من ذلك:قيود محلية فقط:
- لا يزامن
openclaw exec-policyموافقات العقدة. - يُرفض
openclaw exec-policy set --host node. - تُجلب موافقات تنفيذ الأوامر للعقدة من العقدة وقت التشغيل، لذلك يجب أن تستخدم التحديثات المستهدفة للعقدة
openclaw approvals --node ....
اختصار للجلسة فقط
- يغيّر
/exec security=full ask=offالجلسة الحالية فقط. - يُعدّ
/elevated fullاختصار طوارئ يتخطّى موافقات exec فقط عندما تُحلّ كل من السياسة المطلوبة وملف موافقات المضيف إلىsecurity: "full"وask: "off". أما ملف مضيف أشد صرامة، مثلask: "always"، فسيظل يعرض مطالبة.
قائمة السماح (لكل وكيل)
قوائم السماح لكل وكيل. إذا وُجد عدة وكلاء، فبدّل الوكيل الذي تحرّره في تطبيق macOS. الأنماط هي مطابقات glob. يمكن أن تكون الأنماط مسارات ثنائية محلولة بصيغة glob أو أسماء أوامر مجردة بصيغة glob. تطابق الأسماء المجردة الأوامر المستدعاة عبرPATH فقط، لذا يمكن أن يطابق rg
المسار /opt/homebrew/bin/rg عندما يكون الأمر هو rg، لكن ليس ./rg أو
/tmp/rg. استخدم glob لمسار عندما تريد الوثوق بموقع ثنائي محدد واحد.
تُرحّل إدخالات agents.default القديمة إلى agents.main عند التحميل.
ما تزال سلاسل shell مثل echo ok && pwd تحتاج إلى أن يفي كل مقطع علوي
بقواعد قائمة السماح.
أمثلة:
rg~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
تقييد الوسائط باستخدام argPattern
أضفargPattern عندما يجب أن يطابق إدخال قائمة السماح ثنائياً وشكلاً
محدداً للوسائط. يقيّم OpenClaw التعبير النمطي
مقابل وسائط الأمر المحللة، مع استبعاد رمز الملف التنفيذي
(argv[0]). بالنسبة إلى الإدخالات المكتوبة يدوياً، تُدمج الوسائط باستخدام
مسافة واحدة، لذا ثبّت النمط عندما تحتاج إلى مطابقة دقيقة.
python3 safe.py؛ أما python3 other.py فهو عدم
مطابقة لقائمة السماح. إذا كان هناك أيضاً إدخال يعتمد على المسار فقط للثنائي نفسه،
فيمكن للوسائط غير المطابقة أن تعود إلى ذلك الإدخال المعتمد على المسار فقط. احذف الإدخال
المعتمد على المسار فقط عندما يكون الهدف هو تقييد الثنائي بالوسائط المعلنة.
يمكن للإدخالات المحفوظة بواسطة تدفقات الموافقة استخدام تنسيق فاصل داخلي
لمطابقة argv بدقة. فضّل واجهة المستخدم أو تدفق الموافقة لإعادة توليد تلك
الإدخالات بدلاً من تحرير القيمة المشفرة يدوياً. إذا تعذر على OpenClaw
تحليل argv لمقطع أمر، فلن تطابق الإدخالات التي تحتوي على argPattern.
يدعم كل إدخال في قائمة السماح:
| الحقل | المعنى |
|---|---|
pattern | glob لمسار ثنائي محلول أو glob لاسم أمر مجرد |
argPattern | regex اختياري لـ argv؛ الإدخالات المحذوفة تكون معتمدة على المسار فقط |
id | UUID ثابت مستخدم لهوية واجهة المستخدم |
source | مصدر الإدخال، مثل allow-always |
commandText | نص الأمر الملتقط عندما أنشأ تدفق موافقة الإدخال |
lastUsedAt | الطابع الزمني لآخر استخدام |
lastUsedCommand | آخر أمر طابق |
lastResolvedPath | آخر مسار ثنائي محلول |
السماح التلقائي لواجهات CLI الخاصة بـ Skills
عند تفعيل السماح التلقائي لواجهات CLI الخاصة بـ Skills، تُعامل الملفات التنفيذية المشار إليها بواسطة Skills المعروفة كأنها في قائمة السماح على العُقد (Node في macOS أو مضيف Node بلا واجهة). يستخدم هذاskills.bins عبر Gateway RPC لجلب
قائمة ثنائيات Skills. عطّل هذا إذا كنت تريد قوائم سماح يدوية صارمة.
الثنائيات الآمنة وتمرير الموافقات
للاطلاع على الثنائيات الآمنة (المسار السريع المعتمد على stdin فقط)، وتفاصيل ربط المفسر، وكيفية تمرير مطالبات الموافقة إلى Slack/Discord/Telegram (أو تشغيلها كعملاء موافقة أصليين)، راجع الموافقات على Exec - متقدم.التحرير في واجهة التحكم
استخدم بطاقة واجهة التحكم → العُقد → الموافقات على Exec لتحرير الافتراضيات، والتجاوزات لكل وكيل، وقوائم السماح. اختر نطاقاً (الافتراضيات أو وكيل)، وعدّل السياسة، وأضف/أزل أنماط قائمة السماح، ثم احفظ. تعرض واجهة المستخدم بيانات وصفية لآخر استخدام لكل نمط حتى تتمكن من إبقاء القائمة مرتبة. يختار محدد الهدف Gateway (الموافقات المحلية) أو Node. يجب أن تعلن العُقد عنsystem.execApprovals.get/set (تطبيق macOS أو
مضيف Node بلا واجهة). إذا لم تعلن عقدة عن موافقات exec بعد،
فحرّر ملف الموافقات المحلي الخاص بها مباشرة.
CLI: يدعم openclaw approvals تحرير Gateway أو Node - راجع
CLI للموافقات.
تدفق الموافقة
عندما تكون المطالبة مطلوبة، يبث Gatewayexec.approval.requested إلى عملاء المشغلين. تحلّه واجهة التحكم وتطبيق macOS
عبر exec.approval.resolve، ثم يمرر Gateway الطلب
الموافق عليه إلى مضيف Node.
بالنسبة إلى host=node، تتضمن طلبات الموافقة حمولة systemRunPlan
قياسية. يستخدم Gateway تلك الخطة باعتبارها سياق
command/cwd/session الرسمي عند تمرير طلبات system.run
الموافق عليها.
هذا مهم لزمن انتظار الموافقة غير المتزامنة:
- يجهّز مسار exec في Node خطة قياسية واحدة مقدماً.
- يخزن سجل الموافقة تلك الخطة وبيانات الربط الوصفية الخاصة بها.
- بعد الموافقة، تعيد استدعاءة
system.runالنهائية الممررة استخدام الخطة المخزنة بدلاً من الوثوق بتعديلات لاحقة من المستدعي. - إذا غيّر المستدعي
commandأوrawCommandأوcwdأوagentIdأوsessionKeyبعد إنشاء طلب الموافقة، يرفض Gateway التشغيل الممرر باعتباره عدم تطابق في الموافقة.
أحداث النظام
تظهر دورة حياة exec كرسائل نظام:Exec running(فقط إذا تجاوز الأمر عتبة إشعار التشغيل).Exec finished.
runId في هذه
الرسائل لتسهيل الربط.
سلوك الموافقة المرفوضة
عند رفض موافقة exec غير متزامنة، يتعامل OpenClaw مع أمر المضيف على أنه نهائي ومغلق عند الفشل. بالنسبة إلى جلسات الوكيل الرئيسي، يُسلّم الرفض كمتابعة جلسة داخلية تُخبر الوكيل بأن الأمر غير المتزامن لم يعمل. يحافظ ذلك على استمرارية النص دون كشف مخرجات أمر قديمة. إذا لم يكن تسليم الجلسة متاحاً، يعود OpenClaw إلى رفض موجز للمشغل أو للمحادثة المباشرة عندما يوجد مسار آمن.الآثار
fullقوي؛ فضّل قوائم السماح عندما يكون ذلك ممكناً.askيبقيك ضمن الحلقة مع السماح بموافقات سريعة.- تمنع قوائم السماح لكل وكيل تسرّب موافقات وكيل إلى وكلاء آخرين.
- لا تنطبق الموافقات إلا على طلبات exec للمضيف الواردة من مرسلين مخولين. لا يستطيع المرسلون غير المخولين إصدار
/exec. - يُعد
/exec security=fullوسيلة تيسير على مستوى الجلسة للمشغلين المخولين ويتخطى الموافقات حسب التصميم. لحظر exec للمضيف حظراً صارماً، اضبط أمان الموافقات علىdenyأو ارفض أداةexecعبر سياسة الأدوات.
ذات صلة
الموافقات على Exec - متقدم
الثنائيات الآمنة، وربط المفسر، وتمرير الموافقات إلى الدردشة.
أداة Exec
أداة تنفيذ أوامر shell.
الوضع المرتفع
مسار طوارئ يتخطى الموافقات أيضاً.
العزل
أوضاع العزل والوصول إلى مساحة العمل.
الأمان
نموذج الأمان والتقوية.
العزل مقابل سياسة الأدوات مقابل الوضع المرتفع
متى تستخدم كل عنصر تحكم.
Skills
سلوك السماح التلقائي المدعوم بـ Skills.