XMBSMDSJ

2026

< Back to index

Landlock

Landlock 是 linux 5.13 引入的安全机制,它的核心思想机制总结为一句话:自缚手脚。它最大的特点是无需特权,这在企业合规场景下非常有用,因为企业服务通常需要容器在非 root 用户下运行,而 Landlock 可以在不提升权限的情况下限制容器的文件系统访问。

随着 LLM Agent 技术的普及,Landlock 在 Agent 安全防护方面也发挥着越来越重要的作用。

主要特性

通用特性

V1 (Linux 5.13)

基础文件系统访问控制,支持以下权限粒度:

V2 (Linux 5.19)

新增 LANDLOCK_ACCESS_FS_REFER:允许控制跨目录的 link/rename(reparenting)。V1 中此操作一律被拒绝,V2 起可显式授权。这是唯一一个默认拒绝的权限,即使未在 ruleset 中声明为 handled 也会拒绝。

V3 (Linux 6.2)

新增 LANDLOCK_ACCESS_FS_TRUNCATE:控制文件截断操作(truncate(2)ftruncate(2)creat(2)open(2) with O_TRUNC)。V1/V2 中截断始终允许。

V4 (Linux 6.7)

新增 TCP 网络访问控制:

V5 (Linux 6.10)

新增 LANDLOCK_ACCESS_FS_IOCTL_DEV:限制对字符/块设备调用 ioctl(2)。部分通用 IOCTL 命令(如 FIOCLEXFIONBIOFIFREEZE 等)不受此限制,始终允许。

V6 (Linux 6.12)

新增 IPC 隔离(scope flags),用于隔离沙盒进程与域外资源的交互:

V7 (Linux 6.15)

新增日志控制,通过 landlock_restrict_self() 的标志控制 Landlock 审计日志:

V8 (Linux 7.0)

新增 LANDLOCK_RESTRICT_SELF_TSYNC:允许 landlock_restrict_self() 对调用进程的所有线程生效(线程级同步),而非仅当前线程。

V9 (Linux 7.1)

新增 LANDLOCK_ACCESS_FS_RESOLVE_UNIX:限制连接路径名 UNIX domain socket(connect(2)sendmsg(2) 指定接收地址)。仅限制连接域外创建的 UNIX server socket,域内新建的仍可访问。

V10 (Linux 7.2)

新增两项能力: