/etc/nsswitch.conf:名前解決等の優先順序設定

/etc/snswitch.conf

/etc/nsswitch.confについての概要と詳細

/etc/nsswitch.confとは

/etc/nsswitch.conf は、LinuxやUNIXシステムで名前解決や認証情報の検索順序を制御するための設定ファイルです。NSS(Name Service Switch)の動作を定義し、「どのデータベースをどの順番で参照するか」を柔軟に設定できます。

主な役割

  • ユーザーやグループ、ホスト名、サービス名、パスワードなどの情報検索先を制御
  • ローカルファイル、DNS、LDAP、NIS(YP)、MySQLなど複数ソースから情報を統合
  • システム全体の名前解決や認証の挙動を簡単にカスタマイズ可能

ファイルの記述例と構成

# /etc/nsswitch.conf の例
passwd:     files systemd
group:      files systemd
shadow:     files
hosts:      files dns
networks:   files
protocols:  db files
services:   db files
ethers:     files
rpc:        files
  • 左辺: 検索対象(passwd, hosts, group, shadow など)
  • 右辺: 参照する情報源(files, dns, nis, ldap, systemd, db など)、順番に並べることで優先順位を決定

設定の具体例

  • hosts: files dns → 名前解決時にまず /etc/hosts を見て、次にDNSを参照
  • passwd: files ldap → ユーザー情報をローカルファイル、次いでLDAPで検索
  • group: files nis → グループ情報をローカル、次いでNISで検索

主な情報ソース(データベース)

  • files: /etc/ 配下のローカルファイル
  • dns: ネームサーバ(/etc/resolv.conf参照)
  • ldap: LDAPサーバ
  • nis: NIS(旧YP)
  • systemd: systemd管理リソース(ホスト名やユーザーなど)
  • db: データベース(servicesやprotocols用)

注意点

  • 優先順位や組み合わせを誤ると、名前解決や認証が正しく動作しなくなる場合があります。
  • 編集後は、各サービスやコマンド(getentなど)で動作確認を行いましょう。

まとめ

/etc/nsswitch.conf は、システムの名前解決・認証基盤の挙動を統合的にコントロールする重要な設定ファイルです。複数の情報源を使い分けたい場合や、認証連携の高度化を図る際には、その役割と記述ルールをしっかり理解しておきましょう。