Tangencialmente relacionado:
sudo -u someuser -i "echo $HOME"
não funciona para mim. Diz:
-bash: echo $HOME: command not found
Para o ponto: Quando você executa o comando
sudo -u someuser -i echo $HOME
a variável $HOME
é expandida pelo shell antes que o sudo seja executado.
Para resolver isso, você poderia usar um comando como
sudo -u someuser -i bash -c 'echo $HOME'
Neste comando, echo $HOME
é enviado literalmente para o bash depois de trocar o UID.
O resultado é o esperado:
/home/someuser