Какое разрешение требуется для php?
Я хотел бы проверить постфикс активной очереди. Я php скрипт использую
$active = shell_exec('/bin/ls -1 /var/spool/postfix/active | /usr/bin/wc -l');
Но в логе вижу
/bin/ls: cannot open directory /var/spool/postfix/active: Permission denied
В какую группу мне нужно добавить php или postfix, чтобы избежать этой ошибки?
1 ответ
Решение
Как правило, почтовые очереди postfix находятся в режиме 0700, поэтому только postfix может напрямую читать / записывать каталоги очереди. Похоже, что вы пытаетесь получить количество элементов в активной очереди. Вы можете сделать это, используя mailq
(или же postqueue -p
), которую вы должны запускать как apache. В нем перечислены все элементы очереди для всех очередей, но, как говорится в справочной странице, элементы в активной очереди имеют *
после идентификатора очереди. Так что вы можете попробовать заменить ваш ls -l
команда с:
$active = shell_exec('/usr/sbin/postqueue -p | grep '^[A-F0-9]*\*' | wc -l');