Table of Contents
SWATの有用性に関連しては、数多くの様々な意見がある。完璧な設定ツールを作ろうとする試みはとても大変な事なのにもかかわらず、個人的な興味の対象として存在している。SWATはSambaをWebベースで設定するためのツールである。これは、Sambaを簡単に設定するための手助けとなりえるウィザードであり、場面に応じて各smb.conf
パラメータのヘルプをWebベースで表示し、現在の接続状況をモニタリングする機能を提供し、ネットワーク全体の、Microsoft Windowsネットワークパスワード管理ができる。
SWATはSambaシステムの一部である。基本となるプログラム名はswat
であり、これはinetdのようなスーパーデーモンによって起動される。詳細は説明の節を参照のこと。
SWATは特定のバージョンのSambaによってサポートされる、パラメータを使うために、Sambaコンポーネント全体を使う。Samba外部のツールとユーティリティとは異なり、SWATは常時Sambaパラメータが変更されることに追従している。SWATは各設定パラメータに対して、場面に応じて、マニュアル
ページのエントリから、直接ヘルプを提供する。
ネットワーク管理者の何人かは、設定ファイル中にシステムの説明を書き込むことは良いアイデアだと思っている人もいるが、そういう人にとって、SWATは常にひどいツールである。SWATは、何らかの中間的な形式でも、設定ファイルに格納しない。というよりは、パラメータの設定のみを書き込む。SWATがsmb.conf
ファイルをディスクに書き込むときには、既定値の設定以外のパラメータのみを書き込む。結果、パラメータと同じように、すべてのコメントは保持されず、smb.conf
ファイル中から無くなってしまう。おまけに、パラメータは内部での順番に書き戻される。
この節では、どのようにSWATが動くかせるかという仕掛けの背景にある、秘密の闇を明らかにする事と、どのようにセキュアに出来るかということと、どのように国際化のサポートを解決するかという事を説明する。
SWAT操作のためにホストシステムを設定する試みの前にやるべきである、ごく最初のステップは、それがインストールされているかを調べることである。これは、ある人にとっては取るに足らないことに見えるかもしれないが、いくつかのLinuxディストリビューションでは、ディストリビューションメディア上で、SWATを含む、インストール可能なバイナリパッケージを提供しているにもかかわらず、SWATを既定値ではインストールしていない。
SWATがインストールされていることを確認したら、すべてのサポートしているテキストとWebファイルと同じように、インストールされているバイナリswat
ファイルを有効化することが必要である。過去、多くのOSディストリビューションが、swat
バイナリ実行形式ファイルがインストールされているのにもかかわらず、サポートに必要なファイルを含めることに失敗している。
最後に、SWATが完全にインストールされたと思ったら、使用しているOSプラットフォームで使われているinetd系スーパーデーモン(inetdかxinetd)用の制御ファイルで、SWATが有効になっているかを調べてほしい。
SWATがインストールされたかを検証するため、最初に、システム上のswat
バイナリファイルを捜す。それはおそらく以下のディレクトリ配下にあるだろう:
/usr/local/samba/bin 既定値のSambaでの位置 |
/usr/sbin ほとんどのLinuxシステムでの既定値の位置 |
/opt/samba/bin |
実際の位置はOSベンダの選択か、Sambaをコンパイルしてインストールした管理者の決定によって大きく変わる。
swat
バイナリファイルを見つけるために使う方法にはいろいろある。以下の方法を使うと便利である。
もしも、swat
が現在のOSサーチパス中にあるならば、それを見つけるのは簡単である。以下のように、swat
が、どのようなコマンドラインオプションを持っているかを調べてみればよい:
frodo:~ # swat -?Usage: swat [OPTION...] -a, --disable-authentication Disable authentication (demo mode)Help options: -?, --help Show this help message --usage Display brief usage messageCommon samba options: -d, --debuglevel=DEBUGLEVEL Set debug level -s, --configfile=CONFIGFILE Use alternative configuration file -l, --log-basename=LOGFILEBASE Basename for log/debug files -V, --version Print version
swat
がサーチパス中に見つかったならば、ファイルがどこに配置されているかを識別するのは簡単である。これを行う簡単な別解は以下の通り:
frodo:~ # whereis swatswat: /usr/sbin/swat /usr/share/man/man8/swat.8.gz
もしも上記による調査で、swat
バイナリを見つけるのに失敗したら、他の方法が必要である。以下が使える:
frodo:/ # find / -name swat -print/etc/xinetd.d/swat/usr/sbin/swat/usr/share/samba/swatfrodo:/ #
この一覧は、このサーバにインストールされているinetd系スーパーデーモンxinetd
の制御ファイルを表示している。SWATバイナリファイルの位置は/usr/sbin/swat
であり、それがサポートしているファイルはディレクトリ/usr/share/samba/swat
配下にあることを表示している。
次に、swat
が使うサポートファイルがどこにあるかを調べる。これは以下のやり方で行う:
frodo:/ # strings /usr/sbin/swat | grep "/swat"/swat/.../usr/share/samba/swatfrodo:/ #
この一覧の中にある/usr/share/samba/swat/
エントリは、サポートファイルの位置である。このディレクトリ配下にサポートファイルが存在しているかを調べるべきである。以下は一覧の例である:
jht@frodo:/> find /usr/share/samba/swat -print/usr/share/samba/swat/usr/share/samba/swat/help/usr/share/samba/swat/lang/usr/share/samba/swat/lang/ja/usr/share/samba/swat/lang/ja/help/usr/share/samba/swat/lang/ja/help/welcome.html/usr/share/samba/swat/lang/ja/images/usr/share/samba/swat/lang/ja/images/home.gif.../usr/share/samba/swat/lang/ja/include/usr/share/samba/swat/lang/ja/include/header.nocss.html.../usr/share/samba/swat/lang/tr/usr/share/samba/swat/lang/tr/help/usr/share/samba/swat/lang/tr/help/welcome.html/usr/share/samba/swat/lang/tr/images/usr/share/samba/swat/lang/tr/images/home.gif.../usr/share/samba/swat/lang/tr/include/usr/share/samba/swat/lang/tr/include/header.html/usr/share/samba/swat/using_samba.../usr/share/samba/swat/images/usr/share/samba/swat/images/home.gif.../usr/share/samba/swat/include/usr/share/samba/swat/include/footer.html/usr/share/samba/swat/include/header.htmljht@frodo:/>
もしも必要とされるファイルが内ならば、SWATを使う前に、それらを入手してインストールする必要がある。
SWATはネットワークスーパーデーモン経由で動くようにインストールすべきである。使用しているUNIX/Linuxシステムが持っているものに依存するので、inetd
かxinetd
ベースのシステムのどちらかを使う。
ネットワークスーパーデーモンの機能と配置はOSの実装により変わる。制御ファイルは/etc/inetd.conf
かディレクトリ/etc/[x]inet[d].d
か同様の位置に置くことが可能である。
# swat is the Samba Web Administration Tool swat stream tcp nowait.400 root /usr/sbin/swat swat
新しい形式でのxintd用制御ファイルは以下の通り:
# default: off# description: SWAT is the Samba Web Admin Tool. Use swat \# to configure your Samba server. To use SWAT, \# connect to port 901 with your favorite web browser.service swat{ port = 901 socket_type = stream wait = no only_from = localhost user = root server = /usr/sbin/swat log_on_failure += USERID disable = no}
上記の中で、disable
の既定値の設定はyes
である。これは、SWATが無効になっていることを意味する。SWATを有効にするには、上記のように、このパラメータをno
に設定する。
上記の例は両方ともswat
バイナリがディレクトリ/usr/sbin
に配置されていることを仮定している。上記に補足すると、SWATは他の制御情報と同じように、自身のヘルプファイルをそこからロードするディレクトリアクセス点として使う。多くのLinuxシステムにおけるこのための既定値の位置は、/usr/share/samba/swat
である。Sambaが使う既定値の位置は、/usr/local/samba/swat
である。
SWATへアクセスするとログオンを要求される。もしも非rootユーザでSWATにログオンすると、パスワード変更機能へのアクセスと同じように、一定の設定範囲にのみアクセスが許可される。非rootユーザが見えるボタンは、 、 、 と である。この場合に変更可能なページは だけである。
rootユーザでSWATにログオンすると、完全な修正、更新権限を得られる。表示されるものは、 , , , , , , と である。
多くの人が、Sambaをリモートから安全に管理することが出来るために、どのようにSSLを使うSWATを設定するかについて問い合わせしている。以下はMarkus Kriegerの好意による、そのやりかたである。
SWAT設定の変更点は以下のようになる:
証明書(ertificate)とプライベートキーを生成する。
root#
/usr/bin/openssl req -new -x509 -days 365 -nodes -config \ /usr/share/doc/packages/stunnel/stunnel.cnf \ -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem
[x]inetdからSWATエントリを削除する。
root#
stunnel -p /etc/stunnel/stunnel.pem -d 901 \ -l /usr/local/samba/bin/swat swat
その後、単純に、URLhttps://myhost:901を使ってSWATにアクセスし、証明書を受け付け、SSL接続を確立する。
SWATは、使用しているWebブラウザの言語設定に一致するように、そのメッセージを表示するよう設定できる。これは、HTTPリクエストのAccept-LanguageヘッダでSWATに通知される。
この機能を有効にするには以下のように行う:
適切なmsg
ファイルを、Sambaのsource/po
ディレクトリから、$LIBDIRにインストールする。
ブラウザの言語設定を設定する。
msg
ファイルの名前はブラウザによって送られる言語IDと同じである。例えば、英語はen、日本語はja、フランス語はfrである。
メッセージのいくつかが気に入らないか、使用しているロケール用のmsg
ファイルがない場合、単にen.msg
ファイルを、“使用している言語の ID.msg”ファイル用のディレクトリにコピーし、各“msgstr”に適切な文字列を埋める。例えば、it.msg
をイタリア語のmsg
ファイルにするには、以下のようにする:
msgid "Set Default"msgstr "Imposta Default"
以下同様である。もしも間違いを見つけたか、新しいmsg
ファイルを作成したならば、連絡いただければ、次のSambaリリース中に入れることを考えます。msg
ファイルはUTF-8でエンコードされるべきである。
もしも有効にした場合、この機能とdisplay charsetがブラウザの設定と一致していなかった場合、SWATは不正なメッセージを表示するかもしれないことに注意。将来のSambaのバージョンでは、SWATは常時UTF-8でエンコードされたメッセージを表示するだろう。そうなれば、これをsmb.conf
ファイルのパラメータとして設定する必要はなくなる。
SWATはSambaの設定に使え、Windowsネットワークの問題を解決するために便利な文書のように、この本(ドキュメント)の内容のような、重要な参考資料への便利なリンクを得られる、便利なツールである。
SWATタイトルページは最新のSamba文書を参照する機能を提供する。オライリーの“Using Samba”という本と同様、Samba3-HOWTO(この文書)のように、Sambaの各コンポーネントのマニュアルページはこのページからアクセス可能である。
Sambaの設定を検証したい管理者は、診断ツールのマニュアルページから有益な情報を得ても良い。それらはSWATホームページからも入手可能である。診断ツールのうち、このページで言及されていないが、特に便利なものはethereal
(訳注:今はwireshark)である。
SWATはデモモードで動かすように設定できる。これは、認証なしにSWATを動かし、完全な管理機能が使えてしまうため推奨しない。このモードでは、root特権で通常の操作をするようにsmb.conf
を変更できる。SWATでこの機能を使うためのオプションは、-a
フラグである。これを動作中の環境で使ってはならない。
smb.conf
中のグローバルパラメータの設定が出来るページを表示する。パラメータによって2レベルの画面がある:
共通設定オプションを表示する。
より複雑な環境で必要な設定オプションを表示する。
編集機能から他に変更するには、 ボタンをクリックする。ラジオボタンをクリックすることで行っても良い。次に、 ボタンをクリックする。
パラメータをどこか変更した後は、他の場所に移る前に、
ボタンを押すようにすること。そうしないと変更結果は失われる。SWATは場面に応じたヘルプを提供する。各パラメータが何であるかを調べるには、単に、設定パラメータの左にある
リンクをクリックする。現在設定されている共有の操作は、単に
と ボタンの間にあるプルダウンボタンをクリックし、操作したい共有を選択する。設定を編集するには、 ボタンをクリックする。共有を削除するには、単に ボタンをクリックする。新しい共有を作るためには、
ボタンの隣に行き、テキストフィールドに作成する共有の名前を入力し、次に ボタンをクリックする。現在設定されているプリンタの操作は、単に
と ボタンの間にあるプルダウンボタンをクリックし、操作したいプリンタを選択する。設定を編集するには、 ボタンをクリックする。共有を削除するには、単に、 ボタンをクリックする。新しいプリンタを作るためには、
ボタンの隣に行き、テキストフィールドに作成する共有の名前を入力し、次に ボタンをクリックする。SWATウィザードの目的は、Microsoft系をよく知っているネットワーク管理者が、最小の手間でSambaを設定することである。
ウィザードページは、完全に最適化した形式でsmb.conf
ファイルを再書き込みするツールである。これは、 ボタンを押したときにも起きる。2つの違いは、 ボタンは今まで行った変更を無視するのに対し、 ボタンは今まで行ったすべての変更を反映するということである。
ボタンでは、動作するSambaサーバを作成するために必要と思われる最小限のオプションの編集(設定)ができる。
最後に、SambaサーバがWINSサーバ、WINSクライアントとして参加、あるいはWINSサポートなしの、どれかタイプかに設定出来ることを決める、限定されたオプションが用意されている。あるボタンをクリックすることで、ユーザのホームディレクトリの表示(あるいは表示中止)を選択できる。
ステータスページは現的な目的で提供される。最初に、これはSambaデーモンの制御を行う。Sambaサーバ環境下で作成できるデーモンは、smbd, nmbdと winbinddである。
デーモンは、個別、あるいは全体をまとめたグループで制御できる。さらに、自動的に画面のリフレッシュを行うタイミングを設定しても良い。Microsoft WindowsクライアントがSambaとやりとりをするように、新しいsmbdプロセスは継続して起動される。自動画面リフレッシュ機能は、最小の効果で変更の状態を追従できる。
最後に、ステータスページはロックされたかもしれないファイルを解放するために、特定のsmbdクライアント接続を終了する事に使うことも出来る。