MIRACLE

メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

テクノロジー情報

技術フォーラム


Samba 3.0解説

Linux magazine 2003年12月号掲載
※掲載記事の内容とは若干異なります。

第1章 Samba3.0の導入
Samba3.0の概要

2003年9月25日、SambaのメジャーバージョンアップとなるSamba3.0.0がSamba Teamより正式リリースされました。前バージョンといえるSamba2.2.0が公開されたのが、2001年4月ですので、Samba3.0は約2年半ぶりのメジャーバージョンアップとなります。Samba2.2のマイナーバージョンアップでもさまざまな機能強化が行われてきましたが、今回のSamba3.0は実装も含めてSamba2.2から大きく変更されました。

Samba3.0.0のリリースノートから、主要な機能強化を抜粋すると、以下のような項目があげられています。

  • Active Directoryサポート

    Active Directoryのメンバーサーバとなる機能のみ。

  • UNICODE通信サポート
  • 柔軟性の増した認証システム
  • netコマンドの新規追加
  • Windows NT4.0からのアカウント移行ツールのサポート
  • NTドメインとの信頼関係の構築可能

これらの機能のターゲットは、より大規模な環境においてSambaを導入するために必要とされてきた機能といえます。したがって、個人ユーザレベルでSamba3.0にバージョンアップするメリットはそれほど感じないかもしれませんが、組織内のファイルサーバやドメインコントローラとして導入する場合には、非常に有用な機能が追加されたいえます。

【図1-1】 Samba3.0の利用例

そこで、Samba3.0を実際に導入したいと考えているユーザのために、Samba2.2から変更された点を中心に、Samba3.0の具体的な利用方法について、解説していきます。 本稿では、これまでSamba2.2を利用してきたユーザのための解説を前提としているため、Samba2.2から変更されていない点に関しては詳細な説明は行いません。 基本的な設定などは必要に応じて日本Sambaユーザ会(http://www.samba.gr.jp)などから提供されているSamba2.2のドキュメントなどを参照してください。

Samba3.0のインストール

Linuxディストリビューションでは、SambaはRPMなどのパッケージ形式で提供されていますが、今回はSambaをソースからインストールする方法で説明を行ないます。現在、Samba3.0は活発に開発が行われていて、頻繁にバージョンアップされていますので、ソースから導入する方法を覚えておけば、最新版を試しやすくなります。今回は、MIRACLE LINUX Standard Edition V2.1でインストールを行ないました。

ライブラリの導入

Samba3.0は、文字コードの変換にiconv()を利用します。iconvライブラリは、glibcに含まれているので改めて導入する必要は無いように思えますが、実際には日本語版Windowsの文字コードであるCP932とUnicode間のマッピングがWindowsとLinuxで異なるため、Sambaの利用時に問題が生じます。

この問題を解決するために、glibcとlibiconv用のパッチが森山氏により提供され、glibcの2.3.2以降に取り込まれています。しかし、MIRACLE LINUX Standard Edition V2.1をはじめとして、現時点で利用可能なディストリビューションのほとんどで、この修正は取り込まれていませんので、ユーザが各自で導入する必要があります。 導入方法としては、glibcを修正する方法と、パッチを適用したlibiconvを導入する方法がありますが、今回は他のアプリケーションへの影響が少ないlibiconvを導入する方法を説明します。

iconv、libiconvのパッチ

まず、森山氏のページより、libiconv-1.8-cp932-patch.diff.gzをダウンロードします。libiconvは http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz よりダウンロードしてください。

libiconvの導入は、【リスト1-1】にしたがって行ってください。導入したlibiconvのライブラリは/usr/local/配下にインストールされます。

Samba3.0.0のコンパイル

LDAPを利用するためにはopenldap-dev、Active Directoryを利用するには、krb5-libs、krb5-devパッケージが必要ですので、Sambaのコンパイル前に、パッケージがインストールされているかどうか確認しておきます。

次にlibiconvライブラリを正常にリンクするためにBugzillaに登録されているパッチ(https://bugzilla.samba.org/show_bug.cgi?id=570)を適用してから、configureスクリプトを生成し直します。

MIRACLE LINUX V2.1では、autoconf-2.53をインストールする必要がありますので、autoconf253-2.53-3.noarch.rpmを先にインストールしておきます。

注意: samba-3.0.2ではlibiconvのリンクの問題は修正されているため、上記パッチの適用が不要であり、あわせてautoconfのインストールも不要となります。

次にconfigureを行いますが、本ドキュメントで説明している機能に関しては、特にオプションを付ける必要はありませんが、SWATの認証のために、--with-pamを追加すると良いでしょう。
configureのオプションは、"./configure --help"で確認することができます。また、samba-3.0.0ではコンパイルオプションにデフォルトで -g が含まれており、生成される実行プログラムのサイズが大きくなりますので、make時にCFLAGSを指定してコンパイルを行います。

注意: samba-3.0.2では-gオプションは含まれませんので、CFLAGSを指定する必要はありません。

最後にrootユーザで、"make install"を行うと、実行プログラムが /usr/local/sambaにインストールされます。

リスト1-2】 Samba3.0のコンパイル

smb.confの設定

Sambaの設定は、smb.confファイルで行います。
ソースからインストールした場合は、/usr/local/samba/lib/smb.confに作成されます。 RPMパッケージの場合は、/etc/samba/smb.confとなります。Samba3.0を日本語環境で利用する場合に設定すべきパラメータは次のものがあります。

  • unix charset

    Samba経由でLinuxに作成するファイル名のエンコーディングを指定します。EUCJP-MSを推奨します。

  • dos charset

    Windowsのファイル名のエンコーディングを指定します。日本語環境では、CP932を指定します。

  • display charset

    SWATなどの表示で用いられるエンコーディングを指定します。CP932を推奨します。

注意: Samba2.2のclient code pageや、coding systemのパラメータは削除されました。

それ以外の基本的な設定はSamba2.2と同じです。利用できないパラメータが含まれていないかどうかは、testparmコマンドを使うと確認できますので、設定後には必ずtestparmで確認しましょう。
smb.confに設定可能なパラメータは大変多いため、詳細に関してはsmb.confのマニュアルを参照してください。

リスト1-3】 smb.confの基本設定(サンプル)

Sambaサーバの動作確認

前述の基本設定で、Sambaサーバをファイルサーバとして利用可能になりましたので、smbdとnmbdを起動しましょう。
Sambaにアクセスするためには、Samba用のユーザアカウントを作成しなければなりません。まずLinuxのユーザアカウントを作成した後で、pdbeditコマンドに-aオプションを指定してSamba用のユーザアカウントを作成します。これでファイルサーバとしてアクセス可能になりますので、smbclientや、Windowsからアクセスして動作していることを確認します。

リスト1-4】 Sambaサーバの動作確認

【画面1-2】 WindowsからSambaサーバにアクセス
画面イメージ

グループマッピング機能

Samba3.0では、WindowsのグローバルグループとLinuxのグループをマッピングすることが可能です。
グループのマッピングは、netコマンドのgroupmapを利用します。groupmapには、add、delete、modify、listの操作があり、さらにマッピング対象を指定するために、ntgroup、unixgroup、sid、ridを指定することができます。

リスト1-5】にはWindowsの"MIRACLE TEAM"グループにユーザsuzukiを所属させる例を載せました。Windowsから確認すると、画面 1-3 のようにMIRACLE TEAMグループが表示されます。

【画面1-3】 グローバルグループの利用
画面イメージ
ページトップへ

第2章 Windowsドメインの構築

Windowsサーバは、ドメイン管理機能を提供します。ドメインを構築することでユーザ認証の処理をドメインコントローラと呼ばれるサーバに統一することができ、ユーザ管理の一元化が可能になるため、会社などの組織においては、ドメイン運用を行うことで、ユーザ管理コストの低減というメリットがあります。

Windowsの提供するドメイン管理機能は、WindowsNT 4.0のドメイン管理機能(NTドメイン)と、Windows 2000 Server以降のActive Directory機能の2種類があります。

Sambaでは、Samba2.2からドメイン・コントローラの機能がサポートされていますが、Samba3.0ではドメイン関係の機能が特に強化されています。 Samba3.0のドメインコントローラ機能は、NTドメイン相当であり、Active Directoryサーバの機能は提供しません。
しかしLDAPサーバとの連携や、Samba3.0で新たに追加されたドメインの信頼関係機能などを組み合わせることで、Samba2.2よりも大規模で柔軟なドメイン管理機能を実現しています。

【図2-1】 Samba3.0のドメイン関連機能

この章では、Samba3.0によるドメインコントローラ構築の基本設定を説明し、さらにLDAPサーバと連携するドメインコントローラの構築方法について解説します。

ドメイン・コントローラの基本設定

ドメイン・コントローラには、プライマリ・ドメイン・コントローラ(PDC)と、バックアップ・ドメイン・コントローラ(BDC)の2種類があります。
PDCはSAMと呼ばれるアカウント情報をBDCに複製しますが、Samba3.0ではWindowsとのSAMの複製はサポートしていません。このため、Samba3.0とWindowsを混在した形で、PDCとBDCを構築することはできません。

まずは、Samba3.0をPDCとして構築するための設定を【リスト2-1】を参照しながら説明します。Samba3.0をPDCとして構築するためには、[global]セクションに次の設定を行う必要があります。


  • os level

    ローカルマスターブラウザ(LMB)機能(注釈1)を提供するマシンを決定するときの優先順位を決定するためのパラメータとして利用されます。PDCになっているWindows 2000 Serverでは"32"が設定されています。SambaサーバをPDCとして構成するときは、"32"以上の数値を設定します。

  • preferred master

    Sambaのデーモン起動時に、LMB機能を選定する処理を実行するためのパラメータです。ドメインコントローラは、LMB機能を提供する必要があるため、"yes"を設定します。

  • domain master

    複数のサブネット間でブラウズリストを交換するためのドメインマスターブラウザ(DMB)機能を提供するためのパラメータです。DMB機能を提供するサーバは、サブネット内のLMBとブラウズリストと呼ばれるコンピュータ一覧を交換しながら、ネットワーク全体のコンピュータ一覧情報を構築します。PDCを構築するときには、"yes"を設定します。

  • security

    Sambaのユーザ認証の形態を設定するパラメータです。ドメインコントローラとして構成するときは、"user"を設定します。

  • encrypt passwords

    "yes"を設定すると暗号化したパスワードで認証を行ないます。Samba3.0ではデフォルトで"yes"となっています。

  • domain logons

    ドメインログオン機能を提供するためのパラメータです。PDCでは"yes"を設定します。

  • passdb backend

    WindowsのSAMに相当するアカウント情報を管理するためのバックエンドデータベースの形式を指定します。smbpasswd, tdbsam, ldapsamなどから選択することが可能です。
    Samba2.2では、コンパイル時の指定により、smbpasswd形式か、ldapsam形式のどちらか一方しか選択できませんでしたが、Samba3.0では、このパラメータを設定することにより複数のバックエンドデータベースを利用することが可能となりました。

    Samba3.0でPDCとBDCの構築を行うときは、アカウント情報の複製を実現するために、LDAPのレプリケーション機能を利用することが推奨されており、このときには"ldapsam"を設定することになります。

    また、Sambaのドキュメントによるとユーザ数が250以上であれば、スケーラビリティの観点からldapsamを利用するように推奨されています。
    しかし、LDAPサーバの構築は複雑ですので、まずはPDCの基本設定を説明するために、バックエンドとしてtdbsamを利用してPDCを構築する方法について説明します。なお、tdbsam形式には、smbpasswd形式よりも多くのパラメータをユーザごとに設定できるというメリットがあります。したがって、パラメータとして"tdbsam"を設定します。

  • admin users

    ユーザのWindowsクライアントをドメインに参加させるときには、ドメイン 管理者のユーザ名とパスワードが必要になります。
    本来は、ドメイン参加時の操作はrootのみでしか行うことができませんが、 ドメイン参加の操作のためにrootユーザを利用することは避けたいことも 多いと思います。
    このような場合、このパラメータにユーザ名を指定しておくことで、 root以外のアカウントでドメイン参加が可能になります。
    また、"@グループ名"の形式で、グループを指定することもできます。
    後程、説明しますが、このパラメータに指定したドメイン管理者のアカウントを 作成することも忘れないようにしましょう。

  • server schannel

    ドメインのメンバに対してデジタル署名を行った通信を可能にします。
    Samba2.2では、Windows XP Professionalをドメインメンバにしたときに、Windows XPのローカルセキュリティ設定の「ドメインメンバ:常にセキュリティ チャネルのデータをデジタル的に暗号化または署名する」という項目を無効にしなければ、Sambaのドメインに参加できませんでした。
    Samba3.0では、このパラメータを"auto"にしておけば、Windows XPの設定変更は不要になります。なお、デフォルトでは"auto"になっているので、明示的に設定する必要はありません。


以上の設定を行ってSambaを起動すれば、Samba3.0をPDCとして利用することができます。ここでは、さらにいくつかのドメイン管理機能の利用を紹介しておきます。


  • logon home

    ドメインログオンするユーザのホームディレクトリを指定します。

  • logon drive

    ドメインログオン時に、ホームディレクトリをネットワークドライブとして接続するドライブレターを指定します。"Z:"や"U:"などを指定します。

  • logon path

    ユーザの移動プロファイルを格納する場所を指定します。移動プロファイルを利用すると、ドメインに所属するどの端末でも同じプロファイルを利用することが可能になりますが、ログオン時にプロファイルの転送が発生して、ログオンに時間がかかったりすることもあります。

    通常は、"\\%N\%U\profile"など、%Uマクロを利用して、ユーザごとに異なるディレクトリとなるように設定します。移動プロファイルを利用しないときは、"logon path = "と何も指定しない設定を明示的に設定することに注意しましょう。

  • logon script

    ユーザがドメインにログオンしたときに実行するログオンスクリプトを指定します。ログオンスクリプトは、改行がCR/LFとなっているDOSの書式で作成し、NETLOGON共有のディレクトリに配置しておきます


PDCの起動

これらの設定を完了したら、ユーザに提供する共有フォルダや、共有プリンタの設定を行っておきます。profile用の共有や、NETLOGON共有のディレクトリなども忘れず作成しておきましょう。

全ての設定を完了したら、smbdとnmbdを起動します。このとき、ネットワーク内に同じドメイン名が設定されたドメインコントローラが稼働していると、そのドメインコントローラの動作に影響を与えてトラブルのもととなるので、ドメイン名の設定に注意しましょう。

ユーザ管理

ユーザ情報の管理は、smbpasswdコマンド、pdbeditコマンドのどちらかを利用します。バックエンドデータベースとしてtdbsam形式を選択したときには、smbpasswdで設定できないパラメータもありますので、ユーザ管理にはpdbeditコマンドを利用しましょう。

  1. ユーザアカウントの作成

    tdbsam形式で運用するときには、Linuxのuseraddコマンドでユーザアカウントを作成してから、Sambaのユーザアカウントを作成します。Sambaのユーザアカウント作成は、pdbeditに-aオプションを指定し、ユーザの初期パスワードを設定します。
    pdbeditコマンドを利用すると、-fオプションでFull Nameの設定を行ったり、-pオプションでプロファイルの格納パスを指定することができます。

    logon pathや、logon homeのデフォルト値は、smb.confに設定したパラメータが設定されます。

  2. ユーザアカウントの削除

    pdbeditに-xとユーザ名を指定して、ユーザアカウントを削除することができます。

  3. ユーザアカウントの確認

    pdbeditに-Lオプションを指定すると、登録されているユーザ一覧を取得することができます。
    pdbeditに-Lと-vオプションを指定すると、それぞれのユーザアカウントの詳細情報を一覧で取得することができます。特定のユーザの詳細情報だけ取得したいときには、さらにユーザ名を付けることで可能です。
    さらに-wオプションを指定することで、smbpasswd形式でユーザアカント情報を出力することも可能です。

  4. ユーザパスワードの設定

    ユーザアカウント作成後のユーザパスワードの変更は、従来通りsmbpasswdコマンドを用います。

リスト2-2】 ユーザアカウントの管理

ドメイン管理者の作成

smb.confの"domain admin"パラメータで指定したドメイン管理者を作成し、パスワードを設定しておきます。

リスト2-3】 ドメイン管理者の登録

マシンアカウントの登録

ユーザのクライアントをドメインに参加させるには、マシンアカウントをドメインに追加しなければなりません。ただし、クライアントがWindows95/98/Meの時は必要ありません。

ユーザアカウントと同様で、最初にuseraddコマンドでコンピュータ名をLinuxのユーザ情報に追加します。このときには、ユーザ名として'コンピュータ名$'を登録します。続いて、pdbeditコマンドで、-mオプションを指定してマシンアカウントを登録します。

リスト2-4】 マシンアカウントの登録

Windowsクライアントの操作

マシンアカウントの登録が完了すれば、それぞれのクライアントをドメインに参加させることが可能になります。Windows XP Professionalの場合は、次の操作を行ってドメインに参加します。

  1. 「コントロールパネル」の「システム」から、「コンピュータ名」のタブを選択します。

    【画面2-1】 ドメインへ参加

  2. 「変更」をクリックして、ドメイン名を入力します。

    【画面2-2】 ドメイン名の入力

  3. Sambaに設定したドメイン管理者のユーザ名とパスワードを入力します。

    【画面2-3】 ドメイン管理者の入力

  4. ドメイン参加に成功したメッセージが表示されます。

    【画面2-4】 ドメイン参加に成功

以上の操作を、ドメインに参加する各クライアントごとに実施してください。

ユーザのパスワード変更

ユーザは、ドメインログオンしているWindowsクライアントから、パスワードの変更を行うことができます。ドメインログオンしている状態で、「CTRL」+「ALT」+「DELTE」を同時に押し、画面2-5を表示します。

【画面2-5】 パスワードの変更

「パスワードの変更」を選択し、「古いパスワード」、「新しいパスワード」、「新しいパスワード確認入力」にそれぞれパスワードを入力します。パスワードが変更されれば、画面2-6が表示されます。

【画面2-6】 パスワード変更に成功

ページトップへ

第3章 信頼関係の構築

Samba3.0の新機能として、ドメイン間の信頼関係の構築が可能になりました。ドメイン間で信頼関係を結ぶことによって、それぞれのドメインに登録されたユーザが、互いのドメインのリソースを利用可能になります。

信頼関係の構築

コンピュータ名がSAMBAPDC、ドメイン名がSAMBADOMとして、PDCになっているSambaサーバに登録されているユーザが、Windows NT4.0で構築されたドメイン(ドメイン名:NTTEST) のリソースを利用可能にするためには、次の手順にて「信頼される側(trusted)のドメイン」アカウントを作成しなければなりません。

  1. リモートのドメイン名(NTTEST)を用いて、Linuxのユーザアカウントを作成します。
  2. smbpasswdコマンドの-iオプションを指定して、trustedドメインアカウントを作成します。このときに要求されるパスワードは任意に設定して構いませんが、後程信頼関係を結ぶ操作で必要となります。
  3. trustedドメインアカウントをpdbeditコマンドで確認して、Iフラグが設定されていることを確認します。

リスト3-1】 trustedドメインアカウントの作成

Windows NT4.0 Serverの操作

Windows NT4.0 Serverのユーザマネージャーを起動し、「原則」→「信頼関係」を選択します。

【画面3-1】 ユーザマネージャーの起動

「信頼される側のドメイン」の「追加」ボタンをクリックすると、アカウント名とパスワードの入力画面が表示されますので、Sambaのドメイン名と、trustedドメインアカウント作成時に設定したパスワードを入力します。

【画面3-2】 ドメインの信頼関係の確立

信頼関係の確立に成功すると、成功したメッセージが表示されます。

【画面3-3】 信頼関係の成立

双方向の信頼関係

信頼関係を相互に結ぶためには、「信頼する側(trusting)のドメイン」としてSambaのドメインを登録しなければなりません。
ドメインを追加します。「追加」ボタンをクリックすると、ドメイン名と、パスワードの入力画面が表示されるので、Sambaのドメイン名と、任意のパスワードを入力します。

【画面3-4】 Sambaドメインを信頼

「信頼する側のドメイン」にSambaのドメインを追加したら、Sambaサーバ上で、netコマンドを使用して、信頼関係を結ぶ作業を行います。
コマンド実行時に要求されるパスワードには、「信頼する側のドメイン」の操作で設定したパスワードを指定します。信頼関係が確立されると、「Success!」のメッセージが出力されます。

リスト3-2】 netコマンドによる信頼関係の確立

winbindの導入

前述の操作で、ドメイン間の信頼関係を結ぶことができましたが、実際に信頼関係を利用してSambaサーバで別ドメインのユーザ認証を行おうとすると、ユーザ認証に失敗します。
これは、別ドメインのNT Serverに登録されたユーザのLinuxアカウントが、Samba側に登録されていないためです。このままでは、せっかく信頼関係を結んでも、それぞれのドメインにそれぞれのユーザアカウントを作成しなければならなくなり、信頼関係の機能としては不便です。

そこで、Samba3.0では、winbindの自動ユーザ作成機能を利用することで、ユーザ管理の手間を削減できるようになっています。

winbindのインストール

winbindは、LinuxのNSS(Name Service Switch)機能や、PAM(Pluggable Authentication Modules)機能といったユーザ情報の管理機能に、winbind用モジュールを追加することで、機能を追加します。

そのために、まずライブラリの導入から行います。
Samba3.0をコンパイルしたディレクトリのnsswitchディレクトリに、libnss_winbind.soが作成されていますので、/libディレクトリにコピーし、ldconfigコマンドで有効にします。

リスト3-3】 winbindライブラリのインストール

続いて、NSSがwinbindモジュールを利用するように/etc/nsswitch.confを修正します。修正は、【リスト3-2】 のように行なってください。

リスト3-4】 nsswitch.confファイルの設定

smb.confの修正

winbindを動作させるために必要ないくつかのパラメータがありますので、smb.confに設定します。

  • idmap uid

    winbindによって、自動的に割り当てられるユーザID。システムで既に利用しているIDと 重複しない値に設定しておきます。

  • idmap gid

    winbindによって、自動的に割り当てられるグループID。システムで既に利用しているID と重複しない値に設定しておきます。

  • templatehomedir

    自動的に作成されるユーザのホームディレクトリ。%Uなどを利用して、ユーザごとに別のディレクトリを指定するのが一般的です。

  • template shell

    winbindによって自動的に作成されるユーザのログインシェル。Linuxにログインする必要が無ければ、/bin/falseを設定しておいても構いません。

リスト3-5】 winbindを利用するためのsmb.conf

winbinddの起動

以上の設定で、winbindを利用するための設定が完了したので、さっそくwinbinddを起動しましょう。Samba3.0では、winbindの性能向上のため、winbinddのデュアルデーモンモードがデフォルトとなっていて、winbinddのプロセスが2つ起動します。

リスト3-6】 winbinddの起動

winbind機能の確認

winbindが動作していることを確認するには、getentコマンドを利用するのが簡単です。
"getent passwd"を実行すると、Linux上で利用可能なユーザ一覧を取得できます。winbind経由で取得したユーザアカウントは、"ドメイン名\ユーザ名"の形式で表示されます。 同様にして、グループ情報の取得は、"getent group"で行います。

なおこのようにして自動に作成されたWindowsアカウントとLinuxアカウントのマッピング情報は、"/usr/local/samba/var/locks/winbindd_idmap.tdb"ファイルに格納されています。このファイルを削除してしまうと、マッピング情報が失われるので気を付けましょう。
後述するLDAP連携機能を利用すると、マッピング情報をLDAPに格納することも可能となります。

リスト3-7】 winbindの動作確認

このようにして信頼関係のあるドメインのユーザ情報が取得できるようになれば、他のドメインのユーザであっても、簡単にSambaサーバのリソースを利用できます。 また、システム管理者も、他のドメインのユーザのためにわざわざユーザ登録を行う必要が無くなりますので、信頼関係を利用しようと思った時には、必ずwinbindも一緒に活用しましょう。

PAMモジュールの設定

ここまでの説明で理解できたと思いますが、winbindの機能のポイントは、LinuxのユーザアカウントをWindowsのユーザ情報から自動で作成できることです。
そこで、せっかく作成できたユーザ情報を、Sambaだけではなく、その他のアプリケーションからも活用したいと思います。
そのためには、winbindのPAMモジュールを設定して、ユーザ認証を可能にしなければなりません。

Sambaのコンパイル時には、PAM用のモジュールが作成されないため、nsswitchディレクトリにモジュールを作成し、PAMのライブラリのディレクトリにコピーを行いましょう。

リスト3-8】 winbindによるPAMの活用

続いて、PAM認証で、winbindが利用されるように、/etc/pam.d/配下のPAMの設定ファイルを変更します。
設定ファイルは、PAM認証を利用するアプリケーションごとに用意されていますが、多くのアプリケーションは、system-authファイルを参照するように設定されていますので、今回はsystem-authファイルにpam_winbind.soを利用するように設定します。

リスト3-9】 PAMの設定

以上の操作で、例えばsshからのログインで、Windowsのユーザアカウントとパスワードを利用できるようになりますが、このときのユーザ名は"ドメイン名\ユーザ名"を利用しなければなりません。
この場合、区切り文字として利用されている'\'は、コマンドライン上ではエスケープ文字として扱われますが、"winbind separator"の設定で区切り文字を別の文字に変更することができます。

リスト3-10】 winbind separatorの変更

このようにして、winbindを利用することでユーザ管理の手間を減らすことができますが、Samba3.0ではその他のモードにおいてもwinbindの利用範囲が広がっています。

例えば、前述のプライマリ・ドメイン・コントローラとして動作しているときに、winbindと組み合わせると、ドメインに参加するマシンのマシンアカウントを自動で作成することが可能になりますので、前もってマシンアカウントを作成しておく必要が無くなります。

また、自動で作成されたアカウント情報は、pdbeditコマンドによって操作することが可能です。

ページトップへ

第4章 SambaとLDAPの連携

LDAP(Lightweight Directory Access Protocol)は、データの参照、検索に特化したデータベースであるディレクトリサービスのためのアクセスプロトコルです。 ディレクトリサービスとは、DNSや電話帳のように、あるキーをもとに関係する情報を提供するサービスです。

LDAPは現在LDAP v3と呼ばれる標準プロトコルがRFCで定義されており、LDAP v3に準拠したLDAPサーバ製品が多数提供されています。
OpenLDAPは、LDAP v3に準拠したオープンソースのLDAPサーバであり、多くのLinuxディストリビューションに標準で含まれています。
LDAPサーバは、ユーザ情報の統合管理に用いられることが多く、シングル・サインオンと呼ばれるユーザ情報の一元化のための中心として用いられます。

Samba2.2からLDAPサーバとの連携によって、SambaのユーザアカウントをLDAPに格納できるようになりましたが、Samba3.0ではさらにLDAPサーバとの連携機能が強化されました。
特に、SambaとLDAPサーバを連携すると、SambaによるWindowsのユーザ管理と、LDAPによるLinuxのユーザ管理を統合することができ、システム管理者がユーザ情報の一元管理を実現することを可能にしています。

この章では、OpenLDAP 2.0とSamba3.0を連携してドメインコントローラを構築する方法を説明します。

【図4-1】 SambaとLDAPサーバの構成例

今回説明するのは、一番基本的な構成で、1台のサーバに、SambaのPDCとLDAPサーバを構築します。SambaとLDAPの両方を間違いなく設定する必要がありますので、一つずつ確認しながら設定を行ってください。

【図4-2】 今回のシステム構成

LDAPサーバの設定

それではまず最初にLDAPの設定を行います。 LDAPサーバの設定は、/etc/openldap/slapd.confファイルで行います。 Sambaとの連携を行うためには、次の項目を設定してください。

スキーマの設定

LDAPでは、利用するオブジェクトを定義するために、スキーマを定義する必要があります。
LDAPでSambaのユーザ管理を行うためには、Sambaが利用する属性(Windows用のパスワードや、プロファイルの格納場所など)を利用できるように、Samba用のスキーマを定義しなければなりません。
OpenLDAP用のSambaのスキーマファイルが、Samba3.0のソースに含まれているので、OpenLDAPのschemaディレクトリにコピーし、OpenLDAPの設定ファイルにスキーマファイルの設定を追加してください。

リスト4-1】 スキーマの設定

suffixの設定

LDAPのデータはツリー構造で管理しますが、suffixは、その管理構造の頂点を表します。通常は、ドメイン名をベースに命名します。LDAPの各エントリは、識別子(DN)と呼ばれます。 今回のLDAPのデータ構造は図4-3のように構成しますので、suffixの設定は、次のようになります。

【図4-3】 LDAPのツリー構造

suffix = "dc=miraclelinux,dc=com"
	    

管理者ユーザの設定

LDAPサーバを管理する特権ユーザの設定を行います。
rootdnには、特権ユーザの識別子(DN)を指定します。
rootpwパラメータに特権ユーザのパスワードを設定します。 プレインパスワードも設定できますが、セキュリティの観点からMD5などの形式で暗号化したパスワードを設定するようにしましょう。

暗号化したパスワードを生成するには、slappasswdコマンドに、-hオプションと暗号化の形式(MD5やSHAなど)を指定して実行すると、入力したパスワードを暗号化した文字列が表示されます。

リスト4-2】 暗号化パスワードの生成

アクセス制限の設定

LDAPのユーザ情報には、Windows用のパスワードと、Linux用のパスワードの両方の情報が格納されます。これらのパスワードは同期する必要があるので、パスワードの変更操作をSamba経由に制限しておく必要があります。

Sambaは管理者権限でLDAPサーバにアクセスするので、パスワード情報に関しては管理者のみ書き換え可能としておきます。
対象となる属性は、Windows用のパスワードを格納するSambaLMPassword属性と、SambaNTPassword属性、そしてLinux用のパスワードを格納するuserPassword属性です。 LDAPのアクセス制限は、/etc/openldap/slapd.confファイルにaccessオプションを指定して行ないます。

リスト4-3】 slapd.confの設定(サンプル)

LDAPサーバの起動

以上の設定を完了したら、LDAPサーバを起動します。
また、マシン起動時にLDAPサーバが開始するように、chkconfigコマンドで起動の設定を行ないます。

リスト4-4】 LDAPサーバの起動

Sambaの設定

SambaとLDAPを連携するときには、smb.confにLDAPにアクセスするための設定を追加しなければなりません。

  • passdb backend

    LDAPのアカウント情報を利用するために、passdb backendパラメータにldapsamの指定と、LDAPサーバのアドレスを指定します。
    今回は同じマシンでLDAPサーバを稼働するので、passdb backend = ldapsam:ldap://localhost を指定します。

    また、LDAPサーバの設定を変更して、SambaとLDAPサーバ間の通信を暗号化することも可能です。そのときには、ldap://[LDAPサーバ]のかわりに、ldaps://[LDAPサーバ]として指定します。

  • ldap suffix

    slapd.confと同じsuffixを指定します。なお、ldap関係の設定の注意点として、パラメータを"(ダブルクオート)などで囲むと正常に動作しませんので、設定値だけを記述してください。

  • ldap user suffix

    Sambaのユーザ情報を格納するLDAPツリーの位置を指定します。 ldap suffixパラメータを基準とした相対位置を指定します。
    今回は、ou=Peopleの階層の下にまとめて格納するので、"ldap user suffix = ou=People" を指定します。

  • ldap group suffix

    Sambaのグループ情報を格納するLDAPツリーの位置を指定します。今回は、ou=Groupsの階層の下にまとめて格納しますので、"ldap group suffix = ou=Groups" を指定します。

  • ldap machine suffix

    マシンアカウント情報を格納するLDAPツリーの位置を指定します。 今回は、ou=Computersの階層の下にまとめて格納しますので、"ldap machine suffix = ou=Computers" を指定します。

  • ldap admin dn

    SambaがLDAPから情報を取得するときに、このパラメータに設定したLDAPの管理者権限を利用します。slapd.confのroot admin dnと同じ識別子を指定しておきましょう。

  • ldap passwd sync

    Samba LDAPシステムでは、Linuxアカウントのユーザパスワード(userPassword属性)と、Windows用のパスワード(sambaLMPassword属性とsambaNTPassword属性)をまとめて管理します。

    ユーザがWindowsクライアントからパスワードの変更を行うと、Windows用のパスワードが変更されます。このままでは、Linuxにログインするときのパスワードと、Windowsにドメインログオンするときのパスワードの不一致が発生するため、利便性を考えるとLinuxアカウントのパスワードも同期すべきです。

    そこでこのパラメータにYesを設定しておくと、Linuxのパスワードの同期を行うことが可能になります。

  • idmap uid、idmap gid

    winbindの設定でも説明しましたが、自動的にアカウントを作成したときに割り当てるuid、gidの範囲を指定します。システムで未使用の領域を割り当てるようにします。

  • template primary group

    winbindでユーザを自動作成したときに、ユーザに割り当てる所属グループの設定です。
    デフォルト設定ではnobodyグループの所属として作成されますが、別のグループとしたい場合に設定を行ないます。

その他、第2章のドメインコントローラの設定、第3章のwinbind関連の設定なども同様に設定しておきます。

リスト4-5】 LDAP連携時の smb.conf設定(サンプル)

管理者パスワードの設定

既に説明したとおり、SambaはLDAPの管理者権限でLDAPサーバに接続します。そのためLDAPの管理者のパスワードをどこかに設定しておく必要がありますが、smb.confに直接パスワードを記述したくありませんので、smbpasswdコマンドの-wオプションを用いてsecrets.tdbファイルに管理者パスワードを設定する仕様になっています。

この操作を忘れるとLDAPサーバから全く情報を取り出せないので必ず実行してください。また、LDAPサーバ側の設定でパスワードを変更したときも、再度smbpasswd -wを実行しなければならないことを忘れないでください。

リスト4-6】 管理者パスワードの設定

以上の設定を完了したら、Sambaを起動します。このときに第3章で説明したwinbindの設定も済ませて、winbinddを起動することも忘れないようにしましょう。

NSSとPAMの設定

LDAPに登録したユーザ、グループをLinuxで利用するためには、winbindと同じようにNSS(Name Service Switch)とPAM(Pluggable Authentication Module)の設定を行う必要があります。

winbindの場合は手動で設定を行いましたが、LDAPの場合はauthconfigコマンドを利用すると簡単に行なえます。 authconfigコマンドの実行は、/usr/sbin/authconfigを実行して、LDAPサーバと、ベースDNとして suffix を指定するだけです。
ただし、authconfigコマンドでは、winbindの設定が消されてしまうため、LDAPの設定をした後で、NSS、PAMともに設定を一部変更する必要があります。

また、LDAPサーバが停止していると、rootユーザすらログインできなくなってしまうため、PAMのsystem-authにauthinfo_unavail=ignoreの設定を追加しておきましょう。
変更点は、【リスト4-7】、【リスト4-8】を参照してください。
変更後に、いったんLDAPサーバを停止した状態で、rootでログインできることだけ確認しておきましょう。

【画面4-1】 NSSのLDAP設定

【画面4-2】 PAMのLDAP設定

smbldap-toolsのインストール

SambaとLDAPを連携するときには、Samba3.0に同梱されているsmbldap-toolsを利用すると、LDAPでのユーザ管理操作などを簡単にすることができます。

Perlモジュールのインストール

Samba3.0のsmbldap-toolsは、PerlのNet::LDAPモジュールを必要とするので、まず最初にPerlのモジュールをインストールします。 LDAPモジュールを導入するためには、依存するいくつかのモジュールを導入する必要がありますので、下記の手順で導入してください。

  1. http://search.cpan.orgより下記のモジュールを検索し、ダウンロードします。(モジュールによってはバージョンアップしていることもあるでしょう。)
    • Authen-SASL(Authen-SASL-2.04.tar.gz)
    • Convert-ASN1(Convert-ASN1-0.18.tar.gz)
    • IO-Socket-SSL(IO-Socket-SSL-0.95.tar.gz)
    • XML-NamespaceSupport(XML-NamespaceSupport-1.08.tar.gz)
    • XML-SAX(XML-SAX-0.12.tar.gz)
    • perl-ldap(perl-ldap-0.29.tar.gz)

  2. 次の順番でモジュールをインストールします。
    1. IO::Socket::SSL
    2. XML::NamespaceSupport
    3. XML::SAX
    4. Authen::SASL
    5. Convert::ASN1
    6. Net::LDAP

    それぞれのモジュールは、次の手順でインストールします。

       # tar xfz [モジュールのソース]
       # cd [展開したモジュールのディレクトリ]
       # perl Makefile.PL
       # make
       # make test
       # make install
    		
smbldap-toolsのインストール

続いて、smbldap-toolsのインストールを【リスト4-9】 に従って行います。 smbldap-toolsは、/usr/local/sbinにインストールすることが仮定されていますので、その他の場所にインストールする場合には、何箇所かスクリプト内部を変更する必要があります。
また、smbldap_conf.pmには、LDAPの管理者パスワードを設定する箇所があるので、一般ユーザが参照できないようにモードを変更しておきます。

smbldap-toolsの設定

続いて、smbldap-toolsを利用するために、smbldap_conf.pmの設定を行います。以下では、smbldap_conf.pmに登場するパラメータの順番に説明を行います。

  1. $SIDの設定

    設定が完了したSambaを起動した状態で、netコマンドによってドメインSIDを取得し、$SIDのパラメータとして設定します。

    リスト4-10】 ドメインSIDの取得

  2. $suffixの設定

    smb.confのldap suffixに設定したsuffixを設定します。

  3. $usersou, $computersou、$groupsouの設定

    "ldap user suffix"、"ldap machine suffix", "ldap group suffix"に設定した識別子を利用するので、それぞれPeople、Computers、Groupsを設定しておきます。

  4. $hash_encryptの設定

    Linux用のパスワードの暗号化方式を指定します。Linuxでは通常 MD5形式なので、MD5を設定しておきます。

  5. $binddnの設定

    smb.confのldap admin dnに設定した管理者の識別子を設定します。

  6. $bindpasswdの設定

    LDAPのslapd.confのrootpwに設定したパスワードを指定します。ただし、プレインテキスト形式のみが許されるので、slapd.confにMD5形式などで設定しているとしても、プレインテキスト形式で設定してください。

  7. $_userLoginShellの設定

    ユーザを追加するときの、デフォルトログインシェルを設定します。

  8. $_userHomePrefixの設定

    ユーザを追加するときの、デフォルトホームディレクトリのPREFIXを設定します。例えば、このパラメータに/home/を指定した場合、ユーザ takedaのホームディレクトリは、/home/takedaとして作成されます。

  9. $_userSmbHome、$_userProfileの設定

    ユーザを追加したときに、Windowsユーザのデフォルトホームディレクトリ、および移動プロファイルの格納場所として設定されます。

  10. $_userHomeDriveの設定

    ドメインログオン時にホームディレクトリを割り当てるドライブレターを指定します。

  11. $smbpasswdのパスの設定

    デフォルトでは、/usr/bin/smbpasswdに設定されていますので、今回は、/usr/local/samba/bin/smbpasswdに変更します。

リスト4-11】 smbldap_conf.pmの設定例

slappasswdのパスの設定

smbldap-passwd.plにパスワードの暗号化のために、slappasswdコマンドを利用する箇所がありますが、パスが指定されていないため、実行環境によってはパスワードの変更に失敗することがありますので、次のように修正しておきましょう。

my $hash_password = `/usr/sbin/slappasswd -h {$hash_encrypt} -s '$pass'`;
	      

初期ユーザアカウントの登録

smbldap_conf.pmの設定を全て完了したあとに、LDAPに初期データを登録します。 初期データの登録は、smbldap-populate.plのスクリプトで行ないます。このスクリプトでは、ドメイン管理ユーザや、いくつかのグループなどを登録します。正常に登録できると、【リスト4-12】のように登録されたエントリが表示されます。

ドメイン管理者の設定

初期データの登録で、ドメイン管理者用としてAdministratorユーザが登録されています。このユーザをドメイン管理者として扱うために、smb.confのadmin usersパラメータを設定します。(設定例では設定済です)

admin users = Administrator
	    

ドメインにマシンを参加させる際に必要となりますので、ドメイン管理者のパスワードを設定しておきます。

リスト4-13】 ドメイン管理者のパスワード設定

以上で、Samba LDAPシステムの導入は完了です。

Samba LDAPの運用

初期設定は完了しましたので、LDAPを運用することが可能になりました。

ユーザの作成・削除・変更

ユーザの作成は、smbldap-useradd.plで行います。 必ず-aオプションを付けて、Sambaアカウントを作成しましょう。

ユーザのパスワードの設定は、smbldap-passwd.plで行います。

ユーザ情報の参照は、smbldap-usershow.plにユーザ名を指定することで可能です。

ユーザ情報の変更は、smbldap-usermod.plに、パラメータごとのオプションを指定して行います。指定できるパラメータは-hオプションで確認できます。

なお、Samba用の属性に関しては、pdbeditで変更することもできますが、Linux用のアカウントに関する属性は変更できないため、smbldapコマンドを利用するほうが便利です。

リスト4-14】 Samba LDAPのユーザ管理

マシンアカウントの登録

ユーザの端末をドメインに参加させるためには、マシンアカウントを登録しておく必要があります。 マシンアカウントの登録は、smbldap-useradd.plに-wオプションと、'コンピュータ名'を指定して行います。

# /usr/local/sbin/smbldap-useradd.pl -w win2000
	      

パスワード設定

一般ユーザはパスワードの変更を、次の2つの方法で行うことができます。

  1. ドメインログオンしたWindowsのパスワード変更機能
  2. Sambaサーバにログインして、smbpasswdコマンドによるパスワード変更

前述のldap passwd syncパラメータを設定しておくことを忘れないようにしましょう。

リスト4-15】 ユーザのパスワード変更

ページトップへ

第5章 ドメインメンバーシップ機能

既にWindowsサーバでドメイン運用しているネットワーク環境にSambaを導入するときには、ドメインメンバーとして参加させます。 ドメインメンバーとして参加した場合、ユーザ認証はドメインコントローラで行われるため、ユーザのパスワード管理などをSambaサーバで行う必要が無くなり、ファイルサーバの追加の場合などには便利です。

Samba3.0では、従来のNTドメインへの参加機能に加えて、Active Directoryへの参加が可能になりました。

【図5-1】 ドメインへの参加

NTドメインへの参加

まず最初にsmb.confの設定を行ないます。また、第3章で説明したwinbindの設定も行っておきましょう。

  • workgroup

    参加するドメイン名を設定します。

  • security

    ユーザ認証をドメインコントローラに委託するときは、domainを指定します。

  • password server

    パスワードの認証を行うサーバのIPアドレスか、'*'を指定します。 '*'を指定した場合、ネットワーク内のドメインコントローラを検索して認証を行いますので、PDCが停止しているような場合でも、BDCによる認証が可能になります。

リスト5-1】 smb.confのドメインメンバ設定

smb.confの設定が完了したら、netコマンドを使って、ドメインに参加しましょう。"Joined domain"のメッセージが表示されれば、ドメインの参加は成功しています。

サーバがWindows2000 Serverの場合には、「Active Directory ユーザとコンピュータ」の画面で、コンピュータアカウントが登録されていることを確認できます。

リスト5-2】 ドメインへの参加

【画面5-2】 コンピュータアカウントの確認

あとは、smbd、nmbd、winbinddを起動すれば、ファイルサーバとして利用可能になります。

Samba3.0では、winbindのアカウント自動作成機能を利用できますので、Sambaサーバ側で特にユーザアカウントを管理する必要が無く、適切な初期設定だけで運用することができます。

Active Directory連携

Samba3.0の新機能として、Acitive Directoryにメンバーサーバとして参加できるようになりました。
Active Directoryの連携機能を利用するためには、OpenLDAPと、MIT Kerberos 5が必要となります。 この節では、Samba3.0をWindows2000 Serverで構築したActive Directoryに参加させる方法を紹介します。

【図5-3】 Active Directory連携の構成

パッケージの確認

Active Directory機能を利用するためには、Sambaが、KerberosとLDAP機能を有効にしてコンパイルされている必要があります。 Active Directoryの連携を試す前に、lddコマンドなどで、きちんとコンパイルされているか確認しておきましょう。
もしKerberosや、LDAPライブラリをリンクしていないようであれば、krb5-devel、krb5-libsや、openldap、openldap-develといったパッケージが入っていることを確認してから、再コンパイルしましょう。

リスト5-3】 Kerberos、LDAPライブラリの確認

smb.confの設定

Active Directoryと連携するときには、次のパラメータを設定します。

  • realm

    レルムは、NTドメインのドメイン名に相当するパラメータで、Active Directoryのドメイン名を指定します。レルムは、全て大文字で設定しておきます。

  • security

    Active Directory連携機能を利用するときには、adsを指定します。

  • password server

    Active DirectoryサーバのIPアドレスを指定します。

リスト5-4】 smb.confのActive Directory連携設定

kerberosの設定

次にKerberosの設定を行います。設定ファイルは、/etc/krb5.confです。

  • default_realm

    Active Directoryサーバのドメインを設定します。smb.confのrealmパラメータと同じで、大文字で設定します。

  • relams

    レルム内で、チケットの発行を行うサーバを指定します。Active Directoryのドメインコントローラが該当するので、FQDNで指定しておきます。テスト環境などの理由で、DNSを使ってホスト名を解決できない場合、/etc/hostsにIPアドレスとFQDNの対応を設定しておきましょう。

リスト5-5】 krb5.confの設定

時刻同期の確認

Kerberosでは、チケットの有効期限などでシステムの時刻が重要な要素となっています。 したがって、Windowsサーバと、Sambaサーバの時刻が同期されていることを確認しておきましょう。

smb.confを設定した後であれば、Windowsサーバの時間はnetコマンドで確認することができるので、Linuxのdateコマンド等で時刻を調整しておきましょう。

リスト5-6】 サーバの時刻確認

kinitの実行

smb.conf、krb5.confの設定が完了したら、kinitコマンドを実行します。 kinitコマンドは、Kerberos認証に使われるチケットを受け取るためのコマンドです。

ここでの注意点として、WindowsサーバでActive Directoryを構築した後に、Administratorのパスワードを1度も変更していない場合、【リスト5-7】 のようにエラーとなります。この場合には、Administratorのパスワードをいったん変更してから、kinitを実行してください。

なお、チケットの取得を確認するためには、klistコマンドを実行します。

Active Directoryへの参加

チケットが取得できたら、あとは、netコマンドでActive Directoryに参加するだけです。 Active Directoryに参加するときには、netコマンドのプロトコルとしてadsを指定することに気を付けましょう。

問題無く参加できれば、"Joined"のメッセージが表示されます。 Windowsの「Active Directory ユーザとコンピュータ」から確認すると、コンピュータのプロパティに「DNS名」が設定されていることが、NTドメインの参加と異なることが分かります。

リスト5-8】 Active Directoryの参加

【画面5-4】 Active Directoryに参加したSambaサーバ

Sambaの起動

Active Directoryに参加できたら、smbd、nmbd、winbinddを起動しましょう。
これまで何度も説明してきたように、winbindのアカウント自動作成機能が有効になっていれば、Linuxアカウントも作成済となっていますので、すぐにSambaサーバを利用可能となります。

ページトップへ

第6章 Windows NT4.0サーバからの移行

Samba3.0は、NTドメインで提供されるほとんどの機能をサポートしたことにより、Windows NT4.0の代替として、ドメイン構成を変更せずにそのまま置き換えることが可能になりました。

さらに、新しく追加された net vampire機能を利用することで、ユーザ情報の移行も大変簡単になっています。そこでこの章では、net vampire機能を使ってNT4.0サーバから、Samba3.0へ移行する手段を紹介します。

net vampire機能

net vampire機能は、Samba3.0をドメインのBDCとして構成し、PDCからアカウント情報のコピーを受け取る機能と思えば良いでしょう。

コピーを受け取った後には、NT4.0 Serverを停止し、SambaサーバをPDCとして構築することで、サーバの置き換えが完了します。

Samba2.2でNT4.0のドメインから移行しようとすると以下のような手順が必要でした。

  • NT Server上でユーザのアカウント情報の収集、グループ情報の収集、パスワード情報の収集
  • Linuxサーバ上で移行先のLinuxアカウントの作成、Sambaアカウントの作成

Samba3.0では、移行にかかわる作業を全てLinux側で行うことが可能となり、非常に使い勝手が良くなりました。

tdbsamへのアカウント情報の移行

tdbsamデータベースにNT Serverのアカウント情報を移行するのは非常に簡単です。 第2章のドメインコントローラの構築と、第3章のwinbindの導入にしたがって、最終的に構築したいPDCとしてsmb.confのパラメータを設定しておいてください。 移行において、winbindも必要となりますので忘れず設定しておいてください。

ただし移行時にはBDCとして振舞う必要があるので、次のパラメータの設定に気を付けましょう。

smb.confのBDC設定
  • workgroup

    現在、NT4.0 Serverが稼働しているドメイン名を設定します。

  • domain master

    SambaをBDCで構成するときには、必ずdomain masterのパラメータをnoに設定しておきます。

  • os level

    BDCのos levelは、PDCよりも低くなければならないので、32未満を設定します。

リスト6-1】 SambaのBDC設定

winbindとの連携によるアカウントの移行

smb.confの設定が完了したら、netコマンドでNT Serverのドメインに参加します。 このとき、smbdやnmbdは稼働する必要はありません。

次にアカウント情報の移行を行いますが、移行のためにLinux用のアカウントを作成する必要があります。
Samba3.0ではwinbindによってLinuxのアカウントを自動作成するようにしておけば、簡単にアカウントの移行をすることができます。 そこで、winbinddだけ起動しておきましょう。

そして最後に、netコマンドのvampire機能によってユーザ情報を移行します。

なお、winbindによって自動作成されるLinuxのユーザアカウント情報は、/usr/local/samba/var/locks/winbindd_idmap.tdbに格納されています。 また、tdbsam形式のSambaのユーザアカウント情報は、/usr/local/samba/private/passdb.tdbに格納されています。 アカウントの移行に失敗した時には、winbinddを停止してから、これらのファイルを削除すれば、データの入っていない状態に戻すことができます。

リスト6-2】 tdbsamでのアカウントの移行

LDAPへのアカウント情報の移行

LDAPにアカウント情報を移行する場合は、第4章で説明したLDAPとSambaの設定を行っておきます。ここではtdbsamの手順と異なる点だけ説明します。

  • ユーザ管理スクリプト

    LDAPにデータを移行する際に、Linuxのユーザアカウント情報を作成するために、smbldap-toolsのコマンドが実行されるように設定しておきます。

リスト6-3】 ユーザ管理スクリプトの設定

アカウント情報の移行

LDAPサーバとSambaサーバの設定が完了したら、LDAPサーバだけを起動し、smbldap-populate.plコマンドで、初期データの登録を行います。 このとき、-bオプションを指定し、guestアカウントとして、Guestを作成しておきます。(Guestアカウントだけ移行に失敗するため)

また、Administratorは後程NT Serverからアカウント情報を取得するときに重複してエラーとなりますので、アカウントを削除しておきます。

次に、Sambaが動作していない状態で、netコマンドでドメインに参加します。 このときに、NT Serverの管理者のパスワードを入力します。

最後に、netコマンドのvampire機能を使って、ユーザをLDAPに登録します。以上でデータの移行は完了です。

後は、NT Serverを停止し、os levelとdomain masterを変更して、Sambaサーバを起動します。

LDAPサーバのアカウント情報は、/var/lib/ldap/に格納されていますので、やり直したいときは、LDAPサーバを停止してから、/var/lib/ldap/配下のファイルを全て削除してください。
その後、LDAPサーバを再起動して、smbldap-populate.plの手順から再度実行します。

リスト6-4】 LDAPでの アカウントの移行

ページトップへ

■この資料の評価をお願いします。
とても参考になった
参考になった
どちらでもない
あまり参考にならなかった
まったく参考にならなかった

コメントがある場合は以下に記述してください。技術資料として取り上げてほしいテーマも受け付けています。

以下は任意です。

お名前(フルネーム) :
会社名 :
メールアドレス :
 

ページトップへ



テクノロジー情報
リナックス関連
イベント/セミナー資料
オラクル/DB関連
Samba関連
研修のご紹介
FAQ
インストレーションガイド
ソフトウェアダウンロード
実績のあるシステム構成

会社情報 採用情報 個人情報保護方針 情報セキュリティ基本方針 商標等取り扱い事項 English
Copyright(c)2000-2015 MIRACLE LINUX CORPORATION. All Rights Reserved.