如果我理解/etc/nsswitch.conf
正确的话,配置
hosts: files mdns4_minimal [NOTFOUND=return] dns
结果是解释/etc/hosts
、MDNS 以及最终的“常规”DNS服务器。
现在,我希望有一个选项来设置一些静态后备定义,以防所有先前的解析选项都失败。
切换 DNS 和文件可能不是一个好主意,因为它每次都会调用 DNS 服务器。
所以基本上我正在寻找一种可以在 DNS 服务器出现故障(并且显然没有匹配/etc/hosts
)的情况下起作用的解决方案。
如果该解决方案能够使每个用户都可管理文件,那就更完美了。
答案1
你不能,至少使用 NSS(名称服务切换)实现是不行的glibc
。
显然,你可以使用操作来执行服务(就像你示例中mdns4_minimal
使用的那样[NOTFOUND=return]
)。其形式如下:
[STATUS=ACTION]
前面带有!
将否定状态。
可以STATUS
是以下四个中的任意一个:
- 成功
- 未找到
- 不可用
- 再试一次
可以ACTION
是以下两种中的任意一种:
- 返回
- 继续
这里RETURN
将返回结果,而无需查找任何进一步的查找函数,并将CONTINUE
继续进一步查找。没有办法提及要回退的文件。
你基本上是在寻找类似的东西:
hosts: files mdns4_minimal [NOTFOUND=return] dns [NOTFOUND=/read/for/this/file]
这是不可能的。
简而言之,您正在寻找不存在ACTION
的nsswitch
。