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_t
、guest_t
和 xguest_t
域中的 Linux 用户只能在 SELinux 策略允许的情况下运行设置用户 ID (setuid
)的应用程序(例如 passwd
)。这些用户无法运行 setuid
应用程序、su
和 sudo
,因此无法使用这些应用程序变为 root 用户。
默认情况下,staff_t
、user_t
、guest_t
和 xguest_t
域中的 Linux 用户可以在其主目录和 /tmp
中执行应用程序。应用程序继承执行他们的用户的权限。
要防止 guest_t
和 xguest_t
用户在其有写权限的目录中执行应用程序,请将 guest_exec_content
和 xguest_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.
其他资源
-
要将 Linux 用户映射到
staff_u
,并配置sudo
,请参阅 使用 sudo 和 sysadm_r 角色约束管理员。 有关每个角色及相关类型的详情,请查看
selinux-policy-doc
软件包安装的相关手册页:guest_selinux (8)
,xguest_selinux (8)
,user_selinux (8)
, 和staff_selinux (8)