我的 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/rpc
RPC 程序编号。
更常见的是db
用于passwd
和group
数据库,作为大型远程托管用户数据库(通常使用 LDAP)的本地缓存。