読者です 読者をやめる 読者になる 読者になる

end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

samba 3.6.24 のinstallと、自動起動

samba 3 をインストール - end0tknrのkipple - web写経開発
以前も同様のエントリを記載していますが、久しぶりにsambaをinstallしたら、忘れている部分もあったのでメモ。

sambaのインストール

設定ファイルだけは、/etc/samba/smb.conf にインストールしています

$ wget ftp://ftp.samba.gr.jp/pub/samba/samba-3.6.24.tar.gz
$ tar -zxvf samba-3.6.24.tar.gz
$ cd samba-3.6.24/source3
$ ./configure --with-configdir=/etc/samba
$ make
$ su -
# make install

設定ファイルのコピー&編集

設定ファイルはsrcファイル群に含まれていますので、編集はご自身の環境に応じてお願いします

# cp /tmp/samba-3.6.24/packaging/RHEL/setup/smb.conf /etc/samba/

自動起動

# cd /etc/rc.d/init.d
# cp /tmp/samba-3.6.24/packaging/RHEL/setup/smb.init ./smb
# chkconfig smb on

自動起動scriptもsrcファイル群に含まれていましたが、私の環境では、なぜか自動起動できませんでした。(原因は詳しく調べていません)
そこで、以前から使用しているsamba自動起動スクリプトを使用して問題なく自動起動できるようになりました。

samba-3.6.24/packaging/RHEL/setup/smb.init

こちらは動作しなかったscriptです

#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#              used to provide SMB network services.
#
# pidfile: /var/run/samba/smbd.pid
# pidfile: /var/run/samba/nmbd.pid
# config:  /etc/samba/smb.conf
SMB_HOME=/usr/local/samba
export LD_LIBRARY_PATH=$SMB_HOME/lib


# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then
   . /etc/sysconfig/samba
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 0

# Check that we can write to it... so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 0

# Check whether "netbios disabled" is true
ISNETBIOSDISABLED=$(testparm -s 2>/dev/null | \
        sed -n '/\[global\]/,/^$/p' | \
        grep "disable netbios = Yes" | \
        awk 'BEGIN{FS=" = "}{print $2}')


RETVAL=0


start() {
        KIND="SMB"
        echo -n $"Starting $KIND services: "
        daemon $SMB_HOME/sbin/smbd $SMBDOPTIONS
        RETVAL=$?
        echo
        KIND="NMB"
        if [ x"$ISNETBIOSDISABLED" != x"Yes" ]; then
                echo -n $"Starting $KIND services: "
                daemon $SMB_HOME/sbin/nmbd $NMBDOPTIONS
                RETVAL2=$?
                echo
                [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \
                        RETVAL=1
        else
                [ $RETVAL -eq 0 ] && touch /var/lock/subsys/smb || \
                        RETVAL=1
        fi
        return $RETVAL
}       

stop() {
        KIND="SMB"
        echo -n $"Shutting down $KIND services: "
        killproc smbd
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/run/smbd.pid
        echo
        KIND="NMB"
        if [ x"$ISNETBIOSDISABLED" != x"Yes" ]; then
                echo -n $"Shutting down $KIND services: "
                killproc nmbd 
                RETVAL2=$?
                [ $RETVAL2 -eq 0 ] && rm -f /var/run/nmbd.pid
                [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb 
                echo ""
        else
                [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/smb 
                echo ""
        fi
        return $RETVAL
}       

restart() {
        stop
        start
}       

reload() {
        echo -n $"Reloading smb.conf file: "
        killproc smbd -HUP
        RETVAL=$?
        echo
        return $RETVAL
}       

rhstatus() {
        status smbd
        status nmbd
}       

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        reload
        ;;
  status)
        rhstatus
        ;;
  condrestart)
        [ -f /var/lock/subsys/smb ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
        exit 1
esac

exit $?
/etc/rc.d/init.d/smb

こちらは動作した以前か使用しているscriptです。入手元は...忘れました

#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd daemon \
#              used to provide SMB network services.
#
# pidfile: /var/run/samba/smbd.pid
# config:  /etc/samba/smb.conf
SMB_HOME=/usr/local/samba

# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 1
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then
   . /etc/sysconfig/samba
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1

# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 6

RETVAL=0


start() {
        KIND="SMB"
        echo -n $"Starting $KIND services: "
        daemon $SMB_HOME/sbin/smbd $SMBDOPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/smb || \
           RETVAL=1
        return $RETVAL
}       

stop() {
        KIND="SMB"
        echo -n $"Shutting down $KIND services: "
        killproc $SMB_HOME/sbin/smbd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/smb
        return $RETVAL
}       

restart() {
        stop
        start
}       

reload() {
        echo -n $"Reloading smb.conf file: "
        killproc $SMB_HOME/sbin/smbd -HUP
        RETVAL=$?
        echo
        return $RETVAL
}       

rhstatus() {
        status $SMB_HOME/sbin/smbd
        return $?
}       


# Allow status as non-root.
if [ "$1" = status ]; then
       rhstatus
       exit $?
fi

# Check that we can write to it... so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 4



case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        reload
        ;;
  status)
        rhstatus
        ;;
  condrestart)
        [ -f /var/lock/subsys/smb ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
        exit 2
esac

exit $?

参考url

例えば、次のurlを参考にさせて頂きました
https://sites.google.com/site/centosdesabagouzhu/5-sambainsutoru