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.

C isn't that hard: void (*(*f[])())() defines f as an array of unspecified size, of pointers to functions that return pointers to functions that return void