tail head cat sleep
QR code linking to this page

manページ  — NSSWITCH.CONF

名称

nsswitch.conf – ネームサービススイッチの設定ファイル

内容

解説

nsswitch.conf ファイルは C ライブラリでの nsdispatch(3) [英語] (ネームサービス スイッチディスパッチャ) ルーチンをどのように作動させるかを 設定します。

この設定ファイルは、host, user (password), group などに関する 情報を持つ様々なデータベースを調べるための プロセスをコントロールします。 各データベースは (ローカルファイル、DNS、 NIS のような) ソースから生成され、 そのソースを指定する順を nsswitch.conf で設定します。

nsswitch.conf の各エントリはデータベース名と、スペースで区切られた ソースのリストで構成されています。 各ソースには、リストの次のソースを使うか、現在のソースで終わりにするか 決める基準を後ろに書けます。 各基準は、1 つもしくは、それ以上のステータスコードと、 そのステータスコードが発生した際に行う動作から成り立ってます。

ソース

以下のソースが実装されています:

ソース 解説
files /etc/hosts /etc/passwd などのローカルファイル。
dns インターネットドメインネームシステム。 "hosts" や 'networks' は、 IN クラスを使用し、その他全ては HS クラス (Hesiod) を使用します。
nis NIS (以前は YP)
compat
  "passwd" と "group" のデータベースの '+/-' をサポートします。 これがある場合、エントリのソースは、これのみです。

データベース

以下のデータベースは、以下の C ライブラリ関数によって使用されます:

データベース 使用先
group getgrent(3)
hosts gethostbyname(3)
networks getnetbyname(3)
passwd getpwent(3)
shells getusershell(3)

ステータスコード

以下のステータスコードが利用可能です:

ステータスコード 解説
success 要求したエントリが見つかりました。
notfound このソースには、エントリがありませんでした。
tryagain ソースがビジー状態です。再試行可能です。
unavail ソースの応答がないか、エントリが壊れています。

アクション

それぞれのステータスコードにおいて、以下のアクションが可能です:

アクション 解説
continue 次のソースを試行。
return 現在の結果で戻る。

ファイルフォーマット

nsswitch.conf BNF 構文は以下の通りです:

<entry> ::= <database> ":" [<source> [<criteria>]]*
<criteria> ::= "[" <criterion>+ "]"
<criterion>
  ::= <status> "=" <action>
<status> ::= "success" | "notfound" | "unavail" | "tryagain"
<action> ::= "return" | "continue"

各エントリはファイル内の新しい行からスタートします。 行中の '#' は、行末までコメントとされます。 空行は無視されます。 行末に '\' がある場合は改行を無視し、 次の行を現在の行の続きとします。 全てのエントリは、大文字と小文字を区別しません。

デフォルト基準は "success" の場合は return になり、それ以外の場合は continue になります。 (つまり、 [success=return notfound=continue unavail=continue tryagain=continue])

compat モード: +/- シンタックス

歴史的なマルチソース実装において、 '+' と '-' 文字は、ユーザパスワードと グループ情報を NIS から取り込むよう、指定するために使われます。 NIS などで配布されているソースにアクセスする別の方法を nsswitch.conf は提供しますが、ソースに単一の "compat" を指定すると歴史的な動作方法を提供します。

"passwd_compat: source" を指定すると '+/-' 経由でアクセスされた情報を代替の ソースに使用することができます。 この場合の "source" には、 'dns', 'nis' と 'files', 'compat' 以外のその他のソースがあてはまります。

注釈

歴史的な、多くのデータベースには、 getXXXent() 形式の列挙関数があります。 (各サイズが不明な) データベースがローカルファイルのときは、理にかなっていますが、 多数のソースの場合は、 ほとんど意味がないか、妥当ではありません。 このインタフェースはまだ互換性のために用意されていますが、 ソースが完全なエントリを提供できないかもしれません。 または、似通った情報を保持している複数のソースを指定した場合、 重複したエントリが返されるかもしれません。

以前の実装と、現在の実装との互換性を確実にするために "compat" ソースは指定するデータベースに、単独で存在しなければなりません。

デフォルトソースのリスト

あらゆる設定上において 何らかの理由で nsswitch.conf が存在していないか、または 欠けていたり壊れたエントリがあった場合 nsdispatch(3) [英語] は要求されたデータベースには "files" のエントリをデフォルトとします。 例外は以下の通りです:

データベース デフォルトソースのリスト
group compat
group_compat nis
hosts files dns
passwd compat
passwd_compat
  nis

関連ファイル

/etc/nsswitch.conf
  nsswitch.conf ファイルは /etc にあります。

ホスト情報を /etc/hosts その後 DNS で検索し、ユーザ情報を NIS その後 files で検索するには以下を使用してください:

hosts: files dns
passwd:
  nis [notfound=return] files
group: nis [notfound=return] files

"[notfound=return]" の基準は、"NIS が notfound を返した場合、files は検索しない" という設定になります。 NIS サーバがダウンしている時を除いて、NIS のみを 正式な情報として取り扱います。

システムが NO_NIS でコンパイルされている場合 'nis' のエントリは外してください。

関連項目

nsdispatch(3) [英語], resolv.conf(5), named(8), ypbind(8)

歴史

nsswitch.conf ファイルフォーマットは FreeBSD 5.0 ではじめて登場しました。 これは NetBSD ではじめて登場した NetBSD プロジェクトからインポートされました。

作者

Luke Mewburn <lukem@netbsd.org> は ULTRIX svc.conf(5) と Solaris nsswitch.conf(4) マニュアルページからのアイディアを元に、 この自由に再配布可能なネームサービス スイッチの実装を記述しました。

NSSWITCH.CONF (5) April 23, 2005

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

The wonderful thing about standards is that there are so many of them to choose from.
— Grace Murray Hopper