Рейтинг:0

Невозможно изменить владельца и группу Nginx error_log и access_log

флаг br

Невозможно изменить владельца и группу Nginx error_log и access_log

Я хочу изменить владельца и группу nginx error_log и access_log прямо из nginx (а не вручную, используя 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
...

Все они принадлежат корень: корень игнорируя настройки, описанные в пользователь директива.

Вывод лс -л :

-rw-r--r-- 1 root root 0 14 сент. 09:07 access_log
-rw-r--r-- 1 root root 0 14 сент. 08:43 error_log

Небольшое (усеченное) содержимое /и т.д./группа :

корень:х:0:
демон:х:1:
корзина: х: 2:
система: х: 3:
Адм: х: 4: системный журнал
tty: x: 5: системный журнал
диск: х: 6:
ЛП:х:7:
www-данные:x:33:
резервная копия:x:34:
оператор:х:37:
...
webservergroup:x:1001:tirtagt,www-data,другойпользовательздесь
...

Несмотря на то, что я указал пользователь директива по /etc/nginx/nginx.conf :

пользователь www-data webservergroup;
рабочие_процессы авто;
pid /run/nginx.pid;
включить /etc/nginx/modules-enabled/*.conf;

Пример блока сервера:

сервер {
        слушать 80;

        корень /var/www/sub.example.com;

        # Установите здесь доменное имя или имя сервера
        имя_сервера sub.example.com;

        # журнал ошибок
        error_log /var/www/sub.example.com/error_log уведомление;
        журнал_доступа /var/www/sub.example.com/журнал_доступа;
    
        # Объявить приоритет, если путь или файлы не указаны.
        индекс index.html index.htm index.php;

        # Поймать все местоположение
        место расположения / {
                # Передаем его PHP-мосту FastCGI
                включить fastcgi_params;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

                # Запустите DynamicPHPRouter для чего угодно и пусть он делает свою работу.
                fastcgi_param SCRIPT_FILENAME $document_root/srouter.php;
        }
}

Ожидаемое поведение будет заключаться в том, что журнал ошибок и access_log создается как www-data как владелец, а webservergroup как группа, что-то вроде этого, когда мы запускаем лс -л :

-rw-rw-r-- 1 www-data webservergroup 0 14 сент. 09:07 access_log
-rw-rw-r-- 1 www-data webservergroup 0 14 сент. 08:43 error_log
Рейтинг:0
флаг br

Другого способа пока не нашел....

Я просто позволяю Nginx создать файл, который будет принадлежать корень, а затем вручную чгрп и чаун моему целевому пользователю после создания файла.

Для себя я использую группа веб-серверов как файловая группа, в которой также работает nginx, поэтому файл журнала доступен для чтения и записи.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.