【问题标题】:Why is SELinux still disabled eventhough CONFIG_SECURITY_SELINUX is enabled in the kernel?为什么即使在内核中启用了 CONFIG_SECURITY_SELINUX,SELinux 仍然被禁用?
【发布时间】:2019-09-21 16:15:16
【问题描述】:

我正在 Yocto (1.8.1 Fido) 中使用 PREEMPT-RT 补丁编译 Linux 内核 v3.12.61,并启用了以下内核配置。 /sys/fs/selinux 目录已创建,但为空。

CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 
 #CONFIG_SECURITY_SELINUX_DISABLE is not set 
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
 #CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y

不管我启用CONFIG_SECURITY_SELINUX_BOOTPARAM还是设置01,结果还是一样。

我已经使用 OE 的 meta-selinux 层安装了 SELinux 用户空间工具。我还在/etc/selinux/config 中设置了SELINUX=permissive。运行 sestatus 返回 "SELinux status: disabled"。以前,这就是我在编译旧内核 (v3.2) 时需要做的所有事情。我在这里有什么遗漏吗?

【问题讨论】:

    标签: linux-kernel yocto selinux


    【解决方案1】:

    documentation for the meta-selinux layer 有一个部分大致概述了如果您想在图像中使用 selinux 该怎么做。

    为了 Stack Overflow 的完整性,我将其粘贴在这里,但请注意,当您在此处阅读时,此状态可能已过时,因此请尽可能参考原文。

    构建 meta-selinux 层

    为了向 poky 构建添加 selinux 支持,应将此层添加到您的项目 bblayers.conf 文件中。

    默认情况下 selinux 组件被禁用。这符合 Yocto Project 兼容指南,表明仅包含一个层不应改变系统行为。

    为了使用该层中的组件,您必须将“selinux”添加到DISTRO_FEATURES。除了 selinux,您应该确保aclxattrpam 也存在。例如DISTRO_FEATURES_append = " acl xattr pam selinux"

    您还必须为 virtual/refpolicy 指定首选提供程序。该层包含的策略只是参考策略,需要针对您的环境进行定制。

    启用 refpolicy-mls:例如PREFERRED_PROVIDER_virtual/refpolicy ?= "refpolicy-mls"

    【讨论】:

    • 谢谢,我之前阅读了文档,但我没有添加DISTRO_FEATURES,而是附加到MACHINE_FEATURES,并认为它会是一样的。结果,来自 meta-selinux 的 systemd bbapend 文件仅检查 DISTRO_FEATURES 没有检测到此更改,因此未使用 --with-selinux 编译。
    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2020-09-06
    • 2020-09-09
    • 2021-07-15
    相关资源
    最近更新 更多