加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何找出创建临时文件的内容

发布时间:2020-12-14 02:52:23 所属栏目:Linux 来源:网络整理
导读:我注意到/ tmp中有很多空文件,名称类似于“/tmp/tmp.tMIHx17730”.我运行审计规则,我发现mktemp创建它并没有太大帮助. 如何找出mktemp创建这些文件的脚本?我可以使用auditd捕获父进程id /命令行吗? 更新: 我相信我有父进程ID(ppid = 17729),但脚本很快退
我注意到/ tmp中有很多空文件,名称类似于“/tmp/tmp.tMIHx17730”.我运行审计规则,我发现mktemp创建它并没有太大帮助.

如何找出mktemp创建这些文件的脚本?我可以使用auditd捕获父进程id /命令行吗?

更新:
我相信我有父进程ID(ppid = 17729),但脚本很快退出,我找不到脚本.我可以设置auditd来获取父进程命令行吗?

更新2:
以下是我如何设置auditd来显示tmp的内容:

auditctl -w /tmp -k tmpfiles

然后:

ausearch  -k tmpfiles|grep "tmp."

然后我选择一个文件然后我做了

ausearch  -k tmpfiles -f /tmp/tmp.tMIHx17730

这显示了创建文件和父进程pid的进程.我需要设置一些启动监听器的进程来捕获具有该pid的最新进程

解决方法

好.我发现它是这样的:

setup auditd:

auditctl -w /tmp -k tmpfiles
auditctl -a task,always

然后搜索

ausearch  -k tmpfiles|grep "/tmp/tmp."

我得到这样的东西:

然后我得到ppid = 5807并搜索或进程:

ausearch -p 5807

我有类似的东西

time->Thu Nov 12 12:14:34 2015
type=SYSCALL msg=audit(1447323274.234:2547064): arch=c000003e syscall=231 a0=1 a1=3c a2=1 a3=0 items=0 ppid=5772 pid=5807 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=84330 comm="bitdefender-wra" exe="/bin/bash" key=(null)

其中exe =“/ bin / bash”是可执行文件,comm =“bitdefender-wra”是(截断的)命令行.

所以我只是运行:

# locate bitdefender-wra
/usr/lib/MailScanner/bitdefender-wrapper

它是:

LogFile=$(mktemp) || { echo "$0: Cannot create temporary file" >&2; exit 1; }

我改成这个:

LogFile=$(mktemp /tmp/bitdefender.XXXXXXXXXXXX) || { echo "$0: Cannot create temporary file" >&2; exit 1; }

为了验证这是不删除它的临时文件的脚本.下面有rm -f $LogFile,但之前也有退出.

请记住,可能有更好的方法.因此,我将等待某人使用创建tmp文件的进程的命令行找到最佳方法来查找父级.我的方式没有太多的过滤器,并创建了太大的日志.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读