我正在尝试使用这个来执行 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 配置中识别的。
顺便说一句,您可以执行脚本以及二进制文件。