码迷,mamicode.com
首页 > 其他好文 > 详细

[学习记录]fanotify

时间:2020-06-09 16:28:30      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:open   ada   变量   int   监控系统   alt   tps   使用   权限   

fanotify是一个挺好用的文件监控系统,它会检测当前文件系统下的事件,并允许做出回应。

官方文档https://www.man7.org/linux/man-pages/man7/fanotify.7.html

 

Fanotify主要有两个函数,fanotify_init()和fanotify_mark(),

fanotify_init()会初始化一个新的fanotify组并返回一个与组关联的事件队列描述符fd,fanotify_init(unsigned int flags, unsigned int event_f_flags)函数接收两个参数,第一个参数为flags,规定了哪些类型的事件会被记录,这里使用FAN_CLASS_CONTENT,该参数也是官方手册上推荐的应用于恶意软件扫描的参数,第二个参数为event_f_flags,用来修饰描述符fd。

Fanotify_mark(int fanotify_fd, unsigned int flags,uint64_t mask, int dirfd, const char *pathname)函数会进一步对fanotify组进行修饰,第一个参数为init创建的fd,第二个参数flags描述了执行修改行为的方式以及被监视的文件系统类型,第三个参数mask为监听的事件类型,这里我们监听FAN_OPEN_PERM类型,该类型事件在目标进程获取权限时发生,并且允许我们对其做出回应。最后两个参数为相关的文件路径,当参数五有效时,参数四一般不起作用。后续处理中,我们不断读取fd中的内容,放入fanotify_event_metadata类型的变量里,该类型结构如下

技术图片

 

 

其中pid就是执行此次操作的进程pid。通过pid我们就可以获取目标进程的相关信息。

[学习记录]fanotify

标签:open   ada   变量   int   监控系统   alt   tps   使用   权限   

原文地址:https://www.cnblogs.com/trickofjoker/p/13073022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!