有没有办法访问php的proc_open函数的命令历史记录?我正在尝试查看是否出于安全目的存储了命令。
最佳答案
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 用户。
关于php - php 的 proc_open 命令历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523587/