在 selinux (centos) 中允许 webalizer

在 selinux (centos) 中允许 webalizer

我大致遵循了这些说明:http://library.linode.com/web-applications/analytics/webalizer/centos-5安装并配置 webalizer 以在多个虚拟主机上运行。不幸的是,当我尝试运行时:

webalizer -n site.net -o /var/www/webalizer /etc/httpd/logs/site.net-apache_log

我得到:

Error: Can't open log file /etc/httpd/logs/site.net-apache_log

但运行后:

echo 0 > /selinux/enforce

有用。

我如何告诉 selinux 允许 webalizer 运行?

编辑

[root@web-01 logs]# ls -lZ
-rw-r--r--. root root unconfined_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root unconfined_u:object_r:httpd_log_t:s0 error_log
-rw-r--r--. root root unconfined_u:object_r:httpd_log_t:s0 tt.net-access_log
-rw-r--r--. root root unconfined_u:object_r:httpd_log_t:s0 tt.net-error_log
-rw-r--r--. root root unconfined_u:object_r:httpd_log_t:s0 ck.tt.net-access_log
-rw-r--r--. root root unconfined_u:object_r:httpd_log_t:s0 ck.tt.net-error_log

[root@web-01 ~]# service --status-all
auditd (pid  1132) is running...

[root@web-01 ~]# /opt/webalizerScript.sh 
Error: Can't open log file /etc/httpd/logs/tt.net-access_log
Error: Can't open log file /etc/httpd/logs/ck.tt.net-access_log

[root@web-01 ~]# audit2allow -w -a
<no matches>

答案1

用于audit2allow确定 webalizer 被阻止的原因并构建本地 SELinux 策略模块以允许 webalizer 访问必要的文件。

红帽的SELinux 故障排除指南此过程的详细步骤

答案2

我在通过组合 2 个 httpd 日志(access_log 和 ssl_acces_log 连接并按日期排序)创建的日志上运行 webalizer 时遇到了同样的问题。它可以完美地与这两个文件中的任何一个一起运行,但是结合这两个文件,我收到了“无法打开日志文件”消息。

对于 Lee 来说,audit.log 中没有任何错误的痕迹。

但是,通过执行此命令:

chcon --type=httpd_log_t /var/log/combined-httpd.log

webalizer 终于被授权读取该文件......

相关内容