6.2. MLS 中的 SELinux 角色

SELinux 策略将每个 Linux 用户映射到 SELinux 用户。这允许 Linux 用户继承 SELinux 用户的限制。

重要

MLS 策略不包含 unconfined 模块,包括无限制的用户、类型和角色。因此,用户将不受限制(包括 root )的用户无法访问每个对象,并执行他们在目标策略中可以进行的每个操作。

您可以通过调整策略中的布尔值来自定义 SELinux 策略中受限用户的权限。您可以使用 semanage boolean -l 命令确定这些布尔值的当前状态。要列出所有 SELinux 用户、其 SELinux 角色和 MLS/MCS 级别和范围,以 root 用户身份使用 semanage user -l 命令。

表 6.1. MLS 中 SELinux 用户的角色

User默认角色其他角色

guest_u

guest_r

 

xguest_u

xguest_r

 

user_u

user_r

 

staff_u

staff_r

auditadm_r

secadm_r

sysadm_r

staff_r

sysadm_u

sysadm_r

 

root

staff_r

auditadm_r

secadm_r

sysadm_r

system_r

system_u

system_r

 

请注意,system_u 是系统进程和对象的特殊用户身份,system_r 是关联的角色。管理员不得将这个 system_u 用户和 system_r 角色关联到 Linux 用户。另外,unconfined_uroot 是没有限制的用户。因此,与这些 SELinux 用户关联的角色不会包含在下表中 type 和 SELinux 角色的访问中。

每个 SELinux 角色都与 SELinux 类型对应,并提供特定的访问权限。

表 6.2. MLS 中 SELinux 角色的类型和访问

RoleType使用 X 窗口系统登录susudo在主目录和 /tmp 中执行(默认)Networking

guest_r

guest_t

xguest_r

xguest_t

仅限 Web 浏览器(Firefox、GNOME Web)

user_r

user_t

staff_r

staff_t

sudo

auditadm_r

auditadm_t

 

secadm_r

secadm_t

 

sysadm_r

sysadm_t

仅在 xdm_sysadm_login 布尔值为 on

  • 默认情况下,sysadm_r 角色具有 secadm_r 角色的权限,这意味着具有 sysadm_r 角色的用户可以管理安全策略。如果这没有与您的用例对应,您可以通过在策略中禁用 sysadm_secadm 模块来分离这两个角色。如需更多信息,请参阅 第 6.8 节 “在 MLS 中将系统管理与安全管理分离”
  • 非登录角色 dbadm_rlogadm_rwebadm_r 可用于管理任务的子集。默认情况下,这些角色不与任何 SELinux 用户关联。