Apache 在 tmp 目录中创建的这些零长度文件是什么?

Apache 在 tmp 目录中创建的这些零长度文件是什么?

关于为什么 apache (httpd) 在 /tmp 中创建这些文件,您有什么想法吗?我使用的是 Redhat 5.5 和 Apache 2.2,mpm-prefork。

-rw-------. 1 apache   apache       0 Aug 14 12:46 filec1puD5
-rw-------. 1 apache   apache       0 Aug 14 12:46 fileKJqaih
-rw-------. 1 apache   apache       0 Aug 14 12:46 fileB7j9Ws
-rw-------. 1 apache   apache       0 Aug 14 12:46 file1o7MCE
-rw-------. 1 apache   apache       0 Aug 14 12:46 filefqAvjQ
-rw-------. 1 apache   apache       0 Aug 14 12:46 filexjpv01

有时,我会看到几十个这样的文件,我总是删除它们,但一开始却没有找到这些文件生成的原因或方式。错误日志看起来很干净,尽管它们被设置为错误。

更新:应用程序是Drupal 7,在PHP 5.3.2上运行。

答案1

/tmp 是 PHP 的默认会话数据文件夹。您可以通过编辑 php.ini 文件中的“session_save_path”来更改此文件夹。话虽如此,各种脚本可以在此处写入各种会话数据。

在某些情况下,此文件夹中的权限松懈会导致漏洞(UID / Symlink 攻击),因此如果您怀疑这些文件与您的 PHP 应用程序预期执行的操作不一致,我建议您重定向您的 PHP 会话文件并密切关注此区域。

答案2

通常,会话文件被写为 sess_xxx。这些文件可能是文件上传的临时残留物。当最终用户上传文件时,这些文件被写入 /tmp,一旦上传完成,它们就会被移至实际目的地。

您可以尝试对这些文件执行 less 吗?我不确定这些文件是否是二进制文件。也可以对这些文件中的任何一个运行 file 命令。

相关内容