É possível com privilégios de root. Use unshare --uts
para criar um novo namespace UTS 1 , defina o nome do host desejado, em seguida, su
de volta à sua conta e execute o aplicativo. Por exemplo:
ongun@foo$ sudo -s
~ create a new namespace ~
root@foo# unshare --uts /bin/sh
~ this terminal now has its own namespace – change the hostname ~
root@foo# hostname quux
~ switch back ~
root@quux# sudo -s -u ongun
ongun@quux$ /usr/bin/game
Os namespaces são limitados ao seu processo criador por padrão, então o novo nome do host será visível apenas para os programas que você executa dentro da janela "unshare".
Observação: não se esqueça de adicionar o novo nome do host a /etc/hosts
como 127.0.0.1, pois muitos programas esperam / dependem dele para serem resolvidos.
1 Não pergunte o que significa "UTS". O melhor que eu sei é que é uma sobra do antigo Unix.