TLDR:在nsswitch.conf中有一个db服务。那是什么类型的分贝?尼斯维奇在寻找哪条路?如何使用它来存储hosts?
为什么:如果DNS解析失败,我希望设置一个备用IP,并且我在超级用户:设置-后备-ip-地址对主机名上找到了这个答案。
这是好的,但去DNS服务器的所有时间并不是最好的,正如在这里提到的另一个答案:使用-a-静态-后备在上面的链接,并得出结论,这种退步是不可能的。
我还检查了nsswitch.conf的手册页,其中FILES部分提到了由libs定义的解析器服务:
A service named SERVICE is implemented by a shared object library named
libnss_SERVICE.so.X that resides in /lib.因此,静态回退应该是可能的,它只需要由不同的服务提供。手册页还提到了db服务:/lib/libnss_db.so.X implements "db" source.,但是我并没有真正找到关于这个db服务的任何进一步信息。
在默认情况下,Ubuntu在db中使用这个nsswitch.conf选项:
protocols: db files
services: db files
ethers: db files
rpc: db files奇怪的是,我的系统上没有像手册页中提到的/lib/libnss_db.so.X:
~$ ll /lib*/ | grep libnss
-rw-r--r-- 1 root root 38K april 7 03:24 libnss_compat-2.31.so
lrwxrwxrwx 1 root root 21 april 7 03:24 libnss_compat.so.2 -> libnss_compat-2.31.so
-rw-r--r-- 1 root root 26K april 7 03:24 libnss_dns-2.31.so
lrwxrwxrwx 1 root root 18 april 7 03:24 libnss_dns.so.2 -> libnss_dns-2.31.so
-rw-r--r-- 1 root root 54K april 7 03:24 libnss_files-2.31.so
lrwxrwxrwx 1 root root 20 april 7 03:24 libnss_files.so.2 -> libnss_files-2.31.so
-rw-r--r-- 1 root root 26K april 7 03:24 libnss_hesiod-2.31.so
lrwxrwxrwx 1 root root 21 april 7 03:24 libnss_hesiod.so.2 -> libnss_hesiod-2.31.so
-rw-r--r-- 1 root root 54K april 7 03:24 libnss_nis-2.31.so
-rw-r--r-- 1 root root 62K april 7 03:24 libnss_nisplus-2.31.so
lrwxrwxrwx 1 root root 22 april 7 03:24 libnss_nisplus.so.2 -> libnss_nisplus-2.31.so
lrwxrwxrwx 1 root root 18 april 7 03:24 libnss_nis.so.2 -> libnss_nis-2.31.so发布于 2022-07-22 23:51:18
来自这里:
db导致使用libnss_db。它从存储在Debian上的/var/db (/var/lib/misc )的伯克利DB文件中读取数据;对于大型NSS数据库来说,这通常比从纯文本文件读取数据要快。您应该能够使用Berkeley DB客户端修改数据库,但是它们通常是从相关的源数据大规模构建的。在上面的配置中,数据源是/etc中的文本文件,它们仍然是引用;DB文件是一个用于速度的变体,使用makedb批量构建,而不是作为主存储。这里的文本文件是用于协议的/etc/protocol、用于服务的/etc/services、用于以太网地址的/etc/ether、用于RPC程序号的/etc/rpc。更常见的做法是将db用于passwd和group数据库,作为大型远程托管用户数据库的本地缓存(通常使用LDAP)。
您可以通过安装makedb包来掌握libnss-db命令。如果我们看看已经安装了什么,您会发现libnss_db.so。
dpkg -L libnss-db | grep so
/lib/x86_64-linux-gnu/libnss_db-2.2.3.so
/lib/x86_64-linux-gnu/libnss_db.so.2这个包还在/var/lib/misc/Makefile上安装了一个D8。将cd导入/var/lib/misc/并运行sudo make,它将为您生成一组db文件:
$ ls /var/lib/misc/
group.db Makefile passwd.db protocols.db rpc.db services.db shadow.db您还可以手动生成一个:
$ makedb /etc/passwd ~/passwd.db
$ file ~/passwd.db
~/passwd.db: Berkeley DB (Btree, version 9, native byte-order)https://askubuntu.com/questions/1419995
复制相似问题