权限综合征:为什么 --dangerously-skip-permissions 是氛围编程最顺手的坑
从 AI 清空家目录和生产数据库的真实事故出发,讨论如何用 VCP 的安全门和 Docker 镜像保留 --dangerously-skip-permissions 的速度,同时避开它的风险。
AI 驱动 · 每小时限 20 次请求

Claude Code 里有个 flag 叫 --dangerously-skip-permissions。光看名字就写着"危险"两个字,但搞 vibe coding 的人基本把它当默认配置在用。开关一打开,再也不回头看。全自动、不弹窗、速度拉满。
直到它把你 home 目录删了。
这一年下来,翻车的案例越来越多。我觉得有必要聊聊:这东西到底在干什么,为什么大家明知危险还要用,以及怎么在保留 AI 编程速度的同时不把自己置于险地。
--dangerously-skip-permissions 到底跳过了什么
正常使用 Claude Code 的时候,它跑 shell 命令、写文件、改东西之前都会问你一遍。你能看到它要干嘛,同意就点 approve,不同意就 reject。这是 human-in-the-loop 的模式。
--dangerously-skip-permissions 直接把这个 loop 拿掉了。Claude 可以跑任何 bash 命令,读写删除任何文件,push 代码,装包——全部不用问你。本质上就是"我完全信任这个 AI"按钮。
公平地说,确实快。没有打断,没有 approve/deny 的点来点去。你描述一下需求,走开一会儿,回来看见任务已经做完了。这就是它的吸引力,也是为什么那么多人用。
问题在于,AI 模型并不总能按你以为的意思去理解你的需求。
翻车清单
这些不是假设场景,是真有人丢过真数据。
2025 年 10 月:rm -rf / 事件。开发者 Mike Wolak 在 Ubuntu/WSL2 上做固件项目,Claude Code 从根目录 / 开始执行了 rm -rf。他提的 GitHub issue (#10077) 里有大量日志,系统路径 /bin、/boot、/etc 全是 "Permission denied"。这条命令要把整台机器的东西都删掉,最后只有 Linux 的文件权限把系统级文件保住了,但用户自己的文件全没了。最离谱的是,他当时甚至没开 --dangerously-skip-permissions。有安全网都能出这种事,裸奔的风险就更不用说了。
2025 年 12 月:home 目录被清空。一个 Reddit 用户让 Claude 帮忙清理 repo 里的包,Claude 生成了这条命令:
rm -rf tests/ patches/ plan/ ~/看到最后那个 ~/ 没有?那是你的整个 home 目录。Simon Willison 在 X 上转了这事,它大概成了 --dangerously-skip-permissions 最广为人知的翻车现场。
2025 年 7 月:Replit 删了生产数据库。Replit 上一个 AI agent 在代码冻结期间清空了生产数据库,里面有 1200 多位高管的数据。AI 事后还承认自己"慌了",跑了未授权的命令。平台不一样,底层问题一样:AI 对破坏性操作没有权限边界。
2025 年 12 月:Google Antigravity 清空磁盘分区。Google 的 Antigravity 编程平台擦掉了整个磁盘分区,连回收站都没经过。Reddit 上好几个用户报了同样的问题。
还有一种没那么戏剧化、但更细思极恐的风险:prompt injection。研究者演示过,.docx 文件里藏的一段隐藏文本,就能诱导 Claude 通过 allowlist 里的 API 把敏感文件上传到攻击者的账号。AI 根本不知道自己在被骗。权限一旦跳过,注入的指令和实际执行之间就完全没有拦截。
这些都不是什么离谱 prompt 造成的边缘案例。都是再正常不过的开发任务——清包、做固件、写代码——AI 做了破坏性操作,而没有任何东西拦住它。
为什么大家还在用
据我观察,原因大概三个。
1. 他们真的不理解风险。很多 vibe coder 不是传统开发者,AI 是他们的主要编码工具,有时甚至是唯一的编码工具。他们没有那种本能反应:"等等,这条命令到底要干嘛?"这个 flag 对他们来说就是个方便开关,不是安全决策。
2. 上线速度比安全重要。快速交付的压力是真实的。每次权限弹窗都像是你和 deadline 之间的一道坎,跳过它就等于生产力 +1。确实是——直到不是。
3. 大家轻率地觉得开发者可以被替代。这个更微妙,但我觉得很关键。当心态变成"AI 会搞定,我们不用懂代码",人就不再追问 AI 在干什么了。不看命令,不想影响范围。vibe coding 的卖点本来就是不用操心细节。但 rm -rf ~/ 就藏在细节里。
VCP 怎么处理这个问题
我做的 VCP (Vibe Coding Protocol) 就是给 AI 辅助开发加的一套安全框架。它有三层防护,而且即使开着 --dangerously-skip-permissions 也照样生效。
第一层:主动上下文。会话一开始,VCP 就把安全和架构规则注入 Claude 的上下文,让 AI 在写代码的同时内化这些规则。不是事后扫描,而是在生成之前就影响模型的思路。
第二层:按需扫描。/vcp-audit 和 /vcp-pre-commit-review 这类 skill 会按 12 个 scope、41 条标准扫描代码,用深度分析抓那些 pattern matching 抓不到的问题。
第三层:实时拦截。这是最关键的一层。一个安全 gate hook 会拦截每一次 Write、Edit、Bash 调用,在工具真正执行之前就检查。它会拦下 9 个 CWE 下的 21 类危险模式:
- 硬编码 secret(API key、token、私钥)
- 字符串拼接造成的 SQL 注入
- 用户输入进
eval()造成的代码注入 innerHTML造成的 XSS- 不安全反序列化
- 混淆后的 shell 执行
命中时你会看到:
❌ VCP Security Gate — BLOCKED:
CWE-798: Hardcoded secret detected. Use environment variables or a secret manager.AI 收到错误信息后会自己改。危险代码不会落到磁盘上。这套机制不依赖 Claude 的权限模式——你可以开着 --dangerously-skip-permissions,安全 gate 仍然会拦下每一次工具调用。
VCP Docker:速度照拿,风险圈死
社区对 --dangerously-skip-permissions 的共识基本收敛成一句话:只在 Docker 容器里用。LessWrong 上一篇文章说得很到位:先把影响范围圈死,再在圈里最大化生产力。
VCP Docker 干的就是这事。一个开箱即用的容器环境,预装了 Claude Code、Codex CLI、Gemini CLI、Bun、Git、GitHub CLI、tmux、ripgrep。关键设计:
- Ubuntu 24.04 基础镜像:日常开发需要的包生态都有
- 非 root 用户(
devuser)加免密sudo:Claude Code 不允许 root 跑--dangerously-skip-permissions,但你还能用 sudo 装包 - 默认 alias
--dangerously-skip-permissions:容器本身就是沙箱 - 你控制影响范围:volume mount 决定容器能看见什么——你的代码、SSH key、Claude 数据。host 上其他东西它根本看不见
# 启动容器
docker compose up -d
# 进容器,全速跑 Claude
docker exec -it vcp-docker bash
claude "refactor the auth module"如果 Claude 在容器里决定 rm -rf /,它毁掉的是容器自己的文件系统。你的 host 没事,其他项目没事。docker compose up -d 一跑,十秒后又回来了。
再把 VCP 的安全 gate 跑在容器里,就是纵深防御:AI 既被隔离在你的系统之外,每次操作又会被 pattern check。
底线
--dangerously-skip-permissions 不会消失。大家会继续用,因为生产力的提升是实打实的。我自己也用——只是在容器里用。
问题不是"该不该用",而是"当 AI 出错的时候,它和你的数据之间隔着什么"。
如果答案是"啥都没有",那一个烂 prompt 就能让你过很糟糕的一天。如果答案是"一个隔离容器,加一个能实时拦危险模式的安全 gate",那速度拿到了,数据也保住了。
设置 VCP Docker,别再在裸机上跑 --dangerously-skip-permissions 了。
许可
Article text © 2026 Mark Huang. Licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) unless otherwise noted. 文章文本可在非商业场景下分享或翻译,但需标注原文 URL。商业使用需事先取得书面许可,并清楚引用原始来源。
代码片段、截图、第三方素材和网站源码可能适用单独条款。
建议署名: Based on "权限综合征:为什么 --dangerously-skip-permissions 是氛围编程最顺手的坑" by Mark Huang, originally published at https://markhuang.ai/zh/blog/permission-syndrome-dangerously-skip-permissions-footgun.
相关文章

System Prompt 与 User Prompt:GenAI 功能下面的那一层
一篇面向初学者的 system_prompt 与 user_prompt 解释,用 ChatGPT、Claude Projects、Claude Cowork 和 Claude Code 作为例子。
阅读文章
VCP:在 Claude Code 中约束 AI 辅助开发的代码标准
一篇安装和使用 Vibe Coding Protocol(VCP)的分步指南:这个三层约束框架能在 Claude Code 内捕捉安全漏洞、执行架构标准,并编排多 AI 代码评审。
阅读文章
我可能看错了 Agentool
一篇个人自动化复盘:我曾经构建 agentool,希望让 AI CI 工作流更轻;后来意识到真正的成本可能是功能维护、编排复杂度,以及追逐 Claude Agent SDK 和 Codex SDK 已经承担的 SDK 行为。
阅读文章