Windows には、ユーザー管理の手間を軽減する「ドメイン」と呼ばれる機能が存在します(DNS のドメインとは別のものです)。Windows のドメインには、従来の Windows NT で構成される NT ドメインと Windows 2000 からの機能である Active Directory で構成する 2 つのドメインがあります。このガイドでは、Windows ドメインに関する詳細な解説には触れませんが、Samba は NT ドメインの PDC(プライマリドメインコントローラ)として動作させることが可能です。Samba 3.0 は、Windows 2000 Server/Windows 2003 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 の設定について解説しています。 |
以下では、Samba を NT ドメインの PDC として動作させるための /etc/samba/smb.conf ファイルの設定例について解説します。
Samba を NT ドメインの PDC とするための[global]セクションは、以下のようになります。
[global]
netbios name = MYNAME
dos charset = CP932
unix charset = UTF8
display charset = UTF8
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
os level = 65
preferred master = yes
domain master = yes
local master = yes
admin users = administrator
security = user
domain logons = yes
wins support = Yes
logon path = \\%N\profiles\%u
logon drive = H:
logon home = \\homeserver\%u\winprofile
logon script = logon.cmd
[netlogon]
path = /var/lib/samba/netlogon
read only = yes
write list = ntadmin
[profiles]
path = /var/lib/samba/profiles
read only = no
create mask = 0600
directory mask = 0700 |
Samba を PDC とするために必要な設定は、基本的にはスタンドアローンなファイルサーバーの設定がベースとなりますが、いくつかのパラメータを追加する必要があります。os level、preferred master、domain master、security、encrypt passwords、domain logons の各パラメーターがドメイン管理に関するパラメータです。logon path、logon home、logon drive、logon script の各パラメータは、クライアントのログオン操作のためのパラメータです。NETLOGON 共有はログオンスクリプトを配置するための共有です。PROFILES 共有はユーザーディスクトッププロファイルを格納するための共有です。各ユーザーはここに書き込み可能なディレクトリを持ち、ディレクトリはすべてのユーザーから読み込み可能に設定する必要があります。
NETLOGON 共有用ディレクトリの作成
ログオンスクリプトを格納するための netlogon 用ディレクトリを作成します。上記の smb.conf で path=/var/lib/samba/netlogon と指定しているので、/var/lib/ の下に samba/netlogon を作ります。
# mkdir -p /var/lib/samba/netlogon |
ログオンスクリプトの作成
ログオン時に実行させるプログラムを logon.bat に記述します。ネットワークドライブの自動割当や時間の自動補正などを行わせることができます。
設定がすべて終了したら、Samba サーバーを起動します。
# /etc/init.d/smb start |
これで、この Samba サーバーは NT ドメインの PDC として動作します。
Samba で構築した NT ドメインのドメイン管理者を登録します。そのためには、以下のように Linux 上でユーザーを作成し、その後 pdbedit コマンドでドメイン管理者のユーザー登録とパスワードの設定を行います。
# useradd administrator # pdbedit -a -u administrator new password: retype new password: Unix username: administrator NT username: Account Flags: [U ] User SID: S-1-5-21-1065826466-4106255778-3569669988-1000 Primary Group SID: S-1-5-21-1065826466-4106255778-3569669988-513 Full Name: Home Directory: \\homeserver\%u\winprofile HomeDir Drive: H: Logon Script: logon.cmd Profile Path: \\myname\profiles\%u Domain: TURBODOC Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 月, 05 11月 2007 12:01:39 JST Password can change: 月, 05 11月 2007 12:01:39 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
ドメインに登録するクライアントのマシンアカウントを作成します。ユーザーアカウントと同様に、useradd コマンドを実行した後に、pdbedit コマンドで以下のように登録します。マシンアカウントを登録する場合は -m オプションを指定します。以下では、クライアントのコンピュータ名を winclient としています。
![]() | useradd で指定するコンピュータ名の最後には必ず $ を付ける必要があります。 |
# useradd winclient$ # pdbedit -a -m winclient Unix username: winclient$ NT username: Account Flags: [W ] User SID: S-1-5-21-1065826466-4106255778-3569669988-1001 Primary Group SID: S-1-5-21-1065826466-4106255778-3569669988-513 Full Name: Home Directory: \\homeserver\%u\winprofile HomeDir Drive: H: Logon Script: logon.cmd Profile Path: \\myname\profiles\%u Domain: TURBODOC Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 月, 05 11月 2007 12:03:03 JST Password can change: 月, 05 11月 2007 12:03:03 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
![]() | クライアントが Windows 95/98/Me の場合はこの作業は必要ありません。 |
上記コマンドを登録するクライアントの数だけ繰り返します。
実際にログインする 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" No rid or sid specified, choosing a RID Got RID 1002 Successfully added group Document Team to the mapping db as a domain group |
また、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 |
構築したドメインに Windows クライアントを参加させるためには、Windows 側の設定が必要です。以下では、Windows XP Professional を例にドメインへの参加手順を紹介します。
デスクトップの "マイ コンピュータ" のアイコンを右クリックし、"プロパティ" を選択します。
「システムのプロパティ」画面が表示されますので "コンピュータ名" タブを表示し、[変更]ボタンをクリックします。

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

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

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

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