在一个非常受限的嵌入式 Linux 系统上,我希望记录所有打开/映射/任何用于读取和或写入的文件。换句话说,所有至少被访问一次的文件。最好的方法是什么?由于“某些”限制,我不希望修改/破解文件系统、初始化脚本和用户空间级别……我认为我更愿意在内核中做事。即使在正确的函数中插入 printk 也是可以接受的。如果这很重要,我正在使用 ext3 文件系统。
问问题
797 次
1 回答
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);
于 2014-02-04T18:16:13.757 回答