web-dev-qa-db-ja.com

ユーザー固有のhostsファイルを作成するにはどうすればよいですか

共通の/ etc/hostsの代わりにユーザー固有のhostsファイルを構成することは可能ですか?.

たとえば、ユーザー「user1」がIPの名前「127.0.0.1」を取得しようとすると「dev.user1」を取得し、ユーザー「user2」が同じIPの名前を取得しようとすると「dev」を取得します。 user2 "。

4
Supratik

いいえ、ユーザーごとの/ etc/hostsファイルや/home/user1/.hostsなどを作成することはできません。

gethostbyaddr を使用しています。これは、nsswitch.confの指示に従うようにハードコードされており、それ自体がgethostbyaddrに/ etc/hostsを検索するように指示します。

127.0.0.0/8ネットワークで127.0.0.2、127.0.0.3、127.1.2.3などの追加の ループバックIP を追加してから、ローカルホスト名を次のいずれかに割り当てることができる場合があります。これらのローカルIP。これは1つの仕事で行いましたが、これがエンジニアを本当に混乱させたことを覚えています。

また、私が正しく覚えていれば、一部のロードバランサーは実際にこれを内部で実行します。

これが私のポイントを説明するための/ 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が以前に提案したように、これを行うためのより一般的な方法は、ローカルネットワークの一部を「開発者LAN」として指定することです。

3

どのような問題を解決しようとしていますか?

確かに、hostsファイルに2つの異なるエントリを含めることはできません。これらのエントリは、ユーザーによって切り替えられます。

特定の実装について質問するのではなく、何をしようとしているのかを教えていただければ、さらにサポートできる可能性があります。

代わりにeth0:0、eth0:1などでいくつかの仮想IPを自分のサーバーに割り当ててみませんか?

192.168.2.10をdev.user1に割り当て、192.168.2.11をdev.user2に割り当てます。異なるIPを介してプロジェクトにアクセスする場合、gethostbyaddr()はそれに応じてホスト名を返しますか?

1
blacklotus