Man page - nsswitch(5)

Manual

NSSWITCH.CONF

NAME
DESCRIPTION
檔 案 FILES
注 意 NOTES
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :


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_compat shadow_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@263.net>

[中 文 版 最 新 更 新 ]

2000.11.11

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

http://cmpp.linuxforum.net

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