![在 selinux (centos) 中允许 webalizer](https://linux22.com/image/24941/%E5%9C%A8%20selinux%20(centos)%20%E4%B8%AD%E5%85%81%E8%AE%B8%20webalizer.png)
我大致遵循了这些说明: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 访问必要的文件。
答案2
我在通过组合 2 个 httpd 日志(access_log 和 ssl_acces_log 连接并按日期排序)创建的日志上运行 webalizer 时遇到了同样的问题。它可以完美地与这两个文件中的任何一个一起运行,但是结合这两个文件,我收到了“无法打开日志文件”消息。
对于 Lee 来说,audit.log 中没有任何错误的痕迹。
但是,通过执行此命令:
chcon --type=httpd_log_t /var/log/combined-httpd.log
webalizer 终于被授权读取该文件......