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);