У меня есть 2 пользователя на моем сервере. Один с доступом sudo, другой без. Как я могу дать доступ к журналам nginx
/var/log/nginx/error.log
Для другого пользователя без sudo
разрешения на использование cat /var/log/nginx/error.log
? Могу ли я создать что-то вроде символической ссылки для входа в каталог / home / username?
Поэтому мой вопрос - как пользователь может без sudo
разрешения проверить логи nginx?
sudo
доступ к чему? Это не ясно из вашего вопроса. Я знаю, что некоторые люди делают «доступ sudo» в значении «root-доступ», но это не является технически точным. Пожалуйста, уточните.sudo
для предоставления ему прав доступа, в зависимости от того, как вы хотите его настроить.setfacl -m 'user:someuser:r' /var/log/nginx/error.log
. Я не уверен, как это будет работать с logrotate.sudo
доступ к кошке / хвосту и т. д. В любом случае, журнал, вероятно, является лучшим вариантом.Ответы:
Например, вот так:
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, не жалуясь на неправильные разрешения для каталога.источник
/etc/logrotate.d/nginx
IScreate 0640 www-data adm
. Это в 1.6.2, но я не думаю, что линия изменилась в течение некоторого времени.