小编prc*_*jac的帖子

无法将 SELinux 文件上下文应用于带有符号链接的路径

我有一个正在企业环境中安装的解决方案。该解决方案及其部署指南旨在安装在启用了 SELinux 的 RHEL7/CentOS7 服务器上,并根据文件系统层次结构标准将组件安装到位置。

然而,其中一位客户让我们感到惊讶,他指出所有第三方解决方案都必须安装到一个/apps目录中,因为他们根据策略对此进行了备份。

为了避免这个特定客户端的偏差,因为它需要对解决方案进行重大修改,我们决定最好的方法是在目录中创建一个新目录,/apps/opt从真实的目录中预先创建符号链接/opt,并将相同的 SELinux 内容应用于它(usr_t)例如:

ls -laZ /appl/opt
drwxr-xr-x. root     root     unconfined_u:object_r:usr_t:s0   .
drwxr-xr-x. root     root     unconfined_u:object_r:default_t:s0 ..
drwxr-xr-x. product product unconfined_u:object_r:usr_t:s0   product

la -laZ /opt
drwxr-xr-x. root root system_u:object_r:usr_t:s0       .
dr-xr-xr-x. root root system_u:object_r:root_t:s0      ..
lrwxrwxrwx. root root unconfined_u:object_r:usr_t:s0   product -> /apps/opt/product/
Run Code Online (Sandbox Code Playgroud)

产品的某些组件是通过 Apache HTTPD 访问的,并且需要将httpd_sys_content_t上下文应用于它们。

这些文件位于/opt/product/wwwstatic/(实际上是/apps/opt/product/wwwstatic/)。

部署指南指定要运行以下命令:

semanage fcontext -a -t httpd_sys_content_t "/opt/product/wwwstatic/*"
restorecon -Rv /opt/product/wwwstatic
Run Code Online (Sandbox Code Playgroud)

它恢复标准安装上的上下文,但在这种环境中,由于符号链接,它会失败。

如果您修改命令以包含该 …

linux redhat selinux centos symlink

2
推荐指数
1
解决办法
3233
查看次数

标签 统计

centos ×1

linux ×1

redhat ×1

selinux ×1

symlink ×1