【问题标题】:is there something like alternate data streams on any linux filesystem?在任何 linux 文件系统上是否有类似备用数据流的东西?
【发布时间】:2010-09-15 20:03:00
【问题描述】:

在 Windows NTFS 上,有一个不错但大部分未使用的功能,称为 我最近在一个爱好开发项目中使用的“备用数据流”(ADS)。

在 Mac HFS+ 上,还有一个类似的不错但大部分未使用的功能,称为“命名分叉”。

我正在考虑把这个项目移植到Linux上,但是不知道linux上的Filesystem有没有这个功能?

【问题讨论】:

  • 大部分未使用?您确定吗。这对于隐藏数据非常有用。
  • @Pacerier:未使用,似乎没有 UI 或应用程序以任何方式与其交互。
  • 这就是正是它们对隐藏病毒有用的原因。

标签: linux filesystems ntfs alternate-data-stream


【解决方案1】:

大多数 Linux 文件系统都有extended attributes。我不熟悉 NTFS 流,所以无法比较两者。大多数文件系统需要挂载标志以启用扩展属性,因此这可能不适用于任何人的系统。它们通常缩写为xattrxattrs

【讨论】:

    【解决方案2】:

    我只知道extended attributes 是我所知道的,有点像这个方向,但从我读到的关于 ADS 的信息来看,它是定义的。不是一回事。你到底是用来做什么的?

    【讨论】:

      【解决方案3】:

      常用的 Linux 文件系统不支持这个。相反,您可以使用多个文件和合适的命名方案(也许只需将流索引附加到每个文件名),或包含多个文件的存档;无论如何,您会发现这种方法在其他方面更好 - 例如,如果有人想将文件 Windows 备份到具有非 NTFS 文件系统的介质,在 Windows 上会发生什么?

      【讨论】:

      • 您应该使用一个使用备份 API 的备份程序——它们会将文件上的所有元数据(EA、安全描述符、数据流、加密文件等)打包到一个单个流保存并稍后恢复。
      【解决方案4】:

      ADS 的问题在于,Windows 将在移动到任何非 NTFS 文件系统的那一刻“丢失”这些 ADS 流。它不认为这些流很重要,因此通常不会保留它们。当通过网络共享、刻录到 CD、放入 USB 驱动器等时,您会发现它们无法访问或消失……

      总而言之,除非您对应用程序的关注范围非常狭窄(始终在 NTFS 上),否则我会完全避免使用 ADS 流。

      【讨论】:

      • 这对于某些用例是可以接受的,例如缓存元数据或文件偏移量,否则这些情况可能会更费力地(重新)生成/计算。
      【解决方案5】:

      一些文件系统支持扩展属性,特别是 XFS 和(我认为)JFS;但大小有限(XFS 中为 64k)。 Reiser4 支持任意大小的分叉;但我所知道的任何发行版都不支持它。另一个选择是 ZFS,同样不是很实用。

      最后,只使用目录可能更明智。

      【讨论】:

        【解决方案6】:

        Windows 和 Linux(以及其他操作系统)上都有支持扩展属性 (EA) 的文件系统。为 OS/2 兼容添加了 Windows 支持,并且没有任何文档化接口,除了通过备份 API 的 hacky 方法(这就是 Cygwin 所做的)。 EA 旨在仅存储小值。在 Windows 上,每个 EA 都有一个 ASCII 名称(而几乎所有其他名称都是 Unicode),并且文件中所有 EA 的组合大小不能大于 64k。 EA 不是文件:您无法打开 EA 的文件句柄并像普通文件一样读取它。

        备用数据流是 NTFS 提供的一项单独功能,它允许您在文件内提供备用子文件。每个文件都有一个默认的未命名数据流,它会自动打开,除非您指定另一个文件。您可以打开 ADS 的句柄并像普通文件一样读取(甚至执行)它,使用单个 (Unicode) 文件名。 ADS 可以与任何磁盘文件一样大。

        据我所知,Linux 上的 ADS 没有精确的模拟,但如果数据值很小,您可以在 Linux 端口上使用 EA。

        【讨论】:

        • 默认数据流名为'DATA'
        • @DanD.,$DATA,不是DATA
        猜你喜欢
        • 2010-10-26
        • 1970-01-01
        • 2011-12-04
        • 2020-08-23
        • 2010-10-26
        • 2010-10-07
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        相关资源
        最近更新 更多