后缀pipe道脚本:execvp权限被拒绝的错误

我是新来的后缀,并试图pipe道消息到特定的电子邮件地址到bash脚本。 如果有问题,我正在运行CentOS 6。

我的脚本有777权限(用于testing),当我通过电子邮件发送到testing帐户时,我发现后缀尝试运行脚本。 这是maillog的相关行:

2月16日15:08:40 lserver2 postfix / local [19675]:F4045103000:to =,orig_to =,relay = local,delay = 1737,delay = 1737 / 0.01 / 0 / 0.01,dsn = 4.3.0,status = deferred (临时失败,命令输出:local:fatal:execvp / data / scripts / testscript:Permission denied)*

这看起来像一个权限问题。 当我尝试像我们'后缀'或'没有'运行我的脚本时,我得到错误: 此帐户目前不可用。

我不知道该从哪里出发….我已经阅读了几篇文章,没有给出明确的下一步。 (我不想把所有的邮件都redirect到一个脚本,一个答案看起来很复杂,因为这样简单)

例如,如果您的脚本属于foo ,请尝试以下操作:

  1. 创build/home/foo/.aliases并将pipe道线从/etc/aliases到它。
  2. 运行postalias /home/foo/.aliases
  3. /home/foo/.aliases添加到/etc/postfix/main.cfalias_maps
  4. 重新启动后缀。

请注意,/ /home/foo/.aliases / foo /home/foo/.aliases/home/foo/.aliases.db的所有者必须foo

请参阅http://www.postfix.org/ADDRESS_REWRITING_README.html#aliases 。 它说:

出于安全原因,使用别名数据库所有者的权限执行到命令和文件目标的交付。

在SO中参考这个答案 ,有两个选项,一个是Tsutomu分享的。

另一个是在main.cf设置default_privs = <owner of the executing script>

这有助于解决我的权限被拒绝的问题。