Shell
獲取其他使用者的環境變數
有沒有辦法可以查看其他使用者的環境變數?我想以 root 身份執行此操作,所以我猜權限不會成為問題。
對於使用者自己,我使用
echo $PATH
orset | grep PATH
(或者set
當我不記得變數名時)。對於其他使用者來說,類似的指令是什麼?對於它的價值,我在 Ubuntu Server 13.04 上。
另一種選擇是使用
env
. 執行它root
:sudo -Hiu $user env | grep $var
例如
sudo -Hiu terdon env | grep HOME HOME=/home/terdon
對於一個使用者,您可以這樣做:
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 那裡學到的一個技巧。他在這裡解釋了訣竅。也許以後的 bash 版本有建構選項NON_INTERACTIVE_LOGIN_SHELLS
。