我是新来的后缀,并试图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
,请尝试以下操作:
/home/foo/.aliases
并将pipe道线从/etc/aliases
到它。 postalias /home/foo/.aliases
。 /home/foo/.aliases
添加到/etc/postfix/main.cf
的alias_maps
。 请注意,/ /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>
。
这有助于解决我的权限被拒绝的问题。