私の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プロンプトに従ってベアメタルを実行しました。bashしかしその中にまたPATH隠されたものがある/usr/lib/hardening-wrapper/bin

怖いのは、root ユーザーシェルに同じパスが存在しますが、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プロジェクトも私の以前のパスを読むようです。

私が知っている限り、これらのどれも自動的にロードされません。変更されたパスを実際にエクスポートする唯一のものは中古品チュートリアルクライアントです。

答え1

怖いのは、私のルートシェルにも同じパスがありますが、Xを実行しないとこれは起こらないということです。私はこれがX設定スクリプトに関連していると思いましたが、どちらもPATHを変更しませんでした。

実際には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ディストリビューションを使用しているかを知ることをお勧めします。

関連情報