我希望有人愿意指出我应该是一个非常简单的问题。
我有一个网页,通过Apache 2.4.6在带有perl 5.16.3的Centos 7盒子上提供。我在perl中编写的页面的后端。该页面使用户能够单击按钮来调用perl文件,以便从cgi-bin目录中的特定子目录中删除一个或多个文件。文件名总是不同的。 Perl只使用
我的$ SuccessfullDelete =取消关联(" $ file");
删除文件。
(注意:要删除的每个文件名都是由后端以编程方式确定的,最终用户请求无法修改以避免安全问题)
这很好用,当SELinux被禁用或设置为许可时,文件被删除;然而,当'setenforce 1'使用unlink权限被阻止所以我知道我的问题是SELinux。我使用" chcon -R -t httpd_sys_rw_content_t / path"设置了读/写权限。并验证这使我能够读写该目录。我本来以为它也可以让我从该目录中删除,但它没有,我没有找到任何其他选项似乎工作。
摘要
当从网络调用脚本时,SELinux阻止perl脚本删除位于cgi-bin文件夹下的名为THREADS的文件夹中的文件。
经过
- 11/15/2017 13:50:29 statisticsViewe system_u:system_r:httpd_sys_script_t:s0 87 file unlink unconfined_u:object_r:httpd_sys_script_exec_t:s0被拒绝3804
醇>
有人可以告诉我如何设置/ THREADS目录,这样我的perl脚本即使通过Apache调用也可以删除,读取和写入文件吗?在过去我知道经常建议只是禁用SELinux但我知道不再是这种情况所以我的目标是正确地做到这一点。编辑:如果有办法我可以改变我的代码以解决这个问题,我也会对此开放。
提前谢谢大家!