Deletions are marked like this. | Additions are marked like this. |
Line 51: | Line 51: |
=== 共有の設定 === * guest okあるいはpublic<<BR>>共有へのアクセスの際にパスワードが不要。 * guest onlyあるいはonly guest<<BR>>guest okあるいはpublicが指定されていないと意味が無い。必ずゲストとしてアクセスする。この指定が無いと、例えばfoobarという共有にアクセスする際には、foobarというアカウントがチェックされるようだ。 * writeable(read onlyの逆)<<BR>>yesにしておくと、書き込みが可能になる。 |
samba
長年sambaを使っているが、その設定方法はいまだに謎である。 sambaがこれだけわかりずらい原因は、おそらくMSのおかしなネットワークプロトコルにあると思われる。 ここでは、最も単純な設定方法を追求してみる。
前提条件
- サーバはCentOS6
- クライアントはWindows7
- サーバはLAN内にあり、外部には一切公開しない。
- アクセスコントロールはしない。LAN内の全員が全共有にアクセス可能。
- ドメインは使わない。ワークグループのみ。
- LAN内の共有サーバをマスタブラウザとする。
- LAN内にDNSサーバは無い。
準備
以下をやっておかないと、sambaの設定以外の部分で苦しむことになる。
SELinuxを切る
CentOSのデフォルトのインストールでは、これがON(enforcing)になっており、このデフォルト状態ではSamba側の設定をどうしようと共有にアクセスできない。かといって、SELinux側にどのような設定をすべきかもわからない。外部からの侵入の心配は無いので、SELinuxは切っておく。
※どうやっても共有ファイルにアクセスできないので、これを知らないとかなりハマることになる。
ファイアウォールを切る
これもデフォルトでONになっているので、切っておく。
サービスを起動する
- chkconfig smb on
- chkconfig nmb on
- service smb start
- service nmb start
以前のCentOSではsmb(共有サービス)を起動すると自動的にnmb(netbios名前解決サービス)も起動するようになっていたと記憶しているのだが、少なくともCentOS6では別途起動しないといけないらしい。
smbのみでは、共有サービス自体は有効になるのでIPアドレスでのアクセス、例えばWindows側から「dir \\192.168.0.100\public」などとするとアクセスは可能だが、ホスト名(netbios名)でのアクセス、例えば「dir \\hostname\public」はできない。
ここがsambaの妙なところである。共有サービスの設定も、名前解決サービスの設定も/etc/samba/smb.confにてひとまとめに行われるにもかかわらず、サーバプロセス自体は別なのである。
設定
以下を参考
共有の設定
guest okあるいはpublic
共有へのアクセスの際にパスワードが不要。guest onlyあるいはonly guest
guest okあるいはpublicが指定されていないと意味が無い。必ずゲストとしてアクセスする。この指定が無いと、例えばfoobarという共有にアクセスする際には、foobarというアカウントがチェックされるようだ。writeable(read onlyの逆)
yesにしておくと、書き込みが可能になる。
マスタブラウザにする
本サーバをマスタブラウザにするのに必要な設定と(一見必要そうだが)不要な設定。
local master
これはデフォルトでYesであるので、Noの場合にのみ設定する意味がある。Noの場合は決してマスタブラウザにならないが、Yesの場合でもなるとは限らない。preferred master
Yesにするとnmbの起動時に若干マスタブラウザに選択される機会が増える(?)というもの。マスタブラウザに選択される決定的な要因ではない。os level
値を大きくすると、マスタブラウザに選択される機会が増加する。65あたりを指定すると必ずマスタブラウザに選定される模様。
チェック
クライアント(Win7)側でのチェック
net viewコマンド
コマンドプロンプトにて「net view」を投入。 サーバ側の名前解決ができているのであれば、リストにサーバのnetbios名が表示される。
nbtstatコマンド
サーバに対して、「nbtstat -a netbios名」あるいは「nbtstat -A ipアドレス」を投入。 サーバがマスタブラウザであるかを調べることができる。