Codex CLI 沙箱实战:安全地让 AI 执行 Shell 命令

Codex CLI 沙箱实战:安全地让 AI 执行 Shell 命令

本系列基于 Codex CLI 源码分析,本文聚焦沙箱的实战使用与安全配置。
全网唯一从 Rust 源码层面拆解 Codex CLI 的系列

一、为什么要学沙箱?

AI 代理需要执行 cargo buildnpm installgit push 等命令。如果不加限制,一个错误的 prompt 可能导致灾难性后果。Codex CLI 的沙箱系统提供多层防护

二、codex sandbox 命令

bash 复制代码
# 在沙箱中执行单条命令
codex sandbox -- ls -la

# 在沙箱中执行脚本
codex sandbox -- bash -c "cargo build && cargo test"

# 指定沙箱类型
codex sandbox --type landlock -- ls -la

# 查看沙箱状态
codex sandbox --status

三、权限配置实战

场景一:个人项目(推荐配置)

toml 复制代码
# ~/.codex/config.toml
[sandbox]
linux = "landlock"
macos = "seatbelt"
windows = "restricted"

[permissions]
permission_profile = "workspace"
allow = [
    "./target",      # Rust 构建输出
    "./node_modules", # Node 依赖
    "/tmp",
    "~/.cargo",      # Rust 工具链
    "~/.npm",        # Node 缓存
]
deny = [
    "./.env",
    "./secrets",
    "~/.ssh",
    "~/.aws",
]

场景二:CI/CD 环境

toml 复制代码
[approvals]
approval_policy = "never"   # CI 中不需要交互

[sandbox]
linux = "bubblewrap"        # 更严格的隔离

[permissions]
permission_profile = "workspace"
allow = [
    "./src",
    "./tests",
    "./target",
    "/tmp",
    "~/.cargo/registry",
]
deny = [
    "./.git/config",
    "/etc",
    "/home",
]

[network]
[[network.domain_permissions]]
host = "crates.io"
action = "allow"
[[network.domain_permissions]]
host = "github.com"
action = "allow"

场景三:学习/实验环境

toml 复制代码
[approvals]
approval_policy = "always"  # 每次操作都确认

[sandbox]
linux = "landlock"

[permissions]
permission_profile = "workspace"
# 不添加任何额外 allow,最严格

四、审批流程

当 AI 尝试执行被限制的操作时:

复制代码
AI 尝试: rm -rf /important/data
    │
    ▼
┌──────────────────────┐
│  Sandbox 拦截         │
│  → 路径不在 allowlist │
└──────┬───────────────┘
       │
       ▼
┌──────────────────────┐
│  Guardian 风险评估    │
│  → 危险等级: HIGH    │
└──────┬───────────────┘
       │
       ▼
┌──────────────────────┐
│  ExecApprovalRequest  │
│  → 弹窗: "AI 尝试    │
│     删除重要数据,    │
│     是否允许?"       │
└──────┬───────────────┘
       │
       ├── Allow ──→ 执行(沙箱内)
       │
       └── Deny ──→ 拒绝,记录违规

五、总结

  • 沙箱是 AI 编程代理的安全底线
  • 根据场景选择合适的安全等级
  • 审批策略提供了人机协作的安全闭环
  • 永远不要在生产环境禁用沙箱

讨论:你遇到过 AI 误删文件的情况吗?欢迎分享你的经历。

相关推荐
Ado柳贯一14 分钟前
Transformer模型详解-CSDN发布版
人工智能·深度学习·transformer
博、、17 分钟前
酒吧点餐小程序开发:从场景痛点到系统落地的全流程拆解
人工智能·架构·需求分析
Q一件事18 分钟前
防风固沙服务真的能沿直线“送达”北京吗?——对一项区域关联度研究的思考
大数据·人工智能
七牛云行业应用21 分钟前
DSH Desktop 桌面版实测:Win/macOS 一键安装,“桌面也是插件“怎么理解,和 npx 起 Web UI 差在哪
人工智能·agent·ai编程
空堂与归22 分钟前
文本喂给模型前要做啥?文本预处理与张量表示全解析
人工智能
小海豚儿24 分钟前
你写的 Prompt,可能有一半是安慰剂
人工智能
空堂与归30 分钟前
机器读不懂人话?用NLP自然语言处理让AI理解文本
人工智能
AI的探索之旅30 分钟前
97 个 OpenCV 实例(十七):图片读写,FileStorage 与 JPEG 采样
人工智能·opencv·计算机视觉
是隼人32 分钟前
buuctf-pwn ciscn_2019_n_5题解(学习过程持续 更新)
c语言·学习·安全·pwn入门·ctf入门