[samba-jp:21946] Re: samba4.0.3がドメインマスタブラウザにならない

NAKANOSHUICHI fanta @ orangesooda.com
2013年 3月 10日 (日) 22:05:43 JST


なかのです。

> Samba4 でマスタブラウザ関連の機能は未サポートです。

やはりそうでしたか。
情報ありがとうございます、リンク先のリリースノート確認しました。

Vista以降はブラウジングに、NetBIOSに加えてSSDPとWSDが利用されたらしいですね。マスタブラウザになれなくても、自分をアナウンスできるものは無いかなぁ。


> 実は、ファイルサーバとしての機能はまだほとんど確認していないので、この手の

え、そうだったんですか?
ネットでBLOG検索すると結構やった人はおられるようですが、たかはしさんが先日のセミナーでおっしゃっていたように、公式サイトにまとまった情報としてあると助かりますね。


それでは公式ドキュメントに
https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
https://wiki.samba.org/index.php/Samba4/Winbind
補足し直します、CentOS6.xの場合です。他の方の参考になれば。

◎samba4で作ったAD兼ファイルサーバにログインするには
/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
としてsamba.confを生成し、

cp /usr/local/samba/share/setup/krb5.conf /etc としてさらにkrg5.confの内容を修正

ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/libnss_winbind.so
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
のリンク(OSが64の場合 /libでも/lib64でもどちらでも認識)と、

/etc/nsswitch.conf の修正
passwd:          files winbind
group:           files winbind

のここまで4点。sambaのコンパイルは通常の./configureでOK。


◎フォルダの自動作成には pam_winbind.so が必要なので
yum install pam-devel してからsambaのコンパイルを ./configure.developer として pam_winbind.so を作る。

そして
ln -s /usr/local/samba/lib/security/pam_winbind.so /lib/security
(やはりOSが64の場合 /libでも/lib64でもどちらでも認識)

次に先のメールのようにsamba.confに
obey pam restrictions = yes
と記述し、sambaログイン時に /etc/pam.d/samba 経由で認証させるように変更。もちろん [homes] セクションも作っておく。

/etc/pam.d/samba ファイルを新規作成し次の4行だけを記述。
auth  sufficient  pam_winbind.so
account sufficient pam_winbind.so
session required pam_mkhomedir.so  skel=/etc/skel-samba
session required pam_winbind.so

この追加の4点をやって、sambaログインがpam経由で認証され、かつユーザフォルダを参照時にユーザフォルダが自動作成させる目標が達成される。skel=/etc/skel-sambaとしているのは、デフォルトでは/etc/skel内のドットファイルがユーザフォルダにコピーされてしまうのを避けるためで、/etc/skel-sambaを空フォルダで作成しておくといい。



さらにsambaユーザのUNIXシェルログインが必要な場合(sambaサーバに対してユーザからそのような希望はあまりないと思いますが)ドキュメントには
/etc/pam.d/common-auth
/etc/pam.d/common-account
/etc/pam.d/common-session
のファイルの指示があるがCentOSの場合はこの指示のファイルは存在しないので、こちら。
/etc/pam.d/password-auth-ac 
/etc/pam.d/system-auth-ac

の適切な場所に先の4行を挿入追記することでUNIXシェルログインにもsambaユーザ認証されると同時に、UNIXシェルログイン時にユーザフォルダが作成された。
挿入する順序はたいせつで、間違えると/etc/passwdのrootユーザもUNIXログインできなくなったり困ったのでUNIXシェルログインが不要ならやめたほうがいいかも。

もちろん samba.confの[global]セクションに template shell = /bin/bash と書いてデフォルトの/bin/false シェルから変更しておく。



以上です。
フォルダの自動生成の設定は面倒ですね。ユーザ登録しただけで利用しないユーザが多数いる場合は面倒でもsambaにフォルダの自動生成させたほうが良いですが、そうでないなら samba-tool user list でユーザ一覧を出してユーザディレクトリを作るこんな適当なシェルスクリプトをcronで走らせたほうが楽かもしれない。

#!/bin/sh

list=$(samba-tool user list)

cd /home
for i in $list
do echo $i

if [ "$i" != "Guest" -a "$i" != "krbtgt" ];then
if [ ! -d $i ];then
mkdir $i
chown -R $i $i
fi
fi
done



そういえば、ホームディレクトリの自動生成時にマシンアカウント名のフォルダ pcxxxxx$ も作成されるのはsamba2.xの時からsamba4.0でも変わりませんね。いつもcronで消してましたが、このマシンアカウント名のフォルダって消してもいいですよね?どうなんでしょう?
そもそも作らないでくれるといいのに。


@中野修一


samba-jp メーリングリストの案内