先日 samba3系からとりあえず4系に入れ替えてユーザディレクトリのファイル共有のみに使用している samba4 ですが、PCからの接続自体はどっちでも可能なんだから、ドメインを構築してアクティブディレクトリを用意したほうが良いことがあるかもしれないよね! ってことでチャレンジしてみました。
前回適当に入れた時は /usr/local/etc/smb4.conf を雛形から適当に書き換えて pdbedit でユーザを作成したのですが、イマドキの samba の流儀では samba-tool というのを使うのだそうです。これは Python で書かれた全自動おまじない作成ブログラム(と思う)で、例えばsambaをドメインコントローラとして設定する時は
# /usr/local/bin/samba-tool domain provision
と実行した後で質問に答えていけば smb4.conf とか内蔵DNSの設定とかいろいろやってくれるのだそうです。
ということで早速実行してみました。
動きません
うーむ、関係無い /usr/local/etc/smb4.conf が残ってる状態でぜんぜん違う事をしようとするとエラーが出るようです。ひとまずこれを消して再度チャレンジです。
動きません
えーと、今度はなんですか? パスワードですか。途中でadministrator のパスワードを設定するのですが、これがある程度複雑なものじゃないといけないのだそうです。緩くする方法を調べるのも面倒なので、記号を織り交ぜたパスワードを入力。さて、これで動くかな? と思いきや、
動きません
んーと、sambaではWindows的なアクセス制御を実現するためにファイルシステムに ACL オプションを要求するようです。ただ、このオプションがあるのは UFS のお話。うちのファイル・システムはZFSなんですけどー。Google様に聞いてみると、一応ZFSでも使う方法はあるようです。ただ、そのようにZFSを設定しても samba-tool は許してくれないらしく動かなかったので、ZFSボリュームにUFSを作成してお茶を濁すことにしました。
# zfs create -V 1GB tank/samba4
# newfs /dev/zvol/tank/samba4
# mount -o acls /dev/zvol/tank/samba4 /var/db/samba4
よし、これで準備万端。満を持して samba-tool を実行します。
動きません
このエラーはさっきまでのと違って、問題の原因となる気の利いたエラーメッセージが表示されていません。エラー自体は Python が出力しているのでこれまた Google 様に聞いてみると、どうやら talloc 2.1.6 では samba 4.3.8 でエラーが出るらしく、修正パッチが出ていました。えーと、うちの samba はパッケージで入れたんですけど(T^T)。久しぶりに ports ツリーを取ってきて比較した所、こちらは samba 4.3.9 になっており、非常に長い時間をかけてコンパイルすると samba-tool がエラー無く終了するようになりました。
はふ、長い道のりだった。
と、ここまでは仮想PCで実行しています。とりあえず samba-tool を動かす方法はわかりましたが、出来たら portsじゃなくてパッケージ運用したいですし、バイナリが更新するまで待ってから本番環境を構築することにしましょう。ということで、実際の構築作業はまた今度。