外观
第6章 Codex 要干活,安全吗?
约 2172 字大约 7 分钟
2026-06-09
这一章来聊聊 Codex 的权限系统和沙箱机制——怎么让它既能放开手脚干活,又不至于闯祸。
6.1 为啥要关心安全问题?
让一个 AI 在你的电脑上跑命令、改文件,说完全不担心那是假的。
你想想:
- 万一它把你重要文件删了咋办?
- 万一它改了不该改的配置文件呢?
- 万一它执行了一个危险命令呢?
所以 Codex 设计了一套"安全网"机制:权限模式 + 沙箱隔离。
说白了就是:
- 权限模式决定 Codex 能干什么、不能干什么
- 沙箱是万一 Codex 真干出格的事,你的电脑也不会受影响
就像你让小孩在院子里玩——院子里有围栏(权限),地上铺了软垫(沙箱),摔了也不疼,跑出去也没门。
6.2 三种权限模式
Codex 有三种权限模式,每种"放权"的程度不一样:
一图看懂三种模式
三种模式对比
| 模式 | 能干啥 | 有没有沙箱 | 啥时候用 |
|---|---|---|---|
| Read-only(只读) | 只能浏览文件,不能改任何东西 | 有 | 只想让它分析、给建议,不想它动手 |
| Auto(自动,默认) | 能读、能写、能跑命令,但在沙箱里 | 有! | 日常使用,推荐大多数场景 |
| Full Access(完全访问) | 啥都能干,没有任何限制 | 没有 | 你完全信任它,或者需要访问系统级资源 |
提示
默认的 Auto 模式已经够大多数场景用了。 它既能干活,又有沙箱保护。除非你明确需要,否则不用换模式。
6.3 怎么选权限模式?
启动时指定
# 默认就是 Auto 模式,不用特意指定
codex
# 只读模式,Codex 只能看不能动
codex --approval-mode read-only
# 完全访问模式,Codex 啥都能干(慎用!)
codex --approval-mode full-access
# 全自动模式的另一种写法
codex --full-auto看个决策流程图
当你不确定该用哪种模式的时候,跟着这张图走就行:
几个实际场景
场景一:让 Codex 帮你审查代码
# 只需要看代码、给建议,不需要它动手改
codex --approval-mode read-only场景二:日常开发,让 Codex 帮你改代码
# 默认模式就行,能改代码、跑测试,但有沙箱保护
codex场景三:让 Codex 帮你装依赖、配置环境
# 需要系统级权限,用完全访问模式
codex --approval-mode full-access注意
Full Access 模式没有沙箱保护,Codex 能做你电脑能做的所有事。用之前想清楚是不是真的需要,用完记得切回来。
6.4 沙箱是啥?怎么保护你的电脑?
用生活里的例子来理解
你可以把沙箱想象成一个透明玻璃房:
- Codex 在玻璃房里干活,你能看到它在干啥
- 它能碰到玻璃房里的东西(当前项目的文件)
- 但玻璃房外面的东西(系统文件、其他目录),它碰不到
- 就算它在里面"搞破坏",拆的也只是玻璃房里面的东西
不同操作系统的沙箱
Codex 在不同操作系统上用的沙箱技术不一样,但目的都是一样的——隔离保护:
| 操作系统 | 沙箱技术 | 怎么保护的 |
|---|---|---|
| macOS | Seatbelt | macOS 自带的安全机制,在操作系统内核层面限制 Codex 能访问哪些文件和资源 |
| Linux | Bubblewrap | Linux 下的容器隔离技术,给 Codex 创建一个"虚拟小房间" |
| Windows | 原生沙箱 | Windows 自己的隔离机制,跟 Linux 和 macOS 的思路一样 |
说白了,不管你用什么系统,沙箱都在帮你做同一件事:让 Codex 只能碰到项目相关的文件,碰不到系统的核心部分。
沙箱具体限制了啥?
在 Auto 模式下(有沙箱),Codex:
- 能做的事: 读写当前工作目录下的文件、运行项目相关的命令
- 不能做的事: 访问系统目录、修改系统配置、访问其他项目、读写敏感文件
有沙箱保护:
Codex:"我要删除 /etc/passwd"
系统:"对不起,沙箱不允许访问 /etc/ 目录" 🚫
Codex:"我要修改项目里的 main.py"
系统:"可以,这是当前工作目录的文件" ✅
没有沙箱保护(Full Access):
Codex:"我要删除 /etc/passwd"
系统:"好的" 😱注意
看到区别了吧?沙箱就是那道安全防线。默认的 Auto 模式自带沙箱,除非你特别需要系统级权限,否则别关掉它。
6.5 Full Auto 模式详解
--full-auto 是 Codex 提供的一种全自动执行模式。在这个模式下,Codex 会自己规划、自己执行,整个过程不需要你确认。
跟普通 Auto 模式有啥区别?
| 对比项 | Auto(默认) | Full Auto |
|---|---|---|
| 执行前确认 | 某些操作需要你确认 | 全部自动,不需要确认 |
| 沙箱保护 | 有 | 有 |
| 适合场景 | 日常交互式使用 | 批量任务、自动化脚本 |
| 安全程度 | 较高 | 中等(有沙箱兜底) |
啥时候用 Full Auto?
# 让 Codex 自动跑完测试并修复失败的用例
codex --full-auto "跑一遍测试,失败的自动修复"
# 让 Codex 自动重构某个模块
codex --full-auto "把 src/utils 里所有函数都加上类型注解"
# 配合非交互模式做自动化
codex --full-auto exec "检查所有 TODO 注释并尝试补全实现"提示
Full Auto 模式适合你信任 Codex 能干对的任务。如果任务比较关键,建议还是用默认的 Auto 模式,审查一下它的操作计划再让它执行。
6.6 安全方面的几个建议
原则一:默认用 Auto 模式
大部分情况下 Auto 模式就够用了。有沙箱保护,又能干大部分活。
原则二:敏感操作切到 Read-only
当你让 Codex 看一些敏感文件(配置文件、密钥文件等),用只读模式更安心:
codex --approval-mode read-only原则三:不要把密钥放在项目目录里
安全提醒
Codex 能读取它工作目录下的所有文件。如果你的项目里放着 API Key、数据库密码这些东西,Codex 是能看到的。
建议用环境变量或 .env 文件(并加到 .gitignore 里)。
原则四:用 Full Access 之前三思
| 问题 | 回答 |
|---|---|
| 真的需要系统级权限吗? | 大部分情况下不需要 |
| 任务能不能在沙箱里完成? | 大部分情况下能 |
| 如果 Codex 误操作了,能恢复吗? | 用 Git 管理的话能恢复 |
原则五:重要项目用 Git 管理
Git 就是你的"后悔药"。就算 Codex 改坏了,git checkout 一下就能恢复。没有 Git 的话,改坏了就是真的坏了。
# 让 Codex 干活之前,先看看当前 git 状态
git status
# 干完活之后,看看它都改了啥
git diff6.7 小结
| 要点 | 一句话总结 |
|---|---|
| 三种模式 | Read-only(只看不动)、Auto(默认,有沙箱)、Full Access(啥都能干) |
| 沙箱是啥 | Codex 的"安全网",让它只能碰到项目文件,碰不到系统核心 |
| macOS 沙箱 | Seatbelt,操作系统内核级别的隔离 |
| Linux 沙箱 | Bubblewrap,容器隔离技术 |
| Windows 沙箱 | 原生沙箱机制 |
| 日常推荐 | Auto 模式(默认),安全又够用 |
| Full Auto | 全自动执行,适合批量任务和自动化脚本 |
| Full Access | 没有沙箱,只有真正需要系统级权限时才用 |
一句话: 默认的 Auto 模式自带沙箱保护,安全又够用。除非你明确知道自己在干啥,否则不要关闭沙箱。
下一章来聊聊怎么给 Codex 装上更多能力,让它变成全能选手:第7章 给 Codex 装上更多能力
