GNU/Linux >> Linux の 問題 >  >> Linux

環境変数は Linux で非特権ユーザーに表示されますか?

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

Linux
  1. Linuxで環境変数とシェル変数を設定/作成する方法

  2. Linux で環境変数を設定、一覧表示、および削除する方法

  3. Linux での環境変数のアクセシビリティ

  1. プロセスの環境変数を読み取る方法

  2. Linux カーネル スレッドは本当にカーネル プロセスですか?

  3. Unixで実行中のプロセスの環境変数?

  1. Linux –すべてのユーザーにとって永続的な環境変数?

  2. Linux – Linuxの非特権ユーザーには、環境変数が表示されますか?

  3. Linux –プロセスを他のユーザーに見えなくする方法は?