在/var/log/nginx/我有访问和错误日志。有些是.log错误,有些是.gz
我想我搞砸了权限。一些文件是由root/root创建的,其他文件是使用nginx.conf中配置的用户创建的,等等。
- 应该由哪个用户/组创建这些文件?为什么?可以是root吗?我可以看到现在 root 正在创建新的 .log 文件,但不确定它是否正确。
- 另外我想问一下在哪里更改创建这些文件的用户是谁?
在/var/log/nginx/我有访问和错误日志。有些是.log错误,有些是.gz
我想我搞砸了权限。一些文件是由root/root创建的,其他文件是使用nginx.conf中配置的用户创建的,等等。
在位于 /var/log/nginx/ 中的文件上,规则随着时间的推移发生了变化(至少根据我的经验)。然而,如果没有更多数据,我不愿意给出明确的建议。但我会试试的。
NGINX 本身以“root”身份运行 NGINX 进程以 /etc/nginx/nginx.conf 中指定的用户身份运行,这通常是“www-data”(等等,继续阅读)
你可以使用这个命令来确定你的 NGINX 是如何运行的:
您的输出应如下所示:
你没有说的是你问这个问题的原因。假设,假设您正在使用 ELK 堆栈运行 OSSEC。如果您使用的是 Ubuntu 16.04,那么您的第二个问题是哪些进程可以读取和写入文件。如果您使用的是 logrotate,那么您需要编辑 logrotate 文件以及更改日志文件夹的权限。
第 1 步 - 在 logrotate 中更新 nginx 文件:
在该文件中,在 nginx 和 ubuntu 的最新版本中,我发现按如下方式更改所有权行将允许它工作。这是在 /etc/logrotate/nginx 中的文件中,它在文件旋转时设置文件权限。
或者:
尽管在实践中 nginx:nginx 工作得更加一致,并且在将 nginx Web 进程权限授予日志文件与将其设置为 root 之间取得了平衡。
要继续,对于您的旧日志文件(例如,由 logstash 读取),您可能需要重置权限(假设我意识到我们大多数人实际上并没有使用的默认文件位置。)
或者(再次)或者
希望这会有所帮助。我发现有关 nginx 正确权限的数据在日志记录方面充其量是令人困惑的,我将其归因于他们令人惊叹的软件的发展。我欢迎其他了解更多的人对我的回复提供反馈。
据我所知,提供的信息:
您的服务器的日志文件由 logrotate 守护进程管理(将其视为日志的存档引擎)
这解释了为什么您会看到一些 .tar.gz 格式的文件
我敢打赌,这些文件是作为所有者 root 的文件(在此处查看更多信息http://linuxcommand.org/man_pages/logrotate8.html)。这取决于为日志轮换过程指定的用户。
其他文件归 nginx 所有,对它们有 rw 权限
如果是这样,那么一切都很好