доступ до www-даних до файлів журналу


0

У мене є сценарій perl, який прекрасно працює з sudo та аналізує деякі логістичні файли в / var / log / в Ubuntu 14. Я хочу показати вихід програми на веб-сторінці. Код моєї веб-сторінки дуже простий:

<html><body>
<h1>Under construction</h1>
<?php
exec ("perl /usr/local/bin/pflogsumm -d yesterday --smtpd_stats /var/log/mail/mail.log > parsed_mail_log.txt");
echo "<pre><p style='font-family:monospace;'>".nl2br(file_get_contents("parsed_mail_log.txt"))."</p></pre>";
?>
</body></html>

Без sudo, www-data (я вважаю, що це користувач під час запуску сценарію) не має дозволу на доступ /varvar/log/mail/mail.log і не рахує те, що я хочу. Він видає речі, але замість цифр, які я хотів перевірити, лише нулі.

Моє запитання: яким повинен бути "гарний" спосіб цього зробити?

Введення www-даних у кореневу групу, щоб вона могла читати журнал, здається, не вірно.

Можливо, я міг би викликати сценарій з sudo, всередині такого сценарію

sudo perl /usr/local/bin/pflogsumm -d yesterday...

І додайте попередній скрипт у візуально, щоб www-data могли запускати його з sudo, не вимагаючи автентифікації. Знову ж таки, здається, це не "хороший" чи "правильний" спосіб це зробити ...

Пропозиції?

Відповіді:


0

Чому б не запустити роботу cron (як root) кожного ранку, яке виконується

perl /usr/local/bin/pflogsumm -d yesterday --smtpd_stats /var/log/mail/mail.log > /path/to/parsed_mail_log.txt; chown www-data.www-data /path/to/parsed_mail_log.txt

(Припустимо, що Ubuntu - використовувати відповідного власника apache в chown), а потім просто виконати другу частину в браузері

Це було б набагато безпечніше (відсутність виконання скриптів у браузері - тим більше з командного рядка), швидше - воно може попередньо обробляти дані протягом часу у пік, а не в режимі реального часу та простіше.


Ідучи з цим, ідеально підходить для того, що я віддам, дякую.
rmarques

0

Добре почати - побачити, хто є власником і групою файлів журналів ( ls -l /var/log/mail/mail.log). Зробити їх доступними для публічного читання зазвичай не є хорошою ідеєю. Потім перевірте, в яких групах знаходиться www-data: groups www-dataповинен вам сказати.

Ви можете будь-який

  • відрегулюйте дозволи на доступ до файлу, щоб бути доступним вашому користувачеві (можливо, не надто зрозуміло)
  • налаштувати групи користувачів для доступу до цих файлів (наявна група файлу)

Використання паролів sudoу скриптах не є гарною ідеєю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.