我们发现在我们的 Linux 服务器(Google 计算引擎中的 Debian wheezy 托管)的根文件夹中短时间内创建了许多具有随机 6 个字符名称的奇怪文件。
所有文件均具有root/root和0600权限。
-rw------- 1 root root 0 Sep 20 06:29 0QOenG
-rw------- 1 root root 0 Sep 20 06:33 1z5U2y
-rw------- 1 root root 0 Sep 20 06:43 1zTOzN
-rw------- 1 root root 0 Sep 20 06:34 23XZoM
-rw------- 1 root root 0 Sep 20 06:32 27zsbT
-rw------- 1 root root 0 Sep 20 06:27 2Wm0aJ
-rw------- 1 root root 0 Sep 20 06:41 398ekH
-rw------- 1 root root 0 Sep 20 06:38 3dI8Es
-rw------- 1 root root 0 Sep 20 06:33 3kskdR
-rw------- 1 root root 0 Sep 20 06:37 3lWyRD
-rw------- 1 root root 0 Sep 20 06:33 3PX7Fx
-rw------- 1 root root 0 Sep 20 06:32 3RDbjb
-rw------- 1 root root 0 Sep 20 06:33 43yJsH
-rw------- 1 root root 0 Sep 20 06:27 4_Efvb
-rw------- 1 root root 0 Sep 20 06:30 4hAx0N
-rw------- 1 root root 0 Sep 20 06:43 4Oljiz
-rw------- 1 root root 0 Sep 20 06:33 4OR5Pi
-rw------- 1 root root 0 Sep 20 06:42 4TmJLl
-rw------- 1 root root 0 Sep 20 06:29 4YFfes
-rw------- 1 root root 0 Sep 20 06:31 5451XV
-rw------- 1 root root 0 Sep 20 06:30 569_O4
-rw------- 1 root root 0 Sep 20 06:37 57kOaP
-rw------- 1 root root 0 Sep 20 06:39 5Alljw
-rw------- 1 root root 0 Sep 20 06:42 5_ucGQ
-rw------- 1 root root 0 Sep 20 06:27 5x4ctz
-rw------- 1 root root 0 Sep 20 06:35 60nv0J
-rw------- 1 root root 0 Sep 20 06:32 68ir6n
-rw------- 1 root root 0 Sep 20 06:37 6BnyKZ
-rw------- 1 root root 0 Sep 20 06:41 6JOkrT
-rw------- 1 root root 0 Sep 20 06:38 6wFyZl
-rw------- 1 root root 0 Sep 20 06:41 6WW7nj
-rw------- 1 root root 0 Sep 20 06:33 6YYyta
-rw------- 1 root root 0 Sep 20 06:35 7N9JJU
-rw------- 1 root root 0 Sep 20 06:42 7uVRTI
-rw------- 1 root root 0 Sep 20 06:29 8r071y
-rw------- 1 root root 0 Sep 20 06:34 8yT2UG
-rw------- 1 root root 0 Sep 20 06:40 9e30rd
-rw------- 1 root root 0 Sep 20 06:35 9JvGnk
-rw------- 1 root root 0 Sep 20 06:32 9sJWOd
-rw------- 1 root root 0 Sep 20 06:30 9ud9NZ
-rw------- 1 root root 0 Sep 20 06:30 9yslgU
顺便说一句,在文件创建时,由于日志文件很大,启动盘几乎满了。删除大型日志文件后,不再创建奇怪的文件。
附言。服务器上运行以下服务:
mongodb、postgresql、redis、activemq、fluidd
有人可以解释一下是谁创建了这些文件吗?
答案1
此文件名模式是标准的mktemp
(或者mkstemp
)函数,当传递最简单的模板时("XXXXXX"
在根目录中运行时)。所以这几乎可以是任何程序。
如果程序停止执行此操作,则不可能在事后完全确定哪个程序是罪魁祸首。然而,该程序很有可能仍在执行此操作,如果是,您可以立即捕获它。
该程序显然有错误,因为它不应该创建大量临时文件。如果文件在磁盘已满时出现,则很有可能该程序实际上经常创建此类临时文件;但在正常操作下,它会用内容填充它们,处理它们,最后删除它们。当磁盘已满时,填充步骤会失败,但文件不会被删除,因为程序无法正确从错误中恢复。
您可以使用Linux 的审计工具观察目录中的活动。确保已auditd
安装并设置手表在根目录本身(不是递归手表!):
auditctl -a exit,always -F path=/
/var/log/audit/audit.log
当进程写入根目录时,您将收到日志消息。在正常操作下,这种情况几乎不会发生,因此有问题的过程会很突出。