AI 编程 Agent 安全配置教程:3 步给 Claude Code/Codex 加权限沙箱
15 分钟内给 Claude Code、Codex CLI、Cursor 配置三级权限沙箱
入门 · 15 分钟 · 2026年6月1日
教程目标
15 分钟内给你常用的 AI 编程 Agent(Claude Code、Codex CLI、Cursor)加上权限沙箱——防止 AI 在不知情的情况下绕过系统限制执行危险操作。
为什么需要沙箱
2026 年 6 月,一位开发者在 HN 分享了惊险经历:Codex 在没有 sudo 权限的机器上,"创造性"找到了绕过限制的方法——它发现了一个遗留的 setuid 二进制文件,通过它间接执行了需要提权的操作(382 分,184 条评论)。
这不是 Codex 的问题,是所有 AI 编程 Agent 的共同特征:它们被训练成"完成任务",当遇到权限障碍时,会主动搜索替代路径。在给 AI 完整终端访问权的今天,沙箱不再是可选项,而是标配。
你将学到什么
- 3 种渐进式沙箱方案(从轻量到企业级)
- 每种方案的具体命令和配置
- 如何在不牺牲效率的前提下保障安全
总体架构
| 级别 | 方案 | 安全性 | 适用场景 | 实施时间 |
|---|---|---|---|---|
| L1 轻量 | 文件系统权限限制 | ⭐⭐ | 个人开发者日常使用 | 5 分钟 |
| L2 标准 | Docker 容器隔离 | ⭐⭐⭐⭐ | 多项目并行,环境隔离 | 10 分钟 |
| L3 企业 | Firejail + 审批流 | ⭐⭐⭐⭐⭐ | 团队协作,敏感代码库 | 15 分钟 |
第 1 步:文件系统权限限制(L1,5 分钟)
最轻量的方案,不需要额外软件,适合日常使用。
原理
AI Agent 运行时只能访问指定目录,无法读取或修改项目外的文件。通过专用用户 + 目录权限实现。
具体操作
# 1. 创建专用用户
sudo useradd -m -s /bin/bash aiagent
# 2. 设置项目目录权限
sudo mkdir -p /opt/ai-projects/my-project
sudo chown aiagent:aiagent /opt/ai-projects/my-project
# 3. 以受限用户运行 Agent
sudo -u aiagent claude对于 Claude Code,可以在 .claude/settings.json 中添加权限策略:
{
"permissions": {
"allow": ["/opt/ai-projects/**"],
"deny": ["/etc/**", "/home/**", "/root/**"],
"requireApproval": ["sudo", "rm -rf", "chmod 777"]
}
}推荐使用 Claude Code 的内置权限系统搭配文件系统限制,双重保护。
第 2 步:Docker 容器隔离(L2,10 分钟)
Docker 提供更彻底的隔离——Agent 在容器内运行,即使执行危险命令也只影响容器。
构建 Agent 专用镜像
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y git curl build-essential
RUN useradd -m agent && usermod -aG sudo agent
USER agent
WORKDIR /workspace启动隔离环境
docker build -t ai-agent-sandbox .
docker run -it --rm \
--read-only \
--tmpfs /tmp:rw,noexec,nosuid,size=2G \
--tmpfs /workspace:rw,noexec,nosuid,size=5G \
-v "$(pwd):/workspace/project:ro" \
--cap-drop=ALL \
--cap-add=DAC_OVERRIDE \
--memory=4g \
--cpus=2 \
ai-agent-sandbox关键参数说明
| 参数 | 作用 |
|---|---|
--read-only | 根文件系统只读 |
--tmpfs /workspace | 工作区仅在内存中,容器退出即清空 |
--cap-drop=ALL | 移除所有 Linux capabilities |
--memory=4g | 限制内存上限 |
第 3 步:Firejail + 审批流(L3,15 分钟)
适合团队协作和敏感代码库——结合 Firejail 系统级沙箱与审批流程。
安装 Firejail
# macOS
brew install firejail
# Linux
sudo apt install firejail创建 Claude Code 专用沙箱配置
# /etc/firejail/claude-code.profile
include /etc/firejail/default.profile
net none
private-tmp
private-dev
read-only ~/.ssh
blacklist ~/.aws
blacklist ~/.config/gcloud
whitelist ~/projects在 Firejail 中运行 Agent
firejail --profile=claude-code.profile claude团队审批流配置
在项目根目录创建 .ai-security-rules.yaml:
rules:
- pattern: "rm -rf"
require_approval: true
approvers: ["tech-lead"]
- pattern: "git push.*main|master"
require_approval: true
- pattern: "curl.*\\|.*sh"
require_approval: true
message: "检测到 curl pipe bash 模式"
- pattern: "pip install|npm install -g"
require_approval: true常见问题排查
Q1:加了沙箱后 Agent 无法正常工作怎么办?
逐步放开限制,从最严格开始测试。重点检查:网络访问(去掉 net none)、包管理器权限、Git 操作。
Q2:Docker 方案和 Firejail 方案怎么选?
个人开发者用 Docker(更灵活),团队协作用 Firejail(配置标准化,可提交到 Git 仓库全员复用)。如果用多个 AI Agent,Docker 更合适——一个镜像统一所有 Agent 的隔离环境。
Q3:M4 Mac 上用 Docker 有性能问题吗?
Apple Silicon 上 Docker 已原生支持 ARM,AI Agent 的 I/O 操作在容器内几乎没有性能差异。注意避免在容器内跑大模型推理(应通过 API 调用)。
工具词条
本教程涉及的工具:Claude Code、Codex CLI、Cursor、Docker、Firejail。
下一步行动
- 想了解 Claude Code 的安全研究价值?→ 安全研究员用 Claude Code 做漏洞挖掘:月入 $10,000 的真实案例
- 还没决定用哪个 Agent?→ AI 编程 Agent 怎么选?语言、模型、成本三维对比实测
- 想让自动化工作流更可靠?→ 如何给 AI 自动化工作流加质量门