У меня есть 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 (я полагаю, это пользователь при запуске скрипта) не имеет прав доступа к /var/log/mail/mail.log и не считает то, что я хочу. Он выводит вещи, но только нули вместо чисел, которые я хотел проверить.
Мой вопрос: каким должен быть "хороший" способ сделать это?
Помещать www-данные в корневую группу, чтобы они могли читать журнал, кажется неправильным.
Может быть, я мог бы вызвать скрипт с помощью sudo, внутри такого скрипта вызывать
sudo perl /usr/local/bin/pflogsumm -d yesterday...
И добавьте предыдущий скрипт в visudo, чтобы www-data мог запускать его с помощью sudo без запроса аутентификации. Опять же, кажется, что это не "хороший" или "правильный" способ сделать это ...
Предложения?