gpt4 book ai didi

ruby-on-rails - 对于通过 Rails 应用程序上传的文件,SELinux 类型设置不正确

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:28 25 4
gpt4 key购买 nike

所以我有一个在 Centos 6.5 上运行的 Web 应用程序。

该应用程序是一个 Ruby/Rails 应用程序,但图像由 Apache HTTPD 提供。

应用程序文件夹位于用户主文件夹中,但我已授予 HTTPD 正确的权限,并在 SELinux 中启用了 httpd_enable_home_dirs。所有静态图像都工作正常。

我看到的问题是,当最终用户上传图像(个人资料图标)时,该文件的 SELinux 上下文被设置为 unconfined_u:object_r:user_tmp_t:s0 而不是 unconfined_u:object_r:usr_t:s0。

如果我在该文件上手动运行 restorcon,上下文将得到修复,并且图像可以正常工作。知道如何确保使用正确的上下文创建文件吗?我研究过使用 restorcond,但看起来它不会递归检查子目录,而且子目录结构不可预测。

感谢任何帮助。

最佳答案

您的应用程序很可能正在将对象从/tmp 或/var/tmp 移动到目标位置。

默认情况下,当使用“mv”移动对象时,其安全元数据也会移动。因此,对象以旧的和不准确的安全元数据到达目的地。在目标对象上运行“restorecon”会将上下文重置为策略认为它应该的样子。

有多种方法可以解决这个问题。要么允许您的网络应用程序读取具有不准确上下文的对象,要么告诉您的网络应用程序使用带有 -Z 选项的“mv”,或者改用“cp”。 (“cp”命令复制对象,因此目标对象以适当的安全元数据结束,通常主要从目标父目录继承。

关于ruby-on-rails - 对于通过 Rails 应用程序上传的文件,SELinux 类型设置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com