Я новичок в 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
, например, попробуйте следующее:
/home/foo/.aliases
и переместите трубопровод линия от /etc/aliases
к нему.postalias /home/foo/.aliases
./home/foo/.aliases
к alias_maps
из /etc/postfix/main.cf
.Обратите внимание, что владелец /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
.
Это помогло решить мою проблему с отказом в разрешении.