NSS(5)

名前
nss - 名前サービス切り替え (Name Service Switch) の設定ファイル

説明
パスワードやグループのデータベースなどのシステムデータベースからのデータ取得の関数の呼び出しは、 GNU C ライブラリの名前サービス切り替えの実装により処理される。 提供されている様々なサービスは個別のモジュールにより実装されており、 各モジュールは本質的に大きく異なっている。

GNU C ライブラリでのデフォルト実装は、 デフォルトでは保守的になっており、 安全でないデータは使用しない。 これはいくつかの状況、 特にデータベースが大きい場合、では非常にコストがかかることがある。 いくつかのモジュールでは、 安全であると分かっている場合、 システム管理者がショットカットを使うようにすることができる。 この前提が正しいことを保証するのはシステム管理者の責任である。

他には実装が時間を追って変化しているモジュールもある。 モジュールの実装がメモリー使用量を優先してスピードを犠牲にしていた場合、 優先度を変更すると問題が起こる場合がある。

/etc/default/nss ファイルには変数がいくつかある。 各変数は一つもしくは複数の NSS モジュールの動作を制御する。 ホワイトスペースは無視される。 '#' で始まる行はコメントとして扱われる。

現在のところ認識される変数は次の通り。

NETID_AUTHORITATIVE = TRUE|FALSE
    TRUE に設定されると、 initgroups(3) 関数の NIS バックエンドが netid.byname NIS マップからの情報を信頼できるものとして受け取る。 group.byname マップが大きい場合、 これによりこの関数を大きくスピードアップできる。 netid.byname マップの内容はそのまま使用される。 システム管理者は内容が正しく生成されていることを保証しなければならない。

SERVICES_AUTHORITATIVE = TRUE|FALSE
    TRUE に設定されると、 関数 getservbyname(3) と getservbyname_r(3) の NIS バックエンドが services.byservicename NIS マップが存在し、その情報を信頼できるものとみなす。 特に、 サービス名とサービス別名の両方に対して /proto ありと /proto なしの両方のキーが含まれているとみなす。 システム管理者は内容が正しく生成されていることを保証しなければならない。

SETENT_BATCH_READ = TRUE|FALSE
    TRUE に設定されると、 関数 setpwent(3) と setgrent(3) の NIS バックエンドは、 全データベースを一度に読み込み、 それから対応する getpwent(3) や getgrent(3) の呼び出しで一つ一つ要求を処理する。 TRUE でない場合、 getpwent(3) や getgrent(3) の各々の呼び出しで、 次のエントリーを取得するためにサーバーとのネットワーク通信が発生する。

ファイル
/etc/default/nss

例
デフォルト設定は、 以下の設定ファイルと同じである。

    NETID_AUTHORITATIVE=FALSE
    SERVICES_AUTHORITATIVE=FALSE
    SETENT_BATCH_READ=FALSE

関連項目
nsswitch.conf

この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。