我有一个 Web 应用,它使用以 Python 实现的 AI 算法接收、存储和处理文件。该 Web 应用使用服务器端脚本语言开发,但在调用上传文件的 Python 程序时,SELinux 拒绝访问这些文件的权限。
假设我有一个站点分发包,其目录格式如下:
/bin # Python binaries
/doc # explains some important things
/web # document root.
以及环境变量中的文件池目录$FILE_POOL
我如何正确且安全地配置 SELinux 以允许此类访问?
答案1
一许多流行的搜索结果建议使用public_rw_content_t
文件池目录,但在这种情况下这并不正确,因为它仅适用于使 Samba 共享文件可供网站可执行脚本访问。
正确的方法是将脚本的目录 ( /bin
)配置httpd_sys_script_exec_t
为 ,然后将文件池 ( $FILE_POOL
) 配置为httpd_sys_rw_content_t
。这些是可执行脚本和“文件池”的专用文件系统上下文类型。
参考:httpd_selinux 手册页freebsd.org 网站 ,linux.die.net, 和redhat.com