File linux内核:如何删除内核空间中的文件

File linux内核:如何删除内核空间中的文件,file,linux-kernel,linux-device-driver,File,Linux Kernel,Linux Device Driver,我知道这是强烈不推荐的。但是在内核空间中确实可以做到这一点 给定文件路径,我们可以删除内核空间中相应的文件吗?可能太晚了,我会尝试回答。正如Tsyvarev在评论中所说的,您可能正在寻找可以在这里找到的vfs_unlink函数。 在实现之前有一个描述,但是一个简单的例子可以是这个 /* fcheck的原型在linux/fdtable.h中,并返回给定 给定一个文件描述符 */ 我希望它能对某些人有用。使用call\u usermodehelper\u fns在内核空间执行rm,这是我能想到的方

我知道这是强烈不推荐的。但是在内核空间中确实可以做到这一点


给定文件路径,我们可以删除内核空间中相应的文件吗?

可能太晚了,我会尝试回答。正如Tsyvarev在评论中所说的,您可能正在寻找可以在这里找到的vfs_unlink函数。 在实现之前有一个描述,但是一个简单的例子可以是这个 /* fcheck的原型在linux/fdtable.h中,并返回给定 给定一个文件描述符 */


我希望它能对某些人有用。

使用
call\u usermodehelper\u fns
在内核空间执行
rm
,这是我能想到的方法。可以找到内核中的真实示例,通过该示例,内核调用
/sbin/modprobe
来加载模块。它是从调用的,使用简单,但该函数是静态的,因此您无法访问它。可能类似于以下技术:
struct file *filp= fcheck(fd);
struct inode *parent_inode = filp->f_path.dentry->d_parent->d_inode;
inode_lock(parent_inode);
vfs_unlink(parent_inode, filp->f_path.dentry, NULL);    
inode_unlock(parent_inode);