本文根据 Claude Code 官方文档《Configure permissions》《Permission modes》整理,资料核对于 2026-11-05。配图为本站整理的示意图,不是界面截图。本站(bigolab.com)不是 Anthropic 官方网站。
适用于谁
- 用 Claude Code 时,每运行一条命令、改一个文件都要点一次确认,觉得被打断的人;
- 搜过「claude code 设置自动确认」,却不知道该选哪种模式、哪些风险要自己担的人;
- 已经在弹窗里点了「don't ask again」,下次还是被问的人。
结论先说
- 「一直问」是 Manual 模式(配置值
default)的正常表现:这个模式只有读取文件不用问,改文件、跑命令都要你确认。 - 有三层办法,从稳到猛:①弹窗里选 Yes, and don't ask again,把常用命令存成规则;②自己写
permissions.allow规则,精确放行一类命令;③换权限模式,用acceptEdits或auto一次性减少弹窗。 - 官方在 v2.1.283 及以后,把交互式终端和 VS Code 会话的内置默认模式定为
auto。如果你的版本、账号或模型不满足 auto 的条件,就会回到逐条询问,这是「明明新版本却还在问」的一个常见原因。 - 有些提示关不掉:写入
.git、.claude、.bashrc这类受保护路径,除了bypassPermissions之外都不会自动通过。 bypassPermissions官方只建议用在隔离的容器或虚拟机里,日常电脑上不要为了「不烦」就开。

图:本站根据 Claude Code 官方文档:Configure permissions 与 Permission modes 整理的示意图
一、先看一眼:你现在在哪种模式
官方的六种模式(配置值)是 default、acceptEdits、plan、auto、dontAsk、bypassPermissions。区别只有一个:哪些操作不用问你。

图:本站根据 Claude Code 官方文档:Permission modes 整理的示意图
终端里按 Shift+Tab 在模式之间切换。官方写明:从 auto 按一次到 default,之后依次是 default → acceptEdits → plan;auto 和 bypassPermissions 只有在已启用时才出现在循环里;dontAsk 不在循环里,只能启动时设定。各模式的完整说明见 /guides/claude-code-permission-modes,快捷键清单见 /guides/claude-code-keyboard-shortcuts。
会话启动时用哪个模式,官方的优先级是:--permission-mode 参数(或 --dangerously-skip-permissions)、其次是设置文件里的 permissions.defaultMode、最后才是内置默认。注意官方特别说明:写在项目的 .claude/settings.json 或 .claude/settings.local.json 里的 "auto" 与 "bypassPermissions" 不会生效,要放在用户级设置等位置。
二、办法一:弹窗里选 don't ask again
Bash 命令的权限弹窗,官方示例里有这几个选项:Yes、Yes, and don't ask again for: npm test \*、(部分情况下有)Yes, and switch to auto mode、No。
选「don't ask again」之后,保存的位置和时长因工具而异,官方的表格是这样写的:
| 工具 | 「don't ask again」的效果 |
|---|---|
| Bash 命令 | 永久,按仓库和命令保存 |
| 文件修改(Edit / Write) | 到本次会话结束 |
| WebFetch | 永久,按仓库和域名保存 |
| WebSearch | 永久,按仓库保存 |
永久保存的规则会写进 git 仓库根目录的 .claude/settings.local.json,之后在这个仓库里的任何子目录和 worktree 里开会话都生效。
两点提醒:
- 有的弹窗只有一次性批准,没有「don't ask again」。官方说,这是因为弹窗说不清楚「永久放行」会覆盖什么,此时可以批准一次,或者去
/permissions自己加规则; - 批准一条复合命令(比如
git status && npm test)时,Claude Code 会对每个需要批准的子命令分别存规则,而不是存整条字符串。
三、办法二:自己写 allow 规则
/permissions 会打开规则管理界面,列出所有规则和它们来自哪个 settings.json。你也可以直接在设置文件里写,官方示例:
json
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git commit *)"
],
"deny": [
"Bash(git push *)"
]
}
}
写规则要注意官方强调的几件事:
- **
要放在子命令之后*。Bash(git log )只放行git log,Bash(git )则放行所有 git 命令; - **
前面的空格是规则的一部分*:Bash(ls )不会匹配lsof,Bash(ls)会; - 规则按 deny → ask → allow 的顺序判断,第一个命中的生效,allow 没法给 deny 开例外;
- 复合命令要每个子命令都被放行才免问,
Bash(safe-cmd *)不会放行safe-cmd && other-cmd,识别的分隔符包括&&、||、;、|、|&、&和换行; - 官方明确说 Bash 规则不是安全边界:
Bash(git push *)拦得住git push origin main,拦不住git -C . push origin main这种写法。需要硬隔离时用沙箱或 PreToolUse hook。
项目里的 permissions.allow 要等你在该文件夹接受「工作区信任」对话框之后才会生效。设置文件的位置与优先级见 /guides/claude-code-settings-json。
四、办法三:换模式
acceptEdits:官方写的是,读取、改文件,以及工作目录内的 mkdir、touch、mv、cp、rm、rmdir、sed 自动通过,其他命令仍会问。适合你在边看边改代码、对改动有把握的时候。
auto:所有动作自动通过,由后台的分类器审查每个动作。官方说它会默认拦截强制推送、生产环境部署、云存储上的批量删除之类的动作,同时强调 auto 减少提示但不保证安全。官方列出的条件包括:团队版和企业版默认开启,管理员可以关;模型方面,走 Anthropic API 时需要 Claude Opus 4.6 或更新、Sonnet 4.6 或更新、Haiku 5.5 或 Fable 系列模型。模型能不能用取决于你的订阅或 API 开通情况,订阅的比较见 /guides/claude-code-pro-max-or-api,需要订阅可以看 /chongzhi/claude-code。
bypassPermissions:关掉权限提示和安全检查。官方的限定写得很清楚:
- 只在隔离环境里用,例如没有联网的容器、虚拟机或 dev container;
- deny 规则仍然生效,显式的
ask规则和被识别为关键路径的rm -rf仍会提示; - 不能在没有以此模式启动的会话里中途切入,要在启动时用
--permission-mode bypassPermissions或--dangerously-skip-permissions; - Linux 和 macOS 上以 root 或
sudo运行时,Claude Code 会拒绝启动。
五、改了还是在问,先查这几处
- 当前模式是不是
default?按 Shift+Tab 看底部状态显示; - 弹窗是不是对受保护路径的写入(
.git、.claude、.bashrc)?这类提示官方就不让自动通过; - 你的 allow 规则末尾有没有带
?不带只匹配一整条确切命令,参数一变就不匹配; - 命令是不是复合命令,其中某个子命令没被放行?
- 规则写在项目
.claude/settings.json里,但没接受工作区信任?
常见问题
Q:「设置自动确认」有没有一个开关?
官方文档里没有出现单独的「全部确认」开关,做法是选择权限模式,或者用规则精确放行。
Q:弹窗点了「don't ask again」,规则在哪看、怎么撤?
在 /permissions 里能看到并删除;Bash 的永久规则存在仓库根目录的 .claude/settings.local.json。
Q:auto 模式和 bypassPermissions 有什么区别?
auto 还有一个分类器在后台审查,会拦截危险动作;bypassPermissions 则几乎什么都不拦。
Q:会不会不小心放行 rm -rf?
acceptEdits 会自动通过工作目录内的 rm,所以别在重要目录里盲目开它。不想让 Claude 碰的命令可以写进 deny 规则,改动前最好先有 git 提交,万一改坏了的回退办法见 /guides/claude-code-rewind-checkpoints-undo。
相关教程
- /guides/claude-code-permission-modes:六种模式的完整对照
- /guides/claude-code-hooks:用 Hook 自己写拦截逻辑
- /guides/ai-coding-security-secrets-permissions:密钥与权限的安全注意事项
参考资料
- Claude Code 官方文档:Configure permissions — https://code.claude.com/docs/en/permissions
- Claude Code 官方文档:Permission modes — https://code.claude.com/docs/en/permission-modes
0 条评论
还没有评论,来抢沙发~