使用布尔值调整 SELinux 策略
2026/9/10 8:25:53 网站建设 项目流程

SELinux 布尔值

应用或服务开发人员编写 SELinux 目标策略来定义目标应用的允许行为。开发人员可以在 SELinux 策略中包含可选的应用行为,当特定系统上允许相关行为时启用该策略。SELinux 布尔值可启用或禁用 SELinux 策略的可选行为。通过使用布尔值,您可以有选择地调整应用的行为。

这些可选行为是特定于应用的,必须为各个目标应用发现和选择。如需了解服务相关的布尔值,请参阅该服务的 SELinux man page。例如,Web 服务器 httpd 服务有其httpd(8)man page,以及用于记录其 SELinux 策略的httpd_selinux(8)man page,包括支持的进程类型、文件上下文和可用的布尔值行为。SELinux man page 在selinux‑policy‑doc软件包中提供。

使用getsebool命令列出此系统上目标策略的可用布尔值,以及当前的布尔值状态。使用setsebool命令启用或禁用这些行为的运行状态。setsebool -P命令选项通过写入策略文件使设置持久有效。只有特权用户才能设置 SELinux 布尔值。

[root@host ~]# getsebool -a abrt_anon_write --> off abrt_handle_event --> off abrt_upload_watch_anon_write --> on ...output omitted...

示例 httpd 策略布尔值

httpd 服务策略包括httpd_enable_homedirs布尔值,它通过 httpd 启用主目录共享。通常,用户只有在登录本地系统后才能访问其本地主目录。或者,通过使用远程文件共享协议(如 NFS)来共享和访问主目录。在这两种情况下,主目录默认为不利用 https 进行共享,用户也无法通过浏览器访问该目录。

[root@host ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs --> off

您可以启用共享并使用户使用浏览器访问其主目录。启用后,httpd 服务共享标有user_home_dir_t文件上下文的主目录。然后,用户可以从浏览器访问和管理其主目录文件。

管理策略布尔值

使用setsebool命令但不带-P选项设置 SELinux 布尔值是临时的,设置在重新启动后恢复为持久的值。使用semanage boolean -l命令可以查看其他信息,这将列出策略文件中的布尔值,包括布尔值是否持久、默认值和当前值,以及简短的描述。

[root@host ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs (off , off) Allow httpd to enable homedirs [root@host ~]# setsebool httpd_enable_homedirs on [root@host ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs (on , off) Allow httpd to enable homedirs [root@host ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs --> on

若要仅列出当前设置不同于启动时默认设置的布尔值,请使用semanage boolean -l -C命令。以下示例具有与上一示例相同的结果,但不需要 grep 过滤。

[root@host ~]# semanage boolean -l -C SELinux boolean State Default Description httpd_enable_homedirs (on , off) Allow httpd to enable homedirs

上一示例将httpd_enable_homedirs布尔值的当前值临时设置为 on,直到系统重新启动为止。要更改默认设置,请使用setsebool -P命令使设置持久有效。以下示例设置一个持久值,然后查看策略文件中的布尔值信息。

[root@host ~]# setsebool -P httpd_enable_homedirs on [root@host ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs (on , on) Allow httpd to enable homedirs

再次使用semanage boolean -l -C命令。尽管当前设置和默认设置似乎相同,但仍会显示布尔值。但是,如果当前设置与上次启动的默认设置不同,‑C选项就会匹配。在这个httpd_enable_homedirs示例中,原始的默认引导设置是 off。

[root@host ~]# semanage boolean -l -C SELinux boolean State Default Description httpd_enable_homedirs (on , on) Allow httpd to enable homedirs

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询