在 Ubuntu 上,默认情况下并不使用 SELinux,而是使用 AppArmor。因此,检查“SELinux 日志”的情况要分几种来看。
大多数 Ubuntu 桌面和服务器 默认没有启用 SELinux。
getenforce
或
sestatus
可能的结果:
Disabled → SELinux 未启用Permissive / Enforcing → SELinux 已启用如果提示:
Command 'getenforce' not found
说明 SELinux 工具未安装,基本可以确定系统没用 SELinux。
如果系统 确实启用了 SELinux,日志通常在:
/var/log/audit/audit.log
查看 SELinux 拒绝(AVC)日志:
sudo ausearch -m avc
实时查看:
sudo ausearch -m avc -ts recent
/var/log/syslog
/var/log/messages
过滤 SELinux 信息:
grep -i selinux /var/log/syslog
grep -i avc /var/log/syslog
sudo sealert -a /var/log/audit/audit.log
需要安装:
sudo apt install setroubleshoot
Ubuntu 默认使用 AppArmor,而不是 SELinux。
sudo dmesg | grep apparmor
或:
sudo journalctl -k | grep apparmor
或:
grep apparmor /var/log/syslog
| 情况 | 建议 |
|---|---|
getenforce 提示未找到 |
Ubuntu 没用 SELinux |
sestatus 显示 Disabled |
查看 AppArmor 日志 |
| SELinux Enforcing/Permissive | /var/log/audit/audit.log |
| Ubuntu 报错权限问题 | 90% 是 AppArmor,不是 SELinux |
如果你愿意,可以贴出:
sestatus 输出我可以帮你判断是不是 AppArmor 或 SELinux 导致的问题,并给出解决方案。