实测版本:Claude Code v0.2.9 | 测试环境:macOS 15.4 隔离沙箱
我们在隔离的开发沙箱中测试了 Claude Code 的安全拦截生命周期。默认情况下,Claude Code 在写文件、跑 shell、发网络请求时,均会停下来请求用户批准。这个停顿非常关键,但针对不同复杂度的研发任务,对确认频率的容忍度也不同。
场景需求
- 陌生项目: 你想看清每一步,多问没坏处。
- 批量编辑: 你已经审过了 plan,确认接下来 20 处编辑都对,一次次按 y 浪费时间。
- 自动化 (CI/CD): 没有人在终端前回答 prompt,必须无人值守。
- 隔离环境: 在容器里跑实验,环境是一次性的,要的就是不打断。
策略基线
权限模式(permission mode)就是用来切换这条策略基线。它不是一刀切的“开/关”,而是一组档位:每种模式定义“哪些动作可以不问就跑”。
flowchart LR
T[Claude 想用工具] --> R{permissions 规则}
R -- 命中 deny --> Z[拒绝]
R -- 命中 ask --> P[弹 prompt]
R -- 命中 allow --> X[执行]
R -- 无规则命中 --> M{当前模式}
M --> X
M --> P总结: 模式 = 默认行为;规则 = 细粒度白/黑名单;Hooks = 运行时可编程逻辑。三层叠加。