配置 CentOS 以允许可执行文件在专用目录中创建和写入文件

配置 CentOS 以允许可执行文件在专用目录中创建和写入文件

我有一个 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

相关内容