我已经通过以下方式在 Ubuntu 18.04.1 LTS 上安装了 SELinux
# apt install selinux
强制重启后,SELinux 不断被禁用,直到我添加
SELinux = 1
到/etc/default/grub
并被处决
sudo update-grub
SELinux 似乎工作正常。
sestatus
报告返回
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: default
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: requested (insecure)
Max kernel policy version: 31
然而,执行
# sudo systemctl status selinux
产量
Nov 21 14:38:51 ubuntu-selinux systemd[1]:
Started LSB: Relabel the filesystem before reboot.
即使我通过添加touch /.autorelabel
、执行sudo fixfiles relabel
和重新启动系统来重新标记文件系统。
可能相关的其他信息
- apparmor已成功删除
- 文件系统是
ext4
- 这是全新安装,因此没有任何其他修改。
我的问题:为什么我必须手动添加内核参数以及为什么 SELinux 在每次启动时提示我再次重新标记?
答案1
不要安装该selinux
软件包,selinux-basic
而是安装。
该selinux
软件包是 ubuntu 特定的,而且非常旧,并且不能很好地与 systemd 配合使用。
说实话,我以为它已经从 ubuntu 存档中删除了一段时间了。
答案2
你必须手动添加内核参数,因为 Ubuntu 默认使用 AppArmor,而且在 ubuntu 系统上很少看到使用 SELinux。这实际上可能被视为一个错误,您可能需要考虑打开 selinux 软件包的启动板错误报告。
关于不断重新标记:/.autorelabel
重新启动后文件是否仍然存在?在 CentOS/RHEL 上,其中一个 systemd 单元会删除它,但我猜这在 Ubuntu 上可能不会发生。