ubuntu 各版本对 selinux 的支持
- 自 ubuntu 8.04 lts(hardy heron) 起,社区就已提供 selinux 的支持与软件包,但它并非默认启用,且需要手动安装与配置;ubuntu 的默认强制访问控制机制仍为 apparmor。因此,从 8.04 起的大多数 ubuntu 版本在“技术层面”都可以启用 selinux,但在“开箱即用”层面并不启用。
版本兼容性与默认状态一览
| 版本范围 |
是否可用 |
默认状态 |
说明 |
| 8.04 lts – 20.04 lts |
可用(需安装工具/策略) |
未启用(apparmor 为默认) |
需安装 selinux 相关用户态工具与策略包,手动切换 selinux 模式 |
| 20.10 – 22.04 lts |
可用(需安装工具/策略) |
未启用(apparmor 为默认) |
实践中仍可按需启用;例如 22.04 上可通过 policycoreutils 等工具包进行管理 |
| 22.04 lts 及以后 |
可用(需安装工具/策略) |
未启用(apparmor 为默认) |
ubuntu 默认仍使用 apparmor;若需 selinux,需自行部署并维护策略 |
上述“可用但非默认”的结论基于:ubuntu 自 8.04 起包含 selinux 支持、但默认启用的是 apparmor;在 22.04 等版本上仍可通过安装如 policycoreutils-python-utils 等工具来操作 selinux(如 setenforce)。
在 ubuntu 上启用 selinux 的简要提示
- 安装管理工具(示例):sudo apt install policycoreutils policycoreutils-python-utils selinux-basics selinux-utils
- 查看与切换模式:getenforce / setenforce 0|1;必要时编辑 /etc/selinux/config 设置 selinux=enforcing|permissive|disabled 并重启生效
- 注意:切换为 enforcing 前应先完成策略与文件标签配置,避免系统服务异常
选用建议
- 若希望“直接可用、维护成本低”,建议继续使用 ubuntu 默认的 apparmor。
- 若业务或合规明确要求 selinux,可在 ubuntu 上启用,但需评估策略编写与维护成本,并充分测试。
- 若需要 selinux 的“完整生态与默认启用体验”,可考虑 rhel/centos 等原生支持 selinux 的发行版。