Sambaインストール

ということでSambaを入れていこうと思います。方針としてはこんな感じ

を作りたいなと思います。本を軽く読んだところ

  • ファイルサーバ
  • プリントサーバ
  • ドメインコントローラ
  • WINS

とかが機能としてあるようです。ファイルサーバは今からやるとしてプリンター共有もやりたいですね。ドメインコントローラも興味はありますがうちはXPのhome editionしかないのでどーしようもないかな。WINSは知らなかったんですが、windows用のDNSみたいな感じの機能っぽいです。ま、これも機会があれば。


んで、今回はLDAPと連携させようと思ってるんですが、アカウント周りはちょっと複雑っぽいです。どうやらUNIX用のアカウントの他にwindows用のアカウント情報もいるみたいです。(まあ当たり前か)このwindows用の情報を何に持たせるかがいくつかから選べるみたいで、その一つとしてLDAPがあるようです。とりあえず勉強の意味も込めて一旦一番ベーシックぽいSamba自身のアカウント管理でアップロードするところまでがんばってみようと思います。さて、ではインストール。


$ wget ftp://ftp.samba.gr.jp/pub/samba/samba-3.2.0.tar.gz
$ tar zxvf samba-3.2.0.tar.gz
$ cd samba-3.2.0/source
$ ./configure --prefix=/usr/local/services/samba
--with-ldap --with-pam --with-syslog --with-quotas
--with-acl-support --with-automount --with-smbmount
$ make
# make install

最新のstableは3.2みたいですね。configureのオプションは本を参考にしました。ちなみにsourceの下に移動してコンパイルしないと駄目です。インストールを終えたのでちょろちょろとディレクトリの中を見ましたがconfigらしきものは見あたらなかったので展開したディレクトリの下を探したところexampleがありました。なんか複数種類ありますが、cent osなので以下をコピーしました。


# cp samba-3.2.0/packaging/RHEL4-CTDB/setup/smb.conf
/usr/local/services/samba/lib

configはlibの下に置くみたいです。なんか違和感あるなぁ。


configを置いたので早速起動を試みる。デーモンはsmbdです。


# /usr/local/services/samba/sbin/smbd

エラーがでました。(´・ω・`)


error while loading shared libraries: libtalloc.so.1:
cannot open shared object file: No such file or directory

どうやらsmbdが利用するシェアードライブラリが認識されていないのかな?lddコマンドで利用しているライブラリが確認できたはずなので打ってました。


# ldd /usr/local/services/samba/sbin/smbd

ふむ。確かにそれらしきものが。そして、よくよく見るとインストールしたディレクトリのlib配下にそれらしきものが。PATHが通ってないのかな?ということでPATHを追加しました。/etc/ld.so.conf.d/以下にPATHを記述したファイルを置けば良い模様。


/////////////etc/ld.so.conf.d/samba.conf/////////////
/usr/local/services/samba/lib
/////////////////////////////////////////////////////

反映させるためにはldconfigを打つ必要があるそうな。


# ldconfig

これで無事起動することができました。ついでに起動スクリプトも作りました。


#!/bin/sh
#
# smbd This shell script takes care of starting and stopping
# smbd
# chkconfig: - 22 78
# description: smbd is a samba daemon that offers file shared service
#

SAMBADIR=/usr/local/services/samba
PIDFILE=$SAMBADIR/var/locks/smbd-smb.conf.pid
CONFFILE=$SAMBADIR/lib/smb.conf
PROG=$SAMBADIR/sbin/smbd

PATH=$SAMBADIR/sbin:$SAMBADIR/bin:/usr/bin:/bin:/usr/sbin:/sbin

. /etc/init.d/functions

start() {
echo -n $"Starting $PROG: "
daemon $PROG -s $CONFFILE
retval=$?
echo
return $retval
}

stop() {
echo -n $"Stopping $PROG: "
killproc $PROG
retval=$?
echo
return $retval
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $PROG
RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac

exit $?

次は共有設定ですねー。