我正在构建一个支持selinux的openwrt系统。 首先我遇到了busybox编译时找不到的bug。然后我知道需要一个 libselinux 库来构建支持 selinux 的 busybox。 由于我对openwrt Makefile不太熟悉,我想知道如何向其中添加库?有指导吗? 此外,我确实发现selinux github(https://github.com/SELinuxProject/selinux)中的代码与我在openwrt(“/linux/security/selinux/*”)中的本地linux源中找到的代码有很大不同。为什么?我知道在linux2.6中已经支持selinux了。不过好像还是得自己把selinux移植到linux上?
这个问题困扰我很久了。任何帮助将不胜感激,谢谢!
最佳答案
我只知道 Debian 上的 SELinux,但既然你混合了不同的东西,我会回答“为什么?”部分:
- Linux 内核通过 Linux 安全模块 (LSM) 为 SELinux 和 other security modules 提供接口(interface)(这就是您在“本地 Linux 源代码”中看到的内容)。
- 为了管理 SELinux 及其策略,有一些用户级工具(即您的 github 链接)。
- SELinux 策略本身是编译后的 .pp 文件,其中包含 .te/if/fc 文件,并且有名为 SELinux Reference Policy Project 的即用型规则。 .
- 还需要一些其他工具来使用 SELinux,例如
fixfiles
和restorecon
设置所需的标签。
要检查 SELinux 是否已启用,请尝试命令 id -Z
但如果您看到错误消息,则表明 LSM SELinux 未激活。我想可以用openwrt激活它,因为它是busybox/config/selinux的一部分,所以你可以尝试命令 sestatus
查看是否已启用。
在 Debian 上可以做 touch /.autorelabel
并重新启动以强制重新标记系统。
关于embedded-linux - 如何将libselinux添加到openwrt构建系统中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717626/