Я протестировал 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 не является псевдонимом или функцией оболочки:
$ type sendmail
sendmail is /usr/sbin/sendmail
И обновить Postfix.
(да, он старый, но все же ...)
Никогда не жалуйтесь на ошибки в старых версиях программного обеспечения, если вы не подтвердили, что они присутствуют и в абсолютно последней версии.