apache如何写入error_log&access_log

我正在运行一个干净的Ubuntu服务器,并得到了Apache的工作。

我注意到,apache访问和错误日​​志是由root拥有的:

-rw-r----- 1 root adm 10531 Oct 11 00:43 access.log -rw-r----- 1 root adm 58839 Oct 11 00:43 error.log 

我只是想知道如果apache实际上只是写入日志,如果它只能由root写入。

它是默认使用系统日志?

谢谢!

apache服务器最初是以root用户身份启动的,然后创build单独的线程作为一个权限较低(通常是www-data)用户运行,以便服务器内容。 主要的apache进程可以写入这些文件,因为它仍然以root身份运行。

嗯…..从我可以告诉一旦文件被打开,权限的变化并不重要。 打开文件后,每次读取/写入操作都不会重新检查访问控制。

因此,我认为是这样的:顶级apache服务器以root身份运行(以便它可以打开端口80),它也打开日志文件。 当启动一个服务器subprocess时,它可能会做一个fork(),它将打开的文件描述符复制到新的subprocess中(也就是其他几个日志文件描述符),因此subprocess可以写入日志文件,尽pipe它不是根,然后将subprocessUID更改为任何请求。