SELinux:为什么常见实用程序需要使用自定义标志进行编译

SELinux:为什么常见实用程序需要使用自定义标志进行编译

看:https://wiki.archlinux.org/title/SELinux#SELinux_aware_system_utilities

为什么它们是用 SELinux 编译的?如果不是,会发生什么?

答案1

IIRC,Arch 存储库倾向于尝试避免修补上游软件包。相反,他们更喜欢与上游合作来解决问题。

但在某些情况下,需要实施一些标准才能使该包与发行版的其余部分最好地配合。

您的列表包含iproute2-selinux。它似乎使用相同的来源ip路由2,但添加了一个修补。此补丁修复了 FHS(文件系统层次结构)合规性。在原始的iproute中,数据存储在LIBDIR中。应用补丁后,数据将存储在 DATADIR ( /usr/share) 中。

在另一个例子中dbus-selinux很简单dbus,但添加了一个安装钩子这会导致 dbus 在软件包升级后重新加载其配置。它还添加了一个小修补这改变了致命警告的行为。

coreutils-selinux另一个例子。它直接使用上游源,然后使用--with-selinux其自身的libselinux.

如果我们查看 coreutils 的上游源代码 (git://git.sv.gnu.org/coreutils),我们会看到几个使用is_selinux_enabled().其中包含低级注释,例如“尝试保留 SELinux 安全上下文”、“更改文件的 SELinux 上下文”和“它需要启用 SELinux 的内核”。看起来代码正在利用修补内核提供的额外安全功能。

相关内容