Linux 权限

为了执行权限检查,传统的 UNIX 实现区分了两类进程:特权进程(其有效 UID 为 0)和非特权进程(其有效 UID 为非零)。特权进程绕过所有内核权限检查,而非特权进程则根据进程的凭据(通常:有效 UID、有效 GID 和补充组列表)进行完全权限检查

Linux 权限分为以下几种机制:

机制

用途

UGO

传统的 User-Group-Other 权限机制

ACL

ACL 是 UGO 权限的补充。提供了更宽、更细粒度的权限控制

Capabilities

Capabilities 对 Root 权限进行拆分。从而避免使用 Root 用户

SeLinux

SeLinux 是 MAC 的一种

Apparmor

Apparmor 是 MAC 的一种

PAM

PAM 为用户身份验证提供了支持

UGO 权限

Capabilities

Linux 将超级用户拥有的权限进行拆分,称为 Capabilities。Capabilities 是线程和文件的属性。

更改文件的 Capabilities 需要进程拥有 CAP_SETFCAP 权限。

文件的 Capabilities 拥有三个功能集:

功能

解释

准许 (Permitted)

此集合中的能力必定可为线程所用

继承 (Inheritable)

文件和线程的此集合进行与计算后得到的能力才是线程可用的

有效 (Effective)

例如如果需要一个程序获得发送 ICMP 包的能力 :

sudo setcap cap_net_raw+ep some_program
Last moify: 2023-02-04 01:03:05
Build time:2025-07-18 09:41:42
Powered By asphinx