Centos 6.3 PERL CGI selinux文件读取权限

我有一个名为index.cgi的CGI脚本

它正在尝试读取名为10.128.0.242.2012.sep.20.downloaded.txt的日志文件,path为/var/log/trafcount/

看来它被selinux阻塞了。

审计日志显示类似

avc:denied {read} for pid = 11620 comm =“index.cgi”name =“10.128.0.242.2012.sep.20.downloaded.txt”dev = dm- 0 ino = 395264 scontext = unconfined_u:system_r:httpd_sys_script_t:s0 tcontext = unconfined_u:object_r:var_log_t:s0 tclass = file

我怎样才能让这个脚本完全访问/ var / log / trafcount下的所有文件?

一种方法是用下面的“chcon”命令:

 chcon -Rv --type=httpd_sys_content_t /var/log/trafcount 

这将使您能够在重新启动时访问,但不能跨SELinux重新标记。 从长远来看,我build议创build一个自定义types,并在SELinux中创build一个规则,这样/ var / log和Apache都可以继续使用它。

资料来源: http : //wiki.centos.org/HowTos/SELinux (在CentOS下的SELinux上有很多很棒的东西)