
这篇拆解 Claude Code 的 Bash sandbox:它和权限模式怎么分工、`/sandbox` 怎么启用、allowed paths 与 allowed domains 怎么收窄边界,以及什么时候该升级到 sandbox runtime、dev container 或 VM。
/sandbox、Sandboxed Bash、allowed paths、allowed domains、sandbox runtime、dev container,以及它和 permission modes / permission rules 的边界。default、acceptEdits、plan、auto、dontAsk、bypassPermissions 等。1Allow 让匹配动作免确认,Ask 要求每次确认,Deny 直接阻止;规则评估顺序是 deny → ask → allow,所以一个更具体的 allow 不能覆盖更宽的 deny。2
/sandbox 不是一个开关,而是一个配置面板/sandbox 命令打开 sandbox 配置面板。官方页面把面板拆成 Mode、Overrides、Config;如果缺依赖,还会显示 Dependencies。3| 面板区域 | 你该关心什么 | 实战判断 |
|---|---|---|
| Mode | 当前 Bash 是否在 sandbox 下跑 | 先确认它有没有真正启用,不要只看权限弹窗少没少 |
| Overrides | 某些命令是否临时绕过 sandbox | 只给你非常确定的命令开例外 |
| Config | 哪些路径、哪些网络域名可以访问 | 按任务最小授权,不要一次性全开 |
CLAUDE.md 改写。官方还区分了 bare tool deny 和 scoped deny:例如裸 Bash deny 会把整个 Bash 工具从上下文中移除,而类似 Bash(rm *) 的 scoped deny 会保留工具,但阻止匹配调用。2npm test、pytest、只读检查命令。bypassPermissions 外,protected paths 不会被自动批准;deny 和 explicit ask 规则在所有模式下适用;allow rules 对 bypassPermissions 无效。1
目标:让 Claude 修一个前端组件 bug,并跑测试。
建议开放:
- 当前项目目录:可读写
- session temp:可读写
- npm / pnpm registry:按需联网
建议继续拦住:
- ~/.ssh
- 云厂商凭据目录
- 浏览器 Cookie / 本地密钥
- 和任务无关的个人目录| 方案 | 隔离对象 | Docker 依赖 | 适合场景 |
|---|---|---|---|
| Sandboxed Bash tool | Bash 命令及其子进程 | 不需要 | 想减少 Bash prompt,但仍在本机开发 |
| Sandbox runtime | 整个 Claude Code process | 不需要 | 想把 file tools / MCP / hooks 也纳入边界 |
| Dev container | 完整开发环境 | 需要 | 团队已有容器化开发流,需要一致环境 |
| Custom container | 完整开发环境 | 需要 | 需要自己定义更复杂的容器镜像 |
| Virtual machine | 完整 OS | 不需要 Docker | 处理不信任代码,愿意付出更高配置成本 |
| Claude Code on the web | Anthropic 托管完整 OS | 无需本地配置 | 使用托管环境,依赖 Claude subscription 与 GitHub |

--dangerously-skip-permissions 时,dev container 不能阻止恶意项目泄露容器内可访问内容,包括 ~/.claude 中的 Claude Code 凭据。5~/.ssh、云厂商凭据、长期 token 这类 host secrets 顺手挂进容器。更稳的做法是用 repo-scoped token、短期 token,或者把敏感凭据留在容器外。5/sandbox,先看 Mode 是否启用。| 你想控制的问题 | 用什么机制 | 不要误会成什么 |
|---|---|---|
| 要不要问我 | permission mode | 不是安全隔离 |
| 某类动作能不能做 | permission rules | 不是文件系统边界 |
| Bash 跑起来能碰哪里 | Sandboxed Bash | 不覆盖所有 Claude Code 工具 |
| 整个 Claude Code 进边界 | sandbox runtime / container / VM | 成本更高,需要按场景选择 |
| 容器里有没有 secrets | dev container 配置习惯 | 容器不会自动保护你挂进去的密钥 |
bypassPermissions 或全局放行。先跑 /sandbox,把路径和域名收窄到任务所需,再用 deny / ask / allow 把危险动作、确认点和高频动作分层。权限弹窗变少可以是效率提升,但前提是 sandbox 真的把活动范围关住了。docs.anthropic.com
docs.anthropic.com
docs.anthropic.com
docs.anthropic.com
docs.anthropic.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.