我有一个安装了 Windows XP SP3 的硬盘。当通过笔记本电脑内的标准 SATA 连接器连接该硬盘时,一切正常。
但是,当我从笔记本电脑中移除驱动器并将驱动器连接到外部 USB 适配器时,几乎所有文件/文件夹都会丢失“所有者”字段内容。我想知道为什么会这样。我试过两个 USB 适配器,每个适配器上都会发生这种情况。我可以拥有所有文件的所有权,但这会覆盖所有者值(当通过笔记本电脑中的标准 SATA 连接器访问驱动器时存在的所有者值)。
//编辑:如果通过 USB 适配器使用硬盘,我无法访问大多数文件,至少在我拥有这些文件(/文件夹)的所有权之前。
它看起来是这样的:
USB 适配器内的 HDD:
笔记本电脑内的硬盘:
(请注意所有者列)
//编辑:第一张截图中的一些文件的所有者字段已填满。这是因为我拥有这些文件/文件夹的所有权,以便能够访问硬盘上的文件。
//edit2:此外,如果硬盘驱动器通过 USB 适配器连接,并且我已经通过“ddd”用户获得了某些文件的所有权,那么如果我以其他用户身份登录(比如说“eee”用户),所有者字段仍然为空:
ddd 用户: eee 用户: eee 用户无法访问“ddd”文件夹。
两个用户都拥有管理员权限。
答案1
当您在 NTFS 驱动器上创建或编辑文件时,它会获得分配给它的用户或组。Microsoft解释这个机制非常好。基本上每个文件都会分配一个域组和一个用户。(域\用户)
当然,他们并没有真正深入讨论它的工作原理,但为 Linux 重建 ntfs-3g 的人必须深入研究文件系统才能理解它的工作原理。文章这解释了如何将 Linux 用户映射到 Windows 用户以简化工作流程。虽然我们这里不讨论 Linux,但您可以看到的信息是映射是一组不同的数字,例如:
500::S-1-5-21-1833069642-4243175381-1340018762-1008
冒号前面的部分是 Linux 用户 ID,冒号后面的部分是 Windows 用户 ID,它实际上存储在所有者字段中。虽然 Windows 当然不需要 Linux 用户 ID,但它会有一个类似的映射表,将系统用户与文件中存储的 ID 进行映射。
当您在正确的系统上查看实际拥有此所有者的文件时,Windows 可以读取并识别此 ID。但是,如果您将驱动器带到另一台计算机,它就无法映射,因为其他系统不知道该文件的所有者。
(我只是在这里猜测,但对我来说这似乎是原因)