如何将一个普通文件转换成软链接?

2016-11-26 21:17:47 +08:00
 FindHao

按理说,软链接也是一个文件,那么如何将一个普通文件转化成软链接呢? IMPORTANT !!!: 在 C 语言中,并且不能借助 rm ln 等命令。 c 中创建软链接的函数是: symlink() 在unistd.h头文件里,查看发现是这样的:

#define __NR_symlink 1036
__SYSCALL(__NR_symlink, sys_symlink)

如何查看这个 syscall 的源码呢? 比如,现在有a.doc这个文件,现在想建立 a-->a.doc ,但是当前已经存在了一个 a 文件,而且可以修改不能删除。上面的函数,如果检测到当前这个文件是已经存在的,将不会对这个文件进行修改。

5511 次点击
所在节点    Linux
5 条回复
FindHao
2016-11-26 21:19:42 +08:00
ryd994
2016-11-27 05:39:22 +08:00
其实手够快就没事啊
msg7086
2016-11-27 11:34:28 +08:00
创建链接是个系统调用,会跳进内核代码里,然后转发给文件系统驱动处理。
FindHao
2016-11-27 15:45:29 +08:00
r#2 @ryd994 我其实是想利用 dirtycow 这个漏洞,所以对原文件是没有权限删除的。

@msg7086 恩,有点吃力,准备换个思路想想。
zhouheyang0919
2016-11-28 00:04:54 +08:00
@FindHao 利用 DirtyCOW 漏洞只能修改可被 mmap 映射的文件内容。

软链接涉及文件属性,不能利用 DirtyCOW 创建或修改。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/323531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX