Tools
Çalıştırma onayları
Exec onayları, korumalı alandaki bir aracının gerçek bir ana makinede (gateway veya node) komut çalıştırmasına izin veren yardımcı uygulama / Node ana makinesi koruma mekanizmasıdır. Komutlar
yalnızca politika + izin listesi + (isteğe bağlı) kullanıcı onayının tümü uyumlu olduğunda
çalıştırılır. Onaylar, araç politikasının ve yükseltilmiş erişim denetiminin üzerine eklenir (yükseltilmiş
full bunları atlar).
deny, allowlist, ask, auto, full,
Codex Guardian eşlemesi ve ACPX çalıştırma ortamı izinlarına ilişkin mod odaklı genel bakış için
İzin modları bölümüne bakın.
Uygulandığı yerler
Exec onayları yürütme ana makinesinde yerel olarak uygulanır:
- Gateway ana makinesi -> Gateway makinesindeki
openclawişlemi. - Node ana makinesi -> Node çalıştırıcısı (macOS yardımcı uygulaması veya başsız Node ana makinesi).
Güven modeli
- Gateway kimliği doğrulanmış çağrıcılar, söz konusu Gateway için güvenilir operatörlerdir.
- Eşleştirilmiş Node'lar, bu güvenilir operatör yeteneğini Node ana makinesine genişletir.
- Onaylar yanlışlıkla yürütme riskini azaltır ancak kullanıcı başına bir kimlik doğrulama sınırı veya salt okunur dosya sistemi politikası değildir.
- Onaylanan bir komut, seçilen ana makine veya korumalı alan dosya sistemi izinleri kapsamında dosyaları değiştirebilir.
- Onaylanan Node ana makinesi çalıştırmaları standart yürütme bağlamını bağlar: cwd, tam argv, mevcut olduğunda env bağlaması ve geçerli olduğunda sabitlenmiş yürütülebilir dosya yolu.
- Kabuk betikleri ve doğrudan yorumlayıcı/çalışma zamanı dosyası çağrıları için OpenClaw ayrıca tek bir somut yerel dosya işlenenini bağlamaya çalışır. Bu dosya onaydan sonra ancak yürütmeden önce değişirse değiştirilmiş içerik çalıştırılmak yerine çalıştırma reddedilir.
- Dosya bağlama azami gayret esasına dayanır ve her yorumlayıcı/çalışma zamanı yükleyici yolunu kapsayan eksiksiz bir model değildir. Tam olarak bir somut yerel dosya belirlenemezse OpenClaw tam kapsam sağlıyormuş gibi davranmak yerine onay destekli bir çalıştırma oluşturmayı reddeder.
macOS ayrımı
- Node ana makinesi hizmeti,
system.runöğesini yerel IPC üzerinden macOS uygulamasına iletir. - macOS uygulaması onayları uygular ve komutu kullanıcı arayüzü bağlamında yürütür.
Geçerli politikayı inceleme
| Komut | Gösterdikleri |
|---|---|
openclaw approvals get / --gateway / --node <id|name|ip> |
İstenen politika, ana makine politika kaynakları ve geçerli sonuç. |
openclaw exec-policy show |
Yerel makinenin birleştirilmiş görünümü. |
openclaw exec-policy set / preset |
Yerel olarak istenen politikayı yerel ana makine onay dosyasıyla tek adımda eşitler. |
Tam CLI referansı (bayraklar, JSON çıktısı, izin listesine ekleme/çıkarma): Onaylar CLI'si.
Yerel bir kapsam host=node istediğinde exec-policy show, yerel onay
dosyasını doğruluk kaynağı olarak kabul etmek yerine bu kapsamı çalışma zamanında Node tarafından yönetiliyor
olarak bildirir.
Yardımcı uygulama kullanıcı arayüzü kullanılamıyorsa, normalde
onay isteyecek her istek onay istemi geri dönüşü ile çözümlenir (varsayılan: deny).
Ayarlar ve depolama
Onaylar, yürütme ana makinesindeki yerel bir JSON dosyasında tutulur.
OPENCLAW_STATE_DIR ayarlandığında dosya bu durum dizinini izler;
aksi takdirde varsayılan OpenClaw durum dizinini kullanır:
$OPENCLAW_STATE_DIR/exec-approvals.json# aksi takdirde~/.openclaw/exec-approvals.jsonVarsayılan onay soketi aynı kökü izler:
$OPENCLAW_STATE_DIR/exec-approvals.sock; değişken ayarlanmamışsa
~/.openclaw/exec-approvals.sock.
Durum dizinleri birbirinden bağımsız güven kapsamlarıdır. OPENCLAW_STATE_DIR
başka bir konumu gösterdiğinde OpenClaw, ~/.openclaw/exec-approvals.json öğesini
asla içe aktarmaz veya arşivlemez; özel durum dizini için onayları ayrıca
yapılandırın. Doctor da eski plugin-binding-approvals.json öğesini yalnızca etkin durum
dizinine ait olduğunda içe aktarır.
Örnek şema:
{ "version": 1, "socket": { "path": "~/.openclaw/exec-approvals.sock", "token": "base64url-token" }, "defaults": { "security": "deny", "ask": "on-miss", "askFallback": "deny", "autoAllowSkills": false }, "agents": { "main": { "security": "allowlist", "ask": "on-miss", "askFallback": "deny", "autoAllowSkills": true, "allowlist": [ { "id": "B0C8C0B3-2C2D-4F8A-9A3C-5A4B3C2D1E0F", "pattern": "~/Projects/**/bin/rg", "argPattern": "sha256:argv:...", "source": "allow-always", "lastUsedAt": 1737150000000, "lastResolvedPath": "/Users/user/Projects/.../bin/rg" }, { "pattern": "~/Projects/**/bin/git" } ] } }}Politika ayarları
tools.exec.mode
tools.exec.mode, ana makinede Exec için tercih edilen normalleştirilmiş politika yüzeyidir:
| Değer | Davranış |
|---|---|
deny |
Ana makinede Exec'i engeller. |
allowlist |
Yalnızca izin listesindeki komutları onay istemeden çalıştırır. |
ask |
İzin listesi politikasını kullanır ve eşleşme olmadığında onay ister. |
auto |
İzin listesi politikasını kullanır, belirlenimci eşleşmeleri doğrudan çalıştırır ve onay eşleşmezliklerini insan onayı yoluna geri dönmeden önce OpenClaw'ın yerel otomatik inceleyicisine gönderir. |
full |
Ana makinede Exec'i onay istemleri olmadan çalıştırır. |
Doctor, kullanımdan kaldırılmış kalıcı tools.exec.security / tools.exec.ask
çiftini tools.exec.mode biçimine geçirir.
exec.security
security"deny" | "allowlist" | "full"deny- tüm ana makine Exec isteklerini engeller.allowlist- yalnızca izin listesindeki komutlara izin verir.full- her şeye izin verir (yükseltilmiş erişime eşdeğer).
Gateway/Node ana makineleri için varsayılan full; sandbox ana makinesi içinse
varsayılan deny değeridir.
exec.ask
ask"off" | "on-miss" | "always"Ana makinede Exec için yapılandırılmış onay isteme politikası. tools.exec.ask ve ana makine onay
varsayılanlarından gelen temel onay istemi davranışını denetler.
Varsayılan off değeridir. Çağrı başına ask araç parametresi (bkz.
Exec aracı) yalnızca bu temeli sıkılaştırabilir ve
kanal kaynaklı model çağrıları, geçerli ana makine onay istemi off olduğunda bunu yok sayar.
off- hiçbir zaman onay istemez.on-miss- yalnızca izin listesi eşleşmediğinde onay ister.always- her komutta onay ister. Geçerli onay isteme modualwaysolduğundaallow-alwayskalıcı güven, istemleri engellemez.
askFallback
askFallback"deny" | "allowlist" | "full"Onay istemi gerektiği hâlde hiçbir kullanıcı arayüzüne erişilemediğinde (veya
istem zaman aşımına uğradığında) uygulanacak çözüm. Belirtilmediğinde varsayılan deny değeridir.
deny- engeller.allowlist- yalnızca izin listesi eşleşirse izin verir.full- izin verir.
tools.exec.strictInlineEval
strictInlineEvalbooleantrue olduğunda yorumlayıcı ikili dosyasının kendisi izin listesinde olsa bile
satır içi kod değerlendirme biçimlerini yalnızca onayla çalıştırılabilir olarak ele alır. Tek bir kararlı dosya işleneniyle
düzgün biçimde eşleşmeyen yorumlayıcı yükleyicileri için derinlemesine savunma sağlar.
Katı modun yakaladığı örnekler: python -c, node -e/--eval/-p,
ruby -e, perl -e/-E, php -r, lua -e, osascript -e (ayrıca awk,
sed, make, find -exec ve xargs satır içi biçimleri).
Katı modda bu komutlar inceleyici veya açık onay gerektirir.
tools.exec.mode: "auto" ile komutun uygulanabilir bir planı varsa inceleyici düşük riskli tek bir yürütmeye izin verebilir;
aksi takdirde OpenClaw bir insandan onay ister.
İnceleyici geri dönüşüne ulaşan Codex app-server komut onayları, onay istekleri uygulanabilir ve çözümlenmiş
bir yürütülebilir dosya sunmadığından bir insandan onay ister.
allow-always, satır içi değerlendirme komutları için yeni izin listesi girdilerini kalıcı hâle getirmez.
tools.exec.commandHighlighting
commandHighlightingbooleandefault: falseYalnızca sunum amaçlıdır: etkinleştirildiğinde OpenClaw, Web onay istemlerinin komut belirteçlerini
vurgulayabilmesi için ayrıştırıcıdan türetilen komut aralıkları ekleyebilir. security, ask,
izin listesi eşleştirmesi, katı satır içi değerlendirme davranışı, onay iletimi veya komut yürütmeyi
değiştirmez.
Genel olarak tools.exec.commandHighlighting altında veya aracı başına
agents.entries.*.tools.exec.commandHighlighting altında ayarlayın.
YOLO modu (onaysız)
Ana makinede Exec'i onay istemleri olmadan çalıştırmak için her iki politika katmanını da açın:
OpenClaw yapılandırmasındaki istenen Exec politikası (tools.exec.*) ve
yürütme ana makinesi onay dosyasındaki ana makineye özgü onay politikası.
Belirtilmeyen askFallback için varsayılan deny değeridir. Kullanıcı arayüzü olmadığında bir onay isteminin
izin verme seçeneğine geri dönmesi gerekiyorsa ana makine askFallback değerini açıkça full olarak ayarlayın.
| Katman | YOLO ayarı |
|---|---|
tools.exec.mode |
gateway/node üzerinde full |
Ana makine askFallback |
full |
Kendi etkileşimsiz izin modlarını sunan CLI destekli sağlayıcılar
bu politikayı izleyebilir. OpenClaw'ın etkin exec
politikası YOLO olduğunda Claude CLI,
--permission-mode bypassPermissions ekler. OpenClaw tarafından yönetilen Claude canlı oturumlarında, OpenClaw'ın
etkin exec politikası Claude'un yerel izin modu üzerinde belirleyicidir:
YOLO, canlı başlatmaları --permission-mode bypassPermissions olarak normalleştirir ve
kısıtlayıcı etkin exec politikası, ham Claude arka uç argümanları başka bir
mod belirtse bile canlı başlatmaları
--permission-mode default olarak normalleştirir.
Daha ihtiyatlı bir kurulum istiyorsanız OpenClaw exec politikasını yeniden
allowlist / on-miss veya deny olarak sıkılaştırın.
Kalıcı gateway ana makinesi "asla sorma" kurulumu
İstenen yapılandırma politikasını ayarlayın
openclaw config set tools.exec.host gatewayopenclaw config set tools.exec.mode fullopenclaw gateway restartAna makine onay dosyasını eşleştirin
openclaw approvals set --stdin <<'EOF'{ version: 1, defaults: { security: "full", ask: "off", askFallback: "full" }}EOFYerel kısayol
openclaw exec-policy preset yoloHem yerel tools.exec.host/security/ask değerini hem de yerel onay
dosyasının varsayılanlarını (askFallback: "full" dâhil) günceller. Bu, kasıtlı olarak
yalnızca yerelde çalışır. Gateway ana makinesi veya Node ana makinesi onaylarını uzaktan değiştirmek için
openclaw approvals set --gateway ya da openclaw approvals set --node <id|name|ip> kullanın.
Diğer yerleşik ön ayarlar: cautious (host=gateway, security=allowlist,
ask=on-miss, askFallback=deny) ve deny-all (host=gateway,
security=deny, ask=off, askFallback=deny). Aynı şekilde uygulayın:
openclaw exec-policy preset cautious.
Tam bir ön ayar yerine alanları ayrı ayrı ayarlamak için bu bayrakların herhangi bir alt kümesiyle
openclaw exec-policy set --host <auto|sandbox|gateway|node> --security <deny|allowlist|full> --ask <off|on-miss|always> --ask-fallback <deny|allowlist|full> kullanın.
Node ana makinesi
Bunun yerine aynı onay dosyasını Node üzerinde uygulayın:
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'{ version: 1, defaults: { security: "full", ask: "off", askFallback: "full" }}EOFYalnızca oturuma yönelik kısayol
/exec security=full ask=off, yalnızca mevcut oturumu değiştirir./elevated full, yalnızca hem istenen politika hem de ana makine onay dosyasısecurity: "full"veask: "off"olarak çözümlendiğinde exec onaylarını atlayan acil durum kısayoludur.ask: "always"gibi daha katı bir ana makine dosyası yine onay ister.
Ana makine onay dosyası yapılandırmadan daha katı kalırsa daha katı olan ana makine politikası yine geçerli olur.
İzin verilenler listesi (agent başına)
İzin verilenler listeleri agent başınadır. Birden fazla agent varsa macOS uygulamasında düzenlediğiniz agent'ı değiştirin. Desenler glob eşleşmeleridir.
Desenler, çözümlenmiş ikili dosya yolu glob'ları veya yalnızca komut adı içeren glob'lar olabilir.
Yalnızca ad içerenler sadece PATH aracılığıyla çağrılan komutlarla eşleşir; dolayısıyla komut rg olduğunda rg,
/opt/homebrew/bin/rg ile eşleşebilir ancak ./rg veya
/tmp/rg ile eşleşmez. Belirli tek bir ikili dosya konumuna güvenmek için yol glob'u kullanın.
Eski agents.default girdileri yükleme sırasında agents.main biçimine taşınır.
echo ok && pwd gibi kabuk zincirlerinde yine her üst düzey bölümün
izin verilenler listesi kurallarını karşılaması gerekir.
Örnekler:
rg~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
Argümanları argPattern ile kısıtlama
Bir izin verilenler listesi girdisinin bir ikili dosyayla ve belirli bir
argüman biçimiyle eşleşmesi gerektiğinde argPattern ekleyin. OpenClaw, her ana makinede
ECMAScript (JavaScript) düzenli ifade semantiğini kullanır ve ifadeyi
çalıştırılabilir dosya belirteci (argv[0]) hariç, ayrıştırılmış komut argümanlarına göre
değerlendirir. Elle yazılan girdilerde argümanlar tek bir boşlukla birleştirilir; bu nedenle
tam eşleşme gerektiğinde deseni sabitleyin.
{ "version": 1, "agents": { "main": { "allowlist": [ { "pattern": "python3", "argPattern": "^safe\\.py$" } ] } }}Bu girdi python3 safe.py komutuna izin verir; python3 other.py, izin verilenler listesiyle
eşleşmez. Aynı ikili dosya için yalnızca yol içeren bir girdi de varsa eşleşmeyen
argümanlar yine bu yalnızca yol içeren girdiye geri dönebilir. Amaç ikili dosyayı
bildirilen argümanlarla kısıtlamaksa yalnızca yol içeren girdiyi dahil etmeyin.
Onay akışları tarafından kaydedilen girdiler, tam argv eşleşmesi için dahili bir
ayırıcı biçimi kullanır. Kodlanmış değeri elle düzenlemek yerine bu girdileri yeniden oluşturmak için
kullanıcı arayüzünü veya onay akışını tercih edin. OpenClaw bir komut bölümü için argv'yi
ayrıştıramazsa argPattern içeren girdiler eşleşmez.
Oluşturulan allow-always girdileri argv'ye bağlıdır. Yeni oluşturulan girdiler
argPattern içerir; daha eski, yalnızca yol içeren oluşturulmuş girdiler yok sayılır ve yeni bir
onay gerektirir. Elle oluşturulan yalnızca yol içeren bir kural için hem source hem de argPattern alanlarını dahil etmeyin.
Her izin verilenler listesi girdisi şunları destekler:
| Alan | Anlamı |
|---|---|
pattern |
Çözümlenmiş ikili dosya yolu glob'u veya yalnızca komut adı içeren glob |
argPattern |
ECMAScript argv regex'i veya oluşturulan tam argv karması; dahil edilmezse yalnızca yol |
id |
Kararlı, opak kimlik; yoksa UUID olarak oluşturulur |
source |
allow-always gibi oluşturulan girdi kaynağı; elle oluşturulan girdilerde dahil etmeyin |
commandText |
Eski düz metin girdisi; yükleme sırasında atılır |
lastUsedAt |
Son kullanım zaman damgası |
lastUsedCommand |
Eşleşen son komut; oluşturulan karmalı argv girdilerinde dahil edilmez |
lastResolvedPath |
Son çözümlenen ikili dosya yolu |
Skill CLI'larına otomatik izin verme
Skill CLI'larına otomatik izin verme (autoAllowSkills) etkinleştirildiğinde, bilinen Skills tarafından
başvurulan çalıştırılabilir dosyalar Node'larda (macOS Node'u
veya başsız Node ana makinesi) izin verilenler listesinde kabul edilir. Skill ikili dosya listesini
almak için Gateway RPC üzerinden skills.bins kullanılır. Kesin ve elle yönetilen
izin verilenler listeleri istiyorsanız bunu devre dışı bırakın.
Güvenli ikili dosyalar ve onay iletme
Güvenli ikili dosyalar (yalnızca stdin kullanan hızlı yol), yorumlayıcı bağlama ayrıntıları ve onay istemlerinin Slack/Discord/Telegram'a nasıl iletileceği (veya yerel onay istemcileri olarak nasıl çalıştırılacağı) hakkında bilgi için Gelişmiş exec onayları bölümüne bakın.
Control UI ile düzenleme
Varsayılanları, agent başına geçersiz kılmaları ve izin verilenler listelerini düzenlemek için Control UI -> Nodes -> Exec approvals kartını kullanın. Bir kapsam (Defaults veya bir agent) seçin, politikayı ayarlayın, izin verilenler listesi desenleri ekleyin/kaldırın ve ardından Save seçeneğine tıklayın. Kullanıcı arayüzü, listeyi düzenli tutabilmeniz için desen başına son kullanım meta verilerini gösterir.
Hedef seçici Gateway (yerel onaylar) veya bir Node seçer.
Node'lar system.execApprovals.get/set özelliğini duyurmalıdır (macOS uygulaması veya başsız
Node ana makinesi). Bir Node henüz exec onaylarını duyurmuyorsa yerel
onay dosyasını doğrudan düzenleyin.
Windows yardımcı uygulaması dâhil bazı Node ana makineleri farklı bir onay
politikası biçimine sahiptir. Control UI, ana makineye özgü bu politikaları salt okunur gösterir. Bunları düzenlemek için
yardımcı uygulamayı veya yerel politika biçimiyle openclaw approvals set --node <id|name|ip> kullanın;
bkz. Onaylar CLI'sı.
CLI: openclaw approvals, gateway veya Node düzenlemeyi destekler; bkz.
Onaylar CLI'sı.
Onay akışı
Onay istemi gerektiğinde gateway,
exec.approval.requested olayını operatör istemcilerine yayınlar. Control UI ve macOS
uygulaması bunu exec.approval.resolve aracılığıyla çözümler; ardından gateway,
onaylanan isteği Node ana makinesine iletir.
host=node için onay istekleri, standartlaştırılmış bir systemRunPlan
yükü içerir. Gateway, onaylanmış system.run isteklerini iletirken bu planı
belirleyici komut/cwd/oturum bağlamı olarak kullanır:
- Node exec yolu, baştan tek bir standartlaştırılmış plan hazırlar.
- Onay kaydı bu planı ve bağlama meta verilerini saklar.
- Onaylandıktan sonra iletilen son
system.runçağrısı, çağıranın sonraki düzenlemelerine güvenmek yerine saklanan planı yeniden kullanır. - Çağıran, onay isteği oluşturulduktan sonra
command,rawCommand,cwd,agentIdveyasessionKeydeğerlerini değiştirirse gateway, iletilen çalıştırmayı onay uyuşmazlığı nedeniyle reddeder.
Sistem olayları ve retler
Exec yaşam döngüsü, Node tamamlanma bildirdikten sonra agent'ın
oturumuna bir Exec finished sistem iletisi gönderir. OpenClaw ayrıca
onay verildikten ve tools.exec.approvalRunningNoticeMs süresi geçtikten sonra
(varsayılan 10000; 0 bunu devre dışı bırakır) devam eden bir işlem bildirimi yayımlayabilir.
Reddedilen exec onayları ana makine komutu açısından nihaidir: komut
çalıştırılmaz.
- Kaynak oturumu bulunan ana agent eşzamansız onaylarında OpenClaw, agent'ın eşzamansız komutu beklemeyi bırakabilmesi ve eksik sonuç onarımından kaçınabilmesi için reddi dahili bir takip olarak o oturuma geri gönderir.
- Oturum yoksa veya oturum devam ettirilemiyorsa OpenClaw yine de operatöre veya doğrudan sohbet rotasına kısa bir ret bildirebilir.
- Alt agent ve Cron oturumlarının retleri o oturuma geri gönderilmez.
Gateway ana makinesi exec onayları aynı tamamlanma yaşam döngüsü olayını yayımlar.
Onay geçitli exec işlemleri, bekleyen isteği tamamlanma/ret iletisiyle
(Exec finished (gateway id=...) / Exec denied (gateway id=...)) ilişkilendirmek için onay kimliğini yeniden kullanır.
Sonuçlar
fullgüçlüdür; mümkün olduğunda izin verilenler listelerini tercih edin.ask, hızlı onaylara izin verirken sizi süreçten haberdar eder.- Agent başına izin verilenler listeleri, bir agent'ın onaylarının diğerlerine sızmasını önler.
- Onaylar yalnızca yetkili göndericilerden gelen ana makine exec isteklerine uygulanır. Yetkisiz göndericiler
/execgönderemez. /exec security=full, yetkili operatörler için oturum düzeyinde bir kolaylıktır ve tasarım gereği onayları atlar. Ana makine exec işlemini kesin olarak engellemek için onay güvenliğinidenyolarak ayarlayın veya araç politikası aracılığıylaexecaracını reddedin.
İlgili
Güvenli ikili dosyalar, yorumlayıcı bağlama ve onayların sohbete iletilmesi.
Kabuk komutlarını yürütme aracı.
Onayları da atlayan acil durum erişim yolu.
Korumalı alan modları ve çalışma alanı erişimi.
Güvenlik modeli ve sağlamlaştırma.
Her bir denetimin ne zaman kullanılacağı.
Skills destekli otomatik izin verme davranışı.