问题标签 [symlink-traversal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
46 浏览

cygwin - Cygwin:使用 MinGW fopen/etc 遵循符号链接

问题:我正在编写一些可移植到 Linux 和 Cygwin(在 msys 上编译)的代码,并且符号链接的处理方式不同。在 Cygwin 上,如果我以正常方式创建符号链接,并使用默认的 Cygwin shell(即CYGWIN未设置 envvar):

然后fopen(bar)不遵循符号链接。第一行文本似乎是!<symlink>.,我的代码报告打开的文件不是 UTF-8。

我可以通过以管理员身份运行 Cygwin、设置CYGWINwinsymlinks:nativestrict、删除符号链接并重新创建它来解决此问题。然而,这并不理想:在我的例子中,符号链接是由 Linux 代码库中的 Subversion 创建的,所以我现在需要在每次更新后编写链接删除和重新制作脚本。

  1. 有没有更好的方法来做到这一点,还是我必须要求 Cygwin 用户以管理员身份运行并设置CYGWIN
  2. 如何编写代码以遵循本机 Cygwin 符号链接?
  3. 如何编写代码来找出我正在处理的符号链接类型?这也被问到这里,但那里的答案是脚本化的

谢谢。

编辑

好的,我认为答案基本上在这里,在 2007 年的 MinGW 邮件列表中。如果您使用 MinGW 编译,则不能使用 Cygwin 本机符号链接。也许自 2007 年以来情况发生了变化?

0 投票
0 回答
23 浏览

python - python exec 和 python exec 的符号链接具有不同的 sys 路径。这会导致 ModuleNotFoundError

我的项目结构是:

我有一个符号链接,py指向 venv 中 python 可执行文件的实际位置。这是为了确保我的 python 可执行文件没有在脚本中硬编码,并且可以快速部署到任何地方,同时仍然包括 shebang。

现在,当我调用符号链接py与实际的 python 可执行文件时/path/to/project/venv/bin/python3sys.path值会发生变化。在文件夹中执行以下操作/path/to/project/source/

如您所见,根据是执行 sym-link 还是调用了直接 exec,sys 路径正在发生变化。

例如,符号链接包含/usr/lib/python3.6/site-packages但 venv 中的实际可执行文件包含/path/to/project/venv/lib/python3.6/site-packages.

我该如何解决?

当我尝试导入硒时,我得到:

0 投票
1 回答
35 浏览

bash - Bash 脚本不允许在压缩文件中使用特殊符号

我实际上是根据我通过java代码下载的pdf文件创建一个zip文件,所以问题陈述是这样的。

我有一个带有特殊符号的 pdf 文件 = (wallbay)+1-50 m+ ipad+i pho ne%watch.pdf

现在我希望这个文件被创建为一个 zip 文件,它应该有一个名字 =(wallbay\)+1-50m+ipad+iphone%watch.pdf.zip

我尝试了以下命令:

他们都没有工作并抛出错误"parse error near ``)'"

唯一有效的命令是

但上述命令仅在 pdf 文件名中没有空格时才有效。

目前我的文件夹结构是

我目前正在使用 MacOs..

0 投票
0 回答
19 浏览

jekyll - 如何使符号链接文件夹中的 .md 文件对 Jekyll 可见

我希望Jekyll在符号链接文件夹中显示文件(这仅用于开发,因此安全不是问题,因为它托管在我的 PC 上)

我可以看到静态符号链接文件可以工作,也许文件夹也可以工作。如果我理解正确,诀窍是将其置于不安全模式。我尝试了_config.yamlby 设置safe: False,但没有改变。

0 投票
0 回答
100 浏览

macos - 外部驱动器上的 OSX Apache 网页不起作用

我有一个符号链接 /Library/WebServer/Documents/2Tlnk 到 /Volumes/2TMacBook/lnk1 这是一个包含 index.html 文件的目录。2TMacBook 是外置驱动器,而不是单独的 MacBook 电脑。我尝试访问该页面时收到 403(您无权访问此资源。)错误。如果我绕过 Apache 并将浏览器定向到 file:///Volumes/2TMacBook/lnk1/index.html 或 file:///Library/WebServer/Documents/2Tlnk/index.html 我会看到该页面。file:///Volumes/2TMacBook/lnk1 给了我目录列表。

我的 Mac 是 iMac,大约 1 1/2 岁,运行 macOS Big Sur 版本 11.3。我的 Apache 版本是 2021 年 2 月 28 日构建的 2.4.46。

在我的 Mac 中,指向内部磁盘上目录的类似符号链接工作得很好,无论是在 /Library/WebServer/Documents/ 中,还是到 /Library/WebServer/Documents/test 和 ~/test 中。我已打开外部驱动器 2TMacBook 的所有权。我已在作为符号链接目标的目录和其中的 index.html 文件上将组所有权设置为 _www。在这一点上,我已经为 2TMacBook、lnk1 和 lnk1 中的 index.html 上的每个人授予了读写执行权限,并且在 _www 是组的情况下具有相同的权限。

我也尝试过 Apache Alias 机制。同样,它适用于内部驱动器目录,但不适用于 2TMacBook 外部驱动器上的 lnk1 目录。

以防万一 2TMacBook 有什么有趣的地方,我也在另一个外部驱动器上尝试了所有东西。2TMacBook 驱动器被格式化为 Mac OS Extended (Journaled),而我尝试的另一个驱动器被格式化为 APFS。

目前我想不出其他可以尝试的方法。任何帮助,将不胜感激。一两年前,我使用外部驱动器来存储额外的网页。它当时奏效了,而且确实很方便。我想让它再次工作。

0 投票
1 回答
93 浏览

python - 在 Python 中递归遍历多个符号链接

我想编写一个递归函数来遍历从源路径到目标路径的符号链接

示例:1)readlink patha/pathb/pathc -> 如果符号链接存在则给出 2)readlink patha/pathb/pathc/ -> 如果符号链接存在则给出

我在 python 中使用 os.readlink 方法来获取 Python 中的符号链接,但是如何遍历多个符号链接

遍历的原因:如果将来有人想在两者之间添加 file3 符号链接,那么我想要一个递归函数来遍历每个符号链接并给出最终的目标路径
file1 -> file2 -> .... -> 以获得目的地小路

0 投票
1 回答
38 浏览

linux - 如何创建符号链接或硬链接到另一个符号链接?

例如,我创建一个链接ln -s /mytarget /mylinkmytarget目录在哪里)。现在我想创建一个指向 的链接/mylink,即ln -s /mylink /mylinkother. 第一个链接mylink工作正常,但第二个链接mylinkother不起作用。

有关的:

  1. 创建到另一个符号链接的符号链接是否有任何副作用?
  2. 如何创建指向目录的链接