Linuxで、プロセスの環境変数が他の(ルート以外の)ユーザーによって監視可能かどうかを判断しようとしています。
当面のユースケースは、環境変数に秘密を置くことです。これは、Web全体の多くの場所で安全ではないと説明されていますが、Linuxの正確な露出ポイントに焦点を当てることはできませんでした。
私はそうではないことに注意してください 平文の秘密をファイルに入れることについて話している。また、私はそうではないことにも注意してください rootアカウントへの露出について話します(rootを非スターターとして、敵から秘密を隠そうとしていると思います)。
この質問は、環境変数を完全にセキュリティがない、または単に難読化されているだけであると分類するコメントで、私のものに対処しているように見えますが、どのようにそれらにアクセスしますか?
私のテストでは、特権のない1人のユーザーが、プロセステーブル(「psauxwwe」)を介して別のユーザーの環境変数を監視することはできません。環境変数を設定するコマンド(例:エクスポート)はシェルビルトインであり、プロセステーブルに組み込まれず、ひいては/ proc / $ pid/cmdlineにはありません。 / proc / $ pid / environは、プロセス所有者のUIDでのみ読み取ることができます。
おそらく、異なるオペレーティングシステムまたはバージョン間で混乱が生じています。 Web全体のさまざまな(最近の)ソースは、環境変数の不安定さを非難していますが、さまざまなLinuxバージョンのスポットチェックは、少なくとも2007年までさかのぼることは不可能であることを示しているようです(おそらくそれ以上ですが、ボックスがありませんテストする手)。
Linuxでは、非特権ユーザーは他のプロセスの環境変数をどのように監視できますか?
承認された回答:
Gillesがsecurity.stackexchange.comの同様の質問に対する非常に包括的な回答で説明したように、プロセス環境には、プロセスを所有するユーザー(そしてもちろんルート)のみがアクセスできます。