Как поделиться логами nginx без sudo другому пользователю?

10

У меня есть 2 пользователя на моем сервере. Один с доступом sudo, другой без. Как я могу дать доступ к журналам nginx

/var/log/nginx/error.log

Для другого пользователя без sudoразрешения на использование cat /var/log/nginx/error.log? Могу ли я создать что-то вроде символической ссылки для входа в каталог / home / username?

Поэтому мой вопрос - как пользователь может без sudoразрешения проверить логи nginx?

Александр Ким
источник
sudoдоступ к чему? Это не ясно из вашего вопроса. Я знаю, что некоторые люди делают «доступ sudo» в значении «root-доступ», но это не является технически точным. Пожалуйста, уточните.
Дауд
1
да, вы можете использовать его sudoдля предоставления ему прав доступа, в зависимости от того, как вы хотите его настроить.
gparent
Вы можете использовать ACL. например setfacl -m 'user:someuser:r' /var/log/nginx/error.log. Я не уверен, как это будет работать с logrotate. sudoдоступ к кошке / хвосту и т. д. В любом случае, журнал, вероятно, является лучшим вариантом.
Грег Боузер
@GregBowser ИМХО, использование ACL без понимания ACL - рецепт проблемы.
Пол

Ответы:

16

Например, вот так:

chmod 755 /var/log/nginx && chmod 644 /var/log/nginx/*.log && chmod 644 /var/log/nginx/*.gz

Таким образом, любой желающий сможет прочитать и прочитать содержимое каталога / var / log / nginx, а также файлы * .log.

Вам также следует проверить конфигурацию чередования журналов, чтобы разрешения не менялись снова. Для последних нескольких версий Nginx, вплоть до 1.6.2 включительно, файл /etc/logrotate.d/nginxиспользовал строку create 0640 www-data admдля установки разрешений при ротации журналов. Это должно быть изменено на что-то вроде create 0644 www-data adm. Следует отметить, что это решение позволяет всем пользователям на сервере читать все журналы Nginx.

Обновление: также необходимо обновитьsu www-data admконфигурацию logrotate, включив в нее утилиту logadm, не жалуясь на неправильные разрешения для каталога.

drookie
источник
3
По умолчанию конфигурации Nginx в /etc/logrotate.d/nginxIS create 0640 www-data adm. Это в 1.6.2, но я не думаю, что линия изменилась в течение некоторого времени.
Пол
1
Этот ответ написан настолько, что будет универсальным и общим, а не специфичным для ubuntu-nginx-1.6.2-20141110.
drookie
1
Конфигурация nginx в logrotate d сбрасывала его. Исправлено, изменив его.
sdkks
Нет ли другого способа решить эту проблему, например, когда другой пользователь пытается запустить nginx, чтобы он использовал другой путь журнала? Я попытался добавить его в мой новый файл nginx.conf, но при запуске nginx -c newnginx.conf для этого нового пользователя он все еще пытается получить доступ к / var / log / nginx ...
Пол К. Соренсен,