gateway atau node). Sebuah
interlock keselamatan: perintah hanya diizinkan ketika kebijakan + daftar izinkan +
(opsional) persetujuan pengguna semuanya setuju. Persetujuan exec ditumpuk di atas
kebijakan tool dan gating elevated (kecuali elevated diatur ke full, yang
melewati persetujuan).
Untuk gambaran umum berbasis mode tentang deny, allowlist, ask, auto, full,
pemetaan Codex Guardian, dan izin harness ACPX, lihat
Mode izin.
Kebijakan efektif adalah yang lebih ketat dari default
tools.exec.* dan
persetujuan; jika sebuah field persetujuan dihilangkan, nilai tools.exec akan
digunakan. Exec host juga menggunakan status persetujuan lokal pada mesin tersebut - sebuah
ask: "always" lokal-host dalam file persetujuan host eksekusi tetap akan
meminta konfirmasi meskipun default sesi atau konfigurasi meminta ask: "on-miss".Memeriksa kebijakan efektif
| Perintah | Yang ditampilkan |
|---|---|
openclaw approvals get / --gateway / --node <id|name|ip> | Kebijakan yang diminta, sumber kebijakan host, dan hasil efektif. |
openclaw exec-policy show | Tampilan gabungan mesin lokal. |
openclaw exec-policy set / preset | Sinkronkan kebijakan lokal yang diminta dengan file persetujuan host lokal dalam satu langkah. |
host=node, exec-policy show melaporkan
scope tersebut sebagai dikelola node saat runtime alih-alih berpura-pura bahwa file
persetujuan lokal adalah sumber kebenaran.
Jika UI aplikasi pendamping tidak tersedia, permintaan apa pun yang biasanya
akan memunculkan prompt diselesaikan oleh fallback ask (default: deny).
Tempat penerapannya
Persetujuan exec diberlakukan secara lokal pada host eksekusi:- Host Gateway → proses
openclawpada mesin gateway. - Host node → runner node (aplikasi pendamping macOS atau host node headless).
Model kepercayaan
- Pemanggil yang diautentikasi Gateway dipercaya sebagai operator untuk Gateway tersebut.
- Node yang dipasangkan memperluas kapabilitas operator tepercaya itu ke host node.
- Persetujuan exec mengurangi risiko eksekusi tidak sengaja, tetapi bukan batas autentikasi per pengguna atau kebijakan filesystem read-only.
- Setelah disetujui, perintah dapat mengubah file sesuai izin host atau filesystem sandbox yang dipilih.
- Run host-node yang disetujui mengikat konteks eksekusi kanonis: cwd kanonis, argv persis, binding env saat ada, dan path executable yang dipin saat berlaku.
- Untuk skrip shell dan pemanggilan file interpreter/runtime langsung, OpenClaw juga mencoba mengikat satu operand file lokal konkret. Jika file terikat itu berubah setelah persetujuan tetapi sebelum eksekusi, run ditolak alih-alih mengeksekusi konten yang bergeser.
- Binding file sengaja bersifat best-effort, bukan model semantik lengkap untuk setiap path loader interpreter/runtime. Jika mode persetujuan tidak dapat mengidentifikasi tepat satu file lokal konkret untuk diikat, mode tersebut menolak membuat run berbasis persetujuan alih-alih berpura-pura memiliki cakupan penuh.
Pemisahan macOS
- Layanan host node meneruskan
system.runke aplikasi macOS melalui IPC lokal. - Aplikasi macOS memberlakukan persetujuan dan menjalankan perintah dalam konteks UI.
Pengaturan dan penyimpanan
Persetujuan berada dalam file JSON lokal pada host eksekusi. KetikaOPENCLAW_STATE_DIR diatur, file mengikuti direktori status tersebut;
jika tidak, file menggunakan direktori status default OpenClaw:
$OPENCLAW_STATE_DIR/exec-approvals.sock, atau
~/.openclaw/exec-approvals.sock ketika variabel tidak diatur.
Contoh skema:
Kenop kebijakan
tools.exec.mode
tools.exec.mode adalah permukaan kebijakan ternormalisasi yang disarankan untuk exec host.
Nilainya adalah:
deny- blokir exec host.allowlist- jalankan hanya perintah dalam daftar izinkan tanpa bertanya.ask- gunakan kebijakan daftar izinkan dan bertanya pada miss.auto- gunakan kebijakan daftar izinkan, jalankan kecocokan deterministik secara langsung, dan kirim miss persetujuan melalui reviewer otomatis native OpenClaw sebelum fallback ke rute persetujuan manusia.full- jalankan exec host tanpa prompt persetujuan.
tools.exec.security / tools.exec.ask tetap didukung dan masih menang
ketika diatur pada scope sesi atau agen yang lebih sempit.
exec.security
deny- blokir semua permintaan exec host.allowlist- izinkan hanya perintah dalam daftar izinkan.full- izinkan semuanya (setara dengan elevated).
exec.ask
Kebijakan ask yang dikonfigurasi untuk exec host. Mengontrol perilaku prompt
persetujuan baseline dari
tools.exec.ask dan default persetujuan host. Parameter tool
per panggilan ask (lihat Tool exec)
hanya dapat memperketat baseline itu, dan panggilan model asal channel mengabaikannya
ketika ask host efektif adalah off.off- jangan pernah memunculkan prompt.on-miss- prompt hanya ketika daftar izinkan tidak cocok.always- prompt pada setiap perintah. Kepercayaan tahan lamaallow-alwaystidak menekan prompt ketika mode ask efektif adalahalways.
askFallback
Resolusi ketika prompt diperlukan tetapi tidak ada UI yang dapat dijangkau. Jika field ini
dihilangkan, OpenClaw menggunakan default
deny.deny- blokir.allowlist- izinkan hanya jika daftar izinkan cocok.full- izinkan.
tools.exec.strictInlineEval
Ketika
true, OpenClaw memperlakukan bentuk eval kode inline sebagai hanya-persetujuan
meskipun binary interpreter itu sendiri ada dalam daftar izinkan. Defense-in-depth
untuk loader interpreter yang tidak memetakan secara bersih ke satu operand file stabil.python -cnode -e,node --eval,node -pruby -eperl -e,perl -Ephp -rlua -eosascript -e
allow-always tidak mempertahankan entri daftar izinkan baru untuknya
secara otomatis.
tools.exec.commandHighlighting
Hanya mengontrol presentasi dalam prompt persetujuan exec. Ketika diaktifkan,
OpenClaw dapat melampirkan span perintah turunan parser sehingga prompt persetujuan
Web dapat menyorot token perintah. Atur ke
true untuk mengaktifkan
penyorotan teks perintah.security, ask, pencocokan daftar izinkan,
perilaku inline-eval ketat, penerusan persetujuan, atau eksekusi perintah.
Ini dapat diatur secara global di bawah tools.exec.commandHighlighting atau per
agen di bawah agents.list[].tools.exec.commandHighlighting.
Mode YOLO (tanpa persetujuan)
Jika Anda ingin exec host berjalan tanpa prompt persetujuan, Anda harus membuka kedua lapisan kebijakan - kebijakan exec yang diminta dalam konfigurasi OpenClaw (tools.exec.*) dan kebijakan persetujuan lokal-host dalam
file persetujuan host eksekusi.
OpenClaw menetapkan default askFallback yang dihilangkan ke deny. Atur
askFallback host ke full secara eksplisit ketika prompt persetujuan tanpa UI harus
fallback ke izin.
| Lapisan | Pengaturan YOLO |
|---|---|
tools.exec.security | full pada gateway/node |
tools.exec.ask | off |
Host askFallback | full |
--permission-mode bypassPermissions ketika kebijakan exec efektif OpenClaw
adalah YOLO. Untuk sesi live Claude yang dikelola OpenClaw, kebijakan exec
efektif OpenClaw bersifat otoritatif atas mode izin native Claude:
YOLO menormalkan peluncuran live ke --permission-mode bypassPermissions, dan
kebijakan exec efektif yang restriktif menormalkan peluncuran live ke
--permission-mode default, meskipun arg backend Claude mentah menentukan mode lain.
Jika Anda menginginkan setup yang lebih konservatif, ketatkan kembali kebijakan exec OpenClaw ke
allowlist / on-miss atau deny.
Setup gateway-host persisten “jangan pernah prompt”
Shortcut lokal
tools.exec.host/security/asklokal.- Default file persetujuan lokal, termasuk
askFallback: "full".
openclaw approvals set --gateway atau
openclaw approvals set --node <id|name|ip>.
Host node
Untuk host node, terapkan file persetujuan yang sama pada node tersebut:Batasan hanya-lokal:
openclaw exec-policytidak menyinkronkan persetujuan node.openclaw exec-policy set --host nodeditolak.- Persetujuan exec node diambil dari node saat runtime, sehingga pembaruan yang ditargetkan ke node harus menggunakan
openclaw approvals --node ....
Shortcut hanya-sesi
/exec security=full ask=offhanya mengubah sesi saat ini./elevated fulladalah pintasan darurat yang melewati persetujuan exec hanya ketika kebijakan yang diminta dan file persetujuan host sama-sama menghasilkansecurity: "full"danask: "off". File host yang lebih ketat, sepertiask: "always", tetap akan meminta konfirmasi.
Daftar izin (per agen)
Daftar izin bersifat per agen. Jika ada beberapa agen, ganti agen yang sedang Anda edit di aplikasi macOS. Pola adalah pencocokan glob. Pola dapat berupa glob path biner yang terselesaikan atau glob nama perintah saja. Nama saja hanya cocok dengan perintah yang dijalankan melaluiPATH, jadi rg dapat cocok dengan
/opt/homebrew/bin/rg ketika perintahnya adalah rg, tetapi tidak dengan ./rg atau
/tmp/rg. Gunakan glob path saat Anda ingin memercayai satu lokasi biner
tertentu.
Entri lama agents.default dimigrasikan ke agents.main saat dimuat.
Rantai shell seperti echo ok && pwd tetap memerlukan setiap segmen tingkat atas
untuk memenuhi aturan daftar izin.
Contoh:
rg~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
Membatasi argumen dengan argPattern
TambahkanargPattern ketika entri daftar izin harus cocok dengan sebuah biner dan
bentuk argumen tertentu. OpenClaw mengevaluasi ekspresi reguler
terhadap argumen perintah yang telah diurai, dengan mengecualikan token executable
(argv[0]). Untuk entri yang ditulis manual, argumen digabungkan dengan
satu spasi, jadi tambahkan anchor pada pola saat Anda memerlukan kecocokan persis.
python3 safe.py; python3 other.py adalah ketidakcocokan
daftar izin. Jika entri khusus path untuk biner yang sama juga ada, argumen
yang tidak cocok masih dapat fallback ke entri khusus path tersebut. Hilangkan entri khusus path
ketika tujuannya adalah membatasi biner ke argumen yang dideklarasikan.
Entri yang disimpan oleh alur persetujuan dapat menggunakan format pemisah internal untuk
pencocokan argv yang persis. Sebaiknya gunakan UI atau alur persetujuan untuk membuat ulang
entri tersebut alih-alih mengedit nilai yang dienkode secara manual. Jika OpenClaw tidak dapat
mengurai argv untuk segmen perintah, entri dengan argPattern tidak cocok.
Setiap entri daftar izin mendukung:
| Bidang | Makna |
|---|---|
pattern | Glob path biner yang terselesaikan atau glob nama perintah saja |
argPattern | Regex argv opsional; entri yang dihilangkan hanya khusus path |
id | UUID stabil yang digunakan untuk identitas UI |
source | Sumber entri, seperti allow-always |
commandText | Teks perintah yang ditangkap saat alur persetujuan membuat entri |
lastUsedAt | Timestamp terakhir digunakan |
lastUsedCommand | Perintah terakhir yang cocok |
lastResolvedPath | Path biner terakhir yang terselesaikan |
Izinkan otomatis CLI Skills
Saat Izinkan otomatis CLI Skills diaktifkan, executable yang direferensikan oleh Skills yang diketahui diperlakukan sebagai masuk daftar izin pada node (node macOS atau host node headless). Ini menggunakanskills.bins melalui RPC Gateway untuk mengambil
daftar bin skill. Nonaktifkan ini jika Anda menginginkan daftar izin manual yang ketat.
Bin aman dan penerusan persetujuan
Untuk bin aman (jalur cepat khusus stdin), detail binding interpreter, dan cara meneruskan prompt persetujuan ke Slack/Discord/Telegram (atau menjalankannya sebagai klien persetujuan native), lihat Persetujuan exec - lanjutan.Pengeditan UI Kontrol
Gunakan kartu UI Kontrol → Node → Persetujuan exec untuk mengedit default, override per agen, dan daftar izin. Pilih cakupan (Default atau agen), sesuaikan kebijakan, tambah/hapus pola daftar izin, lalu Simpan. UI menampilkan metadata terakhir digunakan per pola agar Anda dapat menjaga daftar tetap rapi. Pemilih target memilih Gateway (persetujuan lokal) atau Node. Node harus mengiklankansystem.execApprovals.get/set (aplikasi macOS atau
host node headless). Jika node belum mengiklankan persetujuan exec,
edit file persetujuan lokalnya secara langsung.
CLI: openclaw approvals mendukung pengeditan gateway atau node - lihat
CLI Persetujuan.
Alur persetujuan
Ketika prompt diperlukan, gateway menyiarkanexec.approval.requested ke klien operator. UI Kontrol dan aplikasi macOS
menyelesaikannya melalui exec.approval.resolve, lalu gateway meneruskan
permintaan yang disetujui ke host node.
Untuk host=node, permintaan persetujuan menyertakan payload systemRunPlan
kanonis. Gateway menggunakan rencana tersebut sebagai konteks
command/cwd/session yang otoritatif saat meneruskan permintaan system.run
yang disetujui.
Ini penting untuk latensi persetujuan asinkron:
- Jalur exec node menyiapkan satu rencana kanonis di awal.
- Catatan persetujuan menyimpan rencana tersebut beserta metadata binding-nya.
- Setelah disetujui, panggilan
system.runakhir yang diteruskan menggunakan ulang rencana tersimpan alih-alih memercayai edit pemanggil yang lebih baru. - Jika pemanggil mengubah
command,rawCommand,cwd,agentId, atausessionKeysetelah permintaan persetujuan dibuat, gateway menolak run yang diteruskan sebagai ketidakcocokan persetujuan.
Peristiwa sistem
Siklus hidup exec ditampilkan sebagai pesan sistem:Exec running(hanya jika perintah melebihi ambang pemberitahuan berjalan).Exec finished.
runId dalam
pesan ini untuk korelasi yang mudah.
Perilaku persetujuan yang ditolak
Ketika persetujuan exec asinkron ditolak, OpenClaw memperlakukan perintah host sebagai terminal dan fail-closed. Untuk sesi agen utama, penolakan dikirim sebagai tindak lanjut sesi internal yang memberi tahu agen bahwa perintah asinkron tidak berjalan. Ini menjaga kontinuitas transkrip tanpa mengekspos output perintah yang usang. Jika pengiriman sesi tidak tersedia, OpenClaw fallback ke penolakan operator atau chat langsung yang ringkas saat rute aman tersedia.Implikasi
fullkuat; utamakan daftar izin jika memungkinkan.askmembuat Anda tetap terlibat sambil tetap memungkinkan persetujuan cepat.- Daftar izin per agen mencegah persetujuan satu agen bocor ke agen lain.
- Persetujuan hanya berlaku untuk permintaan exec host dari pengirim berwenang. Pengirim tidak berwenang tidak dapat menerbitkan
/exec. /exec security=fulladalah kemudahan tingkat sesi untuk operator berwenang dan melewati persetujuan sesuai desain. Untuk memblokir exec host secara keras, atur keamanan persetujuan kedenyatau tolak alatexecmelalui kebijakan alat.
Terkait
Exec approvals - advanced
Bin aman, binding interpreter, dan penerusan persetujuan ke chat.
Exec tool
Alat eksekusi perintah shell.
Elevated mode
Jalur darurat yang juga melewati persetujuan.
Sandboxing
Mode sandbox dan akses workspace.
Security
Model keamanan dan hardening.
Sandbox vs tool policy vs elevated
Kapan menggunakan setiap kontrol.
Skills
Perilaku izinkan otomatis yang didukung Skills.