首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows/NTFS上,符号链接是否可以移动到另一台计算机?

在Windows/NTFS上,符号链接是否可以移动到另一台计算机?
EN

Stack Overflow用户
提问于 2016-09-28 07:27:28
回答 2查看 1.6K关注 0票数 2

为了进行涉及Windows服务器的安全测试,我想尝试上载指向Windows web应用程序的符号链接。然而,根据官方提供的信息,还不清楚Windows硬链接(我认为它与NTFS连接相同)是否作为一个文件存在,可以像在Linux上一样从硬盘上复制。它很模糊,但我感觉NTFS连接是某种不同于“常规”文件的其他类型的文件系统工件-我找不到文档来证实或否认这一点。也就是说,NTFS我想知道NTFS是否支持对符号链接记录的直接操作,以便我可以将符号链接移动到不同的计算机上。

我知道Windows softlink文件(.lnk)不受此限制,但它们不符合测试的目的。

我的目标是从虚拟机复制符号链接,然后将其上传到我正在测试的服务器。

这个是可能的吗?(我的印象是它不是。)据我所见,Windows上的每个程序都会将硬链接作为目标文件。有没有办法解决这个问题,也许可以使用一个特殊的编辑器来暂时损坏文件?如果符号链接作为文件系统上的普通文件存在,是否可以更改符号链接,以便将其移动到非Windows操作系统以供进一步使用?

对于服务器故障,请告诉我这是否是一个更好的问题。由于这不直接与安全性有关,而是服务于安全性练习的普通技术问题,因此我认为它不适合Stack Exchange安全性。

EN

回答 2

Stack Overflow用户

发布于 2016-10-19 05:53:34

很难给出一个非常直接的答案。我从事一个备份/修复/映像项目,我通过web服务将整个磁盘映像复制到服务器上-因此,可以做你想做的事情,但有很多需要考虑的问题。

硬链接

通常假设硬链接不能彼此区分,然而,链接文件和它们的“原始”文件之间有一个细微的区别。不同之处在于,对$MFT的查询(在winapi函数DeviceIOControl上使用USN相关参数)将只返回其中一个文件。这可能被认为是原始文件。然后,您可以调用winapi函数NtQueryInformationFile来枚举硬链接。

符号链接和连接是不同的动物..。

通过获取文件夹的属性,您可以知道该文件夹是连接点还是符号链接。如果是交叉点或符号链接,则在属性中有一个ReparsePoint标志。顺便说一句,连接和符号链接之间的区别在于,连接是重定向到同一卷上的另一个位置,而符号链接是重定向到非卷位置。无论哪种方式,重定向目标始终是另一个文件夹。

有趣的是,符号链接和连接看起来和行为都像文件夹,而它们实际上是包含重定向信息的文件。当您打开它们时,NTFS通常会查看重定向,并打开重定向目标。NTFS检查重定向目标的权限,因此作为攻击,这可能不是一个强大的策略。

打开交汇点/符号链接时,可以添加标志FILE_FLAG_OPEN_REPARSE_POINT。执行此操作时,NTFS不会执行重定向,但会打开内容,这实际上是重定向信息,并且假设您知道该信息的格式,则可以在服务器上重建连接/符号链接。请注意,重定向可能指向可能不存在的位置,或者可能仅暂时存在。这是意料之中的,因为某些网络资源可能并不总是可用的。

因此,简而言之,复制连接或symlink...while复制硬链接名义上意味着复制file...with,记住上述微妙之处。只要目标文件存在,您也可以手动创建硬链接。

对于硬链接,在NTFS安全图片中有一个有趣的问题。如果用户有权访问某个文件,而您在该用户无权访问的文件夹中创建了指向该文件的硬链接,则该用户仍然可以使用该硬链接的路径打开该文件。这是因为链接和原始文件都指向磁盘上的同一文件(和安全信息)。在任何链接上更改的权限都会影响所有链接。在不知道这一点的情况下,您可能会无意中破坏文件系统:-)

我知道这有点混乱,所以让我这样总结一下:

NTFS目录条目可以是文件夹或文件。硬链接是所有指向一个文件的目录条目。符号链接和连接实际上是文件,在大多数实际用途中(直到您知道如何获取如上所述的重定向信息为止)。

票数 3
EN

Stack Overflow用户

发布于 2016-09-28 08:20:17

在AFAIR中,NTFS (目录)连接实际上是符号链接。juctnion被实现为包含链接目标的称为repars point的特殊文件属性。

另一方面,硬链接被实现为对目标文件的基本MFT记录的直接引用,并且被存储为目录树内的常规条目。你实际上无法区分硬链接和“原始”文件(每个文件和目录实际上至少有一个硬链接,因为它包含在目录树中的某个地方)。

如果您希望复制符号链接本身,则需要知道它是一个符号链接,并提取有关其目标的信息。文件操作(删除和可能的重命名除外)被重定向到链接目标。因此,通常情况下,您可以通过在目标区域中创建符号链接的精确副本来复制符号链接。

实际问题是,您用来执行复制操作的界面是否允许您在目标系统上创建符号链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39735814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档