首页/文章/Claude Code 跳过权限模式不只是少弹窗:.zshrc、.gitconfig、.git 都能被直接改

Claude Code 跳过权限模式不只是少弹窗:.zshrc、.gitconfig、.git 都能被直接改

· Zumac.Ai

帖子说了什么

@rickyrates 提醒:很多人以为 --dangerously-skip-permissions 只是省掉「能不能改这个文件」的确认,其实它把一层安全检查也一起关掉了。他引用 Claude Code 官方文档的表格:默认模式下,写 .zshrc、.bashrc、.gitconfig、.npmrc、.git、.vscode、.claude 这类路径都会先问你;到了跳过权限模式,表格里只有一个词:Allowed。

他还指出两个容易忽略的细节:仍然会问你的删除检查只认 rm 和 rmdir,像 find ... -delete 这种命令不在其中;以及官方原话说这个模式对提示注入和意外操作没有保护。

对照官方文档

我们核对了 Claude Code 的 permission modes 文档,要点如下:

  • 受保护路径:在 default、acceptEdits 模式下会弹确认,auto 模式交给分类器判断,dontAsk 直接拒绝,bypassPermissions 一律放行。清单包括 .git、.claude、.vscode、.husky、.gitconfig,以及 .bashrc、.zshrc、.profile、.envrc、.npmrc 等 shell 和包管理配置。
  • 关键路径删除:对根目录、顶层目录、家目录、工作目录的 rm/rmdir 在任何模式下都不会自动放行。但文档同时写明这个检查只覆盖 rm 和 rmdir,其他被批准的命令同样可能删掉关键路径,所以它不能代替沙箱这类系统级限制。
  • deny 规则在所有模式下都生效,包括跳过权限模式;allow 规则在这个模式下没有意义。
  • 官方警告:只在容器、虚拟机或不联网的 dev container 这类隔离环境里使用。在 Linux 和 macOS 上,以 root 身份或提权运行时 Claude Code 会拒绝进入这个模式。

为什么和账号安全有关

shell 启动文件和 git 配置被改,影响的不只是这一次会话。别人在 .zshrc 里加一行,下次你打开终端就会执行;改了 .gitconfig 或 .git/hooks,下次提交时也会跑。这些位置一旦被网页或文档里的注入内容利用,你本机存着的 Claude 登录凭证、API Key、云服务密钥都在可读范围内,后果是异常调用、账单和账号风险一起来。

落地做法

  1. 跳过权限只在隔离环境里开。 容器或虚拟机,最好不联网、非 root 用户。
  2. 嫌弹窗多,在真机上用 auto 模式。 它保留后台安全检查,受保护路径写入会交给分类器而不是直接放行。
  3. 写 deny 规则兜底。 把 .zshrc、.gitconfig、.git/hooks、.claude 设置文件、密钥目录列进 deny,跳过权限模式下也会拦。
  4. 团队统一关掉。 管理员可以在组织统一下发的 managed settings 里把 permissions.disableBypassPermissionsMode 设为 "disable"。
  5. 跑完检查一遍。 长时间无人值守之后,用 git diff 和查看 shell 配置文件修改时间,确认没被动过。

小结

跳过权限模式省掉的不只是点击,还有保护你配置文件的那道闸。真要用,就把它关进容器里。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服