2000-11-03 改定
Sambaサーバの紹介
・WindowsNTは標準機能として、Windowsファイル共有とプリンタ共有機能を搭載しています。この機能を使うことでクライアントマシンはネットワーク越しにWindowsNTに接続されたプリンタを利用したり、NT上のディスクを利用することが簡単に行えるようになっています。
この機能は素晴らしい(ネットワークを身近なものにしたという意味で..)ものだと思いますが利用するには、WindowsNT
Serverでは接続されるクライアントマシン分のライセンスが必要です。またWindowsNT
Warkstationではクライアントのライセンスは不要ですが、最大で10台のマシンしか接続できません。
Sambaは、UNIX上にこのWindowsファイル共有とプリンタ共有の機能を実現するためのソフトです。ソフトウェアはGPLによるフリーソフトなので、このソフトを利用するために特別なライセンスは必要ありません。つまり、LinuxやFreeBSD上でSambaを動かせば完全にフリーなライセンスでこれらの機能が利用可能になります。
Sambaは一般的なLinuxやFreeBSDではパッケージされていますが、最新のものを使いたい場合やセキュリティに問題あるバージョンしかパッケージにない場合には最新のSambaを以下のサイトから求めることが可能です。
【ソースファイル】
・ Samba公式サイト : http://www.samba.org/
・ 日本Sambaユーザ会 : http://www.samba.gr.jp/ (日本語対応Samba)
ただし、FreeBSDではパッチを当てないとコンパイル時にエラーになるようなので、portsパッケージの利用をお勧めします。また、「日本Sambaユーザ会」からは日本語対応Sambaの入手が可能ですので、日本語環境で利用するならこちらを利用すると良いでしょう。
【パッケージ】
対応OS |
説 明 |
FreeBSD |
FreeBSDの日本語サイトのportsパッケージ の中にあります。例えばsamba-2.0.7はja-samba-2.0.7.xxとして登録されています。またここ以外の色々なミラーサイトにも登録されているので最寄のところから入手すると良いでしょう。 |
TurboLinux |
TurboLinuxの公式サイトにあります。日本語ページはこちら。(日本語対応) |
RedHat Linux |
RedHatの公式サイトにあります。日本語ページはこちら。(日本語対応) |
ソースファイルからコンパイルする場合には、入手したソースを解凍後、sourceディレクトリに移動して、
# ./configure --sysconfdir=/etc/samba --libdir=/etc/samba --with-fhs --with-privatedir=/etc/samba
--with-lockdir=/var/cache/samba --with-piddir=/var/run --with-swatdir=/usr/share/swat
--with-codepagedir=/usr/share/samba/codepages --with-automount --with-smbmount
--with-pam --with-pam_smbpass --with-quotas --without-smbwrapper --with-msdfs
--with-utmp --with-i18n-swat
# make; make install
を実行。
この後、/etc/pam.d/sambaというファイルを以下の内容で作成。
auth required /lib/security/pam_pwdb.so nullok
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so
password required /lib/security/pam_pwdb.so # shadow md5 nullok audit
更に、起動スクリプトとしてLinuxの場合には、/etc/rc.d/iinit.d/smbを以下の内容で作成。
#!/bin/sh
#
# chkconfig: 345 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
# used to provide SMB network services.
#
# pidfile: /var/run/smbd.pid
# pidfile: /var/run/nmbd.pid
# config: /etc/samba/smb.conf
# 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
RETVAL=0
start() {
KIND="SMB"
echo -n $"Starting $KIND services: "
daemon smbd $SMBDOPTIONS
RETVAL=$?
echo
KIND="NMB"
echo -n $"Starting $KIND services: "
daemon nmbd $NMBDOPTIONS
RETVAL2=$?
echo
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \
RETVAL=1
return $RETVAL
}
stop() {
KIND="SMB"
echo -n $"Shutting down $KIND services: "
killproc smbd
RETVAL=$?
echo
KIND="NMB"
echo -n $"Shutting down $KIND services: "
killproc nmbd
RETVAL2=$?
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb
echo ""
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 $?
|
またswatが利用できるようにするため/etc/xinetd.d/swatを以下の内容で作成する。
# default: off
# description: The Swat.samba GUI tool.
service swat
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/samba/bin/swat
only_from = 127.0.0.1 192.168.1.0/24
}
|
上記のうち、only_fromの部分は自分の環境に合わせて設定してください。
/etc/rc.d/init.d/xinetd restart
を実行する。
環境設定ファイルののテンプレートとして、
# cp packaging/SambaJP/smb.conf /etc/samba
# make install
で所定の場所にコンパイルした内容がインストールされます。なお、このようにコンパイルしてインストールを行った場合、プログラム本体や設定ファイルの格納ディレクトリはパッケージで格納される場所と違う場合がありますので注意してください。
PortsやRPMのパッケージを入手した場合にはこれらをインストールするには以下の手順になります。また、日本語化されたパッケージをインストールすれば、SWATを使ったGUIでのSambaの設定が可能になります。
(FreeBSDの場合)
# pkg_add ja-samba-2.0.7.xx
# cp /usr/local/etc/smb.conf.default /usr/local/etc/smb.conf
# /usr/local/etc/rc.d/samba.sh.sample /usr/local/etc/rc.d/samba.sh |
/etc/servicesファイルを開き、以下の行を追加します。
/etc/inetd.confファイルを開き、以下の行を追加します。
swat stream tcp nowait.400 root /usr/local/sbin/swat
swat |
パスワードファイルを使ってsmbpasswdファイルを作成します。
# /usr/local/bin/make_smbpasswd < /etc/passwd
> \
/usr/local/private/smbpasswd
# chmod 0600 /usr/local/private/smbpasswd
|
これでリブートするか「inetd」を再起動すればSWATが起動するようになります。「inetd」を再起動する場合は、"ps ax | grep inetd"でinetdのプロセス番号を調べて、"kill -HUP プロセス番号" とすることで再起動します。
3-1.関連ファイルの場所
ファイル名 |
FreeBSD |
TurboLinux |
dmb.conf |
/usr/local/etc/
(smb.conf.defaultをコピー)
|
/etc |
mksmbpasswd.sh
(make_smbpasswd) |
/usr/local/bin |
/usr/bin |
smbd, nmbd, swat |
/usr/local/sbin |
/usr/bin |
4.関連情報(Link)