Exec onayları
Exec onayları, sandbox içindeki bir aracının gerçek bir ana makinede (gateway veya node)
komut çalıştırmasına izin vermek için kullanılan yardımcı uygulama / düğüm ana makinesi korumasıdır.
Bunu bir güvenlik kilidi gibi düşünün:
komutlara yalnızca ilke + allowlist + (isteğe bağlı) kullanıcı onayı birlikte izin veriyorsa izin verilir.
Exec onayları, araç ilkesi ve yükseltilmiş geçitlemeye ek olarak uygulanır (yükseltilmiş mod full olarak ayarlanmadıkça; bu durumda onaylar atlanır).
Etkin ilke, tools.exec.* ile onay varsayılanlarının daha katı olanıdır; bir onay alanı atlanırsa tools.exec değeri kullanılır.
Ana makine exec işlemi ayrıca o makinedeki yerel onay durumunu da kullanır. Ana makinede yerel
~/.openclaw/exec-approvals.json içindeki ask: "always" ayarı,
oturum veya yapılandırma varsayılanları ask: "on-miss" istese bile sormaya devam eder.
İstenen ilkeyi,
ana makine ilkesi kaynaklarını ve etkin sonucu incelemek için openclaw approvals get, openclaw approvals get --gateway veya
openclaw approvals get --node <id|name|ip> komutlarını kullanın.
Yardımcı uygulama UI’ı mevcut değilse, istem gerektiren her istek
ask fallback ile çözülür (varsayılan: deny).
Nerede uygulanır
Exec onayları yürütmenin yapıldığı ana makinede yerel olarak uygulanır:- gateway host → gateway makinesindeki
openclawsüreci - node host → düğüm çalıştırıcısı (macOS yardımcı uygulaması veya başsız düğüm ana makinesi)
- Gateway kimliği doğrulanmış çağıranlar, o Gateway için güvenilir operatörlerdir.
- Eşlenmiş düğümler, bu güvenilir operatör yeteneğini düğüm ana makinesine genişletir.
- Exec onayları kazara yürütme riskini azaltır, ancak kullanıcı başına bir kimlik doğrulama sınırı değildir.
- Onaylı düğüm-ana makinesi çalıştırmaları kanonik yürütme bağlamını bağlar: kanonik cwd, tam argv, mevcutsa env bağlama ve uygunsa sabitlenmiş yürütülebilir yol.
- Shell betikleri ve doğrudan yorumlayıcı/runtime dosya çağrıları için OpenClaw ayrıca tek bir somut yerel dosya işlenenini bağlamaya çalışır. Bu bağlı dosya onaydan sonra ama yürütmeden önce değişirse, kaymış içerik yürütülmek yerine çalıştırma reddedilir.
- Bu dosya bağlama, her yorumlayıcı/runtime yükleyici yolunun eksiksiz anlamsal modeli değil, kasıtlı olarak en iyi çabadır. Onay modu bağlanacak tam olarak bir somut yerel dosyayı belirleyemiyorsa, tam kapsam varmış gibi davranmak yerine onay destekli çalıştırma üretmeyi reddeder.
- node host service,
system.runçağrılarını yerel IPC üzerinden macOS uygulamasına iletir. - macOS uygulaması, onayları uygular ve komutu UI bağlamında yürütür.
Ayarlar ve depolama
Onaylar, yürütmenin yapıldığı ana makinede yerel bir JSON dosyasında tutulur:~/.openclaw/exec-approvals.json
Örnek şema:
Onaysız “YOLO” modu
Ana makinede exec işleminin onay istemleri olmadan çalışmasını istiyorsanız, her iki ilke katmanını da açmanız gerekir:- OpenClaw yapılandırmasında istenen exec ilkesi (
tools.exec.*) ~/.openclaw/exec-approvals.jsoniçindeki ana makineye yerel onay ilkesi
tools.exec.security:gateway/nodeüzerindefulltools.exec.ask:off- ana makine
askFallback:full
tools.exec.host=auto, exec işleminin nerede çalışacağını seçer: uygunsa sandbox içinde, aksi takdirde gateway üzerinde.- YOLO, ana makine exec işleminin nasıl onaylandığını seçer:
security=fullveask=off. auto, gateway yönlendirmesini sandbox içindeki bir oturumdan serbest bir geçersiz kılma hâline getirmez.host=nodeiçin çağrı başına istekautodurumundan kabul edilir vehost=gatewayyalnızca etkin bir sandbox runtime yokkenautodurumundan kabul edilir. Kararlı bir auto olmayan varsayılan istiyorsanıztools.exec.hostayarlayın veya/exec host=...değerini açıkça kullanın.
allowlist / on-miss
veya deny değerine geri sıkılaştırın.
Kalıcı gateway-host “asla sorma” kurulumu:
/exec security=full ask=offyalnızca geçerli oturumu değiştirir./elevated full, aynı zamanda bu oturum için exec onaylarını da atlayan bir acil durum kısayoludur.
İlke ayarları
Güvenlik (exec.security)
- deny: tüm ana makine exec isteklerini engelle.
- allowlist: yalnızca allowlist’e alınmış komutlara izin ver.
- full: her şeye izin ver (yükseltilmiş ile eşdeğer).
Sorma (exec.ask)
- off: asla sorma.
- on-miss: yalnızca allowlist eşleşmediğinde sor.
- always: her komutta sor.
- Etkin sorma modu
alwaysolduğundaallow-alwayskalıcı güveni istemleri bastırmaz
Sorma geri dönüşü (askFallback)
İstem gerekliyse ancak hiçbir UI erişilebilir değilse geri dönüş şu kararı verir:
- deny: engelle.
- allowlist: yalnızca allowlist eşleşirse izin ver.
- full: izin ver.
Satır içi yorumlayıcı eval sertleştirmesi (tools.exec.strictInlineEval)
tools.exec.strictInlineEval=true olduğunda OpenClaw, yorumlayıcı ikilisi
allowlist’te olsa bile satır içi kod-eval biçimlerini yalnızca onayla çalıştırılabilir olarak değerlendirir.
Örnekler:
python -cnode -e,node --eval,node -pruby -eperl -e,perl -Ephp -rlua -eosascript -e
- bu komutlar yine de açık onay gerektirir;
allow-always, bunlar için yeni allowlist girdilerini otomatik olarak kalıcılaştırmaz.
Allowlist (aracı başına)
Allowlist’ler aracı başınadır. Birden çok aracı varsa, macOS uygulamasında düzenlediğiniz aracıyı değiştirin. Desenler büyük/küçük harf duyarsız glob eşleşmeleridir. Desenler ikili dosya yollarına çözülmelidir (yalnızca ad tabanlı girdiler yok sayılır). Eskiagents.default girdileri yükleme sırasında agents.main içine taşınır.
echo ok && pwd gibi shell zincirleri için de üst düzey her bölümün allowlist kurallarını sağlaması gerekir.
Örnekler:
~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
- UI kimliği için kullanılan kararlı UUID id (isteğe bağlı)
- son kullanım zaman damgası
- son kullanılan komut
- son çözümlenen yol
Skill CLI’larını otomatik izinli yap
Auto-allow skill CLIs etkin olduğunda, bilinen Skills tarafından başvurulan yürütülebilir dosyalar düğümlerde (macOS düğümü veya başsız düğüm ana makinesi) allowlist’te sayılır. Bu, Skill ikili listesi almak için Gateway RPC üzerindenskills.bins kullanır. Sıkı manuel allowlist’ler istiyorsanız bunu devre dışı bırakın.
Önemli güven notları:
- Bu, manuel yol allowlist girdilerinden ayrı, örtük bir kolaylık allowlist’idir.
- Gateway ile düğümün aynı güven sınırında olduğu güvenilir operatör ortamları için tasarlanmıştır.
- Sıkı açık güven gerektiriyorsanız
autoAllowSkills: falseolarak bırakın ve yalnızca manuel yol allowlist girdilerini kullanın.
Güvenli ikili dosyalar (yalnızca stdin)
tools.exec.safeBins, açık allowlist girdileri olmadan
allowlist modunda çalışabilen küçük bir yalnızca stdin ikili dosya listesi tanımlar (örneğin cut).
Güvenli ikili dosyalar konumsal dosya argümanlarını ve yol benzeri belirteçleri reddeder,
bu nedenle yalnızca gelen akış üzerinde çalışabilirler.
Bunu genel bir güven listesi değil, akış filtreleri için dar bir hızlı yol olarak değerlendirin.
Yorumlayıcı veya runtime ikili dosyalarını (python3, node, ruby, bash, sh, zsh gibi)
safeBins içine eklemeyin.
Bir komut tasarım gereği kod değerlendirebiliyorsa, alt komut çalıştırabiliyorsa veya dosya okuyabiliyorsa,
açık allowlist girdilerini tercih edin ve onay istemlerini etkin tutun.
Özel güvenli ikili dosyalar tools.exec.safeBinProfiles.<bin> içinde açık bir profil tanımlamalıdır.
Doğrulama yalnızca argv şekline göre belirlenimcidir (ana makine dosya sistemi varlık denetimleri yoktur), bu da
izin/verme farklarından kaynaklanan dosya varlığı oracle davranışını önler.
Varsayılan güvenli ikili dosyalar için dosya odaklı seçenekler reddedilir (sort -o, sort --output,
sort --files0-from, sort --compress-program, sort --random-source,
sort --temporary-directory/-T, wc --files0-from, jq -f/--from-file,
grep -f/--file gibi).
Güvenli ikili dosyalar, yalnızca stdin davranışını bozan seçenekler için
açık ikili-dosya başına bayrak ilkesi de uygular (sort -o/--output/--compress-program ve grep özyinelemeli bayrakları gibi).
Uzun seçenekler, safe-bin modunda fail-closed olarak doğrulanır: bilinmeyen bayraklar ve
belirsiz kısaltmalar reddedilir.
Safe-bin profiline göre reddedilen bayraklar:
grep:--dereference-recursive,--directories,--exclude-from,--file,--recursive,-R,-d,-f,-rjq:--argfile,--from-file,--library-path,--rawfile,--slurpfile,-L,-fsort:--compress-program,--files0-from,--output,--random-source,--temporary-directory,-T,-owc:--files0-from
$VARS genişletmesi yoktur); böylece * veya $HOME/... gibi
örüntüler dosya okuma kaçırmak için kullanılamaz.
Güvenli ikili dosyalar ayrıca güvenilir ikili dizinlerden çözülmelidir (sistem varsayılanları ve isteğe bağlı
tools.exec.safeBinTrustedDirs dahil). PATH girdileri asla otomatik güvenilir sayılmaz.
Varsayılan güvenilir safe-bin dizinleri kasıtlı olarak küçüktür: /bin, /usr/bin.
Safe-bin yürütülebilir dosyanız paket yöneticisi/kullanıcı yollarında bulunuyorsa (örneğin
/opt/homebrew/bin, /usr/local/bin, /opt/local/bin, /snap/bin), bunları açıkça
tools.exec.safeBinTrustedDirs içine ekleyin.
Shell zincirleme ve yönlendirmeler allowlist modunda otomatik izinli değildir.
Shell zincirleme (&&, ||, ;), üst düzey her bölüm allowlist’i sağlıyorsa
(güvenli ikili dosyalar veya Skill auto-allow dahil) izinlidir. Yönlendirmeler allowlist modunda desteklenmez.
Komut ikamesi ($() / ters tırnaklar), çift tırnak içinde olsa bile allowlist ayrıştırması sırasında reddedilir;
literal $() metnine ihtiyacınız varsa tek tırnak kullanın.
macOS yardımcı uygulama onaylarında, shell denetim veya genişletme söz dizimi içeren ham shell metni
(&&, ||, ;, |, `, $, <, >, (, ))
shell ikilisinin kendisi allowlist’te değilse allowlist kaçırması sayılır.
Shell sarmalayıcıları için (bash|sh|zsh ... -c/-lc), istek kapsamlı env geçersiz kılmaları
küçük ve açık bir allowlist’e indirgenir (TERM, LANG, LC_*, COLORTERM, NO_COLOR, FORCE_COLOR).
Allowlist modunda allow-always kararları için bilinen yönlendirme sarmalayıcıları
(env, nice, nohup, stdbuf, timeout) sarmalayıcı yolları yerine iç yürütülebilir
yolları kalıcılaştırır. Shell çoklayıcıları (busybox, toybox) da shell applet’leri için (sh, ash,
vb.) açılır; böylece çoklayıcı ikilileri yerine iç yürütülebilir dosyalar kalıcılaştırılır. Bir sarmalayıcı veya
çoklayıcı güvenli biçimde açılamıyorsa, otomatik olarak hiçbir allowlist girdisi kalıcılaştırılmaz.
python3 veya node gibi yorumlayıcıları allowlist’e alıyorsanız satır içi eval hâlâ açık onay gerektirsin diye tools.exec.strictInlineEval=true kullanmayı tercih edin. Katı modda allow-always yine zararsız yorumlayıcı/betik çağrılarını kalıcılaştırabilir, ancak satır içi eval taşıyıcıları otomatik olarak kalıcılaştırılmaz.
Varsayılan güvenli ikili dosyalar:
cut, uniq, head, tail, tr, wc
grep ve sort varsayılan listede değildir. Bunları dahil ederseniz stdin dışı iş akışları için
açık allowlist girdilerini koruyun.
Safe-bin modunda grep için örüntüyü -e/--regexp ile sağlayın;
konumsal örüntü biçimi reddedilir; böylece dosya işlenenleri belirsiz konumsal argümanlar olarak kaçırılamaz.
Güvenli ikili dosyalar ve allowlist karşılaştırması
| Konu | tools.exec.safeBins | Allowlist (exec-approvals.json) |
|---|---|---|
| Amaç | Dar stdin filtrelerine otomatik izin verme | Belirli yürütülebilir dosyalara açıkça güvenme |
| Eşleşme türü | Yürütülebilir adı + safe-bin argv ilkesi | Çözümlenmiş yürütülebilir yol glob deseni |
| Argüman kapsamı | Safe-bin profili ve literal-token kurallarıyla kısıtlı | Yalnızca yol eşleşmesi; diğer durumlarda argümanlar sizin sorumluluğunuzdadır |
| Tipik örnekler | head, tail, tr, wc | jq, python3, node, ffmpeg, özel CLI’lar |
| En iyi kullanım | Boru hatlarında düşük riskli metin dönüştürmeleri | Daha geniş davranışa veya yan etkilere sahip tüm araçlar |
safeBins, yapılandırmadan gelir (tools.exec.safeBinsveya aracı başınaagents.list[].tools.exec.safeBins).safeBinTrustedDirs, yapılandırmadan gelir (tools.exec.safeBinTrustedDirsveya aracı başınaagents.list[].tools.exec.safeBinTrustedDirs).safeBinProfiles, yapılandırmadan gelir (tools.exec.safeBinProfilesveya aracı başınaagents.list[].tools.exec.safeBinProfiles). Aracı başına profil anahtarları genel anahtarları geçersiz kılar.- allowlist girdileri ana makineye yerel
~/.openclaw/exec-approvals.jsoniçindeagents.<id>.allowlistaltında yaşar (veya Control UI /openclaw approvals allowlist ...aracılığıyla). openclaw security audit, yorumlayıcı/runtime ikili dosyaları açık profiller olmadansafeBinsiçinde görünürsetools.exec.safe_bins_interpreter_unprofileduyarısı verir.openclaw doctor --fix, eksik özelsafeBinProfiles.<bin>girdilerini{}olarak iskeletleyebilir (sonrasında gözden geçirip sıkılaştırın). Yorumlayıcı/runtime ikili dosyaları otomatik iskeletlenmez.
jq’yu açıkça safeBins içine alırsanız OpenClaw safe-bin
modunda env builtin’ini yine reddeder; böylece jq -n env, açık bir allowlist yolu
veya onay istemi olmadan ana makine süreç ortamını dökemez.
Control UI düzenleme
Varsayılanları, aracı başına geçersiz kılmaları ve allowlist’leri düzenlemek için Control UI → Nodes → Exec approvals kartını kullanın. Bir kapsam seçin (Varsayılanlar veya bir aracı), ilkeyi değiştirin, allowlist desenleri ekleyin/kaldırın, ardından Save düğmesine basın. UI, listeyi düzenli tutabilmeniz için desen başına son kullanım meta verisini gösterir. Hedef seçici Gateway (yerel onaylar) veya bir Node seçer. Düğümlersystem.execApprovals.get/set ilan etmelidir (macOS uygulaması veya başsız düğüm ana makinesi).
Bir düğüm henüz exec onaylarını ilan etmiyorsa yerel
~/.openclaw/exec-approvals.json dosyasını doğrudan düzenleyin.
CLI: openclaw approvals, gateway veya node düzenlemeyi destekler (bkz. Approvals CLI).
Onay akışı
İstem gerektiğinde gateway, operatör istemcilerineexec.approval.requested yayını yapar.
Control UI ve macOS uygulaması bunu exec.approval.resolve ile çözer, ardından gateway onaylanan
isteği node host’a iletir.
host=node için onay istekleri kanonik bir systemRunPlan yükü içerir. Gateway,
onaylanmış system.run isteklerini iletirken bu planı yetkili komut/cwd/oturum bağlamı olarak kullanır.
Bu, eşzamanlı olmayan onay gecikmesi için önemlidir:
- node exec yolu başta tek bir kanonik plan hazırlar
- onay kaydı bu planı ve bağlama meta verisini saklar
- onaylandıktan sonra son iletilen
system.runçağrısı daha sonraki çağıran 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 uyumsuzluğu olarak reddeder
Yorumlayıcı/runtime komutları
Onay destekli yorumlayıcı/runtime çalıştırmaları kasıtlı olarak tutucudur:- Tam argv/cwd/env bağlamı her zaman bağlanır.
- Doğrudan shell betiği ve doğrudan runtime dosya biçimleri, en iyi çabayla tek bir somut yerel dosya anlık görüntüsüne bağlanır.
- Hâlâ tek bir doğrudan yerel dosyaya çözümlenen yaygın paket yöneticisi sarmalayıcı biçimleri (örneğin
pnpm exec,pnpm node,npm exec,npx) bağlamadan önce açılır. - OpenClaw bir yorumlayıcı/runtime komutu için tam olarak bir somut yerel dosyayı belirleyemezse (örneğin paket betikleri, eval biçimleri, runtime’a özgü yükleyici zincirleri veya belirsiz çok dosyalı biçimler), anlamsal kapsam varmış gibi iddia etmek yerine onay destekli yürütme reddedilir.
- Bu iş akışları için sandboxing, ayrı bir ana makine sınırı veya operatörün daha geniş runtime anlamlarını kabul ettiği açık trusted allowlist/full iş akışını tercih edin.
Exec finished / Exec denied) ilişkilendirmek için bu kimliği kullanın. Zaman aşımından önce
hiç karar gelmezse istek onay zaman aşımı olarak değerlendirilir ve ret nedeni olarak gösterilir.
Takip teslim davranışı
Onaylanmış eşzamanlı olmayan exec tamamlandıktan sonra OpenClaw aynı oturuma takip niteliğinde biragent turu gönderir.
- Geçerli bir harici teslim hedefi varsa (teslim edilebilir kanal ve hedef
to), takip teslimi bu kanalı kullanır. - Dış hedefi olmayan yalnızca webchat veya iç oturum akışlarında takip teslimi yalnızca oturumda kalır (
deliver: false). - Bir çağıran çözümlenebilir harici kanal olmadan açıkça sıkı harici teslim isterse istek
INVALID_REQUESTile başarısız olur. bestEffortDeliveretkinse ve harici kanal çözümlenemiyorsa teslim başarısız olmak yerine yalnızca oturuma düşürülür.
- komut + argümanlar
- cwd
- aracı kimliği
- çözümlenmiş yürütülebilir yol
- ana makine + ilke meta verisi
- Allow once → şimdi çalıştır
- Always allow → allowlist’e ekle + çalıştır
- Deny → engelle
Sohbet kanallarına onay iletme
Exec onay istemlerini herhangi bir sohbet kanalına (plugin kanalları dahil) iletebilir ve bunları/approve ile onaylayabilirsiniz. Bu, normal giden teslim işlem hattını kullanır.
Yapılandırma:
OC_I18N_900005
Sohbette yanıt verin:
OC_I18N_900006
/approve komutu hem exec onaylarını hem de plugin onaylarını işler. Kimlik bekleyen bir exec onayıyla eşleşmezse otomatik olarak bunun yerine plugin onaylarını denetler.
Plugin onayı iletimi
Plugin onayı iletimi, exec onaylarıyla aynı teslim işlem hattını kullanır ancakapprovals.plugin altında kendi bağımsız yapılandırmasına sahiptir. Birini etkinleştirmek veya devre dışı bırakmak diğerini etkilemez.
OC_I18N_900007
Yapılandırma şekli approvals.exec ile aynıdır: enabled, mode, agentFilter,
sessionFilter ve targets aynı şekilde çalışır.
Paylaşılan etkileşimli yanıtları destekleyen kanallar hem exec hem de
plugin onayları için aynı onay düğmelerini gösterir. Paylaşılan etkileşimli UI’ı olmayan kanallar
/approve talimatları içeren düz metne geri döner.
Herhangi bir kanalda aynı sohbette onaylar
Bir exec veya plugin onay isteği teslim edilebilir bir sohbet yüzeyinden geldiğinde, aynı sohbet artık varsayılan olarak bunu/approve ile onaylayabilir. Bu, mevcut Web UI ve terminal UI akışlarına ek olarak
Slack, Matrix ve Microsoft Teams gibi kanallar için de geçerlidir.
Bu paylaşılan metin-komut yolu, o konuşma için normal kanal auth modelini kullanır. Kaynak sohbet
zaten komut gönderebiliyor ve yanıt alabiliyorsa onay isteklerinin beklemede kalması için artık
ayrı bir yerel teslim bağdaştırıcısına gerek yoktur.
Discord ve Telegram da aynı sohbette /approve desteği sunar, ancak bu kanallar
yerel onay teslimi devre dışı olsa bile yetkilendirme için çözümlenen approver listesini kullanmaya devam eder.
Gateway’i doğrudan çağıran Telegram ve diğer yerel onay istemcileri için,
bu geri dönüş kasıtlı olarak “approval not found” hatalarıyla sınırlıdır. Gerçek bir
exec onayı reddi/hatası sessizce plugin onayı olarak yeniden denenmez.
Yerel onay teslimi
Bazı kanallar yerel onay istemcileri olarak da çalışabilir. Yerel istemciler, paylaşılan aynı sohbet/approve akışına ek olarak approver DM’leri, kaynak-sohbet
fanout’u ve kanala özgü etkileşimli onay UX’i ekler.
Yerel onay kartları/düğmeleri mevcut olduğunda bu yerel UI
aracıya dönük birincil yoldur. Araç sonucu sohbet onaylarının mevcut olmadığını veya
manuel onayın kalan tek yol olduğunu söylemedikçe aracı ayrıca düz sohbet
/approve komutunu yinelememelidir.
Genel model:
- ana makine exec ilkesi hâlâ exec onayı gerekip gerekmediğine karar verir
approvals.exec, onay istemlerinin diğer sohbet hedeflerine iletilmesini denetlerchannels.<channel>.execApprovals, o kanalın yerel onay istemcisi olarak davranıp davranmayacağını denetler
- kanal yerel onay teslimini destekliyordur
- approver’lar açık
execApprovals.approversveya o kanalın belgelenmiş geri dönüş kaynaklarından çözümlenebiliyordur channels.<channel>.execApprovals.enabledayarsızdır veya"auto"değerindedir
enabled: false ayarlayın. Approver’lar çözümlendiğinde
zorla açmak için enabled: true ayarlayın. Genel kaynak-sohbet teslimi
channels.<channel>.execApprovals.target ile açık kalır.
SSS: Sohbet onayları için neden iki exec onay yapılandırması var?
- Discord:
channels.discord.execApprovals.* - Slack:
channels.slack.execApprovals.* - Telegram:
channels.telegram.execApprovals.*
/approve akışı ve paylaşılan onay düğmeleri üzerine DM yönlendirmesi ve isteğe bağlı kanal fanout’u ekler.
Paylaşılan davranış:
- Slack, Matrix, Microsoft Teams ve benzeri teslim edilebilir sohbetler,
aynı sohbette
/approveiçin normal kanal auth modelini kullanır - yerel onay istemcisi otomatik etkinleştiğinde varsayılan yerel teslim hedefi approver DM’leridir
- Discord ve Telegram için yalnızca çözümlenen approver’lar onaylayabilir veya reddedebilir
- Discord approver’ları açık olabilir (
execApprovals.approvers) veyacommands.ownerAllowFromüzerinden çıkarılabilir - Telegram approver’ları açık olabilir (
execApprovals.approvers) veya mevcut owner yapılandırmasından çıkarılabilir (allowFrom, artı desteklenen yerlerde doğrudan mesajdefaultTo) - Slack approver’ları açık olabilir (
execApprovals.approvers) veyacommands.ownerAllowFromüzerinden çıkarılabilir - Slack yerel düğmeleri onay kimliği türünü korur; böylece
plugin:kimlikleri ikinci bir Slack yerel geri dönüş katmanı olmadan plugin onaylarını çözebilir - Matrix yerel DM/kanal yönlendirmesi yalnızca exec içindir; Matrix plugin onayları paylaşılan
aynı sohbet
/approveve isteğe bağlıapprovals.pluginiletme yollarında kalır - isteği yapan kişinin approver olması gerekmez
- kaynak sohbet zaten komutları ve yanıtları destekliyorsa
/approveile doğrudan onaylayabilir - yerel Discord onay düğmeleri onay kimliği türüne göre yönlendirir:
plugin:kimlikleri doğrudan plugin onaylarına gider, diğer her şey exec onaylarına gider - yerel Telegram onay düğmeleri
/approveile aynı sınırlı exec→plugin geri dönüşünü izler - yerel
target, kaynak-sohbet teslimini etkinleştirdiğinde onay istemleri komut metnini içerir - bekleyen exec onayları varsayılan olarak 30 dakika sonra sona erer
- hiçbir operatör UI’ı veya yapılandırılmış onay istemcisi isteği kabul edemezse istem
askFallbackdeğerine geri düşer
target: "dm"). Onay istemlerinin kaynak Telegram sohbetinde/konusunda da görünmesini istiyorsanız bunu channel veya both olarak değiştirebilirsiniz. Telegram forum konularında OpenClaw, onay istemi ve onay sonrası takip için konuyu korur.
Bkz.:
macOS IPC akışı
OC_I18N_900008 Güvenlik notları:- Unix soket modu
0600, tokenexec-approvals.jsoniçinde saklanır. - Aynı UID eş kontrolü.
- Challenge/response (nonce + HMAC token + istek hash’i) + kısa TTL.
Sistem olayları
Exec yaşam döngüsü sistem mesajları olarak gösterilir:Exec running(yalnızca komut çalışma bildirimi eşiğini aşarsa)Exec finishedExec denied
runId olarak onay kimliğini yeniden kullanır.
Reddedilen onay davranışı
Eşzamanlı olmayan bir exec onayı reddedildiğinde OpenClaw, aracının oturumdaki aynı komutun daha önceki herhangi bir çalıştırmasından çıktı yeniden kullanmasını engeller. Ret nedeni, komut çıktısının mevcut olmadığına dair açık yönlendirmeyle birlikte iletilir; bu da aracının yeni çıktı varmış gibi davranmasını veya önceki başarılı bir çalıştırmadan gelen bayat sonuçlarla reddedilen komutu yinelemesini durdurur.Etkileri
- full güçlüdür; mümkün olduğunda allowlist’leri tercih edin.
- ask, hızlı onaylara izin verirken sizi de döngünün içinde tutar.
- Aracı başına allowlist’ler, bir aracının onaylarının diğerlerine sızmasını önler.
- Onaylar yalnızca yetkili gönderenlerden gelen ana makine exec isteklerine uygulanır. Yetkisiz gönderenler
/execveremez. /exec security=full, yetkili operatörler için oturum düzeyinde bir kolaylıktır ve tasarım gereği onayları atlar. Ana makinede exec’i sert biçimde engellemek için onay güvenliğinidenyyapın veya araç ilkesiyleexecaracını reddedin.
İlgili
- Exec — shell komutu yürütme aracı
- Sandboxing — sandbox modları ve çalışma alanı erişimi
- Security — güvenlik modeli ve sertleştirme
- Sandbox vs Tool Policy vs Elevated — her biri ne zaman kullanılmalı