Shell

獲取其他使用者的環境變數

  • February 7, 2018

有沒有辦法可以查看其他使用者的環境變數?我想以 root 身份執行此操作,所以我猜權限不會成為問題。

對於使用者自己,我使用echo $PATHor set | 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

引用自:https://unix.stackexchange.com/questions/78061