Samba サーバーの設定に入ります。
前回で SWAT も同時にインストールしましたが使いません。
今回は、基本的なファイルサーバーを構築するのに最低限必要なパラメータのみしか設定しませんので、空のファイルから作成します。サーバーアプリケーションの本質/構造を手っ取り早く理解する為にもそちらの方が良いです。
英語で説明が書かれたサンプルも用意されています。
./samba-3.2.7/examples/smb.conf.default
■ Samba用UNIXユーザの追加
ファイルサーバー用にUNIXユーザーを追加します。
ここで追加するユーザーは、ファイルがアップロードされた時にそのファイルの所有者として設定されます。
ファイルサーバーのパス(ドキュメントルート)もこのユーザのホームディレクトリ内に設置することとします。
# adduser -u 200 -d /home/samba samba
・共有フォルダ作成
# mkdir /home/samba/public # chown samba /home/samba/public # chgrp samba /home/samba/public
もし /var/samba/public ディレクトリをファイルサーバーのドキュメントディレクトリとしたければ、samba ユーザのホームディレクトリを /var/samba としてください。
(/var/samba/public をドキュメントルートとする場合) # adduser -u 200 -d /var/samba samba # mkdir /var/samba/public # chown samba /var/samba/public # chgrp samba /var/samba/public
■ ログディレクトリの作成
# mkdir /var/log/samba
■ 設定ファイルの作成
# vi /usr/local/samba3/lib/smb.conf
取り合えず完成形。
・/usr/local/samba3/lib/smb.conf
[global] workgroup = MYGROUP server string = Samba Server security = share hosts allow = 192.168.200. unix charset = UTF-8 dos charset = CP932 netbios name = linux guest account = samba log file = /var/log/samba/log.%m max log size = 50 dns proxy = no [public] path = /home/samba/public public = yes only guest = yes writable = yes
1つずつ説明していきます。
smb.conf には、「セッション」と「パラメータ」との2種類の要素が存在します。
上記の設定内容だとセッションは、[global] と[public]という部分に当てはまります。global は特殊なセッションで、Sambaサーバー全般に関わる設定を記述する部分です。public は、Windows共有でいうところの共有フォルダとなります。このセッション名は任意です。publicでもshareでもmyspace構いません。
共有フォルダは後からいくつでも増やすことができ、それに対するパスも自由に指定できます。
そして、パラメータとは、それらのセッションに対して値を設定していくものです。
work group や path がそれに当たります。
では、それぞれ設定していきます。
まずは global セッションから。
■ 設定ファイルの修正 – [global]セクション
■ workgroup : ワークグループ名
NetBIOS (Windowsネットワーク) のワークグループ名を指定します。既存のWindowsクライアントと設定を合わせてください。大体「WORKGROUP」とか「MYGROUP」とか「HOME」とかになってます。
・確認する方法
マイコンピュータ、右クリック => プロパティ
-> 「システムのプロパティ」ダイアログボックスが表示されます。
「コンピュータ名」タブをクリック
->「ワークグループ」と表示されます。
それがNetBIOSのワークグループ名です。
わかりやすい名前に変更しても良いでしょう。
■ server string : サーバーの説明
「マイネットワーク」でネットワーク上のマシンを一覧表示した時に、サーバー名の下に表示されるコメントっぽい文字列です。
■ security : セキュリティモード
認証なしのゲストユーザーのみで使用する場合は「share」を指定してください。
PAMやsambapass等によってユーザ単位の認証機能を利用する場合は「user」を指定してください。
■ hosts allow : 許可ホスト
その名の通り、接続を許可するホストです。
192.168.1.* からの接続を許可したい場合は次の様に指定する。
hosts allow = 127. 192.168.1.
※)最後のドットを忘れない事! 基本的にSambaは、NetBIOS over TCP/IP をサポートしているので、制限を掛けずにグローバルに出すと、全世界からアクセスが可能になります。ローカルに設置したとしてもセキュリティの為に hosts allow は設定しておきましょう。
■ unix charset : Unix文字セット
Unix上の文字コードです。 日本語等のマルチバイトを含む名前のファイルやディレクトリを受信した際に、どの文字コードを使ってファイルシステムへ保存するか、という指定になります。 (※ファイルの中身ではありません。ファイル名です。)
unix charset = UTF-8
と指定した場合、WindowsクライアントからSambaサーバーに「てすと.txt」というファイルがアップロードされる時、Sambaはそのファイル名をCP932(日本語Shift-JIS)からUTF-8へ変換してからファイルシステムへ保存します。 UNIX上ではUTF-8で「てすと.txt」と保存される事になります。 unix charset に関しては、OSごとに合わせれば良いのではないでしょうか。 CentOS、Fedora、RH*等、デフォルトのローケルにUTF-8が使われているOSならば「UTF-8」を、FreeBSD、NetBSD、 OpenBSD等、デフォルトのローケルにEUC-JPが使われているOSならば「EUC-JP」を指定します。 とは言っても、無理にローケルに合わせなくても正常に動作はします。ただ、ローケル以外の文字コードを指定した場合、ターミナルから ls とした時に日本語が文字化けします。
■ dos charset : Dos文字セット
Sambaがクライアントにファイルの一覧を出力する時に、どの文字コードを使って出力するか。という指定になります。 Windowsクライアントからファイルを参照したい場合は、 CP932(日本語Shift-JIS)を指定する必要があります。 クライアントが*BSDのみとか、Linuxのみの場合は、UTF-8やEUC-JP等で良いと思います。 いちいちCP932にコンバートする必要がなくなりますから。
■ netbios name : NetBIOS名
Sambaサーバーに割り当てるNetBIOS名(コンピュータ名)です。
■ guest account : ゲストアカウント
「samba用UNIXユーザの追加」で追加したUNIXユーザ名を指定します。
guest account = samba
「user=guest : pass=なし」というアカウントでログインした時にマップされるUnixユーザです。 マップされたユーザは、ファイルやディレクトリを保存する時に、その所有者として設定されるユーザとなります。
■ log file : ログファイル
ログファイルを指定します。
log file = /var/log/samba/log.%m
「%m」にNetBIOS名が置き換えられます。 接続、読み取り、書き込み等の記録を保存します。
■ max log size : 最大ログサイズ
log file パラメータに指定したログファイルの最大サイズをKB単位で指定します。
■ dns proxy : DNSプロキシ
NetBIOS名をDNS経由で解決するか。 今回は特にセキュリティに神経質ならなくても良いような内容なので、 no にしています。
■ 設定ファイルの修正 – [public]セクション
public セッションの設定です。 「public」という文字は任意です。share や myspace 等に変更しても構いません。
■ path
共有フォルダのパス(ドキュメントルート)。 アップロードされたファイルの保存場所となります。 guest account で指定したUNIXユーザが書き込み可能である場所を指定する必要があります。(security = share時)
■ public ( = guest ok )
パスワードなしでのアクセスを認める。securityに share 以外のパラメータを指定した場合、無視されます。
■ only guest
ゲストアカウントでのみ接続を許可する
■ writable
書き込みを許すか。yesにしないとファイルをアップロードできません。 次回は、その他設定、動作確認と自動起動設定です。