SELinux的配置(如/etc/selinux/config中的模式设置)和策略更新后,重启系统是确保所有更改全面生效的最可靠方法。重启会重新加载内核及所有系统服务,使SELinux的新配置(如强制模式、宽容模式或禁用模式)和策略规则完全应用。
操作命令:
sudo reboot
注意事项:
若SELinux更新仅涉及特定服务的上下文规则(如修改了Apache、Nginx等服务的文件上下文),可仅重启受影响的服务,无需重启整个系统。这种方式能快速应用更改,减少停机时间。
操作步骤:
semanage fcontext查看修改的文件/目录所属服务,或根据日志(/var/log/audit/audit.log)定位问题服务;restorecon命令恢复默认规则;sudo systemctl restart httpd # CentOS 7
sudo systemctl restart httpd.service # CentOS 8及以上
适用场景:
若需临时测试SELinux配置是否生效(如从强制模式切换到宽容模式),可使用setenforce命令,无需重启系统。但需注意,此方式仅在当前运行周期有效,重启后会恢复/etc/selinux/config中的永久设置。
操作命令:
sudo setenforce 0 # 切换到宽容模式(Permissive,记录违规但不阻止)
# 测试完成后切换回强制模式
sudo setenforce 1 # 切换到强制模式(Enforcing,阻止违规行为)
注意事项:
/etc/selinux/config文件(如将SELINUX=enforcing改为SELINUX=permissive);无论采用哪种重启方式,重启后均需验证SELinux是否按预期工作:
sestatus
输出应显示Current mode: enforcing(强制模式)或permissive(宽容模式),且SELinux status: enabled(启用状态)。sestatus -v # 查看详细策略信息
getenforce # 快速确认当前模式
提示:若重启后SELinux未生效,需检查/etc/selinux/config文件中的配置是否正确,或查看日志(/var/log/messages、/var/log/audit/audit.log)排查错误。
/etc/selinux/config和/etc/selinux/targeted/policy/下的策略文件;