nsswitch.conf ファイルの状態メッセージと動作オプションの組み合わせによって、ルーチンの各ステップでの動作が決まります。状態と動作を組み合わせて、「検索基準」を構成します。
スイッチのデフォルトの検索基準は、どのソースについても同じです。これらを上記の状態メッセージに基づいて説明すると、次のようになります。
UNAVAIL=continue。次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行します。次のソースがなければ、「NOTFOUND」という状態メッセージを返します。
NOTFOUND=continue。次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行します。次のソースがなければ、「NOTFOUND」という状態メッセージを返します。
TRYAGAIN=continue。次のソース (nsswitch.conf ファイルに指定されたもの) を使用して検索を続行します。次のソースがなければ、「NOTFOUND」という状態メッセージを返します。
前に示した STATUS=action 構文を使用することで、ほかの検索基準を明示的に指定してデフォルトの検索基準を変更できます。たとえば、NOTFOUND 状態に対し、デフォルトの動作では次のソースに対する検索を続行しますが、NOTFOUND 状態の場合に検索を停止するように networks の設定を変更するには、スイッチファイルの networks 行を編集します。この行を次のようにします。
networks: nis [NOTFOUND=return] files |
networks: nis [NOTFOUND=return] files 行は、NOTFOUND 状態に関してデフォルトでない検索基準を設定しています。デフォルト以外の設定をするときは [ ] を使用します。
この例では、検索ルーチンは次のような働きをします。
networks マップが見つかり必要な情報があった場合、ルーチンは「SUCCESS」という状態メッセージを返します。
networks マップが見つからなかった場合、ルーチンは「UNAVAIL」という状態メッセージを返し、デフォルトで適切な /etc ファイルの検索を続行します。
networksマップは見つかったがマップの中に必要な情報がなかった場合、ルーチンは「NOTFOUND」という状態メッセージを返します。そして /etc ファイルの検索を続行する (デフォルトの設定) 代わりに検索を停止します。
networksマップが使用中の場合、ルーチンは TRYAGAIN という状態メッセージを返し、デフォルトで適当な /etc ファイルの検索を続行します。
nsswitch.conf ファイル内の検索は、項目の記載順に実行されます。ただし、passwd -r repository コマンドを使用して特に指定しない限り、パスワードの更新は逆順で実行されます。詳細は、「スイッチファイルとパスワード情報」を参照してください。