看: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 的内核”。看起来代码正在利用修补内核提供的额外安全功能。