Outra opção é usar env
. Execute isso como root
:
sudo -Hiu $user env | grep $var
Por exemplo
sudo -Hiu terdon env | grep HOME
HOME=/home/terdon
Existe alguma maneira de ver a variável de ambiente de outro usuário? Eu quero fazer isso como root, então as permissões não serão um problema, eu acho.
Para o próprio usuário, eu uso echo $PATH
ou set | grep PATH
(ou set
quando não lembro o nome da variável). O que seria uma instrução semelhante para outro usuário?
Para o que vale a pena, estou no Ubuntu Server 13.04.
Para um usuário, você pode fazer assim:
su - <username> -c '. ~/.profile; echo $PATH'
Listar $ PATH de todos os usuários:
for user in $(cat /etc/passwd | awk -F: '{print $1}'); do
su - $user -c '. ~/.profile; printf "%s\n" "$PATH"'
done
@Camil Staps
. ~/.profile
é assim um truque que eu aprendo com minha pessoa favorita, Peteris Krumins. Ele explicou o truque aqui . Talvez mais tarde a versão bash tenha construído com a opção NON_INTERACTIVE_LOGIN_SHELLS
.
do root, você pode su -
para o usuário e, em seguida, usar a variável de ambiente que deseja ver:
su - <username> -c 'echo $PATH'