Назад | Перейти на главную страницу

postfix pipe to script: ошибка в разрешении execvp

Я новичок в postfix и пытаюсь передать сообщение на конкретный адрес электронной почты в сценарий bash. Я использую CentOS 6, если это имеет значение.

У моего сценария есть разрешение 777 (для тестирования), и когда я отправляю электронное письмо на тестовую учетную запись, я вижу, что постфикс пытается запустить сценарий. Это соответствующая строка из почтового журнала:

16 февраля 15:08:40 lserver2 postfix / local [19675]: F4045103000: to =, orig_to =, relay = local, delay = 1737, delays = 1737 / 0.01 / 0 / 0.01, dsn = 4.3.0, status = deferred (временный сбой. Вывод команды: local: fatal: execvp / data / scripts / testscript: Permission denied) *

Это похоже на проблемы с разрешениями. Когда я пытаюсь запустить свой скрипт как мы 'postfix' или 'никто', я получаю сообщение об ошибке: Этот аккаунт в настоящее время недоступен.

Я не уверен, что дальше ... Я прочитал несколько сообщений, которые не дают четкого представления о следующем шаге. (Я не хочу перенаправлять ВСЮ почту на скрипт, и один ответ выглядит ПУТЬ сложным для чего-то такого простого)

Если ваш скрипт принадлежит foo, например, попробуйте следующее:

  1. Создайте /home/foo/.aliases и переместите трубопровод линия от /etc/aliases к нему.
  2. Бегать postalias /home/foo/.aliases.
  3. Добавить /home/foo/.aliases к alias_maps из /etc/postfix/main.cf.
  4. Перезагрузите постфикс.

Обратите внимание, что владелец /home/foo/.aliases и /home/foo/.aliases.db должен быть foo.

Видеть http://www.postfix.org/ADDRESS_REWRITING_README.html#aliases. Он говорит:

По соображениям безопасности доставка команд и файлов в места назначения выполняется с правами владельца базы данных псевдонимов.

Ссылаться на этот ответ в SO есть 2 варианта, один - то, что поделился Цутому.

Другой будет устанавливать default_privs = <owner of the executing script> в main.cf.

Это помогло решить мою проблему с отказом в разрешении.