这里发生了什么??
sendmail cat/etc/passwd
sendmail cat\etc\passwd
sendmail xxxcat/etc/passwd
这到底为什么会执行 cat 命令?这至少在 Fedora Core 4 O/S(是的,它很旧,但仍然......)上使用 Postfix 时有效。
这是一个已知(并且已修复)的错误吗?
答案1
我测试了 Postfix 2.7.1-1 (Debian),但这些都不能像您描述的那样工作。cat
没有执行。(说实话,我无法想象有什么可能的原因会sendmail
仅仅因为它恰好说的是“ ”就执行其参数的任意部分cat
。)
当然,如果您执行strace
该sendmail
过程,您可能会看到文件/etc/passwd
正在被open()
编辑,但这完全正常:sendmail
正在查询您帐户的真实名称,以便From:
正确填充标题。
但strace
没有显示任何调用exec*()
,除了启动自身的那个sendmail
。
如果你仍然认为这是一个错误,
尝试一个完全不相关的文件:
sendmail cat/etc/fstab
这
fstab
是通常不会被读到的东西。确保
sendmail
不是 shell 别名或函数:$ type sendmail sendmail is /usr/sbin/sendmail
并更新 Postfix。
(是的,它很旧了,但是仍然...)
永远不要抱怨旧软件版本中的错误,除非您已经确认最新版本中也存在错误。