sendmail 别名中的 Shell 脚本

sendmail 别名中的 Shell 脚本

我正在尝试使用这个来执行 sendmail 别名脚本

# aliases for my system
addressx:        |sh /usr/share/scripts/myscript.sh  WON'T WORK
addressx:        '/usr/share/scripts/myscript.sh'  WON'T WORK
addressx:        '|/usr/share/scripts/myscripts.sh'  WON'T WORK

我可以执行脚本吗?还是它必须是二进制文件?

答案1

Sendmail 使用受限 shell 来执行。您必须将 Sendmail 可以执行的程序放在 /etc/smrsh 目录中。您可以在此处找到有关此内容的更多信息这里

当然,您还应该确保在该脚本上适当地设置了执行位,并且它是全世界可读的(但不是全世界可写的)。

答案2

等式P=显示使用哪个 shell 来执行管道传输。这通常是/usr/bin/smrsh/bin/sh。您应该使用满足您需求的任何一个。/bin/sh不那么挑剔,但不太安全。 /usr/bin/smrsh更安全,但有规则。

您不需要执行类似的事情|sh myscript.sh,shell 是在 sendmail 配置中识别的。

顺便说一句,您可以执行脚本以及二进制文件。

相关内容