Existe uma maneira de definir aliases de host (como em /etc/hosts
) em uma base por usuário, ou seja, em um arquivo /home/user/.hosts
?
Meu principal objetivo é compartilhar facilmente aliases de host via rsync entre as máquinas na minha pequena LAN. Como não existe uma máquina que esteja sempre sempre conectada com segurança, um servidor DNS não é uma opção (certo?).
Obrigado.
linux
local-area-network
hosts
mrucci
fonte
fonte
alias ssh="ssh "
seu .bashrc (observe o espaço em branco à direita no final do alias) junto comalias myhost="[email protected]"
e, em seguida, você poderá dizerssh myhost
e ele funcionará.~/.ssh/config
onde você adiciona as linhas:Host my-host
eHostname 10.0.0.xxx
<- IP da máquina. O bom é que também permite que você especifique nome de usuário, o porto, que a chave para usar etcRespostas:
Uma solução melhor seria instalar o Avahi e o libnss-mdns e, em seguida, usar
HOSTNAME.local
endereços.Esses nomes não seriam por usuário, mas resolveriam seu objetivo declarado de ter nomes comuns para todas as máquinas em uma LAN.
fonte
ping hostnameAlias
) sem privilégios de root. O Avahi quase faz o trabalho certo, porque eu posso usar a máquina $ HOSTNAME como um alias. Apenas por curiosidade: onde esse mapeamento é feito?Consulte https://github.com/figiel/hosts para obter uma maneira de fazer exatamente o que você pede.
Essa é uma pequena biblioteca, carregada via LD_PRELOAD e que substitui gethostbyname () e várias funções relacionadas que os programas usam para resolução de DNS. Funciona bem para mim. A única ressalva que descobri é que o navegador Chrome não usa resolução DNS nativa, mas implementa seu próprio cliente DNS. Para resolver esse problema, você precisa desativar o cliente DNS do Chrome .
fonte
A implementação glibc do Linux não pode fazer isso.
Mas você pode estendê-lo com uma biblioteca nss que poderia. Isso seria fácil de escrever, pois você pode extrair a parte relevante da libc, que está no diretório nss_files em
http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
Por exemplo
Isso seria, no entanto, uma coisa não-padrão bastante estranha de se fazer.
fonte
Se você tivesse duas máquinas que funcionariam na maioria das vezes, você poderia colocar o BIND em cada uma delas e torná-las servidores DNS ... ou obter uma delas ( http://www.marvell.com/products/embedded_processors/ developer / kirkwood / sheevaplug.jsp ).
Use BIND para servir o seu DNS sempre.
fonte
Como as outras respostas nesta página descrevem, existem maneiras de obter funcionalidades semelhantes, mas:
Não, não existe um arquivo "por usuário" como
/etc/hosts
qualquer outra maneira de substituir a resolução de nome padrão como um usuário não privilegiado no GNU / Linux.fonte
Parece muito mais fácil escrever um script que determine quais hosts estão ativos e, em seguida, defina o nome do host para o seguinte comando rsync. Algo assim
Isso não foi testado e possui suposições, portanto você precisará modificá-lo para se adequar.
fonte
rsync src olivia:/dst