1. 学习主题

我要学习的内容: Claude Code 的沙箱是如何实现的。

我为什么要学它:

我希望达到的程度:

  • 了解基本概念

  • 能向别人讲清楚

  • 能用于面试回答

  • 能写代码/做项目

  • 能深入分析原理

2. 我当前的理解

在正式学习前,我认为它是什么: 采取类似 Docker 的方式来隔离进程和资源。

我已经知道的相关知识: 我目前不清楚的问题:

3. 第一轮学习记录

资料来源:

https://www.anthropic.com/engineering/claude-code-sandboxing

书籍 / 博客 / 视频 / 论文 / 官方文档

核心概念提炼:

  1. 人工审批
    • ClaudeCode 编写、测试、调试代码都需要人工确认。
    • 通过定义 Claude 的边界,可以把这部分的权限 prompts 减少 84%。
    • 一些安全的指令例如 echo 和 cat 自动确认,但是大部分操作都需要人工同意。
    • 持续点击 approve 按钮一方面减缓了开发流程,另一方面会导致审批疲劳,让用户不会关心他们正在审批什么。
  2. Claude Code 的沙箱通过文件系统隔离和网络隔离的边界来确保安全。
  3. Sandbox bash tool
  4. 底层实现(操作系统原语)
    • Linux bubblewrap
      • 是 Linux 上的轻量级沙箱工具
      • 利用 Linux 内核线程的隔离能力,临时给一个进程打造出一个受限的小环境运行
      • 依赖的机制
        • namespace:隔离进程能看到的文件系统、网络、挂载点、用户等
        • bind mount/mount namespace:控制程序能看到哪些目录和文件
        • user namespace:让普通用户也能做一些隔离操作
      • 用途
        • 让某个程序只能访问指定目录
        • 隔离宿主机文件系统
        • 禁止或限制网络访问
        • 给应用提供一个像容器、但更轻量级的运行环境
    • MacOS seatbelt
  5. 沙箱流程
    • 文件系统隔离:只可以读写当前工作目录的文件,但是组织对工作目录外的文件读写
    • 网络隔离:只允许通过链接到沙箱外代理服务器的 Unix 域套接字访问互联网
      • 代理服务器会强制限制进程可以连接到的域名,针对新请求的域名处理用户确认
  6. 云端的 Claude Code
    • 云端的 Claude Code 用一个自定义的代理服务来处理所有的 git 操作
  7. 使用沙箱
    • 运行 /sandbox 命令,文档:https://code.claude.com/docs/en/sandboxing
    • Web Sandbox 命令,文档:http://claude.ai/redirect/website.v1.98268848-3f09-4114-aa3b-fc4b87f65524/code

关键术语:

术语 1:

术语 2:

术语 3:

4. 用“小白能听懂的话”解释

假设我要把这个知识讲给一个完全不懂的人听。

一句话解释它是什么: (尽量不用专业术语)

它解决了什么问题: (这个知识存在的原因是什么)

它是怎么工作的: (按步骤写,像讲流程一样)

举一个最简单的例子: (最好是生活化类比 + 技术例子)

如果让我口头讲 1 分钟,我会怎么讲: (直接写成可说出口的话)

5. 找出“讲不清楚”的地方

我在哪些地方卡住了: 哪些概念我一解释就变模糊: 哪些地方只是“背会了”,但没有真正理解:

6. 回炉补缺

针对卡点,我重新查到的内容:

问题 1:

重新理解:

问题 2:

重新理解:

问题 3:

重新理解:

新的理解和原来有什么不同: (写出修正点)

7. 压缩成自己的知识表达

最终版通俗解释: (要求自己能不用资料直接讲清楚)

最终版技术解释: (适合面试 / 写作 / 项目说明)

核心公式 / 关键流程 / 重点机制:

最容易被问到的问题: 1. 2. 3. 4. 5.

对应回答:

Q1:

Q2:

Q3:

Q4:

Q5:

8. 输出检验

我是否能做到以下几点:

不看资料讲 3 分钟

用大白话解释清楚

解释它为什么出现

解释它和相近概念的区别

举出一个实际应用场景

回答常见追问

写出简单代码 / 例子 / 流程图

如果还不能,卡在哪:

9. 一页总结

主题:

一句话本质:

核心作用:

关键原理: 1. 2. 3.

常见误区:

面试中怎么说最合适: (写成一段完整答题模板)