在 /etc/nsswitch.conf 文件中,什么是 db?如何编辑该 db?

在 /etc/nsswitch.conf 文件中,什么是 db?如何编辑该 db?

我的 nsswitch 文件包含以下内容

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

db值的含义是什么?例如,在协议部分我看到数据库,我认为这意味着某种数据库,但是这个数据库在哪里?它只是一个纯文本配置文件吗?如果它只是一个配置文件,为什么它不只是文件?如果它是数据库,我该如何编辑它。

答案1

db导致libnss_db被使用。从 Berkeley DB 文件中读取数据,这些文件通常存储在/var/db(/var/lib/misc在 Debian 上);对于大型 NSS 数据库,这通常比读取纯文本文件更快。

您应该能够使用 Berkeley DB 客户端修改数据库,但它们通常是根据相关源数据批量构建的。上述配置中,数据源为 中的文本文件/etc,仅供参考; DB 文件是一种用于速度的变体,使用 批量构建makedb,并不打算用作主存储。这里的文本文件/etc/protocols用于协议、/etc/services服务、/etc/ethers以太网地址、/etc/rpcRPC 程序编号。

更常见的是db用于passwdgroup数据库,作为大型远程托管用户数据库(通常使用 LDAP)的本地缓存。

相关内容