Gilles が security.stackexchange.com の同様の質問に対する非常に包括的な回答で説明したように、プロセス環境は、プロセスを所有するユーザー (およびもちろんルート) のみがアクセスできます。
環境変数は十分に安全です。あなたがリンクした質問は、システムが危険にさらされた場合、構成ファイルに対して環境変数を使用する唯一のセキュリティ上の利点はあいまいであるということです。つまり、誰かが root アクセス権を取得した場合、両方にアクセスできるということです。
機密データに環境変数を使用することが「あいまい」と見なされるかどうかについても議論の余地があります。これは非常に一般的な慣行であるため、そのようには考えていません。
環境変数に保存されているデータには、次の 2 つの場所でのみアクセスできます:
1.プロセスの実行環境
プロセスの実行中、そのプロセスの環境変数には /proc/$PID/environ
からアクセスできます .ただし、そのファイルにアクセスできるのは、プロセスを所有するユーザーまたはルートのみです。
2.環境変数のソース
init スクリプトを使用していて、変数がその init スクリプトに保存されている場合、変数はもちろんそのスクリプトを読み取ることで取得できます。
または、環境変数が別の場所から取得されている場合は、それがどこにあっても.
3. 「ps」出力
ええ、私が 2 と言ったことは知っていますが、まともなシステムでは 2 になります。しかし、管理者が自分が何をしているのかわからない場合は、3 番目の道を開くことができます.
プロセスが sh -c 'cd /foo/bar; POP=tart /my/executable'
のような方法で起動された場合 、その sh
プロセスは ps
で表示されます :
$ sh -c 'cd /; POP=tart sleep 10' &
[1] 3085
$ ps ax | grep POP
phemmer 3085 14 5 0.0 0.0 SN 00:00 sh -c cd /; POP=tart sleep 10