Obtém a variável de ambiente de outro usuário [closed]

18

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.

    
por Keelan 03.06.2013 / 19:28

3 respostas

17

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
    
por 03.06.2013 / 19:48
1

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 .

    
por 03.06.2013 / 19:43
0

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'

    
por 03.06.2013 / 19:35