У мене є сценарій 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, не вимагаючи автентифікації. Знову ж таки, здається, це не "хороший" чи "правильний" спосіб це зробити ...
Пропозиції?