Menu Close

3.2. SELinux 用户功能

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

您可以通过调整策略中的布尔值来自定义 SELinux 策略中受限用户的权限。您可以使用 semanage boolean -l 命令确定这些布尔值的当前状态。

表 3.1. SELinux 用户的角色

User默认角色其他角色

unconfined_u

unconfined_r

system_r

guest_u

guest_r

 

xguest_u

xguest_r

 

user_u

user_r

 

staff_u

staff_r

sysadm_r

unconfined_r

system_r

sysadm_u

sysadm_r

 

root

staff_r

sysadm_r

unconfined_r

system_r

system_u

system_r

 

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

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

表 3.2. SELinux 角色的类型和访问

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

unconfined_r

unconfined_t

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

  • user_tguest_txguest_t 域中的 Linux 用户只能在 SELinux 策略允许的情况下运行设置的用户 ID(setuid)应用程序(例如 passwd)。这些用户无法运行 susudo setuid 应用程序,因此无法使用这些应用程序成为 root 用户。
  • sysadm_tstaff_tuser_txguest_t 域中的 Linux 用户可以使用 X Window 系统和终端登录。
  • 默认情况下,staff_tuser_tguest_txguest_t 域中的 Linux 用户可以在其主目录和 /tmp 中执行应用程序。

    要防止他们在他们有写入访问权限的目录中执行应用程序(通过继承的用户权限),将 guest_exec_contentxguest_exec_content 布尔值设置为 off。这有助于防止有缺陷或恶意的应用程序修改用户的文件。

  • xguest_t 域里的唯一网络访问 Linux 用户是 Firefox 连接到网页。
  • sysadm_u 用户无法使用 SSH 直接登录。要为 sysadm_u 启用 SSH 登录,请将 ssh_sysadm_login 布尔值设置为 on

    # setsebool -P ssh_sysadm_login on

除了已提到的 SELinux 用户之外,还有特殊的角色,可以使用 semanage user 命令映射到这些用户。这些角色决定了 SELinux 允许这些用户可以做什么:

  • dbadm_r 只能管理与 Apache HTTP 服务器相关的 SELinux 类型。
  • dbadm_r 只能管理与 MariaDB 数据库和 PostgreSQL 数据库管理系统相关的 SELinux 类型。
  • logadm_r 只能管理与 syslogauditlog 进程相关的 SELinux 类型。
  • secadm_r 只能管理 SELinux。
  • auditadm_r 只能管理与审计子系统相关的进程。

要列出所有可用角色,请输入 seinfo -r 命令:

seinfo -r
Roles: 14
   auditadm_r
   dbadm_r
   guest_r
   logadm_r
   nx_server_r
   object_r
   secadm_r
   staff_r
   sysadm_r
   system_r
   unconfined_r
   user_r
   webadm_r
   xguest_r

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

其他资源

  • seinfo(1), semanage-login(8), 和 xguest_selinux(8) man pages