テスト中にいくつかのホスト名をループバックに解決したいテストコードがあります。デプロイされると、このコードは、必要に応じて通常のシステム名解決を使用します。テストおよび展開ホストは、最近の Linux ディストリビューション (SLES11SP1 など) です。
スーパーユーザーにならずに、単一プロセスのホスト名解決をオーバーライドしたいと思います。そのような狭い方法でnsswitch
/動作を操作する方法はありますか?hosts
はい、もちろん、ホスト名自体をオーバーライドすることもできますが、(この機能が実際に利用できない場合を除いて) したくないと思います。
編集:
glibc
のHOSTALIASES
機能はまさに私が望んでいるように思えますが、その利用可能性/有効性は私が調査したホスト間で一貫していないようです. ある時点で、安全でない環境変数のリストに追加されました。しかし、それはグローバルに無視されるのか、それとも suid バイナリでのみ無視されるのか? getnameinfo
()を行うプログラムでも機能しますか?
詳細編集:IMO、HOSTALIAS
勝ちます。無効nscd
にすることは、それを尊重しないプラットフォームの回避策です-私の(SuSE)のように。そして多分彼らは修正をリリースするでしょう。