samba 3でNTドメイン

結構面倒だけど何とかできた。
○環境
samba 3.0.x (細かいバージョンは今分からないけど、同じ3系なら大きく違わないと思う)
LDAPは使わずtdbsamを使用
クライアントPCはWindows XP Pro
○作業
・UNIXのユーザーアカウントが必要なので作成

useradd username

・sambaにもアカウントを作成

pdbedit -a -u username
pdbedit -a -u root

試してないけど、ユーザーアカウントを作らなくてもOKっぽい。

Samba 3.0からはLinuxアカウントに登録されていないユーザーでもSambaユーザーとして登録できるようになった。Samba独自のユーザーを追加した際には,LinuxシステムでのユーザーIDとグループIDを自動的に割り当てるが,そのためにsmb.confファイルでは「idmap uid」と「idmap gid」の2つのパラメータで割り当て可能なIDの範囲を指定しておく必要がある。

・マシンアカウントの作成

useradd -s /bin/false pcname$
pdbedit -m -a -u pcname

これ、add machine scriptを設定すれば要らない。
・最低限のsmb.conf

#基本的な設定
workgroup = DOMAIN
netbios name = PDC
passdb backend = tdbsam
security = user
# PDCになる為の設定、os levelは33以上
domain logons = Yes
os level = 33
preferred master = Yes
domain master = Yes
# 移動プロファイルの設定など
logon path = \%LProfiles%U
logon drive = H:
logon home = \%L%U
#以下、profilesとnetlogonという共有を定義する必要がある

これでとりあえずPDCとして最低限の動作はするはず。
○さらに
・パスワードの変更の同期
WindowsでCtrl-Alt-Delを押してパスワード変更をすると、samba、Linuxの両方のアカウントのパスワードが変更されるようにする。

unix password sync = yes

passwd program = /usr/bin/passwd %u

#この行は要らないかも(今度確認してみる)

pam password change = yes

passwd chat = *New*password* %nn *Re-enter*new*password* %nn *Password*changed*

passwd chatに関してはちょっと分かりにくい。これは、Linuxのpasswdコマンドを入力した時に返される文字列を入力する。これってディストリビューションによって異なる。@ITのこの記事の説明が分かりやすかった。
sambaは内部的にroot権限でpasswdコマンドを実行し、その結果の文字列を見て成功か失敗かを判断する。上の設定例で言えば、passwdコマンドの実行結果が”*Password*changed*”に一致すればsambaはパスワード変更が成功したと判断する。
root権限でのpasswdコマンドの場合、(短すぎる等の)悪いパスワードでも警告は出るがパスワード変更が可能。ただ、その場合passwdコマンドの実行結果が上の文字列と一致しないので、samba的にはパスワード変更失敗、となる。
・smbpasswdからの移行

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

○その他
・参考サイト
miracle linuxのページ(←リンク切れ…こっちのページも分かりやすい)
日経IT Proのページ
RHELリファレンスガイドのsambaのページ
sambaのオンラインドキュメントは一通り目を通したつもりだけど、ちょっと分かりにくい様な気がする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です