我的变量有一个非常奇怪的问题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
根据提示运行了裸机。然而这之中bash
,PATH
却再度蕴含着/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 发行版。