SambaとNetaTalkのインストール

初稿 : 2001.03.10
第2稿 : 2001.05.05

SAMBAのインストールと設定

SAMBAは最新日本語版がきれいに国際化され、swatというWebフロントエンドもヘルプまで日本語化されているため使い勝手が良い。

だもんでこれもソースから作る事にする。swatも日本語ヘルプも要らん、俺はman片手に手で設定しなければ気が済まん!という方はpackagesにあるのでそれもいいでしょう。本来オレもこの口なんだけど。(笑)

http://www.samba.gr.jp/日本Sambaユーザ会から日本語最新版のソース(2001/02/22現在2.0.7-ja-2.2)をgetして/usr/src/以下に展開。

$ tar -xvzf samba-2.0.7-ja-2.2.tar.gz -C /usr/src/
$ rm samba-2.0.7-ja-2.2.tar.gz
$ cd /usr/src/samba-2.0.7-ja-2.2/source/

$ ./configure --with-netatalk --with-i18n-swat
$ make
$ su
# make install
# exit
$ make clean

以下のエントリを追加。

$ su
# vi /etc/services
(最下行に)
swat 901/tcp

以下のエントリを追加。

# vi /etc/inetd.conf
(最下行に)
swat stream tcp nowait.400 root /usr/local/samba/bin/swat swatt

inetd をリスタート

# /etc/rc.d/inetd restart

Sambaの設定ファイルを編集。

# vi /usr/local/samba/lib/smb.conf
# Samba config file created using SWAT
# from 192.168.0.14 (192.168.0.14)
# Date: 2001/02/25 01:42:27

# Global parameters
[global]
        coding system = EUC
        client code page = 932
        server string = Samba %v
        encrypt passwords = Yes
        update encrypted = Yes
        map to guest = Bad Password
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        os level = 2
        dns proxy = No
        hide files = /.*/DesktopFolderDB/TheVolumeSettingsFolder/Icon*/Network Trash Folder/resource.frk/

[LC475BSD]
        comment = Samba %v on %h@NetBSD
        path = /usr/users/share
        writeable = Yes
        guest only = Yes
        guest ok = Yes

ポイントは[global]属性の

hide files = /.*/DesktopFolderDB/TheVolumeSettingsFolder/Icon*/Network Trash Folder/resource.frk/

だ。これにより後述のNetatalkと同一のディレクトリ(この場合/usr/users/share)を共有してもMac独自のアイコンやリソースフォーク、デスクトップファイルなどがWindows側に見えてしまうことを防ぐ。

また、家庭内LAN内での手軽なフォルダ共有が目的なのでパスワード無しのアクセスを全開で許可、クライアントがWindows2000なので暗号化パスワードをアクティブにしている。

共有ディレクトリを作成

# mkdir /usr/users/share
# chmod 0777 /usr/users/share

パスワードディレクトリの作成

# mkdir /usr/local/samba/private

最後に、

# /usr/local/samba/bin/testparm

で、smb.confの設定に異常がないか確認。

Webブラウザからswatへの接続確認

http://localhost:901/

swat設定ページが出たらrootでログインして各種設定とサーバのスタート、動作確認を行う。

swatやこれ以上の細かい設定についてはここでは触れない。日本Sambaユーザ会のWeb Site(http://www.samba.gr.jp/)には膨大で詳細な解説があるのでそちらを参考にして欲しい。また、swatには日本語マニュアルが付属、設定の各セクションごとに詳細な解説と設定例が含まれているので、大いに参考になる。

稼働テストと基本設定がすんでしまえば、いじることも稀なので/etc/services、/etc/inetd.confに追加したエントリをコメントアウトしてroot権限を使用するswatは殺しておくのもいいだろう。

さらに以下のスクリプトを用意する。

# vi /usr/local/samba/bin/smbctl
#!/bin/sh
#
# Samba Server Control
#
SMBD=/usr/local/samba/bin/smbd
NMBD=/usr/local/samba/bin/nmbd

killproc()
{
  pid=`ps ax | grep $1 | grep -v grep | awk '{print $1}'`
  [ "$pid" != "" ] && kill $pid && echo "$1 killed."
}

start_samba()
{

  if [ -x "${SMBD}" ]; then
    if [ -x "${NMBD}" ] ; then
      echo -n 'Starting Samba Services : '
      ss=`ps ax | grep $SMBD | grep -v grep | awk '{print $1}'`
      if [ "$ss" = "" ]; then
        `$SMBD -D`
        echo -n 'smbd '
      else
        echo -n 'smbd is already running... '
      fi
      ns=`ps ax | grep $NMBD | grep -v grep | awk '{print $1}'`
      if [ "$ns" = "" ]; then
        `$NMBD -D`
        echo 'nmbd'
      else
        echo 'nmbd is already running...'
      fi
    fi
  fi
}

stop_samba()
{
  killproc $SMBD
  killproc $NMBD
}

case "$1" in
start)          start_samba ;;
stop)           stop_samba  ;;
restart)        stop_samba
                start_samba ;;
*)              echo "usage: $0 {start|stop|restart}";;
esac

exit

# chmod u+x /usr/local/samba/bin/smbctl

これで/usr/local/samba/bin/smbctl [start | stop | restart]でsmbdとnmbdの起動、停止、再起動がコンソールからも簡単に行えるようになる。

動作の確認が取れたら、自動起動するようにrc.localに登録する。

# vi /etc/rc.local
(省略)
#
# Starting Samba Services
#
if [ -x /usr/local/samba/bin/smbctl ]; then
        /usr/local/samba/bin/smbctl start
fi

以上。

Netatalkのインストールと設定

netatalk-1.4b2+asun2.1.3 は、1.4b2 をベースに AppleShareIP 対応が行なわれたバージョン。

幸いこいつはPackagesに最新版があるので、それを使おう。(パッチをかき集めるのが面倒なので‥‥^^;)

$ su
# pkg_add netatalk-asun-2.1.3nb4.tgz

設定ファイルのコピー

# cp -r /usr/pkg/share/examples/netatalk /etc/

ネットワークカードの設定

# vi /etc/netatalk/atalkd.conf
# Format of lines in this file:
ae0 -phase 2

ホームディレクトリと共有ディレクトリの設定

# vi /etc/netatalk/AppleVolumes.default
/usr/users/share        LC475_BSD

起動用のシェルスクリプトが用意されているので、それを用いてNetatalkを起動。

# /usr/pkg/etc/rc.d/netatalk.sh

このスクリプトは起動しか出来ないので、設定変更など手入れするとき楽なようにシェルスクリプトを組んでおく。Sambaと同様、Apachectlの動作をパクっているので、netatalkctlとしておこうか。

#vi /usr/pkg/etc/rc.d/netatalkctl
#!/bin/sh

killproc()
{
  pid=`ps ax | grep $1 | grep -v grep | awk '{print $1}'`
  [ "kill$pid" != "kill" ] && kill $pid && echo "$1 killed."
}

start_netatalk()
{
        echo -n 'starting appletalk daemons:'
        if [ -x /usr/pkg/sbin/atalkd ]; then
                /usr/pkg/sbin/atalkd
                echo -n ' atalkd'
        fi

        if [ -x /usr/pkg/bin/nbprgstr ]; then
                /usr/pkg/bin/nbprgstr -p 4 `hostname -s |sed 's/¥..*$//'`:Workstation
                /usr/pkg/bin/nbprgstr -p 4 `hostname -s |sed 's/¥..*$//'`:netatalk
                echo -n ' nbprgstr'
        fi

        if [ -x /usr/pkg/sbin/papd -a /etc/netatalk/papd.conf ]; then
                /usr/pkg/sbin/papd
                echo -n ' papd'
        fi

        if [ -x /usr/pkg/sbin/afpd -a /etc/netatalk/AppleVolumes.system ]; then
                /usr/pkg/sbin/afpd
                echo -n ' afpd'
        fi
        echo '.'
}

stop_netatalk()
{
  killproc /usr/pkg/sbin/atalkd
  killproc /usr/pkg/bin/nbprgstr
  killproc /usr/pkg/sbin/papd
  killproc /usr/pkg/sbin/afpd
}

case "$1" in
start)          start_netatalk ;;
stop)           stop_netatalk  ;;
restart)        stop_netatalk
                start_netatalk ;;
*)              echo "usage: $0 {start|stop|restart}";;
esac

exit

例によってnetatalkctl [start | stop | restart]でNatatalkの起動、停止、再起動が出来るので、動作の確認が取れたら、自動起動するようにrc.localに登録する。

# vi /etc/rc.local
(省略)
#
# Starting Netatalk Services
#
if [ -x /usr/pkg/etc/rc.d/netatalkctl ]; then
        /usr/pkg/etc/rc.d/netatalkctl start
fi

以上

とりあえず

ここまでで自宅共有ファイルサーバ、及びローカルWWWサーバとしての設定は一通り完了した。

ただし、/rec/rc./以下に置くスクリプトはNetBSD-1.5からの正規のシェルスクリプティングではないので、スクリプトについては暫定措置と考えてほしい。スクリプトやドキュメントを読み解く労力を惜しんだ結果なのだが、おかしなことにはならないように組んであるので、LANでの使用であれば問題はないだろう。実際、ウチでも既に二カ月、ノンストップで稼働しているしサービスがおかしくなったことも皆無だ。

このコーナーに記した設定で問題や情報があればmiki777@you-wing.comまでお知らせいただければ、対処するつもりでいます。

以上。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

Copyright (c) 1998-2010 by 君羽空夢     Since July 15th,1998