موافقات التنفيذ هي حاجز أمان التطبيق المرافق / مضيف Node للسماح لوكيل داخل صندوق حماية بتشغيل أوامر على مضيف حقيقي (Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
gateway أو node). وهي
قفل أمان: لا يُسمح بالأوامر إلا عندما تتوافق السياسة + قائمة السماح +
موافقة المستخدم (اختياريًا) جميعًا. تُطبَّق موافقات التنفيذ فوق
سياسة الأدوات وبوابة الرفع (إلا إذا ضُبط الرفع على full، إذ
يتجاوز الموافقات).
السياسة الفعالة هي الأكثر صرامة بين إعدادات
tools.exec.* وقيم الموافقات
الافتراضية؛ إذا حُذف حقل موافقات، تُستخدم قيمة tools.exec. يستخدم تنفيذ المضيف أيضًا حالة الموافقات المحلية على ذلك الجهاز - فوجود
إعداد محلي للمضيف ask: "always" في ~/.openclaw/exec-approvals.json يستمر
في طلب التأكيد حتى إذا طلبت الجلسة أو الإعدادات الافتراضية 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 عن ذلك
النطاق بوصفه مُدارًا بواسطة Node وقت التشغيل بدلًا من الادعاء بأن ملف
الموافقات المحلي هو مصدر الحقيقة.
إذا كانت واجهة مستخدم التطبيق المرافق غير متاحة، فإن أي طلب كان
سيطلب تأكيدًا عادةً يُحسم بواسطة احتياطي السؤال (الافتراضي: deny).
أين ينطبق ذلك
تُفرض موافقات التنفيذ محليًا على مضيف التنفيذ:- مضيف Gateway → عملية
openclawعلى جهاز Gateway. - مضيف Node → مشغّل Node (تطبيق macOS المرافق أو مضيف Node بلا واجهة).
نموذج الثقة
- يُعد المتصلون المصادق عليهم عبر Gateway مشغلين موثوقين لذلك Gateway.
- توسّع العقد المقترنة قدرة المشغل الموثوق هذه إلى مضيف Node.
- تقلل موافقات التنفيذ خطر التنفيذ العرضي، لكنها ليست حدًا للمصادقة لكل مستخدم أو سياسة قراءة فقط لنظام الملفات.
- بعد الموافقة، يمكن للأمر تعديل الملفات وفق أذونات نظام الملفات للمضيف أو صندوق الحماية المحدد.
- تربط عمليات مضيف Node الموافق عليها سياق التنفيذ القياسي: دليل العمل القياسي، ووسيطات argv الدقيقة، وربط البيئة عند وجوده، ومسار الملف التنفيذي المثبّت عند انطباق ذلك.
- بالنسبة إلى سكربتات الصدفة واستدعاءات ملفات المفسر/وقت التشغيل المباشرة، يحاول OpenClaw أيضًا ربط معامل ملف محلي ملموس واحد. إذا تغيّر ذلك الملف المربوط بعد الموافقة وقبل التنفيذ، تُرفض العملية بدلًا من تنفيذ محتوى تغيّر.
- ربط الملفات مقصود أن يكون بأفضل جهد، وليس نموذجًا دلاليًا كاملًا لكل مسار تحميل لمفسر/وقت تشغيل. إذا لم يستطع وضع الموافقة تحديد ملف محلي ملموس واحد بالضبط لربطه، فإنه يرفض إنشاء تشغيل مدعوم بالموافقة بدلًا من الادعاء بتغطية كاملة.
فصل macOS
- تمرر خدمة مضيف Node
system.runإلى تطبيق macOS عبر IPC محلي. - يفرض تطبيق macOS الموافقات وينفذ الأمر في سياق واجهة المستخدم.
الإعدادات والتخزين
توجد الموافقات في ملف JSON محلي على مضيف التنفيذ:عناصر ضبط السياسة
exec.security
deny- حظر كل طلبات تنفيذ المضيف.allowlist- السماح بالأوامر الموجودة في قائمة السماح فقط.full- السماح بكل شيء (مكافئ للرفع).
exec.ask
off- عدم طلب التأكيد أبدًا.on-miss- طلب التأكيد فقط عندما لا تطابق قائمة السماح.always- طلب التأكيد على كل أمر. الثقة الدائمةallow-alwaysلا تلغي طلبات التأكيد عندما يكون وضع السؤال الفعالalways.
askFallback
الحسم عندما يكون طلب التأكيد مطلوبًا ولكن لا يمكن الوصول إلى واجهة مستخدم.
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 نطاقات أوامر مشتقة من المحلل بحيث تستطيع مطالبات
الموافقة عبر الويب تمييز رموز الأمر. اضبطه على
true لتمكين
تمييز نص الأمر.security أو ask أو مطابقة قائمة السماح
أو سلوك التقييم المضمن الصارم أو تمرير الموافقات أو تنفيذ الأوامر.
يمكن ضبطه عموميًا ضمن tools.exec.commandHighlighting أو لكل
وكيل ضمن agents.list[].tools.exec.commandHighlighting.
وضع YOLO (بلا موافقة)
إذا أردت أن يعمل تنفيذ المضيف دون مطالبات موافقة، فيجب أن تفتح كلتا طبقتي السياسة - سياسة التنفيذ المطلوبة في إعدادات OpenClaw (tools.exec.*) و سياسة الموافقات المحلية للمضيف في
~/.openclaw/exec-approvals.json.
YOLO هو سلوك المضيف الافتراضي ما لم تشدده صراحةً:
| الطبقة | إعداد YOLO |
|---|---|
tools.exec.security | full على gateway/node |
tools.exec.ask | off |
askFallback للمضيف | full |
--permission-mode bypassPermissions عندما تكون سياسة التنفيذ المطلوبة من OpenClaw
هي YOLO. تجاوز سلوك الخلفية هذا باستخدام وسائط Claude صريحة
ضمن agents.defaults.cliBackends.claude-cli.args / resumeArgs -
مثل --permission-mode default أو acceptEdits أو
bypassPermissions.
إذا أردت إعدادًا أكثر تحفظًا، فشدّد أيًا من الطبقتين مجددًا إلى
allowlist / on-miss أو deny.
إعداد “عدم طلب التأكيد مطلقًا” دائم لمضيف Gateway
اختصار محلي
tools.exec.host/security/askالمحلي.- الإعدادات الافتراضية المحلية في
~/.openclaw/exec-approvals.json.
openclaw approvals set --gateway أو
openclaw approvals set --node <id|name|ip>.
مضيف Node
بالنسبة إلى مضيف Node، طبّق ملف الموافقات نفسه على تلك العقدة بدلًا من ذلك:قيود محلية فقط:
- لا يزامن
openclaw exec-policyموافقات Node. - يُرفض
openclaw exec-policy set --host node. - تُجلب موافقات تنفيذ Node من العقدة وقت التشغيل، لذلك يجب أن تستخدم التحديثات الموجهة إلى Node الأمر
openclaw approvals --node ....
اختصار خاص بالجلسة فقط
- يغير
/exec security=full ask=offالجلسة الحالية فقط. /elevated fullهو اختصار لكسر الحاجز يتجاوز أيضًا موافقات التنفيذ لتلك الجلسة.
قائمة السماح (لكل وكيل)
قوائم السماح لكل وكيل. إذا وُجد عدة وكلاء، فبدّل الوكيل الذي تعدّله في تطبيق macOS. الأنماط هي مطابقات glob. يمكن أن تكون الأنماط مسارات ملفات ثنائية محلولة بصيغة glob أو أسماء أوامر مجردة بصيغة glob. الأسماء المجردة لا تطابق إلا الأوامر المستدعاة عبرPATH، لذلك يمكن أن يطابق rg
المسار /opt/homebrew/bin/rg عندما يكون الأمر rg، لكنه لا يطابق ./rg أو
/tmp/rg. استخدم نمط مسار glob عندما تريد الوثوق بموقع ملف ثنائي محدد
واحد.
تُرحّل إدخالات agents.default القديمة إلى agents.main عند التحميل.
ما زالت سلاسل الصدفة مثل 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 | تعبير argv نمطي اختياري؛ الإدخالات التي حُذف منها تكون للمسار فقط |
id | UUID ثابت يُستخدم لهوية واجهة المستخدم |
source | مصدر الإدخال، مثل allow-always |
commandText | نص الأمر الذي تم التقاطه عندما أنشأ تدفق موافقة الإدخال |
lastUsedAt | الطابع الزمني لآخر استخدام |
lastUsedCommand | آخر أمر تطابق |
lastResolvedPath | آخر مسار ملف تنفيذي محلول |
السماح التلقائي لواجهات CLI الخاصة بـ Skills
عند تفعيل السماح التلقائي لواجهات CLI الخاصة بـ Skills، تُعامل الملفات التنفيذية المشار إليها بواسطة Skills المعروفة على أنها مدرجة في قائمة السماح على العقد (عقدة macOS أو مضيف عقدة بلا واجهة). يستخدم هذاskills.bins عبر Gateway RPC لجلب
قائمة ملفات bin الخاصة بالمهارة. عطّل هذا إذا كنت تريد قوائم سماح يدوية صارمة.
ملفات bin الآمنة وتمرير الموافقات
لملفات bin الآمنة (المسار السريع الخاص بـ stdin فقط)، وتفاصيل ربط المفسّر، و كيفية تمرير مطالبات الموافقة إلى Slack/Discord/Telegram (أو تشغيلها كعملاء موافقة أصليين)، راجع موافقات التنفيذ - متقدم.تحرير واجهة التحكم
استخدم بطاقة واجهة التحكم → العقد → موافقات التنفيذ لتحرير الإعدادات الافتراضية، والتجاوزات لكل وكيل، وقوائم السماح. اختر نطاقًا (الإعدادات الافتراضية أو وكيلًا)، وعدّل السياسة، وأضف/أزل أنماط قائمة السماح، ثم اضغط حفظ. تعرض واجهة المستخدم بيانات تعريف آخر استخدام لكل نمط حتى تتمكن من إبقاء القائمة مرتبة. يختار محدد الهدف Gateway (موافقات محلية) أو Node. يجب أن تعلن العقد عنsystem.execApprovals.get/set (تطبيق macOS أو
مضيف عقدة بلا واجهة). إذا لم تكن عقدة ما تعلن موافقات التنفيذ بعد،
فحرّر ملفها المحلي ~/.openclaw/exec-approvals.json مباشرةً.
CLI: يدعم openclaw approvals تحرير Gateway أو العقدة - راجع
CLI الموافقات.
تدفق الموافقة
عندما تكون المطالبة مطلوبة، يبث Gatewayexec.approval.requested إلى عملاء المشغّل. تحلها واجهة التحكم وتطبيق macOS
عبر exec.approval.resolve، ثم يمرر Gateway الطلب
الموافق عليه إلى مضيف العقدة.
بالنسبة إلى host=node، تتضمن طلبات الموافقة حمولة systemRunPlan
معيارية. يستخدم Gateway تلك الخطة باعتبارها سياق
الأمر/cwd/الجلسة المعتمد عند تمرير طلبات system.run
الموافق عليها.
وهذا مهم لزمن انتقال الموافقات غير المتزامنة:
- يجهّز مسار تنفيذ العقدة خطة معيارية واحدة مقدمًا.
- يخزن سجل الموافقة تلك الخطة وبيانات تعريف ربطها.
- بعد الموافقة، تعيد استدعاءة
system.runالنهائية المُمرّرة استخدام الخطة المخزنة بدلًا من الوثوق بتعديلات لاحقة من المستدعي. - إذا غيّر المستدعي
commandأوrawCommandأوcwdأوagentIdأوsessionKeyبعد إنشاء طلب الموافقة، يرفض Gateway التشغيل المُمرّر باعتباره عدم تطابق في الموافقة.
أحداث النظام
تظهر دورة حياة التنفيذ كرسائل نظام:Exec running(فقط إذا تجاوز الأمر حد إشعار التشغيل).Exec finished.Exec denied.
runId في هذه
الرسائل لتسهيل الربط.
سلوك الموافقة المرفوضة
عند رفض موافقة تنفيذ غير متزامنة، يمنع OpenClaw الوكيل من إعادة استخدام خرج أي تشغيل سابق للأمر نفسه في الجلسة. يُمرر سبب الرفض مع إرشاد صريح بأنه لا يتوفر خرج للأمر، مما يمنع الوكيل من الادعاء بوجود خرج جديد أو تكرار الأمر المرفوض بنتائج قديمة من تشغيل سابق ناجح.الآثار
fullقوي؛ فضّل قوائم السماح متى أمكن.askيبقيك ضمن الحلقة مع الاستمرار في إتاحة موافقات سريعة.- تمنع قوائم السماح لكل وكيل تسرب موافقات وكيل إلى وكلاء آخرين.
- تنطبق الموافقات فقط على طلبات تنفيذ المضيف من المرسلين المصرح لهم. لا يستطيع المرسلون غير المصرح لهم إصدار
/exec. - يُعد
/exec security=fullتيسيرًا على مستوى الجلسة للمشغّلين المصرح لهم ويتجاوز الموافقات بحكم التصميم. لحظر تنفيذ المضيف حظرًا صارمًا، اضبط أمان الموافقات علىdenyأو ارفض أداةexecعبر سياسة الأدوات.
ذات صلة
موافقات التنفيذ - متقدم
ملفات bin الآمنة، وربط المفسّر، وتمرير الموافقات إلى الدردشة.
أداة التنفيذ
أداة تنفيذ أوامر الصدفة.
الوضع المرتفع
مسار كسر الزجاج الذي يتجاوز الموافقات أيضًا.
العزل في Sandbox
أوضاع Sandbox والوصول إلى مساحة العمل.
الأمان
نموذج الأمان والتقوية.
Sandbox مقابل سياسة الأدوات مقابل الوضع المرتفع
متى تستخدم كل عنصر تحكم.
Skills
سلوك السماح التلقائي المدعوم بالمهارات.