【问题标题】:Read and hexdump a symlink itself读取和 hexdump 符号链接本身
【发布时间】:2020-06-23 23:06:31
【问题描述】:

我花了 30 分钟研究如何 cat/hexdump 读取符号链接文件本身,而不是目标,而是符号链接本身,工具(cat、hexdump 等)不应该解析符号链接,有人可以帮帮我吗这个,好吗?

【问题讨论】:

  • 我不明白。 “猫符号链接文件本身”是什么意思?符号链接文件是否具有您可以“阅读”的“内容”?
  • 是的,我想探索/复制它的字节。我可以将符号链接移动到 Windows 并在那里查看,但我想在 Linux 上查看符号链接文件内容。
  • 你不能。符号链接没有“字节”。或者换句话说,(通用)输入/输出 api 没有公开工具来检查符号链接(或文件系统上的任何文件)是如何存储的。此类操作将是特定于文件系统的 - 如果您愿意,可以编写一个使用特定文件系统 api 来获取此类信息的应用程序。 I can move the symlink to windows and see it there你如何“移动”它,你用什么工具来“看到它”,你看到了什么?
  • 我很惊讶你告诉我这个,有些工具提供了 --no-follow 开关,他们必须以某种方式这样做,例如 aws cli 有一个 --no-follow-symlinks 选项对于他的许多命令,例如:docs.aws.amazon.com/cli/latest/reference/s3/sync.html 此外,符号链接不能是 0 字节文件,它包含一些元数据。
  • they must be doing it someway 好吧,你拿/a/path/to/some/file。您使用stat()(或lstat())查询它的类型。哦,这是一个符号链接!您使用readlink() 查询目的地。然后您要么转到目录,要么创建一个具有相同目的地的新符号链接。没有人“检查存储在符号链接中的字节”,有 API,因此没有人必须这样做。 it contains some metadata 是的,但是这些元数据在用户空间中是不可见的。而且每个文件系统的做法都不同。

标签: linux terminal symlink


【解决方案1】:

Windows 不像 linux 那样支持符号链接。在 Linux 上,它们是文件系统的一部分,它们与文件系统的分离方式因文件系统而异。

例如,下面是它们在 Ext2 上的处理方式:

https://flylib.com/books/en/2.48.1/symbolic_link.html

要在 Linux 中查询符号链接,主要方法是通过 lstat 系统调用。从用户态来看,ls -al 往往做得很好,尽管 YMMV。最后,Linux 支持符号链接和硬链接,虽然它们在外部相似,但却是截然不同的野兽。

【讨论】:

  • 我终于找到了一些不符合你的说法的有趣的东西:paper.seebug.org/104 你可以用谷歌翻译器翻译它,它是关于 Gitlab CVE-2016-9086 上的一个错误,如何解释符号链接嵌入到 tar 文件中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 2019-01-24
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 2012-06-22
相关资源
最近更新 更多