Não existe um arquivo hosts definido pelo usuário no Linux, você pode usar HOSTALIASES que funciona com nomes canônicos.
Se eu recebi sua pergunta corretamente, você pode usar um serviço de DNS dinâmico como DynDNS ou No-IP para sempre ter um endereço IP público correto atribuído pelo ISP.
Você pode então usar HOSTSALIASES para mapear exthost
para o nome FQDN fornecido por um serviço DNS dinâmico.
Exporte o valor HOSTALIASES com export HOSTALIASES=~/.hosts
e, em seguida, adicione a seguinte linha ao arquivo ~/.hosts
para mapear exthost para o nome FDQN fornecido por no-ip, por exemplo.
exthost yourname.no-ip.org
HOSTALIASES funciona apenas com nomes canônicos, não IPs, e é por isso que você deve usar algum serviço DNS dinâmico para ter o nome FQDN, mas pode simplesmente usar esse FQDN e pular completamente as HOSTALIASES.
Eu não acho que você possa fazer isso sem configurar algum serviço DNS, ou criar scripts de algo no site remoto para sempre enviar seu IP público e, em seguida, alterar esse IP no arquivo /etc/hosts
local.
Outra opção seria dar permissão ao usuário para alterar /etc/hosts
ou configurar esse usuário no ambiente chroot e fornecer a ele seu próprio arquivo /etc/hosts
em seu ambiente chroot.