Nginx error_log 및 access_log의 소유자 및 그룹을 변경할 수 없습니다.

Nginx error_log 및 access_log의 소유자 및 그룹을 변경할 수 없습니다.

Nginx error_log 및 access_log의 소유자 및 그룹을 변경할 수 없습니다.

nginx의 error_log 및 access_log 소유자와 그룹을 nginx에서 바로 변경하고 싶습니다(chgrp 및 chown을 수동으로 사용하지 않음). 포트 80, 443 등에서 수신 대기할 수 있도록 nginx를 루트로 실행하는 동안.....

서버가 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

저는 webservergroupnginx도 실행 중인 파일 그룹을 파일 그룹으로 사용하므로 로그 파일을 읽고 쓸 수 있습니다.

관련 정보