Manpages

NAME

nsswitch.conf - 系 統 數 據 庫 及 名 字 服 務 開 關 配 置 文 件

DESCRIPTION

C 程 序 庫 裏 很 多 函 數 都 需 要 配 置 以 便 能 在 本 地 環 境 正 常 工 作 , 習 慣 上 是 使 用 文 件 (例 如 ’/etc/passwd’) 來 完 成 這 一 任 務 . 但 別 的 名 字 服 務 , 如 網 絡 信 息 服 務 NIS, 還 有 域 名 服 務 DNS等 , 逐 漸 通 用 起 來 , 並 且 被 加 入 了 C 程 序 庫 裏 , 而 它 們 使 用 的 是 固 定 的 搜 索 順 序 . 在 有 NYS 支 持 的 Linux libc5以 及 GNU C Library 2.x (libc.so.6)裏 , 依 靠 一 個 更 清 晰 完 整 的 方 案 來 解 決 該 問 題 . 該 方 案 模 仿 了 Sun Microsystems公 司 在 Solaris 2 的 C 程 序 庫 裏 的 方 法 , 也 沿 襲 了 它 們 的 命 名 , 稱 爲 "名 字 服 務 開 關 (NSS)". 所 用 "數 據 庫 " 及 其 查 找 順 序 在 文 件 /etc/nsswitch.conf 裏 指 明 .

NSS 中 可 用 數 據 庫 如 下 :

aliases 郵 件 別 名 , sendmail(8) 使 用 該 文 件 .

ethers 以 太 網 號

.

group 用 戶 組 ,

getgrent(3) 函 數 使 用 該 文 件 .

hosts 主 機 名 和

主 機 號 , gethostbyname(3) 以 及 類 似 的 函 數 使 用 了 該 文 件 .

netgroup 網 絡 內 主 機 及 其 用 戶 的 列 表 , 訪 問 規 則 使 用 該 文 件 .

network 網 絡 名 及 網 絡 號 , getnetent(3) 函 數 使 用 該 文 件 .

passwd 用 戶 口 令 ,

getpwent(3) 函 數 使 用 該 文 件 .

protocols 網 絡 協 議 , getprotoent(3) 函 數 使 用 該 文 件 .

publickey

NIS+及 NFS 所 使 用 的 secure_rpc的 公 開 密 匙 .

rpc 遠 程 過 程 調 用 名 及 調 用 號 ,

getrpcbyname(3) 及 類 似 函 數 使 用 該 文 件 .

services 網 絡 服 務 , getservent(3) 函 數 使 用 該 文 件 .

shadow

shadow用 戶 口 令 , getspnam(3) 函 數 使 用 該 文 件 .

下 面 是

/etc/nsswitch.conf 文 件 的 一 個 例 子 (如 果 在 系 統 中 沒 有 /etc/nsswitch.conf 文 件 的 話 , 這 就 是 缺 省 的 設 置 ):

passwd:

compat

group:

compat

shadow:

compat

hosts:

dns [!UNAVAIL=return] files

networks:

nis [NOTFOUND=return] files

ethers:

nis [NOTFOUND=return] files

protocols:

nis [NOTFOUND=return] files

rpc:

nis [NOTFOUND=return] files

services:

nis [NOTFOUND=return] files

第 一 欄 就 是 上 面 的 表 裏 所 說 的 數 據 庫 , 每 行 的 其 餘 部 分 指 明 如 何 查 找 . 對 每 個 數 據 庫 都 可 以 分 別 指 明 其 查 找 方 法 . 每 個 數 據 庫 的 配 置 規 範 包 含 兩 個 不 同 的 項 :

* 服 務 規 範 , 如 ’files’, ’db’, 或 者 ’nis’.

* 對 查 找 結 果 的 反 應 , 如 ’[NOTFOUND=return]’. 在 有 NYS支 持 的 libc5裏 允 許 服 務 規 範 ’files’, ’nis’及 ’nisplus’,此 外 , 還 可 以 對 hosts 指 明 ’dns’ 爲 額 外 服 務 , 對 passwd及 group 指 明 ’compat’, 但 不 能 對 shadow指 明 ’compat’. 在 GNU C Library裏 , 每 個 可 用 的 SERVICE都 必 須 有 文 件 /lib/libnss_SERVICE.so.1 與 之 對 應 . 在 標 準 安 裝 時 , 可 以 使 用 ’files’,’db’, ’nis’以 及 ’nisplus’. 此 外 , 還 可 以 對 hosts 指 明 ’dns’ 爲 額 外 服 務 , 對 passwd, group, shadow 指 明 ’compat’, 而 在 有 NYS 支 持 的 libc5中 , 不 支 持 最 後 一 項 服 務 . 說 明 中 的 第 二 項 使 用 戶 可 以 更 好 地 控 制 查 找 過 程 . Action項 處 於 兩 個 服 務 名 之 間 , 被 括 弧 括 着 , 常 規 格 式 如 下 :

’[’ ( ’!’? STATUS ’=’ ACTION )+ ’]’ 這 裏

STATUS => success | notfound | unavail | tryagain

ACTION => return | continue 對 關 鍵 字 的 大 小 寫 並 不 敏 感 . STATUS的 值 是 調 用 指 定 服 務 查 找 函 數 的 結 果 , 意 義 如 下 :

success 沒 有 錯 誤 發 生 , 得 到 想 要 的 結 果 . 缺 省 action是 ’return’.

notfound 查 找 順 利 , 但 是 沒 有 得 到 所 要 的 結 果 . 缺 省 action是 ’continue’.

unavail 服 務 永 久 不 可 用 . 這 可 能 意 味 着 必 要 的 文 件 不 可 用 , 或 者 ,DNS 服 務 不 可 用 或 不 允 許 查 詢 .缺 省 action是 ’continue’.

tryagain 服 務 臨 時 不 可 用 . 可 能 是 文 件 被 鎖 住 了 或 者 服 務 器 當 前 不 接 受 過 多 的 連 接 . 缺 省 action是 ’continue’. 使 用 +/-語 法 的 交 互 (compat 模 式 )無 NYS支 持 的 linux libc5沒 有 名 字 服 務 開 關 , 但 允 許 用 戶 做 一 些 簡 單 的 策 略 控 制 . 在 /etc/passwd 裏 可 以 使 用 +user或 +@netgroup條 目 (即 包 括 NIS passwd映 射 所 指 定 用 戶 ), 以 及 -user或 -@netgroup條 目 (即 不 包 括 被 指 定 用 戶 ), 還 有 + 條 目 (即 包 括 每 個 用 戶 , 除 了 NIS passwd映 射 所 排 除 的 ). 大 多 數 人 只 放 一 個 + 在 /etc/passwd 末 尾 , 以 此 包 括 NIS 的 所 有 東 西 . 對 該 情 況 , 開 關 提 供 更 快 捷 的 替 代 方 式 (’passwd: files nis’), 這 使 得 無 需 再 往 /etc/passwd, /etc/group/etc/shadow 裏 添 加 單 個 + 條 目 . 如 果 這 還 不 夠 , NSS 的 ’compat’ 服 務 提 供 了 完 全 的 +/-語 法 . 我 們 可 以 對 僞 數 據 庫 passwd_compat, group_compatshadow_compat 指 明 ’nisplus’服 務 來 覆 蓋 缺 省 服 務 ’nis’, 但 請 注 意 只 在 GNU C Library裏 可 以 使 用 僞 數 據 庫 .

文 件 FILES

名 爲 SERVICE的 服 務 是 通 過 位 於 /lib的 共 享 對 象 libnss_SERVICE.so.1實 現 的 .

/etc/nsswitch.conf 配 置 文 件

/lib/libnss_compat.so.1

GNU C Library 2.x實 現 ’compat’

/lib/libnss_db.so.1

GNU C Library 2.x實 現 ’db’

/lib/libnss_dns.so.1

GNU C Library 2.x實 現 ’dns’

/lib/libnss_files.so.1

GNU C Library 2.x實 現 ’files’

/lib/libnss_hesoid.so.1

GNU C Library 2.x實 現 ’hesoid’

/lib/libnss_nis.so.1

GNU C Library 2.x實 現 ’nis’

/lib/libnss_nisplus.so.1

GNU C Library 2.x實 現 ’nisplus’

注 意 NOTES

每 個 用 到 了 nsswitch.conf 文 件 的 進 程 只 完 整 地 讀 一 次 文 件 , 如 果 該 文 件 後 面 被 改 變 了 , 進 程 將 仍 然 使 用 原 來 的 配 置 . 在 Solaris 下 , 不 能 靜 態 連 接 使 用 了 NSS Service 的 程 序 , 但 是 在 Linux 下 , 則 毫 無 問 題 .

[中 文 版 維 護 人 ]

<mapping [AT] 263.net>

[中 文 版 最 新 更 新 ]

2000.11.11

《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :

http://cmpp.linuxforum.net

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh