我有测试代码,我想让几个主机名在测试时解析为环回。部署时,此代码将酌情使用正常的系统名称解析。测试和部署主机是最近的 linux 发行版(例如 SLES11SP1)。
我想覆盖单个进程的主机名解析,而不是超级用户。有没有办法以如此狭隘的方式操纵nsswitch
/hosts
行为?
是的,当然我可以自己覆盖主机名,但我不想这样做(除非这个功能真的不可用)。
编辑:
glibc
的HOSTALIASES
功能听起来正是我想要的——但它的可用性/有效性在我调查的主机之间似乎不一致。在某些时候,它被添加到不安全的环境变量列表中。但这是否意味着它被全局忽略或仅在 suid 二进制文件中?它仍然适用于执行getnameinfo
() 的程序吗?
更多编辑:IMO,HOSTALIAS
赢了。禁用nscd
是不尊重它的平台的一种解决方法——比如我的(SuSE)。也许他们会发布一个修复程序。