欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

Linux Capabilities:细粒度权限控制替代 root

发表于:|最后更新:|分类:Linux与网络|阅读:817 次

传统 Unix 权限模型将进程分为 root 与普通用户,违反最小权限原则。Linux Capabilities 将 root 特权拆分为数十种独立能力。

一、常用 Capabilities

  • CAP_NET_BIND_SERVICE:绑定 1024 以下端口
  • CAP_NET_ADMIN:网络配置管理
  • CAP_SYS_ADMIN:系统管理(权限极大,应谨慎授予)
  • CAP_DAC_READ_SEARCH:绕过文件读权限检查

二、为二进制授予能力

bash
# 允许 nginx 绑定 80 端口而无需 root
setcap 'cap_net_bind_service=+ep' /usr/sbin/nginx
# 查看已授予的能力
getcap /usr/sbin/nginx

在容器中可通过 --cap-drop=ALL --cap-add=NET_BIND_SERVICE 精确控制容器进程权限,显著降低逃逸风险。