即使对于非交互式 shell,$ENV 中也有哪些“旧版本的 sh”?

即使对于非交互式 shell,$ENV 中也有哪些“旧版本的 sh”?

在 FreeBSD 13.1 的man sh“调用”部分中,它提到:

与 sh 的旧版本不同,ENV 脚本仅在调用交互式 shell 时获取。这弥补了一个众所周知的、有时很容易被利用的安全漏洞,该漏洞与考虑不周的 ENV 脚本相关。

我正在尝试统一我的无数临时 shell 启动文件,这些文件位于具有不同操作系统的不同计算机上,并且可能具有不同风格和版本的sh.为此,我想尝试弄清楚我是否可能需要考虑此类旧版本。

这些“旧版本”是否类似于“如果您在 1972 年未升级的操作系统上使用sh,则必须担心这个”(在这种情况下,我严重怀疑我是否需要担心它)?

或者是否有一些模糊的现代事物仍然以这种方式运作,在这种情况下我可能需要担心它?例如,“如果您使用 Debian,则只有在使用 10.0 之前的版本时才需要担心这一点;如果您使用 Cygwin,则无论您的发行版本是什么,都必须担心这一点;如果你sh确实是这样pdksh,那么你必须在这样那样的情况下担心它”。

相关内容