首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nsswitch.conf -名称解析选项什么是db?

nsswitch.conf -名称解析选项什么是db?
EN

Ask Ubuntu用户
提问于 2022-07-22 22:30:35
回答 1查看 255关注 0票数 0

TLDR:nsswitch.conf中有一个db服务。那是什么类型的分贝?尼斯维奇在寻找哪条路?如何使用它来存储hosts

为什么:如果DNS解析失败,我希望设置一个备用IP,并且我在超级用户:设置-后备-ip-地址对主机名上找到了这个答案。

这是好的,但去DNS服务器的所有时间并不是最好的,正如在这里提到的另一个答案:使用-a-静态-后备在上面的链接,并得出结论,这种退步是不可能的。

我还检查了nsswitch.conf的手册页,其中FILES部分提到了由libs定义的解析器服务:

代码语言:javascript
复制
  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选项:

代码语言:javascript
复制
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

奇怪的是,我的系统上没有像手册页中提到的/lib/libnss_db.so.X

代码语言:javascript
复制
~$ 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
EN

回答 1

Ask Ubuntu用户

发布于 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

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
$ ls /var/lib/misc/
group.db  Makefile  passwd.db  protocols.db  rpc.db  services.db  shadow.db

您还可以手动生成一个:

代码语言:javascript
复制
$ makedb /etc/passwd ~/passwd.db
$ file ~/passwd.db
~/passwd.db: Berkeley DB (Btree, version 9, native byte-order)
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1419995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档