tha*_*htv 5 linux filesystems hook linux-kernel
我想在将数据写入硬盘之前做一些事情。我不知道任何解决方案。为避免编辑内核源代码,是否有任何位置可以将钩子函数用作可加载模块?
更新:谢谢大家,LSM 适用于 API 钩子。但我想找到其他提供机制挂钩读/写数据块的解决方案。它可以避免在更新文件后重新加密所有文件。
我认为我可以在文件系统(ext2、ext3...)和缓冲区缓存之间修改一些东西。
mat*_*bgg -2
我认为这是不可能的。当用户空间调用文件 I/O 时,将从 VFS 调用文件系统实现或通用实现。您需要的是更改此函数指针以指向您的模块,该模块会加密您的数据,然后调用文件系统函数。
我在大学里做过类似的事情,但它是一个旧内核,你必须设置一个特定的配置标志。如果我记得这个标志已经消失了,因为您不希望内核模块与超出其范围的函数指针混淆。
无论如何,您可以在这里找到该模块: https: //motzblog.wordpress.com/2007/10/27/linux-monitoring-module/
但请注意,这是一个大学项目,因此代码质量与 Linux 内核代码不同。