他のユーザーの環境変数を取得する[閉じる]

他のユーザーの環境変数を取得する[閉じる]

他のユーザーの環境変数を表示する方法はありますか?私はこれをrootとして実行したいので、権限は問題にはならないようです。

ユーザー自身の場合は、echo $PATHor set | grep PATH(またはset変数名が記憶されていないとき)を使用します。他のユーザーに似たコマンドは何ですか?

とにかく私はUbuntu Server 13.04を使用しています。

答え1

別のオプションは、次のコマンドをenv使用してこのコマンドを実行することです。rootsudo

sudo -Hiu $user env | grep $var

例えば

sudo -Hiu terdon env | grep HOME
HOME=/home/terdon

答え2

ユーザーの場合は、次のことができます。

su - <username> -c '. ~/.profile; echo $PATH'

すべてのユーザーの$ PATHを一覧表示します。

for user in $(cat /etc/passwd | awk -F: '{print $1}'); do
  su - $user -c '. ~/.profile; printf "%s\n" "$PATH"'
done

ツイートをサイトに埋め込む

. ~/.profileこれは私の好きな人の一人であるPeteris Kruminsから学んだ秘法です。その技術を説明してくれる。ここ。おそらく最新のbashバージョンにはオプションでビルドがあるかもしれませんNON_INTERACTIVE_LOGIN_SHELLS

答え3

ルートからsu -ユーザーに移動し、表示したい環境変数をgrepできます。

su - <username> -c 'echo $PATH'

関連情報