WORKSTATION     SERVER     NETWORK     WINDOWS     LINUX

 

HOME

 

Server Build

 Sever Machine

 Fedora Core2

 Fedora Core3

 Apache2

 VSFTP

 SSHD

 Samba

 MySQL

 PHP5

 Apache+WebDAV

 Apache+SSL

 

PC Support

 

VIC'S FACTORY

vic@red-diamonds.net

 

samba-3.0.11のインストール

 

sambaを導入するとLinuxサーバーとWindows機間でファイル・プリンタ共有が実現できます。

現在の最新版"3.0.11"を使ってファイル・プリンタ共有を実現します。

 

libiconvの導入
sambaをソースからコンパイルするときは、まずlibiconvのソースアーカイブとCP932パッチを入手します。
"libiconv-1.9.2.tar.gz"と"libiconv-1.9.2-cp932-patch.gz"は
こちらのサイトで両方とも入手できます。

libiconvのソースアーカイブを 適当なディレクトリ(ここでは"/usr/local/src") にULし、展開してパッチを適用してからインストールします。

# cd /usr/local/src

# tar zxvf libiconv-1.9.2.tar.gz
# zcat libiconv-1.9.2-cp932-patch.gz | patch -p0
# cd libiconv-1.9.2
# ./configure --prefix=/opt/libiconv
# make
# make install

 

続いてSamba本体をインストールします。

 

Samba本体の導入

現在のSamba最新版3.0.11はこちらのサイトから入手します。
Samba本体のソースアーカイブ "samba-3.0.11.tar.gz" を適当なディレクトリ(ここでは "/usr/local/src/") にULして展開します。

# cd /usr/local/src
# tar xvzf samba-3.0.11.tar.gz

"source" ディレクトリに移動して、下記のオプションでconfigureします。
# cd samba-3.0.11/source
# ./configure \
#--with-libiconv=/opt/libiconv/
#--prefix=/usr \
#--bindir=/usr/bin \
#--sysconfdir=/etc \
#--libdir=/etc/samba \
#--with-configdir=/etc/samba \
#--with-privatedir=/etc/samba \
#--with-swatdir=/usr/share/swat \
#--with-quotas \
#--with-smbmount \
#--with-automount \
#--with-pam \
#--without-smbwrapper

私は上記のみ設定しましたが、必要に応じて以下のオプションを設定します。
#--exec-prefix=/usr \
#--sbindir=/usr/sbin \
#--includedir=/usr/include \
#--localstatedir=/var \
#--with-lockdir=/var/lock/samba \
#--with-codepagedir=/usr/share/samba/codepages \
#--with-fhs \
#--with-pam_smbpass \
#--with-syslog \
#--with-utmp \
#--with-msdfs \
#--with-i18n-swat

続いてsambaをインストールします。
# make
# make install

 

UNIX/LINUX間の共有を行うためにWINSモジュールを使う場合は、
# make nsswitch/libnss_wins.so を実行後、
"libnss_wins.so"を "/lib" 以下へコピーしておきます。
# cp /usr/local/src/samba-3.0.11/source/nsswitch/libnss_wins.so /lib

 

smb.confの設定
パッケージ内のsmb.confをコピーします。

# cp /usr/local/src/samba-3.0.11/packaging/RedHat/smb.conf /etc/samba/smb.conf

コピーした"smb.conf" の[grobales]欄に以下の3行を追加します。

# vi /etc/samba/smb.conf

unix charset = EUCJP-MS
display charset = EUCJP-MS
dos charset = CP932

※sambaの解説サイトでは上記設定にするように書かれていたんですが、当家の環境で
 は上記設定ではどうしても文字化けするため、「unix charset」を「UTF-8」にしています。

 

SWATの設定

"/etc/services"に次のエントリーがあるかどうか確認し、無ければ追加します。

  swat 901/tcp

 

SWATでの認証用として、"/etc/pam.d/samba" ファイルがあるかどうか確認し、無ければ "/usr/lobal/src/samba-3.0.11/packaging/RedHat/samba.pamd" を "/etc/pam.d/samba" にコピーします。

# cp /usr/local/src/samba-3.0.9/packaging/RedHat/samba.pamd /etc/pam.d/samba

 

ログファイルの作成とログを定期的に切り替える設定をします。

# mkdir /var/log/samba
# cp /usr/local/src/samba-3.0.9/packaging/RedHat/samba.log /etc/logrotate.d/samba

 

sambaの自動起動設定をします。
"/etc/rc.d/init.d/smb" があるかどうか確認し、あったら "chkconfig" してサーバーの起動と同時にsambaが起動するようにします。

# cd /etc/rc.d/init.d
# chkconfig smb on

続いて

# chkconfig --list smb

して

smb 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ

と出力されることを確認します。

 

"/etc/rc.d/init.d/smb" が無かったら、パッケージからコピーして作成します。

# cp /usr/local/src/samba-3.0.9/packaging/RedHat/smb.init /etc/rc.d/init.d/smb
# chmod 755 /etc/rc.d/init.d/smb
# chkconfig --add smb

続いて

# chkconfig --list smb

して

smb 0:オフ 1:オフ 2:オフ 3:オン 4:オン 5:オン 6:オフ

と出力されることを確認します。

 

次にSwatの自動起動設定をします。
"/etc/xinetd.d" にswat自動起動スクリプトをコピーします。

# cp /usr/local/src/samba-3.0.9/packaging/RedHat/samba.xinetd /etc/xinetd.d/swat

コピーしたswatファイルを修正します。

vi /etc/xinetd.d/swat

service swat
{
disable = no
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 192.168.1.1/XX
 (XX=LAN内最大IPアドレス)
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}

以上でsambaとswatが使える状態になりました。
 

swatを起動できるようにxinetdを再起動します。

# /etc/rc.d/init.d/xinetd restart

 

後はswatでsambaの設定をします。
Windows機からブラウザで "http://192.168.1.XX(サーバーのIPアドレス):901/" と入力するとswatのログイン画面になります。
"ユーザ名:root"、"パスワード:rootのパスワード"でswatが起動します。

 

※もしswatに接続できないときは、、
1."netstat -ln"で901番がListen状態になっているか確認。…なっていなかったらF/Wの設定を確認。
2."/etc/xinetd.d/swat"のパーミッションを確認。(644ならOK)

 

※swatでの各設定については、"help"を見れば概ね分かると思いますので、それぞれの環境に合わせて設定してください。

 

※swatを使わなくても、以下により直接sambaユーザを登録できます。
1.sambaユーザがシステムに未登録の場合、先にシステムにユーザを追加します。

# useradd XXXX (XXXX=ユーザ名)
# passwd XXXX (システムにログインするときのパスワードを2回入力)

2.sambaユーザを登録します。(sambaにログインする際のパスワードを同時に設定)

# smbpasswd -a XXXX (初めて登録するときは'-a'オプションをつけます)
(sambaにログインするときのパスワードを2回入力)