Você não citou $HOME
, então o valor atual está sendo substituído anterior à execução do comando sudo . Coloque entre aspas simples (')
.
EDITAR:
Como notamos (veja comentários), o sudo não chama um subshell para iniciar o comando dado (portanto, não há shell expandindo $HOME
). O comando revisado seria:
sudo -u sztomi -H bash -c 'echo $HOME'
Explicado: sudo
comuta o ID do usuário e chama um bash
shell que, por sua vez, recebe o echo $HOME
, substitui a variável HOME
pelo seu valor e finalmente executa o comando echo
.
Note que chamar o subshell só é necessário neste exemplo para obter a variável HOME
substituída após o sudo trocar o ID do usuário. Não é necessário se você deseja apenas iniciar um único programa sem substituição de variável no ambiente de destino.