TOP設計・移行・活用> パスワードデータベースの変換
Samba移行術
実践! Samba移行術

第1回:Samba2.2→ Samba3.0への移行
著者:オープンソース・ソリューション・テクノロジ  小田切 耕司
2005/1/17
前のページ  1  2  3   4  次のページ
パスワードデータベースの変換

   Samba 2.2では、基本的に利用されるパスワードデータベースはコンパイル時に決定されていたため、ほとんどのユーザはsmbpasswdファイル(テキストファイル)を利用しているだろう。Samba 2.xのユーザ管理データベースとしてsmbpasswdファイルを使用していて、そのままSamba3.0でもsmbpasswdを利用したい場合は、"passdb backend = smbpasswd"とすることで継続利用が可能だ。

   しかし、Samba 3.0では設定で自由にパスワードデータベースが変更できる。Samba 3.0の新機能やドメイン機能を利用する場合はsmbpasswdではなく、「TDBSAM」もしくは「LDAPSAM」に変更することが望ましい。用途は以下のように使い分けるといいだろう。

  • TDBSAM
    スタンドアロンサーバで、かつ小規模サーバの場合。(ユーザ数が200人程度まで)
  • LDAPSAM
    ドメインコントローラ、もしくは中・大規模サーバの場合。(ユーザ数が200人以上の場合。)

smbpasswd →TDBSAMの場合

   これまでsmbpasswdを利用しており、新たに「passdb backend = tdbsam」としたい場合は、以下のコマンドでデータ移行が可能である。

# pdbedit -i smbpasswd:/etc/smbpasswd -e tdbsam:/etc/samba/passdb.tdb

smbpasswd →LDAPSAMの場合

   また、Samba2.2でパスワードデータベースとしてsmbpasswd(とOSの/etc/passwd)を使用しており、Samba3.0でLDAPに変更したい場合は、既存の/etc/samba/smbpasswdや /etc/passwd ファイルからLDAPへ移行することも可能だ。

   RPMを使ってOpenLDAPをインストールすると、/usr/share/openldap/migrationディレクトリには、/etcファイルやNISなどの古い認証情報をLDAPフォーマットに移行するための一連のシェルとPerlスクリプトが含まれている。(これらのスクリプトを使用するには、システムにPerlがインストールされている必要がある。)以下、手順を説明します。

   最初にmigrate_common.phファイルを修正し、ドメインを反映させる必要がありますが、デフォルトのDNSドメインは以下のようになっている。

$DEFAULT_MAIL_DOMAIN = "padl.com";

これを、たとえば以下のように変更する必要がある。

$DEFAULT_MAIL_DOMAIN = "miraclelinux.com";

デフォルトのベースは以下のようになっている。

$DEFAULT_BASE = "dc=padl,dc=com";

これも、例えば以下のように変更する必要がある。

$DEFAULT_BASE = "dc=miraclelinux,dc=com";

次に、表5に記載されたスクリプトを使用して移行を行う。

既存のネームサービス LDAPは動作しているか 意味
/etcフラットファイル はい migrate_all_online.sh
/etcフラットファイル いいえ migrate_all_offline.sh
ネット情報 はい migrate_all_netinfo_online.sh
ネット情報 いいえ migrate_all_netinfo_offline.sh
NIS(YP) はい migrate_all_nis_online.sh
NIS(YP) いいえ migrate_all_nis_offline.sh

表5:LDAP移行スクリプト


/usr/share/openldap/migration にあるREADMEとmigration-tools.txtに、情報の移行方法に関する詳細が記載されているので、必要に応じて参照して欲しい。

   続いて以下のpdbeditコマンドを実行することで移行が実行される。

# pdbedit -i smbpasswd:/etc/smbpasswd -e ldapsam:ldap://localhost

上記のコマンドを実行するには、smb.confを、LDAPSAMを使ったPDC用に設定し、"smbpasswd -w"を実行してLDAP管理者のパスワードを設定しておく必要がある。

   またSamba2.xでLDAPを使ったPDCを構築している場合は、LDAPデータをいったんLDIFデータファイルにエクスポートし、以下のコマンド(samba-3.0.0のソースファイルの中"examples/LDAP/convertSambaAccount"コマンド)を使用することで、Samba3.0の新しいスキーマに変換できる。

convertSambaAccount --sid=<Domain SID> --input=<input ldif>
--output=<output ldif> --changetype=[modify|add]

OUTPUTで出来たLDIFファイルを、またLDAPに投入すれば移行は完了だ。実行手順は以下の通りだ。

Samba 2.xでのLDAPデータ取り出し
    「ldapsearch -x -W -D 管理者識別子 -LLL」

実行例)
# ldapsearch -x -W -D "uid=Administrator,ou=Users,dc=miraclelinux,dc=com" -LLL > samba2.ldif

ドメインSIDの確認
    以下のコマンドでSamba2.xでのドメインSIDを記録する。

# rpcclient Samba2.xのPDCマシン名 -U Administrator%パスワード -c 'lsaquery'

-Uにはドメイン管理者として登録されているユーザ(Administratorなど)を指定する。

LAPデータの変換

# convertSambaAccount --sid="S1-12345-124"
--input=samba2.ldif --output=samba30.ldif
--changetype=add

LDAPデータの投入

LDAPサーバを停止し、slapd.confのdirectoryパラメータで指定した「/var/lib/ldap」 にあるデータファイルをすべて削除する。その後LDAPサーバを起動してから、新たにデータを投入する。

実行例)
# ldapadd -x -W -D "uid=Administrator,ou=Users,dc=miraclelinux,dc=com" -f samba30.ldif

以上でユーザ情報、グループ情報に関しての移行に関しては終了だ。

前のページ  1  2  3   4  次のページ


オープンソース・ソリューション・テクノロジ株式会社 小田切 耕司
著者プロフィール
オープンソース・ソリューション・テクノロジ株式会社
小田切 耕司

早稲田大学理工学部電気工学科卒業三菱電機計算機製作所に入社し、汎用機、UNIX、Windowsの開発を経てミラクル・リナックス社へ2001年入社Sambaとは1996年からの付き合い。日本初のSamba解説本を執筆し、Samba日本語版を最初に開発した。日本Sambaユーザ会の設立にも寄与し、初代代表幹事を務める。日本Webminユーザーズグループの副代表幹事などもつとめ、最近はLinuxコンソーシアムのセキュリティ部会のリーダなどもつとめている。


INDEX
第1回:Samba2.2→ Samba3.0への移行
  Samba 2.xとSamba 3.0
  smb.confの変更
パスワードデータベースの変換
  ファイルシステム(ファイル名)の変換