Есть ли способ определить псевдонимы хоста (например, в /etc/hosts
) для каждого пользователя, то есть в файле /home/user/.hosts
?
Моя основная задача - легко обмениваться псевдонимами хоста с помощью rsync между машинами в моей маленькой локальной сети. Поскольку нет машины, которая всегда будет надежно подключена, DNS-сервер не подходит (верно?).
Спасибо.
linux
local-area-network
hosts
mrucci
источник
источник
alias ssh="ssh "
ваш .bashrc (обратите внимание на конечные пробелы в конце псевдонима) вместе с,alias myhost="me@real-name-of-my-host.com"
и тогда вы можете сказать,ssh myhost
и это будет работать.~/.ssh/config
где вы добавляете строки:Host my-host
иHostname 10.0.0.xxx
<- IP-адрес машины. Приятно то, что он также позволяет вам указать имя пользователя, порт, какой ключ использовать и т. Д.Ответы:
Лучшим решением было бы установить Avahi и libnss-mdns, а затем использовать
HOSTNAME.local
адреса.Эти имена не будут для каждого пользователя, но они решат вашу заявленную цель иметь общие имена для всех машин в локальной сети.
источник
ping hostnameAlias
) без привилегий root. Avahi почти делает правильную работу, потому что я могу использовать машину $ HOSTNAME в качестве псевдонима. Просто для любопытства: где делается это отображение?Смотрите https://github.com/figiel/hosts, чтобы узнать , как сделать именно то, что вы просите.
Это небольшая библиотека, загружаемая через LD_PRELOAD и переопределяющая gethostbyname () и несколько связанных функций, которые программы используют для разрешения DNS. Это хорошо работает для меня. Единственное предостережение, которое я обнаружил, заключается в том, что веб-браузер Chrome не использует собственное разрешение DNS, а вместо этого реализует собственный DNS-клиент. Чтобы решить эту проблему, вам нужно отключить DNS-клиент Chrome .
источник
Реализация Linux glibc не может этого сделать.
Но вы можете расширить его с помощью библиотеки nss, которая может. Это было бы легко написать, так как вы могли бы скопировать соответствующую часть libc, которая находится в каталоге nss_files в
http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
Например
Это, однако, было бы довольно странно, нестандартно.
источник
Если бы у вас было две машины, которые работали бы большую часть времени, вы могли бы установить BIND на каждой из них и сделать их DNS-серверами ... или получить одну из них ( http://www.marvell.com/products/embedded_processors/ разработчик / kirkwood / sheevaplug.jsp ).
Используйте BIND, чтобы всегда обслуживать DNS.
источник
Как описывают другие ответы на этой странице, существуют способы достижения аналогичной функциональности, но:
Нет,
/etc/hosts
в GNU / Linux нет файла «для пользователя», подобного или любого другого способа переопределения разрешения имен по умолчанию для непривилегированного пользователя.источник
Казалось бы, гораздо проще написать скрипт, который определяет, какие хосты работают, а затем устанавливает имя хоста для следующей команды rsync. Что-то вроде этого
Это не проверено и имеет предположения, поэтому вам придется изменить его в соответствии с требованиями.
источник
rsync src olivia:/dst