免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: feimenguser

内核中如何删除文件? [复制链接]

论坛徽章:
0
发表于 2011-02-17 12:49 |显示全部楼层
环境:
2.6.32.12-0.7-default(suse11)

代码:
int tmp_unlink(OSP_CHAR *pcName)
{
    int ret = 0;
    struct nameidata nd;
    struct dentry *dentry;

    memset(&nd, 0, sizeof(nd));

    path_lookup(pcName,LOOKUP_PARENT,&nd);
    if (ret != 0)
    {
        return -ENOENT;
    }
   
    dentry = lookup_one_len(nd.last.name, nd.path.dentry, strlen(nd.last.name));
    if (IS_ERR(dentry))
    {
        path_put(&nd.path);
        return -EACCES;
    }
   
    vfs_unlink(nd.path.dentry->d_inode, dentry);

    path_put(&nd.path);

    return 0;
   
}

调用示例:
tmp_unlink("/tmp/test");

论坛徽章:
0
发表于 2011-02-17 15:47 |显示全部楼层
export  sys_unlink函数,       
    mm_segment_t fs;
      fs = get_fs();
     set_fs(KERNEL_DS);
     sys_unlink("/test.bin");
      set_fs(fs);

论坛徽章:
0
发表于 2015-04-27 14:27 |显示全部楼层
您好 ,  有个问题想请教下, 由于没有发消息的权限,所以只能在帖子上评论了, 我在内核里hook删除文件的操作, sys_unlink但不知为什么, 删除文件没有触发这个系统调用, 又hook  sys_unlinkat 但是这个不能得到全路径, 有个dfd竟然是-100,  我就蒙了,  求大神指点迷津!回复 3# Godbach


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP