Samba3.0の備忘録

ファイルサーバーは、VineでSamba2.2.8a-ja(rpmインストール)を導入済。ところが昨年PowerBookG4を購入したので、LAN内はLinux,Mac,Windowsの混在。LinuxとWindowsだけなら、Samba+NFSでファイル共有に問題はなかったんやけど。

Macでは何を使うか悩む事に。うーん。MacOSとしてならAppleTalk、クールなインタフェースのBSDとしてならNFS、スマートなSambaもすてがたい。

結局Sambaにして、さっそく共有開始。ここで一つ問題が・・・}-)

MacOSX(Panther10.3.2)はUnicode対応なんだけど、ご承知のようにSamba2.28a-jaはEUC-JP環境。当然のごとく日本語ファイル名が文字化け。まぁ日本語ファイル名を使わんかったらいいんやけどね。

んで最初はSharityを使ってしのいでた。でもなぁんか精神衛生的によい日本語環境がええなぁと思い立って、Unicode対応のSamba3.0を検討。SOHOレベルでSabam3.0を導入する理由は、あまりないんです。でもただただMac,Windows,LinuxのLAN内をシームレスな日本語環境にしたい動機だけで導入決定!

そんなわけで、Samba3.0の備忘録。

■Samba3.0のインストール

rpmかソースのどっちのインストールでも日本語の扱いに難ありのため、問題解決には次の方法を選択。森山将之さんが配布されている日本語ロケール・パッチが適用されたGNU libiconvをインストール。

他にActiveDirectory参加機能やLDAP認証機能を利用するときには、対応したdevelパッケージがいるんやけどSOHOには必要なし。いずれ勉強してLDAPサーバーを構築したいけどなぁ。

今回はSamba2.28-ja環境を残しておくために、ソース・インストールを選択。

1.libiconvのインストール libiconv-1.8.tar.gzと日本語ロケールパッチlibiconv-1.8-cp932-patch.diff.gzファイルを入手。 作業用ディレクトリは例によって、/usr/local/src。

% wget ftp://ftp.ring.gr.jp/pub/GNU/libiconv/libiconv-1.8
.tar.gz
% wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv-
patch.html
/libiconv-1.8-cp932-patch.diff.gz
% tar zxvf libiconf-1.8.tar.gz
% zcat libiconv-1.8-cp932-patch.diff.gz | patch -p0
% cd libiconv-1.8
% ./configure
% make
% su
# make install
ibiconvインストール後の確認
% /usr/local/bin/iconv -l | grep EUCJP-MS
EUCJP-MS

2.Samba3.0のインストール

% wget ftp://ftp.samba.gr.jp/pub/samba/samba-3.0.0.tar.bz2
% tar zxvf samba-3.0.0.tar.bz2
% cd samba-3.0.0/source
% ./configure --with-libiconv=/usr/local --with-pam
% make
% su
# make install
/usr/local/sambaディレクトリにインストール完了。
smb.confを発見すること。

3.追加機能を手動でインストール

Samba3.0をWINSサーバーとして利用するので、libnss_wins.soのモジュールを手動でインストール。ついでにlibnss_winbind.soも同じ。

% cd samba-3.0.0/source
% make nsswitch/libnss_wins.so
% make nsswitch/libnss_winbind.so
% su
# cp nsswitch/libnss_wins.so /lib
# cp nsswitch/libnss_winbind.so /lib

4.SWATの導入

Samba3.0はsmb.confをエディタで書き換えて設定を変更できるけど、めんどいのでSWATを使っています。ほいで、今回はSamba2.28a-jaを共存させてるので、901番portは予約済み。んなわけど、となりの席を予約。/etc/servicesに次のオーダーを。

swat2 902/tcp # Add swat samba3.0 service used via inetd

で、VineもDebian GNU/Linux3.0と同じで、スーパー・サーバー・デーモンはinetd。 /etc/inetd.confに追加。

swat2 stream tcp nowait root /usr/local/samba/sbin/swat swat
# /etc/init.d/inetd stop
# /etc/init.d/inetd start

http://hostname.hogehoge.com:902/ or http://IP address:902/で確認

5.起動スクリプトと設定ファイルの作成

/etc/init.dディレクトリに起動スクリプトを配置して、システムの起動時にSamba3.0を起動させる。 注意事項は、Samba2.2.8a-jaの起動スクリプトと同じ名前にしないこと。起動スクリプトはsmb30ってファイル名に。

# chkconfig smb30 on
# chkconfig smb off

設定ファイルは文字コードがミソ。/etc/samba/smb.confを/usr/local/samba/lib/smb.confに コピーしてちょこっと変更。

# cp -p /usr/local/samba/lib/smb.conf smb.conf.bak
# cp -p /etc/samba/smb.conf /usr/local/samba/lib/

/* smb.conf */
[global]
dos charset = CP932
unix charset = EUCJP-MS
display charset = CP932

それ以外の設定は、SWATで確認しながら勉強中。

徹底解説 Samba LDAPサーバ構築

徹底解説 Samba LDAPサーバ構築