16.5. Samba を PDC として使用する

Windows には、ユーザー管理の手間を軽減する「ドメイン」と呼ばれる機能が存在します(DNS のドメインとは別のものです)。Windows のドメインには、従来の Windows NT で構成される NT ドメインと Windows 2000 からの機能である Active Directory で構成する 2 つのドメインがあります。このガイドでは、Windows ドメインに関する詳細な解説には触れませんが、Samba は NT ドメインの PDC(プライマリドメインコントローラ)として動作させることが可能です。Samba 3.0 は、Windows 2000 Server/Windows 3000 Server で構築された Active Directory ドメインへ参加することはできますが、ドメインコントローラになることはできません。

PDC は、NT ドメイン内に 1 台だけ設置され、ユーザーの情報は PDC で一元管理されます。ドメインに参加した Windows クライアントのユーザー認証は、PDC により行われるようになります。したがって、Windows クライアントごとにユーザーを作成する必要がなくなります。また、Windows や Samba で複数のファイルサーバーを構築する場合、サーバーごとにユーザーの追加や削除を行わなければならず、ユーザーの管理タスクはかなり手間のかかる作業となります。そこで、PDC のメンバサーバーとして他のサーバーを登録し、メンバサーバーのユーザ認証 を PDC で行うようにします。これにより、メンバサーバーとなったサーバーでは、ユーザー管理の手間を軽減することができます。つまり、PDC となる Samba サーバーでは、pdbedit コマンドを実行し、Samba ユーザーの登録とパスワードの設定が必要となりますが、メンバサーバー上で Samba ユーザーの登録やパスワードを設定する必要はありません。Samba ユーザーの認証は、PDC として動作している Samba サーバーで行われます。ただし、メンバサーバーの共有ディレクトリにアクセスする際には、Linux におけるアクセス権限の影響を受けますので、Linux システムのユーザーアカウントは作成する必要があることに注意しなければなりません。

ティップ

Samba 3.0 では、LDAP サーバーとの連携機能が強化されており、Samba と LDAP サーバーとを組み合わせることで、Linux と Samba のユーザー情報を LDAP サーバーで統合管理することができます。ユーザー数が 数百人以上の大規模な NT ドメインを構築されるのであれば、LDAP サーバーでの統合管理を検討する価値があります。ただし、LDAP サーバーの構築と Samba との連携は、それほど単純なものではなく、かなりのスキルと手間を必要とします。また、構築後の運用管理も決して簡単であるとは言えないのが現状です。ここでは、PDC の基本設定を解説するために、バックエンドデータベースに tdbsam を利用した PDC の設定について解説しています。

16.5.1. Samba サーバー側の設定

以下では、Samba を NT ドメインの PDC として動作させるための /etc/samba/smb.conf ファイルの設定例について解説します。

/etc/samba/smb.conf の編集

Samba を NT ドメインの PDC とするための[global]セクションは、以下のようになります。

[global]
        dos charset = CP932
        unix charset = EUCJP-MS
        display charset = EUCJP-MS
        workgroup = TURBODOC
        server string = Samba Server
        log file = /var/log/samba/smbd.log
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        passdb backend = tdbsam
        domain logons = Yes
        admin users = administrator
        os level = 65
        preferred master = Yes
        domain master = Yes
        wins support = Yes

Samba を PDC とするために必要な設定は、基本的にはスタンドアローンなファイルサーバーの設定がベースとなりますが、いくつかのパラメータを追加する必要があります。はじめに domain logons = Yes を指定します。workgroup には構築する NT ドメインのドメイン名を指定します。この例では、ドメイン名を TURBODOC としています。また、admin users にはドメインの管理者を指定します。@group でグループを指定することも可能です。ここで指定したドメイン管理のアカウント情報は、Windows クライアントをドメインに参加させるときに入力する必要があります。その他、domain logons、os level、preferred master、domain master、wins support は、Samba を PDC とする場合に指定が推奨されているパラメータです。上記のように指定します。

設定がすべて終了したら、Samba サーバーを起動します。

# /etc/init.d/smb start

これで、この Samba サーバーは NT ドメインの PDC として動作します。

ドメイン管理者のアカウントの作成

Samba で構築した NT ドメインのドメイン管理者を登録します。そのためには、以下のように Linux 上でユーザーを作成し、その後 pdbedit コマンドでドメイン管理者のユーザー登録とパスワードの設定を行います。

# useradd administrator
# pdbedit -a -u administrator
クライアントのマシンアカウントを登録

ドメインに登録するクライアントのマシンアカウントを作成します。ユーザーアカウントと同様に、useradd コマンドを実行した後に、pdbedit コマンドで以下のように登録します。マシンアカウントを登録する場合は -m オプションを指定します。以下では、クライアントのコンピュータ名を winclient としています。

注意

useradd で指定するコンピュータ名の最後には必ず $ を付ける必要があります。

# useradd winclient$
# pdbedit -a -m winclient

ティップ

クライアントが Windows 95/98/Me の場合はこの作業は必要ありません。

上記コマンドを登録するクライアントの数だけ繰り返します。

Samba ユーザーの作成

実際にログインする Samba ユーザーとパスワードを設定します。Linux 上にアカウントが無い場合は、事前に useradd で作成しておく必要があります。以下では、ユーザー jiro を作成しています。

# useradd jiro
# passwd jiro
# pdbedit -a -u jiro

上記コマンドをユーザーの数だけ繰り返します。

グローバル・グループの設定

Windows のドメインコントローラは、ドメインに属するユーザーをグローバルグループと呼ばれるグループで管理することができます。Samba 2.2 のころは、Windows ドメインコントローラがデフォルトで持っている Domain Admins と Domain Guest の 2 つのグローバル・グループのみに対応していましたが、Samba 3.0 では、net groupmap コマンドにより自由にグローバル・グループを作成できるようになりました。例えば、Linux 上のグループ document を Windows のグローバル・グループ Document Team として対応させるには、以下のように実行します。

# net groupmap add NTgroup="Document Team" UNIXgroup="document"

また、Domain Admins、Domain Guest など既に存在する Windows のグローバル・グループと Linux 上のグループを対応させるには、net groupmap modify コマンドを使用します。例えば、Linux 上でドメイン管理者のグループを作成している場合は、以下のように実行します。この例では、domainadm という管理グループを作成しているものとしています。

# net groupmap modify NTgroup="Domain Admins" UNIXgroup="domainadm"

また、net groupmap list コマンドを実行すると、グローバルグループの設定を参照することができます。

# net groupmap list

16.5.2. Windows クライアントの設定

構築したドメインに Windows クライアントを参加させるためには、Windows 側の設定が必要です。以下では、Windows XP Professional を例にドメインへの参加手順を紹介します。

  1. デスクトップの "マイ コンピュータ" のアイコンを右クリックし、"プロパティ" を選択します。

  2. 「システムのプロパティ」画面が表示されますので "コンピュータ名" タブを表示し、[変更]ボタンをクリックします。

  3. 以下のダイアログが表示されます。"ドメイン" をチェックし、/etc/samba/smb.conf の workgroup パラメータで指定したドメイン名を入力後、[OK]ボタンをクリックします。

  4. 以下のダイアログが表示されます。/etc/sammba/smb.conf の admin users パラメータで指定したドメイン管理者のユーザー名とパスワードを入力し、[OK]をクリックします。

  5. 以下のダイアログが表示されれば、ドメインへの参加は正常に完了しています。[OK]ボタンをクリックします。

  6. 変更を有効にするには、Windows の再起動が必要です。[OK]をクリックして再起動します。