确认SELinux是否启用
getenforce
查看当前模式(Enforcing/Permissive/Disabled)。sudo apt install selinux-basics selinux-policy-default
。查看系统日志
/var/log/audit/audit.log
,用 grep "avc" /var/log/audit/audit.log
过滤拒绝记录。ausearch -m avc -ts recent
搜索近期拒绝事件,aureport -m avc
生成统计报告。权限被拒绝(avc: denied)
audit2why
分析拒绝原因:ausearch -m avc | audit2why
。ausearch -m avc | audit2allow -M my_policy
,然后加载模块:sudo semodule -i my_policy.pp
。服务或应用无法运行
ls -Z /path/to/service
,确保上下文正确。sudo setenforce 0
,若问题消失则需调整策略。策略配置错误
semanage
管理策略:semanage fcontext -l
查看文件上下文,semanage boolean -l
查看布尔值设置。sudo semodule -i custom_policy.pp
。临时/永久模式切换
sudo setenforce 0
(Permissive模式,仅记录不阻止)。/etc/selinux/config
,设置 SELINUX=disabled
并重启。日志分析工具
sealert
:交互式分析日志并提供解决方案(需安装 setroubleshoot-server
)。dmesg
/journalctl
:查看内核级错误,辅助定位系统级问题。参考来源: