無法變更 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_log作為access_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 也運行在該文件組上,因此日誌文件是可讀寫的。

相關內容