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 误删文件的情况吗?欢迎分享你的经历。

相关推荐
EasyGBS44 分钟前
社区、校园安防难统一?国标GB28181公网平台EasyGBS视频系统,打破安全监管难题!
深度学习·安全·自动化
pt10431 小时前
Cisco设备网络安全系列-3:远程访问虚拟专用网、站点间虚拟专用网与Cisco SD-WAN安全
网络·安全
陈嘿萌1 小时前
CVPR 2026 | 全新的五模态信息融合数据集,包括RGB、事件、热成像、4D 雷达与 LiDAR
人工智能·深度学习·计算机视觉·自动驾驶·学术研究与理论基础·点云雷达
guhunyihan1 小时前
开源无代码平台的技术逻辑,恐象 AI 的架构思路解析
大数据·人工智能·开源
Xudde.1 小时前
DC-6 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
Xuantong_901 小时前
从Qwen3.6到Qwen3.8-27B:开源本地模型的一次“工程级蜕变“
人工智能·ai·智能体
hughnz1 小时前
钻井中应当让“确定性工程计算”与“大语言模型推理”共存
人工智能
Patrick在香港1 小时前
你写的「比较 token」函数,正在用 36 纳秒泄露密码:时序攻击实测
python·安全·标准库·时序攻击·常量时间
蜗牛互联网1 小时前
Python Agent 工具调用:审批令牌、参数白名单和累计预算
java·开发语言·人工智能·windows·后端·python
环境栈笔记1 小时前
指纹浏览器检查代理失败怎么排查?先分清代理、网络和检测服务
前端·人工智能·后端·自动化