我一直在尝试为 congatec iMX8m som 的客户映像启用 SELINUX for Yocto Builds。它似乎已安装,但我无法移动到启用(强制或许可模式)
SELinux 通过我的 image.bb 文件中的以下标志进行配置:
inherit selinux-image
#install SELinux packages
IMAGE_INSTALL_append = "\
packagegroup-core-selinux \
"
以及我的 local.conf 中的以下添加:
DISTRO_FEATURES_append +="acl pam selinux xattr systemd"
...
DISTRO_FEATURES_BACKFILL_CONSIDERED = ""
VIRTUAL-RUNTIME_init_manager = "systemd"
PREFERRED_PROVIDER_virtual/refpolicy ?= "refpolicy-targeted"
虽然这似乎安装了所有工具等以使其工作,但无论我做什么我都无法启用它,sestatus 总是返回禁用。
然后我将以下内容添加到我的内核配置中,但这也没有帮助:
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=n
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
#CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set`
最后我尝试编辑各种内核启动命令行选项 selinux=1 和 enforcing=0/1。
因此,其中缺失的部分是一个缺失的内核配置,该配置似乎在互联网上很少被提及,并且在 yocto selinux 文档中根本没有提及。 我必须将 selinux 添加到 CONFIG_LSM 内核选项中:
CONFIG_LSM="selinux,lockdown,yama,loadpin,safesetid,integrity"