Permission模型提出动作Claude Code检查动作
👤
提出任务 「帮我把改动推到远程」
🧠
返回工具调用 Bash(git push)
权限系统检查 你电脑上的本地Claude Code说了算
⚖️
允许 ?询问用户 拒绝 交给auto分类器
通过后,工具才真正执行
权限检查,先记住三个问题
1
这是哪类工具?
读文件、跑Bash、改文件,风险不一样
工具风险类型
2
命中写过的规则?
比如允许npm test、拒绝git push
自定义权限规则
3
当前是什么mode?
这次任务默认宽松还是保守
六种权限模式
只读通常不问Bash和改文件要问
🔍
只读操作
ReadGrepGlob
没有直接修改你的系统
通常不问
>_
Bash命令
npm installgit push
装依赖、联网、删文件,什么都干得了
通常要问
✏️
文件修改
EditWrite
会改你的代码和配置
通常要问
allow自动允许·ask一定询问·deny直接拒绝
写在项目的.claude/settings.json里,输入/permissions能看到当前项目的规则
{ "permissions": { "allow": [ "Bash(npm run test)", "Bash(git status)", "Read(src/**)", "WebFetch(domain:example.com)" ], "ask": [ "Bash(git commit *)" ], "deny": [ "Bash(git push *)", "Read(./.env)" ] } }
npm run test
自动跑
抓 example.com
自动抓
git commit
每次都问
git push
不让跑
读 .env
不让读
优先级 deny ask allow
permission mode本次任务的基线策略
模式 它做什么 怎么切换
default 默认模式:读通常放行,危险动作询问 Shift+Tab循环切换
acceptEdits 自动接受工作目录内的文件编辑和常见文件操作 Shift+Tab循环切换
plan 只读和探索,不直接改源码 Shift+Tab循环切换
auto 很多待审批动作交给后台classifier自动判断
dontAsk 不弹窗:没预先允许就拒绝 显式启动或写配置
bypassPermissions 跳过大多数权限提示,只适合隔离环境 显式启动或写配置
启动时指定
claude --permission-mode acceptEdits
写进 .claude/settings.json
{ "permissions": { "defaultMode": "acceptEdits" } }
acceptEdits工作目录内编辑自动过外部副作用照样问
✓ 工作目录内,这些自动批准
EditWriteMultiEdit Bash(mkdirtouchrmrmdirmvcpsed)
Edit src/app.ts
自动批准
工作目录内改项目文件
Edit ~/.ssh/config
提示或阻止
跑到工作目录外,还碰敏感配置
Bash(npm install)
仍可能提示
改依赖、改lockfile,还可能联网跑安装脚本
Bash(git push origin main)
仍可能提示
影响远程仓库,明显的外部副作用
dontAsk不弹窗没允许就拒绝
{ "permissions": { "defaultMode": "dontAsk", "allow": [ "Read", "Grep", "Glob", "Bash(npm test)", "Bash(npm run lint)" ], "deny": [ "Bash(git push *)", "Bash(rm -rf *)" ] } }
读代码、搜文件、搜代码
直接执行
npm test / lint
直接执行
npm install
直接失败
git push / rm -rf
直接失败
npm install没命中任何规则——本来要弹窗的动作,在这里直接拒绝
auto机械审批交给后台classifier
1 命中allow / deny规则的,先直接处理
2 只读动作、工作目录内文件编辑,通常自动批准
3 其他动作,连同上下文一起发给classifier判断
4 classifier拦住的,Claude收到原因,换一种安全做法
classifier在判断什么
  • 这个动作符合用户请求吗
  • 有没有越权
  • 有没有碰危险路径
  • 像不像prompt injection驱动的动作
  • 风险能不能接受
bypassPermissions跳过权限提示直接执行
claude --dangerously-skip-permissions
✓ 可以开
  • 容器、dev container
  • 虚拟机VM
  • 可以随时重置的沙盒目录
✗ 不要开
  • 真实的home目录
  • 真实的生产仓库
  • 真实的云环境