Appearance
Landlock 是 Linux 5.1+ 内核的 LSM(Linux Security Module)沙箱框架,Codex 使用它实现细粒度的文件系统权限控制。
为什么需要 Landlock
Linux 上的沙箱方案有多种选择(chroot、namespace、seccomp、SELinux)。Landlock 的优势在于:无需 root 权限即可创建沙箱、提供细粒度的文件访问控制、是 Linux 内核主线支持的 LSM 模块。Codex 将 Landlock 与 Bubblewrap 结合,实现双层隔离——Landlock 控制文件访问规则,Bubblewrap 提供命名空间隔离。
核心原理
- LSM 规则:Landlock 通过 Linux Security Module 在内核层面强制执行文件访问规则,用户空间无法绕过
- 权限分级:将目录分为可读写(workspace)、只读(系统工具)、禁止访问(敏感路径)三级
- Bubblewrap 集成:
bwrap创建新的 mount/PID namespace,Landlock 在此基础上叠加文件规则 - 辅助二进制:
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()应用 seccompcodex-rs/linux-sandbox/src/launcher.rs— 沙箱进程启动器