!==
!== NISPLUS.txt
!==
寄稿者: TAKAHASHI Motonobu <monyo@home.monyo.com>
作成日:	1999/02/21

主題:	Samba での NISPLUS の使用
============================================================================

  NIS+ (NISPLUS) は, Sun が NIS に変わるディレクトリサービスとして 
Solaris に実装しているもので, 現在は HP-UX や Linux 等でサポートされて
いる。

  Samba-2.の場合, NIS+ は, 大きく以下の 3 つの用途に使用できる。ちなみ
に Samba-1.x では, (1) の目的にしか使用できない。

(1) nis homedir を指定した時に参照する automount の map データベースと
  して使用する。

(2) security = user 等を指定した時に参照する, ユーザ情報データベースと
  して使用する。

(3) ドメインコントローラとして使用する際のユーザ情報データベースとして
  使用する。

  以下, 順に説明を行う。ただし, (2), (3) はサポートする機能に差異が見
られるだけで, 使用するデータベース自体は同一である。

nis homedir の設定方法
--------------------------------------
  これは, samba-1.9.18p10 での NISPLUS オプションと同等の機能である。
  この機能を使用する為には, 以下のオプションを付けて configure しなけ
ればならない。

  --with-automount --with-nisplus-home

また, smb.conf には, グローバルセクションに以下の記述が必要である。

  nis homedir = yes

更に, Windows 9x のドメインコントローラとして必要な設定が幾つか必要で
ある。詳しくは smb.conf(5) を参照の事。これ以外に, 関係する Samba マシ
ンは NIS+ ドメインに所属しており, NIS+ に関する設定は正しく行われてい
る必要がある。
  今回は関係するパラメータを以下のように設定した。

  (1) ログオンマシン(仮に hostA とする)
  workgroup = DOM
  domain logon = yes
  security = user
  nis homedir = yes
  [netlogon] 共有の作成
  NIS+ のドメインに所属

  (2) ホームディレクトリサーバ(仮に hostB とする)
  hostA と同じ NIS+ ドメインに所属
  ユーザのホームディレクトリを持つ。

  auto_home.org_dir は, 例えば以下のように記述されている。

  user1		hostB:/usr1/home/user1
  user2		hostB:/usr1/home/user2

  その他, NIS+ 的には, 全ての設定が正しく行われているものとする。
  また, hostB の smb.conf では, user1 や user2 というアカウントで 
Windows クライアントから接続できる設定になっているものとする。

  ここで, Windows 95 の "Microsoft ネットワーククライアント" のプロパ
ティで, "Windows NT のドメインにログオンする" をチェックして, 起動する。
  ログオンプロンプトで, ドメイン "DOM", ユーザ "user1" でログオンする。
  その後, コマンドプロンプトで, 以下のようにコマンドを入力する。

  net use u: /home

  hostB の設定によっては, パスワードの入力を求められる可能性があるが, 
接続に成功すると, u ドライブは,  \\hostB\user1 にマッピングされている
事が確認できる。

  設定が有効に働いている事を確認する為には, hostA で   

  nis homedir = no

として, 再度同様の事を行えば良い。
  この場合, u ドライブは \\hostA\user1 に接続される。

security = user での設定方法
--------------------------------------
  この機能は, smbpasswd を参照しようとした時に, smbpasswd ファイルの
代わりに, NIS+ テーブルの smbpasswd.org_dir を参照するように設定するも
のである。したがって, 以下の設定を行えば security = user 以外の場合で
も, smbpasswd を参照する場面では, 同様に機能する。
  この機能を使用する為には, 以下のオプションを付けて, configure しなけ
ればならない

  --with-nisplus

以後設定に付いて述べる。ただし NIS+ に関する用語などの解説は特に行って
いない。

(1) smbpasswd の移行
  以下の作業は, テーブルを作成する権限のある principal で作業を行う必
要がある。
  まず

  source/script/mknissmbpwdtbl.sh

を実行して, NIS+ ドメインに smbpasswd というテーブルを作成する。
  次に, Samba-2 形式の smbpasswd ファイルを NIS+ テーブルにロードする。

  cat smbpasswd | source/script/mknissmbpasswd.sh

  また, デフォルトでは, smbpasswd.org_dir は owner と smb という NIS+ 
グループからしかアクセスできない。従って, アクセス権を緩和するか, 必要
な場合は, smb.groups_dir に, 必要な principal を加える必要がある。
  一般的には, NIS+ ドメインのマスタサーバで作業を行うと思われるので, 
マスタサーバ以外のサーバから smbpasswd.org_dir を参照する場合は, その
マシンの principal (unix.XXX@domain. 形式のもの) を nisgrpadm コマンド
などを用いて smb.groups_dir のメンバに加える。

(2) smb.conf の修正

  smb passwd file = smbpasswd.org_dir

のように修正する。該当のテーブルを正しく指定できるのであれば, 他の書き
方でも構わない。当然

  encrypt passwords = yes

にしないと, smbpasswd テーブルは参照されない。

(x) security = server , security = domain の場合の特記事項
  上記の設定を行った場合, security = server や security = domain の場
合でも, 本来 smbpasswd を参照する場面では, smbpasswd.org_dir を参照す
る事になる。
  しかし, security 設定を上記のようにした場合, MACHINE.SID や security 
= domain の場合の [DOMAIN].[MACHINE].mac 等を作成する時も smb passwd
file の設定が参照されてしまう。
  このため, 例えば samba をデーモンとして起動する時等,  / がカレントディ
レクトリになっている状態で起動されている場合, MACHINE.SID ファイルが
/smbpasswd.org_dirMACHINE.SID として作成されてしまい, 更に 
/smbpasswd.org_dir というディレクトリが作成されてしまうなどの仕様上の
不具合がある。
  機能的には問題なく動作するので, 上記の仕様さえ我慢すれば, security = 
server や security = domain でも, NIS+ テーブルを使用する事は可能であ
る。


ドメインコントローラとして使用する際のユーザ情報データベースとして使用する
--------------------------------------

(未確認)

期待する事
--------------------------------------

(1) nsswitch.conf への対応
(2) smb passwd file が MACHINE.SID 等のファイルの置場所も指定してしま
  う為発生するファイル配置場所の不具合の修正。