有没有办法查看其他用户的环境变量?我想以 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
从 root 您可以su -
到用户,然后 grep 您想要查看的环境变量:
su - <username> -c 'echo $PATH'