(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

表1●Sambaでドメインを構築する際の設定
図4●smb.confの設定例
 smbldap-migrate-accounts.pl のオプションは以下の通りである。

a:ユーザー・アカウントのみ登録
w:マシン・アカウントのみ登録
A:ユーザー・アカウント更新のためにsmbldapツールに渡すオプション
W:マシンア:カウント更新のためにsmbldapツールに渡すオプション
C:エントリが存在しない場合,新規に作成しない
U:エントリが存在する場合,アップデートしない

 例えば,新規ユーザーごとにホーム・ディレクトリを追加(-m オプション)し,また移動プロファイルは使わない場合(-F ' ')には,次のようにオプションを指定すればよい。

# smbldap-migrate-accounts.pl -A "-m -F ''" < smbpasswd.txt

●グループ情報の移行

 net group <グループ名>で取得した情報を収めたファイルに対して,smbldap-migrate-groups.plをそれぞれ実行する。

# smbldap-migrate-groups.pl < group1.txt
# smbldap-migrate-groups.pl < group2.txt
     :

●ユーザー・マップ・ファイルの作成

 Windowsからコピーしてきたusername.txtを,Sambaで使用する文字コード(coding system)に合わせるため以下のよう(EUCに)コード変換する。

# nkf -e usermap.txt > /etc/samba/usermap

●ログオン・スクリプトの移行

 ユーザーにログオン・スクリプトが設定されている場合は,WindowsのNETLOGONディレクトリにあるスクリプトをSambaサーバーの/var/samba/netlogonにコピーする。ユーザーがどのスクリプトを実行するかは,以下のように設定する。残念ながら,この設定情報をNTからSambaに移行するツールは,現在のSamba2.2系には用意されていない。

# smbldap-usermod.pl -E "logon.cmd" test

移行手順
(zM)共有データをNTからSambaへコピー

 残念ながら,Windowsの共有をSambaに移行するツールはまだ存在しない。以降のSambaの設定と併せて手作業で共有の設定を行い,データをコピーするしかない。

移行手順
(zN)NTドメインのSID(セキュリティ識別子)をSambaへコピー

 前回,NTドメインをSambaに移行するに際し,NTドメインのSID(セキュリティ識別子)をSambaにスムーズにコピーできるよう,SambaのWinbind機能について一通り解説した。NTドメインが持っているSIDをSambaマシンにコピーするには,Windows PDCが動いていて,SambaとWinbindが停止している状態で,Sambaサーバーで以下のコマンドを実行する。

smbpasswd -S -r ドメイン・サーバー名

 なお,このSIDは,ドメイン名やホスト名に依存したものであり,移行時に変更することはできないので注意していただきたい。

 Samba2.2では,これまで使用していた移動プロファイルが使用できない。これはNTサーバーとSambaサーバーの間でドメインSIDはコピーできるものの,各ユーザーやグループが持つSIDをコピーできないためだ。

 プロファイル自体は各Windowsクライアントに保存されているので,最初のログオン時にエラーが発生するが,問題なく動作するので無視していただきたい。

 なお,Samba 3.0で提供されるVIMPIREコマンドでは,PWDUMPコマンドを利用しなくてもユーザーやグループの移行が簡単に行える。しかも,各ユーザーのSIDもコピーされるので,移動プロファイルも問題なく移行できる。

移行手順
(VI)SambaマシンをLDAP用に修正し,PDCとして設定

 ユーザー情報がLinux側にコピーされたところで,Windows NTのドメイン・コントローラのPDCやBDCを停止する必要がある。ドメインSIDをSamba側にコピーしたので,Sambaをドメイン・コントローラとして起動させた後は,Windows NTのPDCやBDCが動いていてはならないのだ。

 SambaサーバーをPDC/BDCとしてドメインを構築する場合は,表1[拡大表示]に従ってPDC,BDC,メンバー・サーバーのsmb.conf設定を変更する。SambaとLDAPを利用した環境では,ユーザー情報はすべてLDAPに格納されているので,SambaのPDC,BDCといった役割を簡単に変更できる。

 このような事情から,Sambaを複数台利用する場合は,1台だけをPDCに設定し,それ以外はすべてBDCにすると良いだろう。また,SambaをPDCに設定するときはWINSサーバーにもした方が良いが,その場合にWindowsクライアントのWINS設定の変更を忘れずに実施しよう。

●smb.confの設定

 SambaサーバーをLDAPを利用するドメイン・コントローラとして動作させるには,smb.confに以下の項目を設定する(下記以外のものについては,SWATのドキュメント等を参照していただきたい)。

●ldap server

 LDAPサーバーが稼働しているホスト名を指定する。デフォルトはlocalhost(同一マシン)である。

例)ldap server = ldap1.miraclelinux.com

●ldap suffix

 アカウント検索のためのDN(Distinguished Name)を指定する。

例)ldap suffix="dc=miraclelinux,dc=com"

●ldap admin dn

 LDAP管理者のDNを指定する。これは/etc/openldap/slapd.confに指定したものと同一とする。また,この管理者のパスワードはsmbpasswdコマンド(smbpasswd -w パスワード)で設定する。

例)ldap admin dn = "cn=Manager,ou=people,dc=miraclelinux,dc=com"

●ldap filter

 sambaAccountオブジェクトクラスからログイン名,uidを検索するためにフィルタを指定する。これはデフォルトのままで使用する。

例)ldap filter = "(&(uid=%u)(objectclass=sambaAccount))"

●ldap port

 LDAPサーバーにアクセスするときのポート番号を指定する。SSLで暗号化する場合は636を使用し,暗号化しない場合は389を使用する。

●ldap ssl

 LDAPとの通信をSSLで暗号化する場合はon,しない場合はoffとする。LDAPv3 StartTLS 拡張を使用する場合はstart_tls を使用する。

 smb.confの設定例を図4[拡大表示]に示した。図4では,WindowsクライアントからSambaおよびUNIX/Linuxのパスワードが変更できるように,unix password sync関連のパラメータも設定してある。

 設定が完了したら,Sambaを起動する。

# service smb restart

 ldap admin dnパラメータのところでも述べたが,LDAP管理者のパスワードをsmbpasswdコマンドで設定することを忘れないようにすること。

# smbpasswd -w miracle

(ミラクル・リナックス 小田切 耕司)


(次回に続く)