A funcionalidade que você está procurando é implementada na glibc. Você pode definir um arquivo de hosts personalizados definindo a variável de ambiente HOSTALIASES . Os nomes neste arquivo serão coletados por gethostbyname (consulte documentação ).
Exemplo (testado no Ubuntu 13.10):
$ echo 'g www.google.com' >> ~/.hosts
$ export HOSTALIASES=~/.hosts
$ wget g -O /dev/null
Algumas limitações:
-
HOSTALIASESsó funciona para aplicativos que usamgetaddrinfo(3)ougethostbyname(3) - Quando setuid é usado, a libc limpa o ambiente, o que significa que a configuração
HOSTALIASESé perdida. ping é root setuid (porque ele precisa escutar pacotes ICMP), entãoHOSTALIASESnão funcionará com ping a menos que você já esteja root antes de chamar ping.