从 CD/DVD 启动 ramdisk 时如何启用 SELinux?

从 CD/DVD 启动 ramdisk 时如何启用 SELinux?

我有一张可启动 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 页面

相关内容