在 Ubuntu 上其实默认是不使用 SELinux 的(Ubuntu 默认用的是 AppArmor)。所以“SELinux 迁移”通常有以下几种场景,我先分情况说明,你看看你属于哪一种。
sudo apt update
sudo apt install selinux selinux-utils policycoreutils
编辑 GRUB:
sudo nano /etc/default/grub
在 GRUB_CMDLINE_LINUX 中加入:
selinux=1 security=selinux
更新 GRUB:
sudo update-grub
sudo systemctl disable apparmor
sudo systemctl stop apparmor
先以 permissive 模式启动(只记录不拦截):
sudo setenforce 0
或编辑:
sudo nano /etc/selinux/config
内容:
SELINUX=permissive
SELINUXTYPE=default
sudo reboot
重启后检查:
sestatus
确认无致命错误后,再改为:
SELINUX=enforcing
⚠️ 不推荐直接复制策略文件,因为发行版差异很大。
audit2allow 根据日志生成策略sudo apt install auditd
sudo ausearch -m avc -ts recent | audit2allow -M mypolicy
sudo semodule -i mypolicy.pp
如果你想回到 Ubuntu 默认安全机制:
sudo apt remove selinux
sudo apt install apparmor apparmor-profiles
sudo systemctl enable apparmor
sudo reboot
security.selinux 属性(ext4/xfs 通常 OK)enforcing为了给你更精确的方案,可以告诉我:
我可以直接给你一套可执行的迁移步骤。