.\" $NetBSD: nsswitch.conf.5,v 1.14 1999/03/17 20:19:47 garbled Exp $ .\" %FreeBSD: src/share/man/man5/nsswitch.conf.5,v 1.10.2.1 2005/04/24 20:33:06 bz Exp % .\" .\" Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Luke Mewburn. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Luke Mewburn. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS .\" OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR .\" TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE .\" USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $FreeBSD$ .Dd April 23, 2005 .Dt NSSWITCH.CONF 5 .Os .Sh 名称 .Nm nsswitch.conf .Nd ネームサービススイッチの設定ファイル .Sh 解説 .Nm ファイルは C ライブラリでの .Xr nsdispatch 3 (ネームサービス スイッチディスパッチャ) ルーチンをどのように作動させるかを 設定します。 .Pp この設定ファイルは、host, user (password), group などに関する 情報を持つ様々なデータベースを調べるための プロセスをコントロールします。 各データベースは (ローカルファイル、DNS、 .Tn NIS のような) ソースから生成され、 そのソースを指定する順を .Nm で設定します。 .Pp .Nm の各エントリはデータベース名と、スペースで区切られた ソースのリストで構成されています。 各ソースには、リストの次のソースを使うか、現在のソースで終わりにするか 決める基準を後ろに書けます。 .\" 書けます、という言葉に optional の意味を訳出 各基準は、1 つもしくは、それ以上のステータスコードと、 そのステータスコードが発生した際に行う動作から成り立ってます。 .Ss ソース 以下のソースが実装されています: .Pp .Bl -tag -width Source -compact .It Sy ソース .Sy 解説 .It files .Pa /etc/hosts や .Pa /etc/passwd などのローカルファイル。 .It dns インターネットドメインネームシステム。 .Dq hosts や .Sq networks は、 .Sy IN クラスを使用し、その他全ては .Sy HS クラス (Hesiod) を使用します。 .It nis NIS (以前は YP) .It compat .Dq passwd と .Dq group のデータベースの .Sq +/- をサポートします。 これがある場合、エントリのソースは、これのみです。 .El .Ss データベース 以下のデータベースは、以下の C ライブラリ関数によって使用されます: .Pp .Bl -tag -width databases___ -compact .It Sy データベース .Sy 使用先 .It group .Xr getgrent 3 .It hosts .Xr gethostbyname 3 .It networks .Xr getnetbyname 3 .It passwd .Xr getpwent 3 .It shells .Xr getusershell 3 .El .Ss ステータスコード 以下のステータスコードが利用可能です: .Pp .Bl -tag -width statuscode______ -compact .It Sy ステータスコード .Sy 解説 .It success 要求したエントリが見つかりました。 .It notfound このソースには、エントリがありませんでした。 .It tryagain ソースがビジー状態です。再試行可能です。 .It unavail ソースの応答がないか、エントリが壊れています。 .El .Ss アクション それぞれのステータスコードにおいて、以下のアクションが可能です: .Pp .Bl -tag -width continue__ -compact .It Sy アクション .Sy 解説 .It continue 次のソースを試行。 .It return 現在の結果で戻る。 .El .Ss ファイルフォーマット .Nm の .Tn BNF 構文は以下の通りです: .Pp .Bl -tag -width -compact .It ::= ":" [ []]* .It ::= "[" + "]" .It ::= "=" .It ::= "success" | "notfound" | "unavail" | "tryagain" .It ::= "return" | "continue" .El .Pp 各エントリはファイル内の新しい行からスタートします。 行中の .Sq # は、行末までコメントとされます。 空行は無視されます。 行末に .Sq \e がある場合は改行を無視し、 次の行を現在の行の続きとします。 全てのエントリは、大文字と小文字を区別しません。 .Pp デフォルト基準は .Dq success の場合は return になり、それ以外の場合は continue になります。 (つまり、 .Li "[success=return notfound=continue unavail=continue tryagain=continue]" ) .Ss compat モード: +/- シンタックス 歴史的なマルチソース実装において、 .Sq + と .Sq - 文字は、ユーザパスワードと グループ情報を .Tn NIS から取り込むよう、指定するために使われます。 .Tn NIS などで配布されているソースにアクセスする別の方法を .Nm は提供しますが、ソースに単一の .Dq compat を指定すると歴史的な動作方法を提供します。 .Pp .Dq passwd_compat: source を指定すると .Sq +/- 経由でアクセスされた情報を代替の ソースに使用することができます。 この場合の .Dq source には、 .Sq dns , .Sq nis と .Sq files , .Sq compat 以外のその他のソースがあてはまります。 .Ss 注釈 歴史的な、多くのデータベースには、 .Fn getXXXent 形式の列挙関数があります。 (各サイズが不明な) データベースがローカルファイルのときは、理にかなっていますが、 多数のソースの場合は、 ほとんど意味がないか、妥当ではありません。 このインタフェースはまだ互換性のために用意されていますが、 ソースが完全なエントリを提供できないかもしれません。 または、似通った情報を保持している複数のソースを指定した場合、 重複したエントリが返されるかもしれません。 .Pp 以前の実装と、現在の実装との互換性を確実にするために .Dq compat ソースは指定するデータベースに、単独で存在しなければなりません。 .Ss デフォルトソースのリスト あらゆる設定上において 何らかの理由で .Nm が存在していないか、または 欠けていたり壊れたエントリがあった場合 .Xr nsdispatch 3 は要求されたデータベースには .Dq files のエントリをデフォルトとします。 例外は以下の通りです: .Pp .Bl -tag -width passwd_compat -compact .It Sy データベース .Sy デフォルトソースのリスト .It group compat .It group_compat nis .It hosts files dns .It passwd compat .It passwd_compat nis .El .Sh 関連ファイル .Bl -tag -width /etc/nsswitch.conf -compact .It Pa /etc/nsswitch.conf .Nm ファイルは .Pa /etc にあります。 .El .Sh 例 ホスト情報を .Pa /etc/hosts その後 DNS で検索し、ユーザ情報を .Tn NIS その後 files で検索するには以下を使用してください: .Pp .Bl -tag -width passwd: -compact .It hosts: files dns .It passwd: nis [notfound=return] files .It group: nis [notfound=return] files .El .Pp .Dq [notfound=return] の基準は、"NIS が notfound を返した場合、files は検索しない" という設定になります。 NIS サーバがダウンしている時を除いて、NIS のみを 正式な情報として取り扱います。 .Sh 注 システムが .Va NO_NIS でコンパイルされている場合 .Sq nis のエントリは外してください。 .Sh 関連項目 .Xr nsdispatch 3 , .Xr resolv.conf 5 , .Xr named 8 , .Xr ypbind 8 .Sh 歴史 .Nm ファイルフォーマットは .Fx 5.0 ではじめて登場しました。 これは .Nx 1.4 ではじめて登場した .Nx プロジェクトからインポートされました。 .Sh 作者 Luke Mewburn .Aq lukem@netbsd.org は .Tn ULTRIX .Xr svc.conf 5 と .Tn Solaris .Xr nsswitch.conf 4 マニュアルページからのアイディアを元に、 この自由に再配布可能なネームサービス スイッチの実装を記述しました。