4.2. 使用 SELinux 布尔值调整用于共享 NFS 和 CIFS 卷的策略
您可以使用布尔值在运行时更改 SELinux 策略部分,即使您不了解 SELinux 策略的编写方式。这启用了更改,比如允许服务访问 NFS 卷而无需重新载入或者重新编译 SELinux 策略。以下流程演示了列出 SELinux 布尔值并进行配置,以实现策略中所需的更改。
在客户端的 NFS 挂载使用 NFS 卷策略定义的默认上下文标记。在 RHEL 中,此默认上下文使用 nfs_t
类型。另外,挂载在客户端中的 Samba 共享使用策略定义的默认上下文标记。此默认上下文使用 cifs_t
类型。您可以启用或禁用布尔值来控制允许哪些服务访问 nfs_t
和 cifs_t
类型。
要允许 Apache HTTP 服务器服务(httpd
)访问和共享 NFS 和 CIFS 卷,请执行以下步骤:
先决条件
-
(可选)安装
selinux-policy-devel
软件包,以获取semanage boolean -l
命令的输出中 SELinux 布尔值的更清晰和详细描述。
步骤
识别与 NFS、CIFS 和 Apache 相关的 SELinux 布尔值:
# semanage boolean -l | grep 'nfs\|cifs' | grep httpd httpd_use_cifs (off , off) Allow httpd to access cifs file systems httpd_use_nfs (off , off) Allow httpd to access nfs file systems
列出布尔值的当前状态:
$ getsebool -a | grep 'nfs\|cifs' | grep httpd httpd_use_cifs --> off httpd_use_nfs --> off
启用指定的布尔值:
# setsebool httpd_use_nfs on # setsebool httpd_use_cifs on
注意使用
setsebool
和-P
选项,使更改在重新启动后仍然有效。setsebool -P
命令需要重建整个策略,且可能需要一些时间,具体取决于您的配置。
验证
检查布尔值为
on
:$ getsebool -a | grep 'nfs\|cifs' | grep httpd httpd_use_cifs --> on httpd_use_nfs --> on
其他资源
-
semanage-boolean (8)
,sepolicy-
,booleans (8)
getsebool (8)
,setsebool (8)
,booleans (5)
, 和 booleans (8) man pages