Day 03 / 共 20 天 · 第 1 周 · 会用 + 建立心智

沙箱与审批(必读)

SandboxMode / AskForApproval 两层防护、常用 flag、源码枚举对照。

📍 你在整门课的位置 · 第 1 周 · 会用 + 建立心智
D01 项目全景与目录地图D02 安装、登录与第一次对话D03 沙箱与审批D04 CLI 子命令全家桶D05 TUI 交互与 Slash 命令
L01

Sandbox + Approval 两层防护

🍼 大白话Sandbox = 技术上能碰哪(读/写/网);Approval = 什么时候必须停下来问你。
Sandbox含义
read-only默认倾向:只读工作区
workspace-write可写当前工作区
danger-full-access几乎不限——慎用
Approval含义
untrusted只有「已知安全只读」自动过
on-request默认:模型请求时再问你
never不问人,失败直接回模型
L02

常用命令行开关

codex -s read-only -a on-request
codex -s workspace-write
# 危险:跳过审批 + 沙箱(仅隔离 CI 等极端场景)
codex --dangerously-bypass-approvals-and-sandbox
# 别名
codex --yolo
官方级警告本地开发别习惯性 --yolo。优先用 Rules / 精准放行,而不是全局放开。

TUI 内也可用 /permissions/setup-default-sandbox 调整。

L03

源码对照

codex-rs/protocol/src/config_types.rs ≈ L86:

pub enum SandboxMode {
    #[serde(rename = "read-only")]
    ReadOnly,           // default
    #[serde(rename = "workspace-write")]
    WorkspaceWrite,
    #[serde(rename = "danger-full-access")]
    DangerFullAccess,
}

codex-rs/protocol/src/protocol.rs ≈ L911:

pub enum AskForApproval {
    UnlessTrusted,  // "untrusted"
    OnRequest,      // default
    Granular(...),
    Never,
}
执行门禁codex-rs/core/src/tools/sandboxing.rs + OS 实现(macOS Seatbelt、Linux bwrap/Landlock、Windows sandbox)。
L04

今日小结

✅ 能解释两层防护;能默写出三个 sandbox 值;知道默认 approval 是 on-request。
← Day 02 Day 04 · CLI 子命令全家桶 →