在 Ubuntu 上学习 SELinux,需要先明确一个关键点:
Ubuntu 默认使用的是 AppArmor,而不是 SELinux。
SELinux 主要用于 RHEL / CentOS / Fedora。
所以,“Ubuntu 上入门 SELinux”通常有两种情况:
✅ 推荐方式:在虚拟机里装 CentOS / Rocky / Fedora
理解基本概念
常用命令
getenforce # 查看状态
setenforce 0/1 # 临时关闭/开启
sestatus # 详细信息
ls -Z # 查看文件上下文
ps -Z # 查看进程上下文
semanage # 策略管理
restorecon # 恢复默认上下文
setsebool # 布尔开关
ausearch # 审计日志
sealert # 错误分析(setroubleshoot)
⚠️ 不推荐生产环境,仅适合学习
sudo apt update
sudo apt install selinux selinux-utils policycoreutils
编辑 GRUB:
sudo nano /etc/default/grub
在 GRUB_CMDLINE_LINUX 加:
security=selinux selinux=1
更新 GRUB:
sudo update-grub
sudo setenforce 0
sestatus
Ubuntu 上 SELinux 支持不完整,很多服务默认策略缺失,容易系统异常。
如果你目标是 系统安全,建议:
sudo aa-status
sudo apt install apparmor-utils
man apparmor
wiki.ubuntu.com/SELinuxdanwalsh.livejournal.com(SELinux 作者博客)Ubuntu 不是学 SELinux 的最佳平台;想入门 SELinux,用 CentOS / Fedora 虚拟机最快。
如果你愿意,我可以: