用于php的proc_open命令历史

时间:2015-07-20 18:18:58

标签: php apache

有没有办法访问php的proc_open函数的命令历史记录?我试图查看是否存在任何用于安全目的的命令存储。

1 个答案:

答案 0 :(得分:2)

PHP的proc_open()不会保留任何历史记录,exec()也不会。但是,您可以在代码中使用它时将其包装起来;但是,你必须编写自己的历史记录处理。即使shell_exec()似乎也无法跟踪历史记录。

但是,如果我们稍微忽略PHP,我们可以使用Linux的审计子系统来跟踪系统上执行的所有命令。名为auditd的守护程序会执行此日志记录,您可以通过auditctl对其进行配置。 Here是有关审计子系统,设置和使用它的更多信息。

要记录所有已执行的命令及其参数,请使用:

auditctl -a exit,always -S execve

日志应显示在/var/log/audit.log或您的发行版放置审核日志的任何位置。

auditctl有很多选项可以指定记录哪些程序以及记录哪些用户的活动。

您可以使用-F euid=<UID OF PHP USER>-F uid=<UID OF PHP USER>将此限制为PHP / Apache用户。