3.3. SELinux 中约束的非管理员角色

在 SELinux 中,约束的非管理员角色将执行特定任务的特权和权限的特定集合授予分配给它们的 Linux 用户。通过分配单独的约束的非管理员角色,您可以将特定的特权分配给单个用户。这在有多个有不同授权级别的用户时很有用。

您还可以通过更改系统上相关的 SELinux 布尔值来自定义 SELinux 角色的权限。要查看 SELinux 布尔值及其状态,请以 root 用户身份使用 semanage boolean -l 命令。如果安装了 selinux-policy-devel 软件包,您可以获得更详细的描述。

# semanage boolean -l
SELinux boolean                State  Default Description
...
xguest_connect_network         (on   ,   on)  Allow xguest users to configure Network Manager and connect to apache ports
xguest_exec_content            (on   ,   on)  Allow xguest to exec content
...

user_tguest_txguest_t 域中的 Linux 用户只能在 SELinux 策略允许的情况下运行设置用户 ID (setuid)应用程序(例如 passwd)。这些用户无法运行 setuid 应用程序 susudo,因此无法使这些应用程序变为 root 用户。

默认情况下,staff_tuser_tguest_txguest_t 域中的 Linux 用户可以在其主目录和 /tmp 中执行应用程序。应用程序继承执行它们的用户的权限。

要防止 guest_txguest_t 用户在其有写权限的目录中执行应用程序,请将 guest_exec_contentxguest_exec_content 布尔值设置为 off

SELinux 有以下约束的非管理员角色,每个角色都有特定的特权和限制:

guest_r

有非常有限的权限。分配给此角色的用户无法访问网络,但可以执行 /tmp/home 目录中的文件。

相关的布尔值:

SELinux boolean                State  Default Description
guest_exec_content             (on   ,   on)  Allow guest to exec content
xguest_r

有有限的权限。分配给此角色的用户可以登录到 X 窗口,使用网络浏览器访问网页和访问介质。它们也可以执行 /tmp/home 目录中的文件。

相关的布尔值:

SELinux boolean                State  Default Description
xguest_connect_network         (on   ,   on)  Allow xguest users to configure Network Manager and connect to apache ports
xguest_exec_content            (on   ,   on)  Allow xguest to exec content
xguest_mount_media             (on   ,   on)  Allow xguest users to mount removable media
xguest_use_bluetooth           (on   ,   on)  Allow xguest to use blue tooth devices
user_r

有具有完整用户权限的非特权访问权限。分配给此角色的用户可以执行大多数不需要管理特权的操作。

相关的布尔值:

SELinux boolean                State  Default Description
unprivuser_use_svirt           (off  ,  off)  Allow unprivileged user to create and transition to svirt domains.
staff_r

具有类似于 user_r 的权限和其他特权。特别是,分配给此角色的用户被允许运行 sudo 来执行通常为 root 用户保留的管理命令。这会更改角色和有效的用户 ID (EUID),但不更改 SELinux 用户。

相关的布尔值:

SELinux boolean                State  Default Description
staff_exec_content             (on   ,   on)  Allow staff to exec content
staff_use_svirt                (on   ,   on)  allow staff user to create and transition to svirt domains.

其他资源

  • 有关 sudo 的更多信息,请参阅管理 sudo 访问
  • 要将 Linux 用户映射到 staff_u 并配置 sudo,请参阅 使用 sudo 和 sysadm_r 角色配置管理员
  • 有关每个角色和相关类型的详情,请查看 selinux-policy-doc 软件包安装的相关手册页:

    • guest_selinux(8)
    • xguest_selinux(8)
    • user_selinux(8)
    • staff_selinux(8)