Networking

在 /etc/nsswitch.conf 文件中,什麼是 db,如何編輯 db?

  • July 27, 2020

我的 nsswitch 文件包含以下內容

hosts:          files dns
networks:       files

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

db值的含義是什麼?例如,在協議部分,我看到了 db,我認為這意味著這樣的數據庫,但是這個 db 在哪裡?它只是一個純文字配置文件嗎?如果它只是一個配置文件,為什麼不只是文件?如果它是一個數據庫,我該如何編輯它。

db使用的原因libnss_db/var/db從通常儲存在(/var/lib/misc在 Debian 上)中的 Berkeley DB 文件中讀取數據;對於大型 NSS 數據庫,這通常比從純文字文件中讀取要快。

您應該能夠使用 Berkeley DB 客戶端修改數據庫,但它們通常是從相關源數據批量建構的。在上面的配置中,數據源是 中的文本文件/etc,這些仍然是參考;DB 文件是用於速度的變體,使用 批發建構makedb,不打算用作主記憶體儲。此處的文本文件/etc/protocols用於協議、/etc/services服務、/etc/ethers乙太網地址/etc/rpc和 RPC 程序編號。

更常見的是db用於passwdgroup數據庫,作為大型遠端託管使用者數據庫(通常使用 LDAP)的本地記憶體。

引用自:https://unix.stackexchange.com/questions/600480