このセクションでは自宅サーバーWindowsファイルサーバーとして利用するためのSambaの設定について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
Sambaサーバーの構築

Sambaサーバーについて

Sambaの構成と設定の方法

SWATの準備と設定

Sambaのコントロール

Sambaの全体動作の設定

ユーザーアカウントの設定

共有ポイントの基本的な設定

ホームディレクトリの利用

特殊な共有ポイントの設定

プリンタサーバーの設定

Sambaについてその他


WindowsOSの「ファイル共有」とは

このセクションで説明する Samba は、 UNIX OS WindowsOS のファイル共有機能を提供するものです。

ところで、多くのWindowsユーザーが何気なしに使って使っている割に、意外にその仕組みを知られていないのがWindowsOSのファイル共有です。

Sambaの説明に入る前に、まず プロトコル の面からWindowsOSのファイル共有について簡単に説明しましょう。

おそらくこの コンテンツ をご覧の方の多くは、最低一台は クライアント機 としてWindowsOSを利用していることと思います。

また、自宅で複数のWindowsOS機を使っていたり、職場や学校で多くのWindowsOS機が稼動している場合には、ほぼ間違いなく NetBIOS over TCP/IP 、つまりWindowsOSの ファイル共有機能 を使ってWindowsOS同士を LAN 接続で使用していることと思います。

WindowsOSで提供されるNetBIOS over TCP/IPは、その利用に関しては特別な通信の知識が不要で、実際、 UTPケーブル を接続するだけで誰もが簡単に「ファイル共有」を利用できるとても便利な通信システムです。

その扱いやすさと便利さについては、数ある プロトコル の中でも群を抜いているでしょう。

ただ誤解しないで欲しいのは、NetBIOS over TCP/IPが優秀なシステムということではなく、そのプロトコルが、お互いが共有するファイルの情報の他に、お互いの ホスト ユーザーアカウント の情報を余すところなく交換する仕組みになっているがゆえに実現できているシステムだということです。

つまりNetBIOS over TCP/IPは、 「セキュリティは二の次にして、とことんまで利便性を追及したプロトコルである。」 というのが正しい見解といえるでしょう。

そのためWindowsOSには、その利用に際して厳しい制限があります。それは、

WAN 空間越しには決して使用してはならない。」

ということです。

ルーター でNetBIOS over TCP/IPのパケットフィルタリング パケットフィルタリングの設定 の設定を行うのが常識になっているのは、実はそういう理由によるものです。

つまりWindowsOSのファイル共有は、必ず限定されたLAN空間内でのみ使用が許されている方法といえるわけです。

もちろん現在では、その危険なプロトコルを丸ごと暗号化し、WAN空間越しに「擬似的に」WindowsOSのファイル共有を実現する VPN の他、 HTTP を利用して同じようなファイル共有の仕組みを実現する WebDAV のような方法もあります。

とはいえ、こういう特殊な手段を使わない限り、WindowsOSのファイル共有はWAN空間越しには利用できません。

従って、 DNS を使って 名前解決 を行うことが前提の Apache メールサーバー などの 公開サーバー アプリケーション と異なり、Sambaサーバーは、

・ルーターにポートフォワーディングを設定をしない。

・DNS ドメイン名 ( FQDN ) を利用しない。

という扱いになります。

まずはこのことを理解した上で、Sambaサーバーの構築に臨んでください。

このページの先頭へ↑

世界が認めるSambaの実力とは

このセクションで紹介する サーバー アプリケーション Samba は、 UNIX 系の OS 上で動作する WindowsOS 互換の ファイルサーバー です。

平たく言えば、WindowsOSのファイル共有( NetBIOS over TCP/IP )の仕組みを他のOSに「真似をさせる」アプリケーションといえます。

「真似」と言ってしまうと、それを利用することがなんとなく後ろめたい感じがするかもしれませんし、実際に使うことに対しても一抹の不安があるかもしれません。

しかし例えば、 MacOSX がWindowsOSと普通にファイル共有できるようになっているのは、MacOSXのベースである BSD 上で動作するSambaの力を借りているからに過ぎませんし、最近流行の NAS も、その内部ではUNIX+Sambaで動作しています。

また最近、Sambaは本家のWindowsサーバーに代わって多くの企業や官公庁などで基幹サーバーとして活躍の場が広がっています。

「どうしてSambaを使うの?。WindowsのファイルサーバーならどうしてWindowsサーバーでやらないの?。」

と思われるかもしれません。

理由のひとつはもちろんコストです。

もちろん、 LinuxOS でSambaを利用する場合には、このライセンス料は全く必要ありません。

Windowsサーバーは、OSを インストール した ホスト を直接利用する場合だけではなく、それをファイルサーバーとして利用する場合にも CAL というライセンスが必要で、1 クライアント あたりのライセンス料が数千円程度必要になります。

日本Sambaユーザー会 によると、
「現在世界で1000万台以上のUNIXマシンでSambaは稼働しており、Linuxの普及に伴って、WindowsNT/2000サーバを置き換える事例も増えて来ています。」
なんだそうです。

ということは、企業の基幹サーバーとして使う場合には接続する人数分の料金が必要になりますから、同程度の安定性と機能が実現できるSambaへの乗り換えが行われているというわけです。

また、家庭用のNASにしても、これをWindowsOSで作ってしまうと、当然OEMのWindowsOSのライセンス料金が製品に付加されることになりますから、メーカーとしても具合が悪いということになります。

Sambaはこういった実用アプリケーションとして実戦の中で改良が続けられ、もはや実験的なアプリケーションではなくなっているということです。

このページの先頭へ↑

危険なバックアップしてませんか?

ここ数年の急速なマルチメディア化によって、パソコンで扱うデータの種類も大きく様変わりしています。

一昔前、パソコンのデータといえばワープロや表計算、デジタルカメラの写真などの比較的容量の小さなものばかりでしたが、最近は音楽やデジタルビデオ、テレビの録画データなど、一つで数 MB から数百MB、数GBというデータも珍しくはありません。

一方、それを受け入れるパソコンの ハードディスク の容量もそれに歩調を合わせるように増大の一途をたどり、ノートパソコンでも数十GB、デスクトップでは数百GBもの容量を最初から搭載している機種も珍しくなくなってきました。

そしてそのことは、一台のパソコンで扱うデータ量が多い分、トラブルで失うデータ量も大きいことから、お金では決して取り戻すことのできない、

「パソコンのトラブルによるデータの消失で受けるダメージ」

が、ますます大きくなっていることを示しています。

こういったトラブルに対抗する最も簡単で確実な手段といえば、言うまでもなく データのバックアップを取る ことでしょう。

バックアップ手段としては、例えば外付けのハードディスクを使う、あるいは CD-R/RW DVD-R/RW/RAM などを利用するのが最も簡単で安上がりです。

もし、自宅に複数のパソコンがあれば、これらを LAN で接続して お互いのデータを保存しあうことでバックアップとすることもできます。

ただ、これらの方法には一つ大きな問題があることにお気づきでしょうか。

それは コンピュータウイルス対策 が不十分ということです。

もしもお使いのパソコンが悪質なコンピュータウイルスに感染してしまったら、そのパソコンに接続しているハードディスクはすべてその脅威に曝されることになります。

また、LAN接続はコンピュータウイルスにとって最も容易な感染経路ですから、他のパソコンにデータをバックアップしている場合でも安穏としてはいられません。

ハードディスク上のデータの消失は、何も ハードウェア 的な故障ばかりが原因で起こるものとは限らないということです。

今世の中のパソコンはそのほとんどが WindowsOS だと言ってもいいでしょう。そして同じ OS は、常に同じコンピュータウイルスの標的になることを考えれば、一つのOSだけで実現されるバックアップシステムは常に危険と隣り合わせであると思ってください。

その危険を回避する良い方法が、 「異なるOSで動作するファイルサーバーの利用」 つまり LinuxOS + Samba というわけです。

このページの先頭へ↑

RAID+Sambaでお便利サーバーに!

Samba LinuxOS 上に作り出すのは、 NetBIOS over TCP/IP による ファイルサーバー システム、平たく言えば WindowsOS 互換のファイルサーバーです。

ファイルサーバーは大勢のユーザーでデータ資産を共有し、安全に運用するための手段ですから サーバー専用機の役割について 、会社や学校ならばともかく、多くても4〜5人、場合によっては自分ひとりでしか利用することのない自宅環境で、独自にファイルサーバーを持つことにどういうメリットがあるのでしょうか。

データのバックアップ装置としての役割であれば、他にもっと簡単で安価な方法はいくらでもありますから、それだけが目的であればわざわざファイルサーバーを設置する意味はありません。

ただ、今あなたは24時間営業の 公開サーバー を一台、自宅に設置しようとしているはずです。

公開サーバーの仕事というのは意外に負荷が小さく、毎日数千ページのアクセスがある Webサーバー と、それに匹敵するメールをさばく メールサーバー が稼動していても、おそらく サーバー機 の持つ能力の10%も使ってはいないでしょう。

考えてみればこれはとてももったいないことです。自宅にサーバー機があるのでしたら、これをファイルサーバーとして活用しないのでは「宝の持ち腐れ」ではないでしょうか。

この コンテンツ の手順に従って インストール された WBEL CentOS には、最初から Samba がインストールされていますから、簡単に利用するだけならばわずかばかりの設定を行い、 デーモン を起動するだけですぐに使いはじめることができます。

もちろん、その「便利さ」だけをとるならばファイルサーバー専用機である NAS を利用するという選択肢もあります。

しかし、家庭レベルで購入できるNASは「一本のハードディスク」でしか動作しないものばかりであることを考えてみてください。このハードディスクが故障したときのことを考えると少し怖くはありませんか?。

もしもあなたのサーバー機が RAID 1やRAID5、RAID6の構成になっているならば RAIDを構成する 、こういった不安も解消するはずです。だとすれば、

「パソコンのトラブルに備えてデータを日々バックアップする」

という考えを一歩進めて、

もちろん、大事なファイルを操作ミスでうっかり消してしまうことはあり得ますから、こういうファイルは別にきちんとバックアップをとりましょう。

「障害に強いファイルサーバー上のデータを扱うようにする。」

という利用スタイルにすれば、面倒なバックアップ作業からも開放されます。

例えば、編集済みのホームビデオのデータや、もう整理する必要のない写真ライブラリなどは、サーバー上の 「書き換え禁止」 のフォルダに保管してしまえば、うっかりミスで消去してしまうこともないでしょう。こういう設定はSambaで自由自在に行うことが可能です。

こうやって保護したデータは、RAIDによる高い耐障害性に守られ、操作ミスによる誤消去の危険から開放されますから、もうパソコン上に保管しておく必要はないはずです。

これでもう、データの消失におびえることも、何枚ものCDやDVDをパソコンに入れ替えてデータを探すこともありません。パソコンのハードディスクも余分なデータが減ってすっきりするでしょう。

これが、自宅にファイルサーバーを置く最大のメリットではないでしょうか。

このページの先頭へ↑

自宅サーバーで利用するSamba

Samba は本来、数千人〜数万人のユーザーを抱える大企業でも利用可能な能力を持つ高性能な サーバー アプリケーション です。

そのためSambaは、様々な要求に対して柔軟に応えられるように非常に多くの設定パターンが可能になっています。

ただこの コンテンツ では、「自宅サーバーの構築」を目的としていますから、 「数名程度で利用する、自宅内の LAN 環境でのSambaの構築。」 を中心に解説します。

実際のところ、Sambaに関する解説書などでは、Sambaを「企業内ネットワーク」で利用するケースが前提になっていますから、自宅で利用する場合を考えると明らかに過剰な セキュリティ 対策や、厳密な ユーザーアカウント 管理などが 「ごく当たり前のこと」 のように説明されています。

もちろんそれはそれできちんと扱えるようになりますから悪いことではありませんが、自宅のLANで利用する程度であれば、厳密な管理よりも「簡単便利に」使えるようにするべきではないでしょうか。

このコンテンツでは基本的に、

・セキュリティ対策は必要最低限。

・ユーザー管理はできるだけ簡単に。

・アクセス制御は原則としてフォルダ単位で。

というコンセプトで、 「便利なファイルサーバー」 を構築するテクニックを紹介します。

このページの先頭へ↑

いきなりSambaを起動してみる

まずは、 Samba がどういうものかを見てみるために、とりあえず最低限の設定を行ってSambaを起動してみましょう。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド アカウント "root" に変更し、Sambaのメイン設定ファイルである、 "/etc/samba/smb.conf" を、 cp コマンド でバックアップファイルを作成した後に、 nanoエディタ で開いてください nanoエディタでファイルを開く

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.orgEnter
[root@web1 ~]# nano /etc/samba/smb.confEnter


nanoで/etc/samba/smb.confを開く
nanoで"/etc/samba/smb.conf"を開く

ここでは意味は説明しませんが、この "/etc/samba/smb.conf" の、以下の二ヶ所を次のように書き換えて保存してください nanoエディタを閉じる

お使いのSambaのバージョンによっては、デフォルトの記述行が異なることがありますが、その場合は行がコメント化されていない。 "security = user" を探して同様に書き換えを行ってください。

58行目(WBEL3,CentOS3)、101行目(WBEL4,CentOS4,CentOS5):

パラメータ"security"を変更します↓

  security = user


  security = share

末尾に以下の記述を追記します↓

[tmp]
  comment = Temporary file space
  path = /tmp
  read only = no
  public = yes

次にSambaを起動します。

[root@web1 ~]# /etc/init.d/smb startEnter
SMBサービスを起動中:                    [ OK ]
NMBサービスを起動中:                    [ OK ]
[root@web1 ~]#
適当なフォルダを開くか、インターネットエクスプローラーを開いて、アドレスバーに \\192.168.100.11 とタイプして移動します。
また、スタートメニューから ファイル名を指定して実行(R) を開いて同じアドレスをタイプし、 OK ボタンを左クリックしてもOKです。

Sambaが起動したら、サブネット内の WindowsOS のパソコンから、 \\192.168.100.11 に接続してみてください。

すると、次のようなフォルダが開くはずです。

Sambaサーバーのフォルダを開く
Sambaサーバーのフォルダを開く
"/tmp" は、OSがパッケージのインストールなどに一時的に使用するスペースなので、既に色々なファイルが見つかるかもしれません。

ここで表示されている tmp フォルダは読み書き自由ですので試してみてください。

もう一つの プリンタ フォルダは、 構築中のLinuxサーバー をプリンタサーバーとして使用するときに利用することになります。

ただし、まだ必要な設定は何も行っていませんから、このまま使用すると色々不都合が起こります。

このセクションでは、この便利なSambaを快適に利用するための解説を行っていきます。

このページの先頭へ↑

※重要 OSの種類とSambaのバージョンについて

Apache BIND 、多くの メールサーバー アプリケーション は、特定の OS の仕様など縛られておらず、 TCP/IP を基本とした 世の中の利用者が求める標準的な仕様 に沿って設計されています。

従ってこれらのアプリケーションは、比較的バージョンが古くても実用上はあまり問題にならないことが多いものです。

ところが Samba は、特定のメーカー( マイクロソフト社 )が販売するOS( WindowsOS )の サーバー の仕様を模倣するアプリケーションです。

従って同社が機能を追加したり仕様を変更したりするたびに、それに合わせて改変し、バージョンアップを行わなければならないという宿命をSambaは背負っているといえます。

従ってSambaのバージョンアップは比較的ペースが速く、変化が大きいために、導入すべきバージョンの選択については他のアプリケーションよりも気を使わなければなりません。

2006年5月現在の安定版の最新バージョンは 3.0.X です。

しかしまだ 3.0.X は本家のWindowsサーバーの機能のすべてをサポートできているわけではなく、既に時期バージョンの 4.0.X がテスト版としてリリースされているにも係わらず 3.0.X の改良も並行して進められている、というのが現状です。

また用途にもよりますが、Sambaに最新の機能を求めず、安定性と日本語への対応の確実性を重視するのであれば 2.2.X 系列を利用するという選択肢もあります。

現在 WBEL CentOS に標準で アップデート インストール されるSambaは 3.0.x で、最新版ではありませんが比較的新しいバージョンが採用されています。

初期の 3.0.X は、共有するファイル名に日本語を使う場合、文字コード変換のための外部プログラムの修正が必要でしたが、WBELやCentOSに付属する 3.0.x はこれに対応済みのプログラムが適用されていますので問題は解消しています。

考えてみればWBELやCentOSは、企業向けに販売されている RedHatEnterpriseLinux クローン OSですから、要は「企業で利用するに耐えるバージョンとしてのSambaが選定され、対策がなされている。」というわけです。

2.2.X は、 SWAT で参照できるヘルプの内容まで日本語訳されていますので、Sambaの設定にSWATを用いる場合は 3.0.X よりも圧倒的に便利です。

ところで、 3.0.X 2.2.X よりも優れている点は、安定性や処理能力ではなく「利用者の多いサーバー用途における管理機能の充実度」にあります。

しかし自宅サーバーの運用程度では、 3.0.X でなければ利用できない管理機能というものはまず必要はありません。


ムックですが管理人の
イチオシテキストです↓

という訳ですから正直なところ自宅サーバーでは、無用な機能がくっついた 3.0.X よりも、日本語対応の進んだ 2.2.X を利用したほうがベターなのかもしれません。

しかし困ったことに、 2.2.X 3.0.X ではファイル名の日本語処理の方法そのものが異なってしまっているため、将来否応なくSambaを 2.2.X から 3.0.X へバージョンアップしなければならなくなったときに、サーバー上に保管しているファイルの名前が正常に引き継がれない可能性があります。

という訳ですから、このコンテンツでは導入の平易さと将来的な運用を見据えて、WBELやCentOSに標準でインストールされる 3.0.X を利用してSambaを構築する方法を解説していきます。

このコンテンツではCentOS5での操作を基本として解説しますが、WBEL3、CentOS3、WBEL4、CentOS4をお使いの方は表現の異なる部分を適宜読み替えて解釈してください。

ところで、WBEL3及びCentOS3、WBEL4及CentOS4、そしてCentOS5では、標準でインストールされているバージョンが僅かに異なるだけですが、基本設定の デフォルト 値がいくつか異なりますので注意してください。

利用するユーザーアカウントデータベースの種類の変更

Samba はこれまで、 ユーザーアカウント の内容を記録するのに "/etc/samba/smbpasswd" /etc/samba/smbpasswdについて という テキスト ファイルを利用して行われてきました。

インストールされている Sambaのバージョンを調べるには、 プロンプト から "smbd -V" を実行します。
SWATの場合も同様に "swat -V" と実行します。

ところが WBEL CentOS に付属のSambaで、Sambaのバージョンが "3.0.25" からは SWAT を利用して基本設定を行うと、 "/etc/samba/passdb.tdb" "/etc/samba/secrets.tdb" という バイナリ 型の データベース の利用が デフォルト になっています。

この変更は、WBELやCentOSが大規模な ファイルサーバー として利用されるようになった結果、設定のわかり易さより数多くのユーザーアカウントを効率良く管理するために行われたものと想像されます。

この コンテンツ では自宅内に設置する小規模なファイルサーバーの構築を基本として解説していますから、運用だけに限っていえば設定はどちらでも問題はありません。

ただしこのコンテンツでは "/etc/samba/smbpasswd" を利用する従来のデフォルト設定を原則として解説しますから、 "passdb backend" の設定を "smbpasswd" に修正してください。

設定の詳細についてはこちら passdb backendディレクティブについて を参考にしてください。

共有ポイントの有効/無効のデフォルト値の変更

Samba LinuxOS 上に存在する特定のディレクトリに対して共有ポイントを設定し、ファイル共有を実現します。

従来Sambaでは共有ポイントの設定を行うと同時に設定が有効となり、すぐにファイルサーバーとして使用できるようになっていました。

そして、その設定を残したまま共有ポイントを無効にしたいときは、その共有ポイントの設定に "available = No" を追加するという扱いになっていました。

インストールされている Sambaのバージョンを調べるには、 プロンプト から "smbd -V" を実行します。
SWATの場合も同様に "swat -V" と実行します。

ところが WBEL CentOS に付属のSambaで、Sambaのバージョンが "3.0.25" 以降では、 SWAT を利用して設定を行うと、 新しく設定した共有ポイントに対しては デフォルト "available = No" が設定されるようになっています。

つまり新しく共有ポイントを新しく設定するときは、 "available = Yes" という設定操作を明示的に行わなければ利用できないようにSWATの仕様が変更されているわけです。

この仕様変更の理由はいうまでもなく セキュリティ 向上のためだと推測されるわけですが、旧仕様のSWATに慣れていると「あれっ、どうして共有ポイントが見えないの?」ということになってしまいます。

従って、この条件に該当する新しいバージョンのSamba及びSWATを利用している場合は、共有ポイントを作成する際には "available = Yes" となるように明示的に設定をしなければならない点に注意してください。

表示カテゴリがいきなり英語になってしまっているのは、この手のツールにありがちな 翻訳忘れ です。間違いなく。

また、SAWT上での "available" ディレクティブの表示カテゴリも、SWATのバージョンによって異なり、 "3.0.25" 以前では 「その他のオプション」 、以降では 「EventLog Options」 となっていますが、表示カテゴリはSWATが便宜上分類しているだけですのでこの違いは無視してかまいません。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。