特定脚本正在以 apache 用户身份运行并执行 sendmail。需要找到脚本路径

特定脚本正在以 apache 用户身份运行并执行 sendmail。需要找到脚本路径

服务器中似乎有一些脚本以 apache 用户身份执行并发送邮件。查看 ps aux 输出,我们发现 sendmail 可执行文件以 apache 用户身份执行,但我们无法找到执行此操作的具体脚本。

处理这种情况的理想方法是什么?

答案1

我认为您正在寻找 php.ini (仅限 php 5.3+) 中的 mail.log 设置,它将记录所有 mail() 函数调用,包括发起调用的脚本:

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog;
;mail.log = syslog

答案2

如果您在服务器上运行 PHP,则可以使用以下语法来追踪原始电子邮件脚本。将以下行放入 php.ini 中

mail.add_x_header = On
mail.log = /var/log/phpmail.log

上述指令将添加带有原始 php 脚本的标头,如下所示

X-PHP-Originating-Script: 456:mail.php

以及在文件 /var/log/phpmail.log 中写入日志

mail() on [/var/www/html/project/tmp/mail.php:456]: To: [email protected] -- Headers: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes Content-Transfer-Encoding: 8Bit X-Mailer:  Sender: [email protected] From: [email protected]

相关内容