linux 上怎么查找篡改某一指定文件的进程

linux 上如何查找篡改某一指定文件的进程?
现在,我的机器上的hosts文件一直被莫名的进程所修改,手动改回来之后还是会被恶意进程改动。

我现在有以下的一些浅显的策略:
1.如果该进程是一直存活的,并且一直将该文件作为 文件描述符所持有,则可以通过遍历/proc文件系统,找出每一个进程占用的文件描述符,如果有文件描述符指向 该文件,则可以认为该进程有嫌疑。

2.假设该进程一直存活,但是并未一直将该文件描述符持有,而是选择定期打开该文件描述符,随后写入内容后,立即关闭,则以上办法不能很好的察觉。

3.假设该进程并未一直存活,而是通过想cron之类的工具,定期唤起操作,也不能通过1中的方法察觉。

以上是我自己的认识,还望大神们指点一下,是否有误?

还有,在Linux中是否有一套机制,可以监视指定文件,当该文件被修改时,可以触发某些操作,立即捕获是哪个进程在对其进行操作?

Anything helps, thanks
------解决方案--------------------
改内核  或者改glibc  把住文件操作的入口。  不过比较麻烦。
linux有一些文件监测软件比如 inotify  ,可以监测文件打开,读写事件等,或许可结合/proc查