为什么我的 PATH 中添加了一个目录?

为什么我的 PATH 中添加了一个目录?

我的变量有一个非常奇怪的问题PATH。特别是,在某些时候/usr/lib/hardening-wrapper/bin被添加,但我不希望它被添加。

我做的第一件事就是检查、、、、~/.bashrc看看他们中是否有人设置了它,但他们没有。~/.bash_profile/etc/profile/etc/profile.d/*/etc/environment

接下来我想也许是一个隐秘的脚本链正在这样做,所以我运行了:

PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7>log

看看它是否会带来一些启发。令我惊讶的是,/usr/lib/hardening-wrapper/bin我并不在那里。为了看看这是否可以在更简单的环境中复制,我只是bash根据提示运行了裸机。然而这之中bashPATH却再度蕴含着/usr/lib/hardening-wrapper/bin

可怕的是,我的 root 用户 shell 中也存在相同的路径;但是,如果我不运行 X,则不会发生这种情况。我认为这可能与 X 配置脚本有关,但它们都没有修改PATH。我还认为它可能在我的终端(白蚁)的配置中,但它也没有这样做。坦白说,此时此刻,我很茫然。

谁能告诉我如何阻止这条路径被添加到我的PATH变量中?

跟进:

我连夜运行了一次,find . -type f -print0 | parallel --progress --null -L 100 -m -j 4 grep -I 'hardening-wrapper'看看它能找到什么。总的来说,它找到了以下匹配项:

  • .bash_history因为我一直在运行一堆包含它的命令
  • ./csassignments/ece454/thrift-0.10.0包含我为分布式计算课程安装的 Thrift。在“tutorial_client”中,它设置并导出“relink_command”中的路径。我怀疑这是因为我安装 thrift 时 PATH 包含它?
  • 我用来构建交叉编译器的 GNU binutils 和 GCC 的源代码都包含打印 PATH 的日志。就像上面一样,我怀疑他们只是读了我的道路。
  • 我从源代码(llvm)构建的一堆 CMake 项目似乎也读取了我的旧路径

据我所知,这些都不会自动加载。唯一真正导出它修改的路径的是 thrift 教程客户端,自从我学习这门课程以来我就没有接触过它。

答案1

可怕的是,相同的路径也存在于我的 root 用户 shell 中,但是如果我不运行 X,则不会发生这种情况。我认为这可能与 X 配置脚本有关,但它们都没有修改 PATH。

实际上,您声称它仅在 X 启动时才设置,这“通常”意味着它是由 X 以某种方式设置的。可悲的是,您没有说出您使用哪个桌面环境,但这很好,因为这意味着我必须想出一个通用的答案。

您没有告诉我们您检查了哪些 X 配置文件。以下为 GUI 应用程序设置环境变量:

/etc/X11/xinit/xinitrc 
~/.xinitrc
/etc/xprofile
~/.xprofile 

来源:https://wiki.archlinux.org/index.php/environment_variables

还可以看看https://wiki.archlinux.org/index.php/Xprofile

如果所有这些都没有帮助,那么最好知道您在哪个桌面环境中使用哪个 GNU/Linux 发行版。

相关内容