Какое разрешение требуется для 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');
Другие вопросы по тегам