如何让 apache 日志文件可供 apache 读取

如何让 apache 日志文件可供 apache 读取

我想让 www-data(运行 Web 服务器的用户)可以读取 apache 访问日志文件,这样我就可以通过 HTTPS 提供它,省去了每次想要检查时都要通过 SSH 连接到服务器的麻烦。

我试过了chmod o+r access.log,但似乎权限自动重置为-rw-r----- 1 root adm

答案1

如果您正在运行 logrotate,它还会设置新日志文件的权限,那么这可能是进行更改的好地方。例如,这是 Ubuntu 服务器上的默认 apache2 logrotate。

andreas@halleck:~$ sudo cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    dateext
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
            /etc/init.d/apache2 reload > /dev/null
        fi
    endscript
}

如您所见,有一个名为 create 的设置。您可以随意将其更改为您希望新日志文件具有的任何模式和所有权。此外,以下是 logrotate(8) 手册文件中对 create 选项的描述。

创建模式所有者组

旋转后(运行 postrotate 脚本之前)立即创建日志文件(与刚刚旋转的日志文件同名)。mode 以八进制指定日志文件的模式(与 chmod(2) 相同),owner 指定拥有日志文件的用户名,group 指定日志文件所属的组。可以省略任何日志文件属性,在这种情况下,新文件的这些属性将使用与原始日志文件相同的值作为省略的属性。可以使用 nocreate 选项禁用此选项。

答案2

我通过更改文件所有权(似乎不会自动重置)来实现这一点。这是正确的方法吗?

相关内容