選擇最窄的 permission mode
Ask 是 default,會對未允許 call 提示;Auto 可自動核准被分類為安全的 call,危險操作仍可能提示;Always-approve 會移除大多數提示,但 deny rules 與 PreToolUse hooks 仍有效。
有意識地切換 mode,只在受控 repository 與邊界清楚的任務使用 always-approve。記住的 allow 與明確 CLI/config allow 對危險 pattern 並不等價。
- /auto 在功能可用時啟用 Auto。
- /always-approve 啟用廣泛模式。
- deny rule 永遠優先於 allow rule。
grok --always-approve 加入明確 allow 與 deny policy
只 allow 任務真正需要的少量 tool 或 command pattern,並為絕不能執行的動作加入 deny。自動化 policy 前,用安裝版本的 CLI help 核對 exact pattern。
文件列出 Read、Edit、Grep、Bash、MCPTool、WebFetch 與 WebSearch 等 filter。git push、destructive file command、credential access 與 production mutation 都應有獨立 approval boundary。
grok --allow Read --allow Grep --deny Edit 用 sandbox 限制已核准 process
sandbox 預設為 off。workspace 適合一般開發、read-only 適合 review、strict 適合 untrusted repository;custom profile 可再加入 path 與 network restriction。
Linux 上的 read-only 與 strict 可阻擋 child-process network。官方文件指出這項 child-network restriction 在 macOS 是 no-op,而 in-process model 與 web-tool traffic 不受該設定影響。內建 profile 也不會永久保護 ~/.ssh 等憑證位置,必須明確限制敏感 path。
- Untrusted code 要把 strict 與窄 permissions 配對。
- ~/.grok 仍會保持 writable 以保存 session。
- 在每個 target OS 實測 effective policy。
grok --sandbox workspace
grok --sandbox read-only
grok --sandbox strict