在 Ubuntu 上遇到 SELinux 报错,通常不是 Ubuntu 默认行为,因为:
Ubuntu 默认使用的是 AppArmor,而不是 SELinux
所以常见情况是:
你可能:
selinux / selinux-basics / selinux-policy-*/etc/selinux/configUbuntu 对 SELinux 支持不完整,很容易报各种奇怪错误。
例如:
audit: type=1400 ... apparmor="DENIED"
这是 AppArmor,不是 SELinux。
--security-opt labelUbuntu 内核默认:
selinuxfs报错示例:
SELinux: Unable to load policy
SELinux: Disabled at runtime
avc: denied { read } for ...
说明:
Failed to load SELinux policy
原因:
selinux-policy-default很多服务(如 snapd)明确不支持 SELinux
直接用 AppArmor(Ubuntu 默认)
检查:
aa-status
sudo apt install selinux-utils
sudo setenforce 0 # Permissive
查看状态:
getenforce
sestatus
sudo apt remove selinux*
并确保:
# /etc/selinux/config
SELINUX=disabled
你可以贴出:
cat /etc/os-releasesestatus 或 getenforce我可以直接告诉你是 SELinux / AppArmor / 权限问题,以及怎么修。