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