获取其他用户的环境变量

获取其他用户的环境变量

有没有办法查看其他用户的环境变量?我想以 root 身份执行此操作,因此我想权限不会成为问题。

对于用户自己,我使用echo $PATHor 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

从 root 您可以su -到用户,然后 grep 您想要查看的环境变量:

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

相关内容