●/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にエントリが存在する場合にはデータを更新し,存在しない場合には新規に登録される。また,ユーザー・アカウントとマシン・アカウントが同時に登録されるが,これらはオプションの指定によりマシン・アカウントだけを追加するといったカスタマイズが可能だ。