类型:安全与配置 · 时机:8 月 14 日起 Pro/Max/Team 默认开启 auto mode(TechCrunch 2026-08-09),Claude Code 将默认自主执行、仅对「不可逆/破坏性/指向环境外」的动作询问。越自主,权限规则和沙箱越重要。本课 4 条技巧由浅入深,把安全边界画清楚。
技巧 1(入门):看懂三类规则——allow / deny / ask
权限规则写在 settings.json(项目级 .claude/settings.json 或用户级 ~/.claude/settings.json)的 permissions 里,deny 永远压过 allow:
{
"permissions": {
"allow": [
"Bash(npm run test:*)",
"Read(~/.zshrc)"
],
"ask": [
"Bash(git push:*)"
],
"deny": [
"Bash(curl:*)",
"Read(./.env)",
"Read(./secrets/**)"
]
}
}
要点:規則格式是 工具名(匹配模式);Bash(npm run test:*) 的 * 匹配任意后缀;Read(./.env) 这类 deny 规则是防止密钥被读走的第一道防线。改完不用重启,/permissions 面板里能直接看到当前生效的全部规则及其来源文件。
📖 参考:Claude Code 权限官方文档(IAM) · Permissions 完全指南
技巧 2(基础):权限模式与 auto mode 的关系
规则之外还有「模式」,可用 Shift+Tab 循环切换或 /permissions 查看:
default # 传统模式:每类首次操作询问
acceptEdits # 自动接受文件编辑,命令仍询问
plan # 只读规划,不执行任何写操作
bypassPermissions # 全部放行(容器/CI 里才建议)
auto mode 生效后的判定顺序是:hooks → deny 规则 → allow 规则 → ask 规则 → 当前模式的默认行为。也就是说你写的 deny/allow 始终优先于 auto mode 的自动分类——auto mode 只接管「规则没写到」的灰色地带,并自动拦截 curl | bash、rm -rf /、force push、terraform destroy 这类危险命令。不想要 auto mode,启动时 claude --permission-mode default 或在 settings.json 里固定 "defaultMode": "default" 即可。
📖 参考:6 种权限模式详解(SmartScope) · settings.json 字段参考
技巧 3(进阶):打开 Bash 沙箱,让「自动执行」发生在笼子里
沙箱把 Bash 命令关进受限环境(文件系统只见工作区、网络只通白名单),配合 auto mode 是最佳搭档——沙箱内自动跑,出沙箱才询问:
{
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": true,
"network": {
"allowedDomains": ["registry.npmjs.org", "pypi.org"]
}
}
}
会话内也可用 /sandbox 查看状态。命令若需要沙箱外能力(未列入白名单的域名、被排除的工具),会自动回落到常规询问流程,不会静默失败。注意沙箱不是万能:它防的是误操作与越权访问,防不了你主动 allow 出去的动作。
📖 参考:沙箱官方文档 · /sandbox 工作原理与边界
技巧 4(实战):CI/无头模式下的最小权限组合
无头模式(claude -p)没有人在旁边点确认,权限必须提前声明。CI 里推荐「白名单工具 + 容器内 bypass」两层策略:
# 只授权明确需要的工具(其余一律不可用)
claude -p "跑测试并修复失败用例" \
--allowedTools "Read" "Grep" "Bash(npm run test:*)" "Edit"
# 已在一次性容器/CI runner 里时,才用 bypass 换取零中断
claude -p "执行发布前检查清单" --permission-mode bypassPermissions
原则:宿主机上永远不用 bypassPermissions;项目的 .claude/settings.json 提交进 git,让团队共享同一套 deny 底线(如 Read(./.env)、Bash(git push --force:*));再用 ~/.claude/settings.json 放个人偏好。这样 auto mode、沙箱、CI 三个场景共用同一份规则源。
📖 参考:权限与沙箱管理实践(InventiveHQ) · 官方 IAM 文档
第 9 课 · 2026-08-13 · 上一课:第 8 课「上下文管理」(2026-08-12)
主页