web-dev-qa-db-ja.com

他のユーザーの環境変数を取得する

他のユーザーの環境変数を確認する方法はありますか?私はそれをrootとして実行したいので、許可は問題にならないと思います。

ユーザー自身には、echo $PATHまたはset | grep PATH(または変数名を覚えていない場合はset)を使用します。他のユーザーにとって同様の指示は何でしょうか?

価値があるのは、Ubuntu Server 13.04です。

23
user37050

別のオプションは、envを使用することです。これをrootとして実行します。

Sudo -Hiu $user env | grep $var

例えば

Sudo -Hiu terdon env | grep HOME
HOME=/home/terdon
20
terdon

1人のユーザーに対して、次のように実行できます。

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

@ Camil Staps

. ~/.profileこのように、私は私の好きな人、Peteris Kruminsから学ぶトリックです。彼はトリックを説明しました here 。多分後のbashバージョンはオプションNON_INTERACTIVE_LOGIN_SHELLS

2
cuonglm

ルートからsu -をユーザーに送信してから、表示する環境変数をgrepします。

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

0
Raza