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

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

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

一、为什么要学沙箱?

AI 代理需要执行 cargo build、npm install、git 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 误删文件的情况吗?欢迎分享你的经历。

相关推荐
听风吹等浪起31 分钟前
第30章:MobileNetV3全家桶实现MRI脑肿瘤四分类(含Streamlit网页推理+Mermaid结构图)
人工智能·分类·数据挖掘
如若1231 小时前
TRACER 论文解读与复现:面向 ICU 长时程患者监测的多模态 Harness 架构、时序证据建模与工具增强推理
人工智能·深度学习·计算机视觉
深蓝AI3 小时前
无头浏览器不必从 Chrome 改:Lightpanda 用 Zig 从零造,100 个页面只占 123MB 内存
人工智能·程序员
奈落245 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
火山引擎开发者社区7 小时前
eMudhra 证书失陷:容器用户最容易忽略的镜像信任链漏洞
人工智能
LabVIEW开发8 小时前
LabVIEW 机载 DIAL:每秒万次甲烷测量
人工智能·labview·labview知识·labview功能·labview程序
飞猫的边缘AI8 小时前
英特尔量子生意
人工智能·量子计算·边缘ai
深蓝AI8 小时前
桌面 Agent 缺的不是视觉:Vercel 开源 agent-desktop,用无障碍树 ref 替代截图坐标
人工智能·程序员
镜子AI9 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
向哆哆9 小时前
羊行为目标检测数据集:4类别、2,000张图像 | 目标检测
人工智能·yolo·目标检测·目标跟踪