在 FreeBSD 13.1 的man sh
“调用”部分中,它提到:
与 sh 的旧版本不同,ENV 脚本仅在调用交互式 shell 时获取。这弥补了一个众所周知的、有时很容易被利用的安全漏洞,该漏洞与考虑不周的 ENV 脚本相关。
我正在尝试统一我的无数临时 shell 启动文件,这些文件位于具有不同操作系统的不同计算机上,并且可能具有不同风格和版本的sh
.为此,我想尝试弄清楚我是否可能需要考虑此类旧版本。
这些“旧版本”是否类似于“如果您在 1972 年未升级的操作系统上使用sh
,则必须担心这个”(在这种情况下,我严重怀疑我是否需要担心它)?
或者是否有一些模糊的现代事物仍然以这种方式运作,在这种情况下我可能需要担心它?例如,“如果您使用 Debian,则只有在使用 10.0 之前的版本时才需要担心这一点;如果您使用 Cygwin,则无论您的发行版本是什么,都必须担心这一点;如果你sh
确实是这样pdksh
,那么你必须在这样那样的情况下担心它”。