Sambaの設定にSWATを利用する

 Windowsマシンとのファイルやプリンタの共有にはたいていSambaが使われるので、設定ファイルの編集とデーモンの起動/停止によるSambaの設定と管理の方法は知っているだろう。だが、マシンの設定をもっと簡単にGUIで行う方法がある。それがSamba Web Administration Tool(SWAT)だ。

 SWATを使えば、Webmin翻訳記事)に似たわかりやすいWebインタフェースを通じてSambaサーバのあらゆる面を設定できる (実際にWebminを使っているなら、「Servers」→「Samba Windows File Sharing」を選択してハンマーの形をしたSWATアイコンをクリックすればSWATが起動する)。

Sambaにとっての朗報
 先月までは、Microsoftがドキュメントを共有化していなかったので、Sambaに関するあらゆる作業はWindowsの関連ドキュメントに頼らずに行う必要があった。そのため、Linuxは最新のSMB実装に対して遅れを取り、その動作を保証できないことが多かった。しかし、2007年9月にヨーロッパにおける反トラスト法訴訟(と再抗告)に敗れたことで、MicrosoftはSMBプロトコルの公開を義務づけられた。今やSamba開発者たちはSambaを正規のSMBプロトコルに100%準拠した形で作り上げることができ、LinuxユーザはWindowsが利用しているのとまったく同じ機能を利用することが可能になったのだ。

 SWATの機能のなかでは、Sambaの基本的な設定がすばやく行えるウィザードが特に興味深い。SWATではすべてのパラメータについて状況に応じたヘルプ(manページから直接取得される)が表示され、接続およびユーザの現在の状態を確認することもできる。また、Sambaスイートとの統合により、利用可能なすべてのパラメータは常に最新のものになっている。

 確かにSWATは便利だが、これからSambaを学ぼうという人の役には立たない。SWATを使うにはSambaについて知っておく必要がある。生半可な知識で使うとかえって痛い目を見るおそれがある。

インストールと設定

 かなり古いバージョンのものでない限り、SambaにはSWATが付随しているため、Sambaが稼働していればSWATもインストールされているはずである。SWATが使えるかどうかをチェックするには、「swat --help」というコマンドを実行すればよい。また、以下のコマンドを使ってSWATを見つけ出すこともできる。

# whereis swat
swat: /usr/sbin/swat /usr/share/man/man8/swat.8.gz
# find / -name swat
/etc/webmin/samba/swat
/etc/xinetd.d/swat
/usr/sbin/swat
/usr/share/samba/swat

 「/usr/sbin/swat」ファイルがSWATの実行プログラムである (私が使っているのはopenSUSE 10.3なので、ほかのディストリビューションでは別の場所にSWATがインストールされている可能性がある)。なお、「/etc/webmin/samba/swat」というファイル(rootでのみアクセス可能)はWebminがインストールされている場合にしか存在せず、WebminはこのファイルにSambaのユーザおよびパスワード情報を保存する。さらに、xinetd経由でSWATを利用できるように「/etc/xinetd.d/swat」を編集する必要がある。rootになり、このファイルを以下のように編集する。

# SWAT is the Samba Web Administration Tool.
service swat
{
        port            =  901
        groups          =  yes
        socket_type     =  stream
        protocol        =  tcp
        wait            =  no
        user            =  root
        server          =  /usr/sbin/swat
        only_from       =  127.0.0.1
        log_on_failure  += USERID
        disable         =  no
}

 「server」の行には、先ほどのwhereisまたはfindで見つかったSamba実行プログラムのパスを記述する。多くのディストリビューションではデフォルトでSWATが無効になっているため、最後の行は「disable=yes」となっていることが多い。また、私の環境では、このファイル内に「port」と「groups」の行がなかったので、追加する必要があった。編集を終えて「/etc/init.d/xinetd restart」と実行すれば、SWATの実行準備は完了だ。

注意: 古いシステムでは、xinetdの代わりにinetdが用意されていることがある。その場合は「/etc/inetd.conf」ファイルを探し、そこに次のようなエントリを追記する必要がある。

# swat is the Samba Web Administration Tool
swat stream tcp nowait.400 root /usr/sbin/swat swat

 編集した内容を有効にするには、「/etc/init.d/inetd restart」を実行する。

SWATの使い方

swat_thumb.png
SWAT

 SWATは、「/etc/samba/smb.conf」ファイルに記された設定を書き換え、必要に応じてSambaを再起動することで動作する。ただし、SWATはこのファイルの書き換え時にすべてのコメントを消去する。設定ファイルをドキュメント代わりに使っているシステム管理者にとっては厄介な仕様だ。また、サポートされていないパラメータは削除され、デフォルト値を持つパラメータは無視され、パラメータの順序も変更されるため、丹念に作り上げたせっかくの設定ファイルはSWATの実行によって素っ気ないものに変わってしまう。

 SWATを利用するには、ブラウザを開いて「http://127.0.0.1:901」にアクセスする。このホームページからはマニュアルページのほか、一部の解説書など、Samba向けのドキュメントも参照できる。ただし、後者を参照するにはsamba-doc追加パッケージのインストールが必要になる。

 以下に、SWATに用意されているその他のページの一覧と利用可能な機能を挙げておく。

  • Globals(全般):「smb.conf」ファイル内のグローバルパラメータを参照する。重要なオプションだけが表示されるBasic(基本)と、利用可能なすべてのパラメータが表示されるAdvanced(詳細)の2つの表示レベルが用意されている。レベルの選択は対応するボタンのクリックによって行う。また、「Help」のリンクをクリックするとそれぞれのパラメータの具体的なヘルプ情報が得られる。何らかの編集を行ったあとで、その内容を保存するには「Commit Changes(変更の確定)」を、元の「smb.conf」ファイルの内容に戻すには「Reset Values(値のリセット)」をクリックする。

  • Shares(共有フォルダ):共有フォルダの作成、編集、解除を行う。既存の共有フォルダを編集するには、コンボボックスからそのフォルダを選択して「Choose Share(共有フォルダの選択)」をクリックする。同様に、削除の場合は「Delete Share(共有フォルダの削除)」をクリックする。共有フォルダの追加または編集時には、「Basic」レベルと「Advanced」レベルのどちらでも名前、パス、アクセスが有効および無効なユーザ、読み取り専用か書き込み可能かなど、複数のパラメータを指定できる。ただし、ページを切り替える前に「Commit Changes」(または「Reset Values」)を忘れずにクリックすること。さもないと、せっかくの作業が無駄になってしまう。

  • Printers(プリンタ):対象がプリンタであることを除き、「Shares」と同様。

  • Wizard(ウィザード):サーバの設定がすばやく行える。スタンドアロンサーバ、ドメインコントローラドメインメンバのいずれかを選択できる。Windows Internet Name Service(WINS)との連携方法、またホームディレクトリを公開するかどうかも指定する必要がある。「Rewrite smb.conf(smb.confの書き換え)」または「Commit(確定)」をクリックして設定を保存すると、基本的なSambaサーバが起動するが、その他のオプションを使ってさらに調整を行うことも可能だ。

  • Status(ステータス):実行中のサービスを表示する。通常はsmbd(Sambaデーモンそのもの)とnmbd(NetBIOSネームサーバをサポートするデーモン)だが、場合によってはWinbind(LinuxマシンをWindowsドメインのメンバーにできる)も含まれる。アクティブな接続(必要に応じてkillできる)、アクティブな共有フォルダ、開いているファイルの一覧も表示される。「Auto Refresh(自動更新)」をクリックすると、何秒かおき(デフォルトは30秒)に表示内容が更新される。

  • View(表示):設定ファイルの現在の内容が表示される。「View」ボタンのクリックによって、通常(デフォルトでない属性だけを表示する最小表示)または完全(利用可能なすべてのパラメータ)の2つの表示モードを切り替えることができる。

  • Password(パスワード):ローカルのSambaユーザの作成、削除、有効化、無効化、またローカルおよびリモートサーバ用のパスワードの変更が行える。

まとめ

 Samba初心者にとっても経験を積んだシステム管理者にとっても、SWATはグラフィカルインタフェースを通じてマシンの設定を容易にしてくれる便利なツールだ。

Federico Kerekiはウルグアイ在住のシステムエンジニア。20年以上にわたり、システムの開発、コンサルティング活動、大学での教育指導を続けている。

Linux.com 原文