Menu Close

第 3 章 管理限制和未限制的用户

下面的部分解释了 Linux 用户与 SELinux 用户的映射,描述了基本限制的用户域,并演示了将新用户映射到 SELinux 用户。

3.1. 限制和未限制的用户

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

要在您的系统中查看 SELinux 用户映射,以 root 用户身份使用 semanage login -l 命令:

semanage login -l
Login Name           SELinux User         MLS/MCS Range        Service

__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *

在 Red Hat Enterprise Linux 中,Linux 用户默认映射到 SELinux default 登录,该登录映射到 SELinux unconfined_u 用户。下面一行定义了默认映射:

__default__          unconfined_u         s0-s0:c0.c1023       *

限制的用户受 SELinux 策略中明确定义的 SELinux 规则的限制。无限制的用户只能受到 SELinux 的最小限制。

受限制和不受限制的 Linux 用户会受到可执行和可写入的内存检查,也受到 MCS 或 MLS 的限制。

要列出可用的 SELinux 用户,请输入以下命令:

$ seinfo -u
Users: 8
   guest_u
   root
   staff_u
   sysadm_u
   system_u
   unconfined_u
   user_u
   xguest_u

请注意,seinfo 命令由 setools-console 软件包提供,该软件包默认不会安装。

如果一个未限制的 Linux 用户执行一个应用程序,这个应用程序被 SELinux 策略定义为可以从 unconfined_t 域转换到其自身限制域的应用程序,则未限制的 Linux 用户仍会受到那个受限制域的限制。这样做的安全优点是,即使 Linux 用户的运行没有限制,但应用程序仍受限制。因此,对应用程序中漏洞的利用会被策略限制。

同样,我们可以将这些检查应用到受限制的用户。每个受限制的用户都受到受限用户域的限制。SELinux 策略还可定义从受限制的用户域转换到自己受限制的目标域转换。在这种情况下,受限制的用户会受到那个目标限制的域的限制。重点是,根据用户的角色,把特定的权限与受限制的用户相关联。