Besitzer und Gruppe von Nginx error_log und access_log können nicht geändert werden

Besitzer und Gruppe von Nginx error_log und access_log können nicht geändert werden

Besitzer und Gruppe von Nginx error_log und access_log können nicht geändert werden

Ich möchte den Besitzer und die Gruppe von Nginx's error_log und access_log direkt von Nginx aus ändern (nicht manuell mit chgrp und chown). Während Nginx weiterhin als Root ausgeführt wird, damit es auf Port 80, 443 usw. lauschen kann.....

Auf dem Server läuft Ubuntu 20.04, nginx/1.18.0 (Ubuntu)

Es scheint, als ob es unabhängig vom Standort ist:

/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
...

Sie sind alle im Besitz von root:rootEinstellungen, die in der beschrieben istBenutzerRichtlinie.

Ausgabe von 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

Wenige (abgeschnittene) Inhalte von /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
...

Obwohl ich angegeben hatte,BenutzerRichtlinie über /etc/nginx/nginx.conf:

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

Beispiel Serverblock:

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;
        }
}

Das erwartete Verhalten wäre, dass error_logund access_logmit www-data als Eigentümer und webservergroup als Gruppe erstellt wird, ungefähr so, wenn wir ausführen 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

Antwort1

Ich habe bisher keinen anderen Weg gefunden....

Ich lasse einfach Nginx die Datei erstellen, die im Besitz von sein wird root, und führe dann nach der Erstellung der Datei manuell die folgenden Aktionen für meinen Zielbenutzer chgrpaus .chown

Ich verwende webservergroupals Dateigruppe die Dateigruppe, auf der auch nginx läuft, sodass die Protokolldatei lesbar und beschreibbar ist.

verwandte Informationen