Man page - nsswitch(5)
Manual
NSSWITCH.CONF
NAMEDESCRIPTION
檔 案 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