*Samba 3.0 インストール手順 [#zebe4814]
#contents

**入手先 [#o6fb5e7b]
-samba配布元~
http://www.samba.gr.jp/ ~
~
-libiconv配布元~
http://www.gnu.org/software/libiconv/ ~
~
-libiconvパッチ配布元~
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.9.1-cp932-patch.html~

 
**libiconv + Windows互換パッチ インストール手順 [#d9e6c9ec]
Samba 3.0以降は国際化対応が成されており、文字コードの変換にはlibiconvを使用している。しかし、glibcに含まれるlibiconvではUnicodeのコード変換テーブルがWindows互換ではない等の問題があるため、Sambaにて使用するにはパッチを適用したlibiconvを下記の手順にて準備する必要がある。~

 wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz 
 wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.11-cp932.patch.gz
 gzip -dc libiconv-1.11.tar.gz | tar xvf -
 cd libiconv-1.11
 gzip -dc ../libiconv-1.11-cp932.patch.gz | patch -p1
 ./configure --prefix=/usr/local
 make ; make check
 make install
 
以上により/usr/local配下にlibiconvがインストールされる。~
パッチが正常に適用できたかを下記のコマンドにて確認する。~

 iconv -l | egrep -i '(-31j|-ms)'

下記の文字列が表示されれば正常に適用されている。~

 EUC-JP-MS
 EUCJP-MS


**ライブラリパスの追加 [#v03c0e90]
sambaをコンパイルする前に/usr/local/libがライブラリパスとして登録されているかを確認する。
/etc/ld.so.confに/usr/local/libが登録されていない場合は記載する。

 echo "/usr/local/lib" >> /etc/ld.so.conf
 ldconfig

**sambaインストール手順 [#da723d42]
以下の手順にてsambaをインストールする。 ~

 wget ftp://ftp.samba.gr.jp/pub/samba/samba-3.0.28a.tar.gz
 tar xfvz samba-3.0.28a.tar.gz 
 cd samba-3.0.28a/source/
 ./configure --prefix=/usr/local/samba --with-privatedir=/etc/samba --with-configdir=/etc/samba --with-libiconv=/usr/local --with-automount --with-smbmount --with-pam --with-pam_smbpass --with-syslog --with-quotas --with-utmp --with-smbwrapper > configure.log
 make
 make install

sambaは /usr/local/samba にインストールされる。~
設定ファイルは /etc/samba にインストールされる。~
動作ログは /var/log/samba に出力される。~


- 確認事項~
configure時にlibiconvが有効になっているか確認する

 grep iconv configure.log

下記の出力があれば有効化されている。

 checking for iconv in /usr/local/lib... yes


**起動設定 [#jb512246]
インストールだけではsambaを稼動させることができないため、起動に必要な設定を行う。 

 cp ../packaging/RHEL/setup/smb.init /etc/rc.d/init.d/samba
 cp ../packaging/RHEL/setup/swat /etc/xinetd.d/swat
 cp ../packaging/RHEL/setup/samba.pamd /etc/pam.d/samba
 chmod 755 /etc/rc.d/init.d/samba

 cd /etc/rc.d/rc3.d
 ln -s ../init.d/samba S91samba
 cd /etc/rc.d/rc5.d
 ln -s ../init.d/samba S91samba


スクリプト類のパスを書き換えずに動作させるため、プログラムのリンクを作成する。

 cd /usr/sbin
 ln -s /usr/local/samba/sbin/smbd smbd
 ln -s /usr/local/samba/sbin/nmbd nmbd
 ln -s /usr/local/samba/sbin/swat swat


以上の手順で自動起動までの設定は完了する。~
Sambaの起動・停止制御は下記の手順にて行なう。~

 /etc/rc.d/init.d/samba start
 /etc/rc.d/init.d/samba stop

smb.confを作成した後にSambaを起動する。



**SWATへのアクセス権設定 [#s2efc2fe]
SWAT(Samba Web Administrator Tools)を使用する場合には、スーパーサーバ(この説明ではxinetd)の設定が必要となる。
/etc/xinetd.d 配下にコピーしたswatの起動設定を以下に修正する。 ~

 service swat 
 { 
 port = 901
 socket_type = stream
 wait = no
 only_from = 127.0.0.1
 user = root
 server = /usr/sbin/swat
 log_on_failure += USERID
 disable = no
 } 

-port = 901 ~
使用するポートを指定。変更不要 ~
-socket_type = stream ~
ソケットタイプを指定。変更不要 ~
-wait = no ~
サービスが使用するスレッドタイプを指定。変更不要 ~
-only_from = 127.0.0.1 ~
SWATへのアクセスを許可するホストを指定。要変更 ~
セグメント全体へのアクセスを許可する場合には以下の書式で設定する。(192.168.0.0 → 192.168.0.0/24全体のアクセスを許可)
-user = root ~
サービスを実行するUIDを指定。変更不要 ~
-server = /usr/sbin/swat ~
SWATの実行ファイルを指定。swatの配置合わせて変更 ~
-log_on_failure += USERID ~
サービスへの接続に失敗した場合にログに出力する内容を指定 ~
-disable = yes ~
サービスの有効・無効化。yes=無効、no=有効になるため要変更 ~

設定が完了したらxinetdを再起動する。~
また、TCP Wappersの設定でのアクセス許可も必要となる。~
/etc/hosts.allowに以下を追加する。~

 swat : [接続許可IPアドレス]

以上の設定を行った上で、webブラウザから以下のアドレスにアクセスする。


 http://[IP Address]:901/


認証画面が表示されたら、UID = root、Password = rootのパスワードでログインする。


**文字コード設定 [#wd294d55]
Samba3.0以降はsmb.conf内に3種類の文字コード設定が必要となる。


-unix charset ~
UNIX上のファイルシステムに用いられている文字コード ~
-dos charset ~
Windows側で利用されている文字コード ~
-display charset ~
SWATの画面に表示される文字コード ~

指定することが可能な文字コードはCP932/EUCJP-MS/UTF-8の3種類となる。~
Windows/Unix上から日本語文字のファイルを正常に読み出すには下記の設定を行なう。~

 dos charset = CP932
 unix charset = EUCJP
 display charset = CP932

Unix上にて正常に日本語文字のファイル名を表示させるには、環境変数にLANG=ja_JP.eucJPを設定する。~


**トラブル対応 [#kd4ea184]
sambaのインストールと初期動作に関するトラブル対応。

-日本語文字列の文字化け~
比較的よく遭遇するトラブルとして日本語ファイル・フォルダ名の文字化けが発生する。~
これが発生する際には/var/log/samba/smbd.logを確認する。~
sambaの起動時に以下のようなログが出ている場合は原因はパッチ適用したiconvが正しく動作していない状態である。

 [2008/01/01 01:27:19, 0] lib/charcnv.c:init_iconv(159)
 init_iconv: Conversion from UTF-16BE to CP932 not supported
 [2008/01/01 01:27:19, 0] lib/charcnv.c:init_iconv(167)
 init_iconv: Attempting to replace with conversion from UTF-16BE to ASCII
 [2008/01/01 01:27:19, 0] lib/charcnv.c:init_iconv(159)
 init_iconv: Conversion from UTF-16BE to CP932 not supported

過去の事例から以下の様な場合に問題が発生する。

-パッチを適用したiconvを導入していない~
→手順通りに入れましょう~
-iconvをmake installしていない~
→/usr/local/binおよび/usr/local/libにiconvがあるかを確認~
-sambaがパッチ適用したiconvを読んでいない~
→sambaのconfigureログでiconvが有効になっているかを確認~
→ライブラリパスに/usr/local/libが追加されているかを確認~
-libiconvのバージョンを上げる
→libiconv-1.13を導入して試みる


-samba起動時のエラー
samba 3.2にて起動時に以下のエラーが発生する

 # /etc/init.d/samba start
 SMB サービスを起動中: smbd: error while loading shared libraries:  libtalloc.so.1: cannot open shared object file: No such file or directory
                                                           [失敗]
 NMB サービスを起動中: nmbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory
                                                           [失敗]


libtalloc.soが見つけられないとのエラーである。~
libtalloc.soはsambaのインストールディレクトリのlib配下にインストールされているため、/etc/ld.so.confにパスを追加してldconfigを実行する。

 echo "/usr/local/samba/lib/" >> /etc/ld.so.conf
 ldconfig

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS