3.15. Software Collection SELinux 支持


由于 Software Collections 设计为在备用目录中安装 Software Collection 软件包,所以请设置必要的 SELinux 标签,以便 SELinux 了解备用目录。
如果 Software Collection 软件包的文件系统层次结构代表相应传统软件包的文件系统层次结构,您可以运行 semanage fcontextrestorecon 命令来设置 SELinux 标签。
例如,如果 Software Collection 软件包中的 /opt/provider/software_collection_1/root/usr / 目录代表您的传统软件包的 /usr/ 目录,请设置 SELinux 标签,如下所示:
semanage fcontext -a -e /usr /opt/provider/software_collection_1/root/usr
restorecon -R -v /opt/provider/software_collection_1/root/usr
以上命令确保 /opt/provider/software_collection_1/root/usr/ 目录中的所有目录和文件都被 SELinux 标记,就像它们位于 /usr/ 目录中一样。

3.15.1. Red Hat Enterprise Linux 7 中的 SELinux 支持

当为 Red Hat Enterprise Linux 7 打包 Software Collection 时,将以下命令添加到 Software Collection metapackage 中的 %post 部分来设置 SELinux 标签:
semanage fcontext -a -e /usr /opt/provider/software_collection_1/root/usr
restorecon -R -v /opt/provider/software_collection_1/root/usr
selinuxenabled && load_policy || :
最后一个命令可确保正确加载新创建的 SELinux 策略,并且软件集合中软件包安装的文件也会使用正确的 SELinux 上下文创建。通过在 metapackage 中使用此命令,您不需要在 Software Collection 中的所有软件包中包含 restorecon 命令。
请注意, semanage fcontext 命令由 policycoreutils-python 软件包提供,因此您必须在 Software Collection metapackage 的 policycoreutils-python 中包含 Requires 非常重要。
注意
在 Red Hat Enterprise Linux 7 中,启动服务的 SELinux 方面发生了很大 变化。最重要的是,在 systemd 服务文件中使用 scl enable ... wrapper 会导致服务作为 unconfined _service_t 上下文以不受限制的进程运行。由于此上下文没有按照设计过渡规则,因此如果该服务应该使用 SELinux 策略限制,服务将无法过渡到 SELinux 策略表示的目标 SELinux 上下文,这意味着,如果服务启动,则无法在 Red Hat Enterprise Linux 7 上使用 scl enable ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.