![他のユーザーの環境変数を取得する[閉じる]](https://linux33.com/image/32662/%E4%BB%96%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
他のユーザーの環境変数を表示する方法はありますか?私はこれをrootとして実行したいので、権限は問題にはならないようです。
ユーザー自身の場合は、echo $PATH
or set | grep PATH
(またはset
変数名が記憶されていないとき)を使用します。他のユーザーに似たコマンドは何ですか?
とにかく私はUbuntu Server 13.04を使用しています。
答え1
別のオプションは、次のコマンドをenv
使用してこのコマンドを実行することです。root
sudo
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'