Skip to content

Landlock 是 Linux 5.1+ 内核的 LSM(Linux Security Module)沙箱框架,Codex 使用它实现细粒度的文件系统权限控制。

为什么需要 Landlock

Linux 上的沙箱方案有多种选择(chroot、namespace、seccomp、SELinux)。Landlock 的优势在于:无需 root 权限即可创建沙箱、提供细粒度的文件访问控制、是 Linux 内核主线支持的 LSM 模块。Codex 将 Landlock 与 Bubblewrap 结合,实现双层隔离——Landlock 控制文件访问规则,Bubblewrap 提供命名空间隔离。

核心原理

  1. LSM 规则:Landlock 通过 Linux Security Module 在内核层面强制执行文件访问规则,用户空间无法绕过
  2. 权限分级:将目录分为可读写(workspace)、只读(系统工具)、禁止访问(敏感路径)三级
  3. Bubblewrap 集成bwrap 创建新的 mount/PID namespace,Landlock 在此基础上叠加文件规则
  4. 辅助二进制codex-linux-sandbox 独立进程应用 seccomp 过滤,确保沙箱内进程无法逃脱

在源码中的实现

  • codex-rs/sandboxing/src/landlock/ — Landlock LSM 规则定义和应用
  • codex-rs/sandboxing/src/bwrap/ — Bubblewrap 命令行参数构建
  • codex-rs/linux-sandbox/src/lib.rs — 独立的沙箱辅助二进制,run_main() 应用 seccomp
  • codex-rs/linux-sandbox/src/launcher.rs — 沙箱进程启动器

相关概念