Menu Close
3.2. SELinux 用户功能
SELinux 策略将每个 Linux 用户映射到 SELinux 用户。这允许 Linux 用户继承 SELinux 用户的限制。
您可以通过调整策略中的布尔值来自定义 SELinux 策略中受限用户的权限。您可以使用 semanage boolean -l
命令确定这些布尔值的当前状态。
表 3.1. SELinux 用户的角色
User | 默认角色 | 其他角色 |
---|---|---|
|
|
|
|
| |
|
| |
|
| |
|
|
|
| ||
| ||
|
| |
|
|
|
| ||
| ||
|
|
请注意,system_u
是系统进程和对象的特殊用户身份,system_r
是关联的角色。管理员不得将这个 system_u
用户和 system_r
角色关联到 Linux 用户。另外,unconfined_u
和 root
是没有限制的用户。因此,与这些 SELinux 用户关联的角色不会包含在下表中 type 和 SELinux 角色的访问中。
每个 SELinux 角色都与 SELinux 类型对应,并提供特定的访问权限。
表 3.2. SELinux 角色的类型和访问
Role | Type | 使用 X Window 系统登录 | su 和 sudo | 在主目录和 /tmp 中执行(默认) | Networking |
---|---|---|---|---|---|
|
| 是 | 是 | 是 | 是 |
|
| 否 | 否 | 是 | 否 |
|
| 是 | 否 | 是 | 仅限 Web 浏览器(Firefox、GNOME Web) |
|
| 是 | 否 | 是 | 是 |
|
| 是 |
仅 | 是 | 是 |
|
| 是 | 是 | 是 | |
|
| 是 | 是 | 是 | |
|
|
仅在 | 是 | 是 | 是 |
-
user_t
、guest_t
和xguest_t
域中的 Linux 用户只能在 SELinux 策略允许的情况下运行设置的用户 ID(setuid)应用程序(例如passwd
)。这些用户无法运行su
和sudo
setuid 应用程序,因此无法使用这些应用程序成为 root 用户。 -
sysadm_t
、staff_t
、user_t
和xguest_t
域中的 Linux 用户可以使用 X Window 系统和终端登录。 默认情况下,
staff_t
、user_t
、guest_t
和xguest_t
域中的 Linux 用户可以在其主目录和/tmp
中执行应用程序。要防止他们在他们有写入访问权限的目录中执行应用程序(通过继承的用户权限),将
guest_exec_content
和xguest_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
只能管理与syslog
和auditlog
进程相关的 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