$HOME e ~ são expandidos pelo seu shell, eles não são interpretados por echo .
Em outras palavras, echo não vê $HOME como argumento. Na verdade, ele vê /home/nbest . Portanto, os seguintes comandos são exatamente idênticos (no seu caso):
nbest@geo:~$ sudo -H -u tanum echo $HOME
nbest@geo:~$ sudo -H -u tanum echo /home/nbest
Não importa o que você tente ( -H , -i , ...) você nunca obterá o comportamento desejado. Porque $HOME é substituído pelo seu shell e seu shell é executado como seu usuário. sudo não afeta seu shell de alguma forma.
Para contornar esse 'problema' (que, na verdade, é um recurso), você pode iniciar um novo subshell:
nbest@geo:~$ sudo -H -u tanum sh -c 'echo $HOME'
(Note que estou usando aspas simples para evitar a expansão). Dessa forma, o novo shell sh será executado como usuário tanum e imprimirá seu diretório pessoal.
Outra alternativa é usar ~username , que é expandido para a página inicial desse usuário, sem a necessidade de usar sudo ou su . Experimente:
nbest@geo:~$ echo ~tanum