
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 布尔值。[roothost ~]# 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 进行共享用户也无法通过浏览器访问该目录。[roothost ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs -- off您可以启用共享并使用户使用浏览器访问其主目录。启用后httpd 服务共享标有user_home_dir_t文件上下文的主目录。然后用户可以从浏览器访问和管理其主目录文件。管理策略布尔值使用setsebool命令但不带-P选项设置 SELinux 布尔值是临时的设置在重新启动后恢复为持久的值。使用semanage boolean -l命令可以查看其他信息这将列出策略文件中的布尔值包括布尔值是否持久、默认值和当前值以及简短的描述。[roothost ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs (off , off) Allow httpd to enable homedirs [roothost ~]# setsebool httpd_enable_homedirs on [roothost ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs (on , off) Allow httpd to enable homedirs [roothost ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs -- on若要仅列出当前设置不同于启动时默认设置的布尔值请使用semanage boolean -l -C命令。以下示例具有与上一示例相同的结果但不需要 grep 过滤。[roothost ~]# 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命令使设置持久有效。以下示例设置一个持久值然后查看策略文件中的布尔值信息。[roothost ~]# setsebool -P httpd_enable_homedirs on [roothost ~]# 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。[roothost ~]# semanage boolean -l -C SELinux boolean State Default Description httpd_enable_homedirs (on , on) Allow httpd to enable homedirs