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 message Common 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 swat swat: /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/swat frodo:/ #
この一覧は、このサーバーにインストールされているinetd系スーパーデーモン
xinetd
の制御ファイルを表示している。SWATバイナリファイルの位置は
/usr/sbin/swat
であり、それがサポートしているファイルはディレクトリ
/usr/share/samba/swat
配下にあることを表示している。
次に、swat
が使うサポートファイルがどこにあるかを調べる。これは
以下のやり方で行う:
frodo:/ # strings /usr/sbin/swat | grep "/swat" /swat/ ... /usr/share/samba/swat frodo:/ #
この一覧の中にある/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.html jht@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
その後、単純に、URL https://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クライアント接続を終了する事に使うことも出来る。