在 Ubuntu 上,“修复 SELinux”通常分两种情况:
下面分别说明。
cat /sys/kernel/security/lsm
常见输出:
lockdown,yama,apparmor → 用的是 AppArmorselinux → 确实启用了 SELinuxsudo apparmor_status
sudo systemctl reload apparmor
sudo systemctl restart apparmor
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx
(complain = 只记录不阻止)
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sestatus
可能状态:
DisabledPermissiveEnforcingsudo setenforce 0
编辑:
sudo nano /etc/selinux/config
示例:
SELINUX=permissive
SELINUXTYPE=targeted
修改后需要 重启
如果你移动/恢复过文件,可能上下文错了:
sudo restorecon -Rv /var/www
或对整个系统:
sudo fixfiles onboot
sudo ausearch -m AVC -ts recent
或用:
sudo journalctl -t setroubleshoot
sudo sealert -a /var/log/audit/audit.log
如果你是误装 SELinux 导致系统异常:
sudo apt remove selinux selinux-basics selinux-policy-default
sudo apt install apparmor apparmor-utils
然后:
sudo update-grub
sudo reboot
| 情况 | 建议 |
|---|---|
| Ubuntu 默认系统 | 用 AppArmor |
| 从 CentOS 迁移 | 保留或移除 SELinux |
| 系统启动失败 | 进 recovery → 禁用 SELinux |
| 服务被拒绝 | 看 audit 日志 |
如果你愿意,可以告诉我:
我可以直接给你针对性的修复命令。