Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 615

Linux Capabilities

Linux Capabilities 是什么?

Linux Capabilities由 POSIX.1e 草案定义的 Linux 内核机制,将无所不能的 root 权限拆分为 40 多种独立的能力,可分别授予进程和文件。


Linux capabilities 自内核 2.2 引入,用以打破普通用户与无所不能的 root 之间的二元划分。内核暴露约 40 项独立权限,如 CAP_NET_BIND_SERVICE、CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_DAC_OVERRIDE、CAP_SYS_PTRACE 等,可以授予进程,或作为 file capabilities 标记在可执行文件上。它们遵循 POSIX.1e 草案。libcap 提供的用户态工具包括 capsh(查看和操作 shell 的能力集合)、getcap 与 setcap(读取或赋予文件能力)以及 getpcaps。Docker、containerd 等容器运行时默认仅授予一个子集(去除 CAP_SYS_ADMIN,保留 CAP_NET_BIND_SERVICE),Kubernetes 的 Pod Security Standards 进一步加以限制。Capabilities 是 Linux 服务器及 CNCF 风格工作负载实现最小权限的基础。

示例

  1. 01

    仅向非 root 进程授予 CAP_NET_BIND_SERVICE,使其无需 root 也能监听 TCP 80 端口。

  2. 02

    在容器内执行 "capsh --print" 确认 CAP_SYS_ADMIN 已被剥离。

常见问题

Linux Capabilities 是什么?

由 POSIX.1e 草案定义的 Linux 内核机制,将无所不能的 root 权限拆分为 40 多种独立的能力,可分别授予进程和文件。 它属于网络安全的 身份与访问 分类。

Linux Capabilities 是什么意思?

由 POSIX.1e 草案定义的 Linux 内核机制,将无所不能的 root 权限拆分为 40 多种独立的能力,可分别授予进程和文件。

Linux Capabilities 是如何工作的?

Linux capabilities 自内核 2.2 引入,用以打破普通用户与无所不能的 root 之间的二元划分。内核暴露约 40 项独立权限,如 CAP_NET_BIND_SERVICE、CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_DAC_OVERRIDE、CAP_SYS_PTRACE 等,可以授予进程,或作为 file capabilities 标记在可执行文件上。它们遵循 POSIX.1e 草案。libcap 提供的用户态工具包括 capsh(查看和操作 shell 的能力集合)、getcap 与 setcap(读取或赋予文件能力)以及 getpcaps。Docker、containerd 等容器运行时默认仅授予一个子集(去除 CAP_SYS_ADMIN,保留 CAP_NET_BIND_SERVICE),Kubernetes 的 Pod Security Standards 进一步加以限制。Capabilities 是 Linux 服务器及 CNCF 风格工作负载实现最小权限的基础。

如何防御 Linux Capabilities?

针对 Linux Capabilities 的防御通常结合技术控制与运营实践,详见上方完整定义。

Linux Capabilities 还有哪些其他名称?

常见的别称包括: POSIX capabilities, Linux caps。

相关术语

参见