Назад | Перейти на главную страницу

Какими должны быть права доступа к журналам для NGINX в CentOS?

на / вар / журнал / nginx / У меня есть доступ и журналы ошибок. Некоторые .журнал ошибки и другие .gz

Думаю, я напортачил с разрешениями. Некоторые файлы созданы корень / корень, другие файлы создаются пользователем, настроенным в nginx.conf, и т.д.

Для файлов, расположенных в / var / log / nginx /, правила менялись с течением времени (по крайней мере, по моему опыту). Тем не менее, без дополнительных данных мне неудобно давать окончательное предложение. Но я попытаюсь.

Сам NGINX запускается как «корневой». Процессы NGINX запускаются от имени пользователя, указанного в /etc/nginx/nginx.conf, который обычно является «www-data» (подождите, продолжайте читать)

Вы можете использовать эту команду, чтобы определить, как работает ваш NGINX:

ps -eo "%U %G %a" | grep nginx

Ваш результат должен выглядеть примерно так:

root     root     nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

www-data www-data nginx: worker process

Вы не сказали, ПОЧЕМУ вы задаете этот вопрос. Гипотетически, допустим, вы запускаете OSSEC со стеком ELK. А если вы используете Ubuntu 16.04, то вторая проблема заключается в том, какие процессы могут ЧИТАТЬ файлы, а также писать. Если вы используете logrotate, вам нужно будет отредактировать файлы logrotate, а также изменить права доступа к папке журнала.

Шаг 1 - в logrotate обновите файл nginx:

nano /etc/logrotate.d/nginx

В этом файле в последних версиях nginx и ubuntu я обнаружил, что изменение строки владения, как показано ниже, позволит ему работать. Это находится в файле в / etc / logrotate / nginx, который устанавливает права доступа к файлу при ротации файла.

create 0640 nginx nginx

или альтернативно:

create 0640 www-data www-data

Хотя на практике nginx: nginx работает более последовательно и является балансом между предоставлением разрешений веб-процессу nginx для файлов журнала и установкой для них root.

Чтобы продолжить, для ваших устаревших файлов журнала (например, для чтения с помощью logstash) вы можете сбросить разрешения (при условии, что расположение файлов по умолчанию, которое, как я понимаю, большинство из нас фактически не использует).

chmod nginx:nginx /var/log/nginx/*

или (снова) альтернативно

chown www-data:www-data /var/log/nginx/*

Надеюсь, это поможет. Я обнаружил, что данные о надлежащих разрешениях для nginx в лучшем случае сбивают с толку, когда дело доходит до ведения журнала, что я приписываю эволюции их УДИВИТЕЛЬНОГО программного обеспечения. И я приветствую тех, кто знает больше, чтобы оставить отзыв о моем ответе.

насколько я понимаю с предоставленной информацией:

  1. файлы журналов вашего сервера управляются демоном logrotate (рассматривайте его как механизм архивирования журналов)

  2. это объясняет, почему вы видите некоторые файлы в формате .tar.gz

  3. Бьюсь об заклад, что эти файлы принадлежат пользователю root (дополнительную информацию можно найти здесь. http://linuxcommand.org/man_pages/logrotate8.html). Это зависит от пользователя, указанного для процесса ротации журнала.

  4. остальные файлы принадлежат nginx, у которого были права rw на них

Если это так, то все в порядке