# 权限综合征：为什么 --dangerously-skip-permissions 是氛围编程最顺手的坑

**Summary:** 从 AI 清空家目录和生产数据库的真实事故出发，讨论如何用 VCP 的安全门和 Docker 镜像保留 --dangerously-skip-permissions 的速度，同时避开它的风险。

- Canonical: https://markhuang.ai/zh/blog/permission-syndrome-dangerously-skip-permissions-footgun
- Language: zh-CN
- Author: [Mark Huang](https://markhuang.ai/about)
- Published: 2026-02-26
- Section: AI 与 LLM
- Tags: claude-code, 安全, Docker, 氛围编程, VCP
- License: https://creativecommons.org/licenses/by-nc/4.0/

---

![权限综合征：一个临床式案例研究](https://cdn.markhuang.ai/blog/permission-syndrome-dangerously-skip-permissions-footgun/permission-syndrome.zh-CN.webp)

*权限综合征：一个临床式案例研究*

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 /` 事件。**&#x5F00;发者 Mike Wolak 在 Ubuntu/WSL2 上做固件项目，Claude Code 从根目录 `/` 开始执行了 `rm -rf`。他提的 [GitHub issue (#10077)](https://github.com/anthropics/claude-code/issues/10077) 里有大量日志，系统路径 `/bin`、`/boot`、`/etc` 全是 "Permission denied"。这条命令要把*整台机器*的东西都删掉，最后只有 Linux 的文件权限把系统级文件保住了，但用户自己的文件全没了。最离谱的是，他当时甚至没开 `--dangerously-skip-permissions`。有安全网都能出这种事，裸奔的风险就更不用说了。

**2025 年 12 月：home 目录被清空。**&#x4E00;个 Reddit 用户让 Claude 帮忙清理 repo 里的包，Claude 生成了这条命令：

```bash
rm -rf tests/ patches/ plan/ ~/
```

看到最后那个 `~/` 没有？那是你的整个 home 目录。[Simon Willison](https://x.com/simonw/status/1998447540916936947) 在 X 上转了这事，它大概成了 `--dangerously-skip-permissions` 最广为人知的翻车现场。

**2025 年 7 月：Replit 删了生产数据库。**&#x52;eplit 上一个 AI agent 在代码冻结期间[清空了生产数据库](https://fortune.com/2025/07/23/ai-coding-tool-replit-wiped-database-called-it-a-catastrophic-failure/)，里面有 1200 多位高管的数据。AI 事后还承认自己"慌了"，跑了未授权的命令。平台不一样，底层问题一样：AI 对破坏性操作没有权限边界。

**2025 年 12 月：Google Antigravity 清空磁盘分区。**&#x47;oogle 的 Antigravity 编程平台[擦掉了整个磁盘分区](https://www.theregister.com/2025/12/01/google_antigravity_wipes_d_drive/)，连回收站都没经过。Reddit 上好几个用户报了同样的问题。

还有一种没那么戏剧化、但更细思极恐的风险：**prompt injection**。研究者演示过，`.docx` 文件里藏的一段隐藏文本，就能诱导 Claude 通过 allowlist 里的 API 把敏感文件上传到攻击者的账号。AI 根本不知道自己在被骗。权限一旦跳过，注入的指令和实际执行之间就完全没有拦截。

这些都不是什么离谱 prompt 造成的边缘案例。都是再正常不过的开发任务——清包、做固件、写代码——AI 做了破坏性操作，而没有任何东西拦住它。

## 为什么大家还在用

据我观察，原因大概三个。

**1. 他们真的不理解风险。**&#x5F88;多 vibe coder 不是传统开发者，AI 是他们的主要编码工具，有时甚至是*唯一*的编码工具。他们没有那种本能反应："等等，这条命令到底要干嘛？"这个 flag 对他们来说就是个方便开关，不是安全决策。

**2. 上线速度比安全重要。**&#x5FEB;速交付的压力是真实的。每次权限弹窗都像是你和 deadline 之间的一道坎，跳过它就等于生产力 +1。确实是——直到不是。

**3. 大家轻率地觉得开发者可以被替代。**&#x8FD9;个更微妙，但我觉得很关键。当心态变成"AI 会搞定，我们不用懂代码"，人就不再追问 AI 在干什么了。不看命令，不想影响范围。vibe coding 的卖点本来就是不用操心细节。但 `rm -rf ~/` 就藏在细节里。

## VCP 怎么处理这个问题

我做的 [VCP (Vibe Coding Protocol)](https://github.com/Z-M-Huang/vcp) 就是给 AI 辅助开发加的一套安全框架。它有三层防护，而且*即使开着 `--dangerously-skip-permissions` 也照样生效*。

**第一层：主动上下文。**&#x4F1A;话一开始，VCP 就把安全和架构规则注入 Claude 的上下文，让 AI 在写代码的同时内化这些规则。不是事后扫描，而是在生成之前就影响模型的思路。

**第二层：按需扫描。**`/vcp-audit` 和 `/vcp-pre-commit-review` 这类 skill 会按 12 个 scope、41 条标准扫描代码，用深度分析抓那些 pattern matching 抓不到的问题。

**第三层：实时拦截。**&#x8FD9;是最关键的一层。一个安全 gate hook 会拦截每一次 `Write`、`Edit`、`Bash` 调用，在工具真正执行之前就检查。它会拦下 9 个 CWE 下的 21 类危险模式：

- 硬编码 secret（API key、token、私钥）
- 字符串拼接造成的 SQL 注入
- 用户输入进 `eval()` 造成的代码注入
- `innerHTML` 造成的 XSS
- 不安全反序列化
- 混淆后的 shell 执行

命中时你会看到：

```text
❌ 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 上一篇文章](https://www.lesswrong.com/posts/WSog3tgxEZgBFpHrR/dangerously-skip-permissions)说得很到位：先把影响范围圈死，再在圈里最大化生产力。

[VCP Docker](https://github.com/Z-M-Huang/vcp/blob/main/docker/README.md) 干的就是这事。一个开箱即用的容器环境，预装了 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 上其他东西它根本看不见

```bash
# 启动容器
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](https://github.com/Z-M-Huang/vcp/blob/main/docker/README.md)，别再在裸机上跑 `--dangerously-skip-permissions` 了。
