SELinux(Security-Enhanced Linux)在 Ubuntu 上默认并不启用,Ubuntu 官方更常用的是 AppArmor。不过你仍然可以手动安装和使用 SELinux。下面给你一个实用、可操作的说明,从“能不能用”到“怎么用”。
✅ Ubuntu 支持 SELinux,但不是默认安全模块
✅ Ubuntu 官方更推荐 AppArmor
✅ 服务器 / 学习 SELinux / 合规需求 → 可以用 SELinux
❌ 桌面日常使用 → 不建议折腾
如果你只是想做 访问控制 / 安全加固,先确认是否真的需要 SELinux。
cat /sys/kernel/security/lsm
常见输出:
lockdown,capability,apparmor
说明当前是 AppArmor。
sudo apt update
sudo apt install selinux selinux-utils selinux-basics auditd
sudo selinux-activate
这会:
然后 必须重启:
sudo reboot
getenforce
可能结果:
DisabledPermissiveEnforcingsudo setenforce 0 # Permissive
sudo setenforce 1 # Enforcing
编辑:
sudo nano /etc/selinux/config
示例:
SELINUX=permissive
SELINUXTYPE=default
⚠️ 第一次强烈建议用 permissive,否则系统可能起不来
sestatus
ls -Z
示例:
-rw-r--r-- user:user unconfined_u:object_r:user_home_t:s0 test.txt
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html
sudo ausearch -m avc -ts recent
或:
sudo dmesg | grep avc
Ubuntu 默认启用 AppArmor,建议:
sudo systemctl disable apparmor
sudo reboot
或至少不要同时强依赖两者。
✅ 解决方式:
enforcing=0
某些策略包不如 RHEL / CentOS 完善,可能需要:
audit2allow✅ 以下情况适合用 SELinux:
❌ 不推荐:
sudo aa-status
AppArmor 更简单,Ubuntu 生态更好。
| 需求 | 建议 |
|---|---|
| 学习 SELinux | ✅ 用 Ubuntu / CentOS |
| Ubuntu 服务器安全 | ✅ AppArmor |
| 等保 / 合规 | ✅ SELinux |
| 快速上手 | ❌ SELinux |
如果你愿意,我可以:
你现在是 学习 / 服务器 / 考试 / 合规 哪一种?