Czy istnieje sposób definiowania aliasów hosta (np. In /etc/hosts
) dla poszczególnych użytkowników, tj. W pliku /home/user/.hosts
?
Moim głównym celem jest łatwe udostępnianie aliasów hosta za pośrednictwem rsync między komputerami w mojej małej sieci LAN. Ponieważ nie ma maszyny, która byłaby zawsze niezawodnie podłączona, serwer DNS nie jest opcją (prawda?).
Dziękuję Ci.
linux
local-area-network
hosts
mrucci
źródło
źródło
alias ssh="ssh "
.bashrc (zwróć uwagę na końcowe białe znaki na końcu aliasu) wraz z,alias myhost="[email protected]"
a następnie możesz powiedziećssh myhost
i będzie działać.~/.ssh/config
miejscu, w którym dodajesz linie:Host my-host
iHostname 10.0.0.xxx
<- IP komputera.Odpowiedzi:
Lepszym rozwiązaniem byłoby zainstalowanie Avahi i libnss-mdns, a następnie użycie
HOSTNAME.local
adresów.Te nazwy nie byłyby przypadające na użytkownika, ale rozwiązałyby ustalony cel posiadania wspólnych nazw dla wszystkich komputerów w sieci LAN.
źródło
ping hostnameAlias
) bez uprawnień roota. Avahi prawie wykonuje dobrą robotę, ponieważ mogę użyć komputera $ HOSTNAME jako aliasu. Dla ciekawości: gdzie odbywa się to mapowanie?Zobacz https://github.com/figiel/hosts, aby dowiedzieć się, jak zrobić dokładnie to, o co prosisz.
Jest to mała biblioteka załadowana przez LD_PRELOAD, która zastępuje gethostbyname () i kilka powiązanych funkcji używanych przez programy do rozpoznawania nazw DNS. To działa dobrze dla mnie. Jedynym zastrzeżeniem, które znalazłem, jest to, że przeglądarka Chrome nie używa natywnego rozpoznawania DNS, ale zamiast tego implementuje własnego klienta DNS. Aby rozwiązać ten problem, musisz wyłączyć klienta DNS Chrome .
źródło
Implementacja glibc dla Linuksa nie może tego zrobić.
Ale możesz rozszerzyć go o bibliotekę nss, która mogłaby. Byłoby to łatwe do napisania, ponieważ można oderwać odpowiednią część libc, która znajduje się w katalogu nss_files w
http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
Na przykład
Byłoby to jednak dość dziwne, niestandardowe działanie.
źródło
Jeśli masz dwa komputery, które byłyby uruchomione przez większość czasu, możesz postawić BIND na każdym z nich i ustawić je jako serwery DNS .. lub uzyskać jeden z nich ( http://www.marvell.com/products/embedded_processors/ developer / kirkwood / sheevaplug.jsp ).
Użyj BIND na nim, aby zawsze obsługiwać DNS.
źródło
Jak opisują inne odpowiedzi na tej stronie, istnieją sposoby na uzyskanie podobnej funkcjonalności, ale:
Nie,
/etc/hosts
w systemie GNU / Linux nie ma pliku typu „na użytkownika”, ani w żaden inny sposób zastępujący domyślną metodę rozpoznawania nazw jako użytkownik nieuprzywilejowany.źródło
O wiele łatwiej byłoby napisać skrypt, który sprawdza, które hosty są uruchomione, a następnie ustawia nazwę hosta dla następującego polecenia rsync. Coś takiego
Jest to niesprawdzone i ma założenia, więc musisz go zmodyfikować, aby pasował.
źródło
rsync src olivia:/dst