Linux内核:记录所有文件访问权限

时间:2014-02-03 19:00:34

标签: linux-kernel filesystems ext3

在一个非常有限的嵌入式Linux系统上,我希望记录所有打开/映射的文件/读取或写入的任何文件。换句话说,至少访问一次的所有文件。什么是最好的方法?由于“一些”约束,我宁愿不修改/破解文件系统,init脚本和用户空间级别......我认为我更愿意在内核中做一些事情。即使在正确的功能中插入printk也是可以接受的。如果这很重要,我正在使用ext3文件系统。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。修补内核文件系统驱动程序是一个有效的解决方案:

char *buf = (char*)__get_free_page(GFP_USER);
char *name = dentry_path_raw(file->f_dentry, buf, PAGE_SIZE);
printk("FILE OPEN read: %d write: %d %s\n", file->f_mode & FMODE_READ, file->f_mode & FMODE_WRITE, name);
free_page((unsigned long)buf);