![从 CD/DVD 启动 ramdisk 时如何启用 SELinux?](https://linux22.com/image/541581/%E4%BB%8E%20CD%2FDVD%20%E5%90%AF%E5%8A%A8%20ramdisk%20%E6%97%B6%E5%A6%82%E4%BD%95%E5%90%AF%E7%94%A8%20SELinux%EF%BC%9F.png)
我有一张可启动 DVD,它启动的内核与硬盘相同(使用 SELinux)。我已将 /etc/selinux 和所有内核模块复制到我的 ramdisk,并尝试了各种 和 以及 . 的组合selinux=1
作为selinux 1
内核enforcing 1
启动enforcing 0
参数。checkpolicy、libselinux、policycoreutils、selinux-policy 和 selinux-policy-targeted rpm 中包含的所有文件也已复制到 ramdisk 树中。
系统从 ramdisk 启动后,我检查 dmesg:
% dmesg | grep -i selinux
Kernel command line: initrd=idrd.img ramdisk_size=110476 selinux=1
SELinux: Initializing.
SELinux: Starting in permissive mode
selinux_register_security: Registering secondary module capability
SElinux: Registering netfilter hooks
但 SELinux 没有运行:
% /usr/sbin/getenforce
Disabled
% /usr/sbin/setenforce 1
/usr/sbin/setenforce: SELinux is disabled
既没有/var/log/messages
,也没有任何/proc/kmsg
线索。
答案1
不太明显的是,SELINUX 需要挂载 selinuxfs。挂载后,selinuxfs 会出现在 /proc/mounts 中,但不是在 mount 命令的输出中。
在我的 initrd 中安装 selinuxfs 就成功了
答案2
不太确定。出于好奇,什么发行版?也许enforcing=1
可以。Dan Walsh 对此非常了解,我认为他制定了 SELinux @ Fedora 的政策。我还根据Fedora 文档 wiki 页面。