selinux 的三种运行模式
enforcing(强制模式):selinux 已启用并按策略强制执行访问控制,违规访问会被拒绝并记录到日志(如 avc 拒绝)。这是多数发行版的默认模式。
permissive(宽容模式):selinux 已启用但不强制执行,违规访问仅记录警告,常用于排错、策略验证或新应用测试。
disabled(关闭模式):selinux 完全关闭,系统仅使用传统的 dac 访问控制,不加载 selinux 策略与上下文。
常用查看与切换命令
查看状态与策略:使用 sestatus 可查看当前模式、配置文件设定及加载的策略(如 targeted);getenforce 仅显示当前运行模式(enforcing/permissive/disabled)。
运行时切换 enforcing/permissive:使用 setenforce 0/1 在两种模式间切换;该切换仅在当前会话有效,重启后由配置文件决定。注意:setenforce 无法在 disabled 状态下使用。
持久化配置:编辑 /etc/selinux/config,设置 selinux=enforcing|permissive|disabled;从 disabled 切换到 enforcing/permissive 或反向切换时,建议重启系统,并在必要时执行文件系统重新标记(relabel),以确保文件安全上下文正确。
模式选择与使用建议
生产环境优先使用 enforcing,在出现访问问题时可短时切到 permissive 收集日志与排错,再回到 enforcing。
不建议长期 disabled;若必须关闭,请充分评估安全影响并做好变更记录与回退方案。