nsswitch.conf ファイルの状態メッセージと動作オプションの組み合わせによって、関数の各ステップでの動作が決まります。この状態と動作の組み合わせのことを、「検索基準」と呼びます。
スイッチのデフォルト検索規準は、どのソースについても同じです。これらを上記の状態メッセージに基づいて説明すると、次のようになります。
UNAVAIL=continue。次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。次のソースがなければ「NOTFOUND」という状態メッセージを返す
NOTFOUND=continue。次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。次のソースがなければ「NOTFOUND」という状態メッセージを返す
TRYAGAIN=continue。次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行する。次のソースがなければ「NOTFOUND」という状態メッセージを返す
これらはデフォルトの検索基準であるため、自動的に表示されます。つまり、スイッチファイルで、明示的に指定する必要はありません。ほかの検索基準を明示的に指定してデフォルトの検索基準を変更するには、上記の STATUS=action という構文を使用します。たとえば、NOTFOUND 状態に対し、デフォルトの動作では次のソースに対する検索を続行します。networks など特定のタイプの情報を設定して検索すると、検索は NOTFOUND 状態で中止されます。スイッチファイルの networks の行は、次のように編集されていると考えられます。
networks: nis [NOTFOUND=return] files |
networks: nis [NOTFOUND=return] files 行は、NOTFOUND 状態に関してデフォルトでない検索基準を設定するものです。デフォルト以外の設定をするときは [ ] を使用します。
この例では、検索関数は次のような働きをします。
networks マップが見つかり必要な情報があった場合、関数は「SUCCESS」という状態メッセージを返します。
networksマップが見つからなかった場合、関数は「UNAVAIL」という状態メッセージを返しデフォルトで適切な /etc ファイルの検索を続行します。
networksマップは見つかったが必要な情報がなかった場合、関数は「NOTFOUND」という状態メッセージを返します。そして /etc ファイルの検索を続行する (デフォルトの設定) 代わりに検索を停止します。
networks マップが使用中の場合、関数は「TRYAGAIN」という状態メッセージを返し、デフォルトで適切な /etc ファイルの検索を続行します。