由 perl-cgi 脚本触发的 Bash 脚本的 SELinux 访问被拒绝错误

由 perl-cgi 脚本触发的 Bash 脚本的 SELinux 访问被拒绝错误

我有一个自动化框架,它使用 Perl-CGI 在服务器上运行脚本。由于我们启用了 SELinux,当脚本尝试运行 bash 脚本时,我收到访问被拒绝错误。

以下是我在 audit.log 中找到的脚本错误日志

type=AVC msg=audit(1397170377.265:109255): avc:  denied  { execute } for  pid=23776 comm="run_step.sh" name="step.sh" dev=sda1 ino=795126 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_sys_rw_content_t:s0 tclass=file
type=AVC msg=audit(1397170377.265:109255): avc:  denied  { execute_no_trans } for  pid=23776 comm="run_step.sh" path="/var/www/html/test/generated.5465/step.sh" dev=sda1 ino=795126 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:httpd_sys_rw_content_t:s0 tclass=file

当我将 SELinux 设置为宽容模式时,我可以毫无错误地运行这些脚本。但是当它处于强制模式时,我就无法这样做了。

此外,我已为文件设置了 httpd 标签,但仍然出现这些错误。您知道如何解决吗?

答案1

查看 audit.log 消息,似乎某些文件的标签可能不正确。如果您尝试运行这些文件,那么我认为应该对它们进行标记,httpd_sys_script_t而不是httpd_sys_rw_content_t

相关内容