Назад | Перейти на главную страницу

Как я могу получить файл хостов для конкретного пользователя

Можно ли настроить файл hosts для конкретного пользователя вместо обычного / etc / hosts.

Например, если пользователь «user1» пытается получить имя для IP: «127.0.0.1», он получает «dev.user1», а если пользователь «user2» пытается получить имя для того же IP-адреса, он получает «dev. пользователь2 ".

Какую проблему ты пытаешься решить?

У вас, конечно, не может быть двух разных записей в файле hosts, которые каким-то образом переключаются в зависимости от того, какой вы пользователь.

Если вы сообщите нам, что вы пытаетесь сделать, вместо того, чтобы спрашивать нас о вашей конкретной реализации, мы, возможно, сможем больше вам помочь.

Нет, у вас не может быть файла / etc / hosts для каждого пользователя или чего-то вроде /home/user1/.hosts и т. Д.

Ты используешь gethostbyaddr который жестко запрограммирован в соответствии с инструкциями в nsswitch.conf, который сам по себе сообщает gethostbyaddr искать в / etc / hosts.

Возможно, вы сможете сделать что-то вроде добавления дополнительных петлевые IP-адреса в сети 127.0.0.0/8, например 127.0.0.2, 127.0.0.3, 127.1.2.3, а затем назначьте локальное имя хоста одному из этих локальных IP-адресов. Мы сделали это на одной работе, но я помню, что это очень сбивало наших инженеров с толку.

Кроме того, если я правильно помню, некоторые балансировщики нагрузки действительно делают это внутренне.

Вот пример / etc / hosts, чтобы проиллюстрировать мою точку зрения:

    127.0.0.1 u1.localhost u1
    127.0.0.2 u2.localhost u2
    # And if you wanted QA servers on the same host, add them to 127.0.8.0/24
    127.0.8.1 qa1.localhost qa1

Как ранее предложил @blacklotus, наиболее распространенный способ сделать это - обозначить часть вашей локальной сети как «ЛВС разработчика».

Почему бы вам не назначить несколько виртуальных IP-адресов вашему собственному серверу вместо eth0: 0, eth0: 1 и т. Д.?

Скажем, назначьте 192.168.2.10 для dev.user1 и 192.168.2.11 для dev.user2. Когда вы получаете доступ к проектам через разные IP-адреса, будет ли gethostbyaddr () соответственно возвращать имя хоста?