製品レビュー

企業ユーザーのためのSFU 3.5活用ガイダンス
―― 無償ツールでUNIX←→Windowsの相互運用を実現する ――

第3回 NISサーバとパスワード同期機能(後編)

1.NISマップの管理

たかはしもとのぶ <monyo@home.monyo.com>
2004/06/23

 前編では、「Microsoft Windows Services For UNIX Ver. 3.5」(以下SFU)におけるNISサーバ機能について解説した。今回は、前回の続きとして、NISマップの管理とパスワード同期について解説する。

NISマップの管理

 移行を行わずに新規にNISサーバを構築する場合や、移行後にNISマップの追加、変更などを行う場合は、nismapコマンドを用いて個別にNISマップにエントリを追加する。

 基本的に、この作業はGUIからは行えない。

NISマップへの追加

 「nismap add」コマンドを用いてアカウントを追加する例を次に示す。

コマンドを用いたNISマップへのエントリ追加
「nismap add」コマンドを使って、passwdマップやhostsマップへエントリを追加した例。コマンドの書式は「nismap add -e "<エントリ>" -a <NISドメイン名> <NISマップ・ファイル名>」とする。

 「nismap add」コマンドを使ってこれらのNISマップへエントリを追加した場合は、自動的にActive Directory側にも対応するオブジェクトが作成されるか、すでに存在している場合は後述するUNIX属性の値が設定される。すでにUNIX属性が設定されているオブジェクトを追加しようとした場合やActive Directory側と設定が矛盾する場合などは、競合が検出され、基本的に操作は実行されない。コマンドの詳しい使い方や競合発生時の対処などについてはドキュメントを参照してほしい。

NISマップの修正と削除

 既存のエントリを修正する場合は「nismap add」の代わりに「nismap mod」を、エントリを削除する場合は「nismap del」を実行する。実行例を次に示す。

nismapコマンドを用いたNISマップのエントリの修正と削除
nismapコマンドを使ってhostsマップのエントリを修正後、削除した例。

 -eに続いて、各々のNISマップに対応した形式でエントリの情報を記述する。この形式は、NISマップごとに固有である。modやdelを指定する場合は-kオプションに続いて検索キーを指定し、最後に対象となるマップ名を指定する。そのほかのオプションは必要に応じて適宜指定してほしい。

 標準で定義されているNISマップの一覧を次の表に挙げておく。それぞれのファイルのフォーマットについては、対応するUNIXのファイルを参照してほしい。

NISマップ名 用途
aliases 主にsendmailが使用するメールのエイリアス情報
bootparams ディスクレスクライアントが使用するブート情報
ethers イーサネットアドレスとIPアドレスの対応情報
hosts IPアドレスとホスト名との対応情報
group グループ名、GID、所属するアカウントの情報
netgroup rshやリモートマウントなどの際に用いられるグループ情報
netid SunのNIS+で使用する情報
netmasks IPサブネットごとのネットマスクの情報
networks IPサブネットとサブネット名の対応情報
passwd アカウントに関する情報
protocols プロトコル名とプロトコル番号の対応情報
Rpc rpcプログラム名と番号との対応情報
services サービス名とポート番号との対応情報
shadow アカウントとパスワード情報との対応情報
ypservers NISサーバの情報
標準で定義されているNISマップの種類

GUIからのNISマップの操作

 一部の設定については、次の画面のように、ユーザー(passwdマップ)、グループ(groupマップ)、コンピュータ(hostsマップ)のプロパティに存在する[UNIX属性]タブから参照や設定を行うことも可能である。

[UNIX属性]タブ
これはユーザーのプロパティに存在する[UNIX属性]タブの例。
  このタブから、NISマップの情報の編集を行う。
  該当エントリが所属するNISドメインの選択。複数のNISドメインを構成している場合、このユーザーが所属するNISドメインを設定する。なお値が「<なし>」の場合、そのユーザーはNIS経由で参照できない。
  NISマップ上の各種属性。次のような属性がある。
属性 意味
UID passwdマップに格納されるこのユーザーのuid
ログイン シェル passwdマップに格納されるこのユーザーのログイン・シェル
ホーム ディレクトリ passwdマップに格納されるこのユーザーのホームディレクトリ
プライマリ グループ名/GID passwdマップに格納されるこのユーザーのプライマリグループ

パスワード変更に関する注意点

 セキュリティ上の理由で、SFUのNISサーバでは、NISマップ上のパスワード情報を直接変更しても、Active Directory側のパスワード情報は変更されないか、もしくは変更自体が行われない。このためパスワードの変更は、基本的にActive Directory側で行う必要がある。

  1. Active Directory側でパスワードを変更すると、NISマップのパスワードも変更される。

  2. nismap addでActive Directoryに存在しないアカウントを新規に追加した場合、パスワードはランダムな文字列が初期値として設定されるため、Active Directory側から再設定する必要がある。

  3. すでに存在しているアカウントについて、nismap modでパスワードを変更することはできない。

  4. UNIX側からパスワードを変更した場合、NISマップ上のパスワードは変更されるが、Active Directory側のパスワードは変更されない。このためアカウントのパスワードが同期しなくなる。

 UNIX側のパスワード変更をActive Directory側に反映させる手段としては、後述するパスワード同期機能との連携が推奨されている。

NISクライアント側の設定

 NISクライアントとなるUNIXマシン側の設定は、UNIXマシンでNISサーバを構成した場合とまったく同一である。

 基本的にはいくつか設定を行ってからypbindデーモンを起動すればよいが、具体的な設定方法はOSやディストリビューションごとに微妙に異なるため、各OSやディストリビューションのドキュメントを参照してほしい。Linuxの場合は、JF(Japanese FAQ)Projectの「NISクライアントの設定」なども適宜参照するとよいだろう。以下いくつかのディストリビューションについて例を示す。

Red Hat系ディストリビューション

 Red Hat系のディストリビューションでNISクライアント機能を用いるには、

  • yp-tools
  • ypbind

というパッケージをインストールすればよい。さらに/etc/sysconfig/networkファイルに

NISDOMAIN=<NISドメイン名>

のような行を追加する。あとは、

# chkconfig ypbind on

としてypbindが自動起動するようにすればよい。

 そのほか、NISサーバが同一IPサブネット内に存在しない場合は、/etc/yp.confファイルに次のように記述する。

※/etc/yp.confの設定

domain <NISドメイン名> server <NISサーバ名>

 ここまでの設定を行うことで、次のようにypcatコマンドで情報が取得できるはずである。

※ypcatコマンドの実行例

% ypcat passwd
nistest3:iJa/W9kDv6lDY:2003:2003::/home/nistest3:/bin/tcsh

 最後に/etc/nsswitch.confファイルの必要なエントリについて、次のようにして「nis」(もしくは「compat」)というキーワードを追加する。

※/etc/nsswitch.confの設定例

passwd:         files nis
group:          files nis
shadow:         files nis
…以下省略…

 「compat」の設定を行った場合、NISを使用するためには、/etc/passwdファイルなどに特別なキーワードを記述する必要があるが、詳細はNISに関するドキュメントなどを参照してほしい。

Debian/GNU Linux 3.0(Woody)

 Woodyの場合、NISサーバ/クライアント機能を用いるには

#apt-get install nis

のようにしてnisパッケージをインストールすればよい。インストール完了後NISドメイン名を聞かれる。ここで入力を行うことで、自動的にNISクライアントとして構成される。後でドメイン名を変更する場合は、/etc/defaultdomainファイル中にNISドメイン名が記載されているのでこれを変更すること。

 最後に/etc/init.d/nisが自動起動されるように設定する。なおRed Hat系ディストリビューションの場合と同様に、NISサーバが同一IPサブネット内に存在しない場合は、/etc/yp.confファイルの設定を行う。

 以降はRed Hat系ディストリビューションの場合と同様に、ypcatコマンドによる情報取得の確認、/etc/nsswitch.confファイルの設定などを行う。


 INDEX
  [製品レビュー]企業ユーザーのためのSFU 3.5活用ガイダンス 
  第3回 NISサーバとパスワード同期機能(後編)
  1.NISマップの管理
    2.パスワード同期機能
    3.パスワード同期機能の運用とトラブル・シューティング
 
 製品レビュー


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間