无法更改 Nginx error_log 和 access_log 的所有者和组

无法更改 Nginx error_log 和 access_log 的所有者和组

无法更改 Nginx error_log 和 access_log 的所有者和组

我想直接从 nginx 更改 nginx 的 error_log 和 access_log 的所有者和组(不手动使用 chgrp 和 chown)。同时保持 nginx 以 root 身份运行,以便它可以侦听端口 80、443 等......

服务器运行的是 Ubuntu 20.04,nginx/1.18.0(Ubuntu)

似乎无论位置如何都是:

/var/www/error_log
/var/www/access_log
/var/www/sub.domain.com/error_log
/var/www/sub.domain.com/access_log
/var/www/sub2.domain.com/error_log
/var/www/sub2.domain.com/access_log
...

它们都是由root:root忽略在中描述的设置所拥有的用户指示。

输出ls -l

-rw-r--r-- 1 root root  0 Sep 14 09:07 access_log
-rw-r--r-- 1 root root  0 Sep 14 08:43 error_log

部分内容(截断)/etc/group

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog
tty:x:5:syslog
disk:x:6:
lp:x:7:
www-data:x:33:
backup:x:34:
operator:x:37:
...
webservergroup:x:1001:tirtagt,www-data,anotheruserhere
...

尽管我已经指定了用户指令/etc/nginx/nginx.conf

user www-data webservergroup;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

示例服务器块:

server {
        listen 80;

        root /var/www/sub.example.com;

        # Set the domain name or server name here
        server_name sub.example.com;

        # error_log
        error_log /var/www/sub.example.com/error_log notice;
        access_log /var/www/sub.example.com/access_log;
    
        # Declare a priority if there is no path or files specified.
        index index.html index.htm index.php;

        # Catch All Location
        location / {
                # Pass it to the FastCGI PHP bridge
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

                # Run the DynamicPHPRouter for anything and let it do it's job.
                fastcgi_param SCRIPT_FILENAME $document_root/srouter.php;
        }
}

预期的行为是,和error_logaccess_log创建为 www-data 作为所有者,webservergroup 作为组,当我们运行时如下所示ls -l

-rw-rw-r-- 1 www-data webservergroup  0 Sep 14 09:07 access_log
-rw-rw-r-- 1 www-data webservergroup  0 Sep 14 08:43 error_log

答案1

暂时我还没有找到其他办法....

我只是让 Nginx 创建将由 拥有的文件root,然后在创建文件后手动执行chgrp并发送给我的目标用户。chown

对我来说,我使用webservergroup文件组,nginx 也在该文件组上运行,因此日志文件是可读写的。

相关内容