有没有办法访问php的proc_open函数的命令历史记录?我试图查看是否有任何存储的命令出于安全目的。proc_open for php的命令历史记录
2
A
回答
2
PHP's proc_open()
不保留任何形式的历史,也不保留exec()
。然而,当你在你的代码中使用它的时候,你可以把它包装起来;但是,您必须编写自己的历史记录处理。即使shell_exec()
似乎没有跟踪历史。但是,如果我们稍微忽略PHP,我们可以使用Linux的Audit Subsystem来跟踪系统上执行的所有命令。一个名为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用户。
不是我所听说过的。 PHP不会自动保留任何正常操作的日志,只是错误和警告。 – Barmar