smb.conf
[global] security = USER encrypt passwords = Yes domain logons = Yes domain master = yes wins support = yes local master = yes preferred master = yes os level = 65 workgroup=ドメイン名 logon script=LOGIN.BAT [netlogon] path = /usr/local/samba/lib/netlogon writeable = no guest ok = yes
/usr/local/samba/lib/netlogonにwindowsでLOGON.BATを作成する。 中身はたとえば
NET TIME \\\\SERVER /SET /YES
そしてPDCマシン上で以下を実行する。
smbpasswd -a root
マシン・アカウント用のグループを作成する。
groupadd machines
以下はドメイン・メンバのマシン分実行する。WindowsMe,9Xについては必要なし。
useradd -g machines -d /dev/null -s /bin/false マシン名$ smbpasswd -a -m マシン名
useraddの時、マシン名の後に$をつけたものをLinuxユーザとして登録する必要がある。 (マシン名は英大文字は使用せず、英子文字、数字のみで15バイト以下)
(あらかじめPDCに登録が必要)
(あらかじめPDCに登録が必要)
smb.conf
[global] security = DOMAIN encrypt passwords = Yes workgroup=DOMNAME # ドメイン名を指定します password server = DOMPDC # ここは、* も指定可能。 add user script = /usr/local/samba/bin/add_user %u delete user script = /usr/local/samba/bin/del_user %u
/usr/local/samba/binにスクリプトを用意する。
スクリプト( /usr/local/samba/bin/add_user ) の例
#!/bin/sh /usr/sbin/useradd -m $1
スクリプト( /usr/local/samba/bin/del_user ) の例
#!/bin/sh /usr/sbin/userdel -r $1
スクリプトはどちらも実行フラグをたてておく。
smbdとnmbdを停止しておいて、
smbpasswd -j DOMAIN -r PDC -U root
とする。DOMAINはWindowsドメインの名前 PDCはプライマリドメインコントローラのNetBIOS名。 PDCがSambaの場合はあらかじめsmbpasswd -a rootとして rootでアクセスできるようにしておく必要がある。
ドメインのメンバになると、 Windows NT Server と同様の方法で ドメインコントローラに対してユーザアカウントの認証を要求できる。
smbpasswd はドメインのプライマリドメインコントローラを探して (smb.conf ファイル中の password server の値が使われる) セキュアなドメイン内の通信を確立するのに使われるマシンアカウントの パスワードを変更する。 このパスワードは、smbpasswd がファイルに保存する。 このファイルは root のみが参照でき、名前は <Domain>.<Machine>.mac となる。
Domain> は参加したドメインの名前になり、<Machine> はマシンのプライマリの NetBIOS 名になる。
この操作が完了すると、smb.confファイル中に security=domainオプションを 設定できる状態になる。設定後のSamba サーバに対するログインは、PDCにて 認証されるようになる。
認証が PDC によって行われるようになっても、Samba サーバにアクセスする 全てのユーザは未だにそのマシン上に有効な UNIX のアカウントを持っている 必要があることに注意。(これはadd user scriptオプションを設定すれば自動 化できる。)