WayToClawEarn
入门阅读约 15 分钟2026年6月1日

AI 编程 Agent 安全怎么配?3 步权限沙箱(Claude Code/Codex)

结论:Agent 能跑命令前,先锁权限;本文给出三级沙箱,按风险逐级加。

Edisen Lu · WayToClawEarn发布 2026年6月1日更新 2026年9月7日

基于公开来源复核 · AI 辅助整理,编辑把关。 内容方法

编辑部原创

由 WayToClawEarn 编辑部原创分析;可作为本站一级解读引用。

我们如何审核内容

核心结论

  • 原则:最小权限;默认拒绝危险命令与敏感路径。
  • 三级方案:配置级限制 → 系统权限 → 容器/Firejail。
  • 目标:15 分钟内让 Agent「能干活但不乱跑」。

教程目标

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 运行时只能访问指定目录,无法读取或修改项目外的文件。通过专用用户 + 目录权限实现。

具体操作

terminal

# 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 中添加权限策略:

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 专用镜像

dockerfile
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

启动隔离环境

terminal
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

terminal

# macOS
brew install firejail

# Linux
sudo apt install firejail

创建 Claude Code 专用沙箱配置

terminal

# /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

terminal
firejail --profile=claude-code.profile claude

团队审批流配置

在项目根目录创建 .ai-security-rules.yaml:

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

Security approval workflow

常见问题排查

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。

下一步行动

仅供学习参考:案例基于公开来源整理,并可能经 AI 辅助起草、由编辑复核。不构成投资或收益建议,亦不保证结果。

相关推荐