我有测试代码,我希望在测试时将几个主机名解析为环回。部署后,此代码将根据需要使用正常的系统名称解析。测试和部署主机是最新的 Linux 发行版(例如 SLES11SP1)。
我想覆盖单个进程的主机名解析,而不是超级用户。有没有办法操纵nsswitch
/hosts
行为如此狭隘?
是的,我当然可以覆盖主机名本身,但我不想这样做(除非这个功能确实不可用)。
EDIT:
glibc
's HOSTALIASES
该功能听起来正是我想要的——但其可用性/有效性在我调查的主机中似乎不一致。在某个时候,它被添加到不安全环境变量列表中。但这是否意味着它在全局范围内被忽略或仅在 suid 二进制文件中被忽略?它仍然适用于执行以下操作的程序吗getnameinfo
()?
更多编辑:
国际海事组织,HOSTALIAS
轻而易举地获胜。禁用nscd
是针对不尊重它的平台的解决方法——比如我的(SuSE)。也许他们会发布修复程序。
LD_LIBRARY_PATH 获胜!
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Also:
LD_PRELOAD 技巧是什么? https://stackoverflow.com/questions/426230/what-is-the-ld-preload-trick
Also:
http://www.linuxjournal.com/article/7795 http://www.linuxjournal.com/article/7795
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)