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

●/etc/pam.d/system-auth

auth sufficient /lib/security/pam_ldap.so use_first_pass

などが追加されている。

 UNIX/Linuxにssh/telnetでログインして使用する場合は,以下の自動ホーム・ディレクトリ設定機能も手作業で設定するとよいだろう。

session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0022

 さらに,nscd(LDAPキャッシュ)デーモンも各マシンで起動させよう。検索結果がキャッシュされるのでアクセスが高速になる(動作させなくても使用に支障はない)。

# service nscd restart
# chkconfig nscd on

移行手順
(III)ユーザー情報,グループ情報をLDAPへ投入

 実際にWindows NTからユーザー情報やグループ情報を移行する前に,LDAPに初期データを格納しておく必要がある。

 前述のSamba-LDAPパッケージにはsmbldap-toolsが同こんされている。これはSambaとLinuxユーザーを統合管理できるツールである。これを使って,LDAPに初期データを投入する。

 それにはまず,/etc/samba/smbldap_config.pm の以下の行を環境に合わせて変更する。

$masterLDAP:LDAPサーバーのホスト名
$slaveLDAP:LDAPサーバーのホスト名
$suffix:ベース・サフィックス
$binddn:LDAP管理者DN
$bindpasswd:LDAP管理者パスワード

 内容をきっちりと読んで,上記以外でも必要に応じて設定していただきたい。続いて,以下のコマンドを実行すれば,LDAPの初期データ投入は完了である。

# smbldap-populate.pl
NTのユーザー情報をOpenLDAPへ投入

 やっと本題の,Windows NTに登録してあるユーザーをSambaに移行する作業に入る。まず,Windows NTにAdministratorでログオンする。ユーザーとコンピュータ・アカウントの情報を抽出するには,pwdump2というコマンドを実行する。

 先に挙げたSamba-LDAPのパッケージを利用した場合,/var/samba/utils/PWDUMP2ディレクトリが共有名SAMBAUTILSにあるので,それをNTの適当なディレクトリにコピーする。

●ユーザー情報の採取

 そして,コマンドプロンプト上で,pwdump2をコピーしたディレクトリに移動し,次のようにpwdump2を実行する。

C:\> cd pwdump2
C:\PWDUMP2> pwdump2 > smbpasswd.txt

 smbpasswd.txtを開き,ユーザー名とパスワードが格納されていること確認する。さらに,この中に日本語(半角カナ,全角空白も含む)が存在しないことも確認する。もし,存在した場合は,以下のような内容のマッピング・ファイルusermap.txtを作成する。

英数字ユーザー名=日本語ユーザー名

 例えば,smbpasswd.txtの中が

小田切:1234:5736282328:::::

というようになっていたら,usermap.txtの中に以下のような1行を作成する。

odagiri = "小田切"

 そして,smbpasswd.txtの日本語の小田切をodagiriに変更する。これは,現在はまだLDAPでは日本語ユーザー名が利用できないためである。Windowsクライアントから受け取った日本語ユーザー名をSmaba内部で英数字のユーザー名にマッピングして対処している(ユーザー名は英文字から始める。英文字はすべて子文字にすること)。

●グループ情報の採取

 pwdump2ではグループ情報を取得できないため,NTドメイン・サーバー上でnet groupコマンドを使用する。ただし,取得できる情報はグローバル・グループとそこに所属しているユーザーに限られる。つまり,ローカル・グループに関する情報は採取できない。

 手順は以下の通りである。まず,コマンドプロンプトを英語モードに変える,次にグループ一覧を表示させる。

C:\> US
C:\> net group

 表示された各グループに対し,次のようにnet groupコマンドを実行して,グループとそこに所属するユーザー名の情報を取得する。

C:\> net group "group1" > group1.txt
C:\> net group "group2" > group2.txt
     :

 最後に,smbpasswd.txtとusermap.txt,それにgroup*.txtをLinuxサーバーにコピーする。

●ユーザー情報の移行

 このsmbpasswd.txtを基にユーザー・アカウントを登録するには,smbldap-migrate-accounts.pl というスクリプトを使う。

 このスクリプトを使うと,1エントリずつデータが順番に登録される。デフォルトでは,LDAPにエントリが存在する場合にはデータを更新し,存在しない場合には新規に登録される。また,ユーザー・アカウントとマシン・アカウントが同時に登録されるが,これらはオプションの指定によりマシン・アカウントだけを追加するといったカスタマイズが可能だ。

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


(次回に続く)