Linux capabilities如何把root权限拆成可独立授予的最小单元?
导读:本期聚焦于湖南程序员创作的《Linux capabilities如何把root权限拆成可独立授予的最小单元?》,敬请观看详情。一个以前只能靠root完成的敏感操作,如今可以单独授予某个非特权进程,这就是Linux capabilities带来的变化。传统Linux权限模型把进程分为普通用户和UID 0,root的超能力没有细分,导致服务常常以完整root身份运行。capabilities机制把超级用户特权拆成CAP_NET_BIND_SERVICE、CAP_SYS_ADMIN、CAP_NET_RAW等几十个能力位,进程只需要获得少数能力就能完成工作,不再要求UID为0。通过Effective、Permitted、Inheritable、Bounding和Ambient五个集合,内核在execve时对能力进行继承和计算,结合文件扩展属性可以实现对二进制程序的精细授权。本文从能力位与UID 0的差异、文件能力的继承规则、以及容器运行时如何利用capabilities做最小权限裁剪三个角度展开,帮助读者把权限分割落到实际系统加固中。
栏目:安全运维 时间:10-14 Linux capabilities

