|
日本 Samba ユーザ会 (Samba Users Group Japan)
Sambaで始めるWindowsファイルサーバー入門Sambaで始めるWindowsファイルサーバー入門 びぎねっと入門シリーズ制作委員会 staff@Begi.net
はじめに この文書は、オープンソースソフトウェアである「Samba」を利用して、簡単にWindows用のファイルサーバーを構築するための方法を説明したものです。 執筆に当たって、サーバーOSはLinuxを使っています。特にディストリビューションを特定しない記述になっております。クライアントOSはWindows Meを利用していますが、Windows 98やWindows 95、Windows NT、Windows 2000などでもほぼそのまま適用可能ですので、Windows用語については適宜読みかえてください。 Samba(サンバ)とは、LinuxやFreeBSD、SolarisやHP-UXといったWindows以外のOSをWindows用のファイルサーバー、プリントサーバーにするソフトウェアです。Sambaを使用することにより、安価にWindowsサーバーを構築することが出来ます。 Sambaを構成するのは2つのプログラムです。 1つは、ネットワーク上での名前解決を行うプログラム(nmbd)です。 もう1つは、サーバーとクライアントの間でファイルのやり取りを行うプログラム(smbd)です。 SambaはTCP/IPを使って通信を行います。そのため、Windowsクライアント側のネットワークの設定で、WindowsネットワークをTCP/IP上で行うように設定しておく必要があります。 ほとんどのLinuxディストリビューションにはSambaが含まれています。これからLinuxをインストールするのであれば、インストールするパッケージにSambaを含めてください。 既にインストールしているマシンにSambaがインストールされているかは、ほとんどのディストリビューションにおいて、パッケージ管理ツールrpmで確認できます。以下のコマンドを入力して何か出力された場合には、既にSambaがインストールされています。
Sambaには、Webブラウザ経由で管理を行うことの出来るツール「SWAT(Samba Web Administration Tool)」が標準で用意されています。Sambaの起動/停止から各種設定の変更までの全てをWebブラウザ上で行うことが出来るので、Sambaの設定ファイルを直接編集するという面倒な作業をする必要がなくなります。 SWATを利用するには、Sambaが動いているサーバーのポート901番にWebブラウザでアクセスします。
★もしSWATにアクセスできない時には もしかすると、ダイアログが出てこず、SWATにアクセスできなかったかもしれません。もしその場合には、サーバーの設定を変更しなくてはいけません。サーバーマシンにrootでログインするか、telnetなどでサーバーに一般ユーザーとしてリモートログイン後にsuコマンドでスーパーユーザーとなり、まず/etc/inetd.confというファイルを編集します。ファイル中にある以下の行を探しましょう。
行の先頭にあるコメントアウト「#」がSWATを無効にしているので、この「#」を取り除いて保存します。変更を有効にするために、inetdを再起動します。
また、tcpdによってアクセス制限がかけられている可能性があります。これを修正するには/etc/hosts.allowファイルを修正する必要があります。/etc/hosts.allowファイルに次の1行を追加してください。
もし、セキュリティを強固にしたいのであれば、ALLを管理用のクライアントマシンのIPアドレスにすることにより、そのIPアドレス以外のマシンからのアクセスを受け付けないようにすることが出来ます。
★もしSWATにアクセスできない時には(Red Hat 7編) 「Red Hat7では、inetdの機能を強化したxinetd(http://www.xinetd.org/)に交換されているため、上記の方法ではSWATにアクセスできない」と読者の治田(はった)賢司さんからご指摘をいただきました。治田さん、情報ありがとうございました。 早速Red Hat 7を入手して調査しましたので、ここに追加しておきます。 xinetdでは、アクセス制御をサービス別に細かく行うことのできるファイルが、/etc/xinetd.d/ディレクトリに収められています。その中のswatファイルを見てみましょう。
ポイントとなるのはonly_fromとdisableです。only_fromは、inetdでのhosts.allowにあたります。ここではlocalhost、つまりxinetdが動作しているマシンのみアクセスを許可しています。only_fromは複数行記述することができるので、例えば192.168.0.10からのアクセスを許可したいのであれば、
の行を追加しましょう。 disableはアクセスの許可/不許可をコントロールします。disableは「不許可」ですので、もし「許可」したければ値を「no」にしなくてはいけません。
書き換えたファイルは以下の通りです。
/etc/xinetd.d/swatの修正が終わったらxinetdを再起動しましょう。 再起動は/etc/rc.d/init.d/xinetdスクリプトを使用します。
再起動を確認したら、SWATにアクセスしてみてください。 日本Sambaユーザ会のFTPサイトにて日本語化されたSWATを含んだ SambaのRPMパッケージが配布されています。日本語でSWATを利用したい場合には以下のアドレスよりRPMパッケージをダウンロードしてインストールしてください。インストール方法については「RPMコマンドの使い方」を参照してください。 (本情報は日本Sambaユーザ会 代表幹事 小田切氏より提供いただきました。ありがとうございました。) Red Hat Linux7.xJ用Sambaダウンロードサイト Sambaの基本的な設定を変更する SWATにアクセスしたら、まずはSambaの基本的な設定を変更しましょう。 まず「全体設定 GLOBALS」アイコンをクリックします。この画面中の「基本オプション」−「workgroup」の値を変更しましょう。この値はクライアントのWindowsマシンで設定している「ワークグループ名」と同一にします。ワークグループ名の確認はWindowsクライアントの「コントロールパネル」−「ネットワーク」で行うことが出来ます。変更したら、「設定変更」ボタンを押して設定を変更しましょう。 設定を変更しただけでは設定の変更はSambaには反映されません。今度は「動作状況 STATUS」アイコンをクリックしましょう。この画面では、smbdおよびnmbdの動作状況が確認できます。もし停止中であれば「起動」ボタンを、動作中であれば「再起動」ボタンを押すと、変更後の設定を読み込んでSambaが動き始めます。 変更後のSambaの動作を確認するために、Windowsクライアントから「マイネットワーク」−「ネットワーク全体」とダブルクリックしていき、上で設定したワークグループ名のアイコンを開いて、中にSambaサーバーの名前があれば成功です。エクスプローラーの表示を「詳細表示」にしておけば、コメントに「Samba○○」と表示されているのも確認できるでしょう。この表示については「全体設定」−「基本オプション」−「server string」で変更することができます。 Sambaの持っている便利な機能の一つとして、Sambaの動作しているLinux上に存在するユーザーのホームディレクトリに簡単に接続できる機能があります。ここでは、既にLinux上にユーザーtmiyaharが存在していることとして説明を行ります(ユーザーの作成についてはこちらを参照)。 まず基本的な考え方ですが、Linux上のユーザー名とWindowsネットワークのユーザー名(Windowsを起動した時に入力するユーザー名の事)は同一のものにしましょう。また、WindowsをSambaサーバーに接続させるには、Samba用のパスワードを設定しないといけませんが、このパスワードも、Windowsネットワークにログオンする際のパスワードと同一のものにしておけば、Sambaサーバーにアクセスする際にいちいちパスワードを入力しないで済みます。ですから、ユーザー名、SambaパスワードともにWindows起動時に入力するものと同じにしておくことを推奨します。 Windowsのユーザ名=Linuxのユーザ名 Sambaパスワードは、通常のLinuxのパスワードとは別に、/etc/smbpasswdというファイルに格納されます。つまり、Linux上にユーザーアカウントを作成するのとは別に、Sambaパスワードを設定しないといけないということです。Sambaパスワードの設定は、スーパーユーザーでsmbpasswdコマンドを実行することによって行ないます。ユーザーtmiyaharのSambaパスワードの設定は以下の通 りです。
この例で気をつけなくてはならないのは、次の2点。まずLinuxユーザーtmiyaharが既に存在していなくてはいけません。また、-aオプションを付け忘れないこと。aはAdd(追加)の意味で、まだ存在しないSambaユーザーtmiyaharのSambaパスワードを、/etc/smbpasswdファイルに追加するという意味になるからです。-aオプションを付けない場合は、パスワードの修正を行うという意味となり、まだ存在しないSambaユーザーのパスワードを変更しようとするため、エラーになります。
エラーが起きているように見えますが、これは/etc/smbpasswdファイルがまだ存在していないという単なる警告であり、smbpasswdコマンドが新たにファイルを作ってくれるので、心配する必要はありません。 さて、ここまで終わったら、WindowsクライアントからSambaサーバーのアイコンをダブルクリックしてみましょう。きちんと設定できていればサーバーに接続できるはずです。例えば、WindowsのパスワードとSambaのパスワードが違うなど、パスワードの設定がうまくいっていない場合には、警告ダイアログが表示されてしまいます。その時にはもう一度Linux上でsmbpasswd tmiyahar(今度は-aオプションなし)を実行し、Sambaパスワードの修正を行ってみましょう。 Sambaサーバーを表示しているウィンドウの中に、tmiyaharというフォルダが表示されているはずです。これが、Sambaサーバー上にあるユーザーtmiyaharのホームディレクトリです。Linux上では、大体が/home/tmiyaharとなります。このフォルダは基本的に他のユーザーからは見られないので、ユーザーの個人的な作業に利用できます。 次に、何人かのユーザーで共同利用のできる共有ディレクトリを作成しましょう。今回の例では、同じサーバーで動作しているWebサーバー「Apache」のHTMLファイルを簡単にWindowsから変更できるように、Apache用のディレクトリ(標準では「/home/httpd/html」)をSambaの共有ディレクトリにしたいと思います。そのための手順は次の通 りです。 Linux上でグループを作成する。 順次、手順を実行していきましょう。 Linux上でグループを作成する。
共有したいディレクトリを作成したグループの所有にする。
作成したグループがそのディレクトリを読み書きできるようにする。
SWATで共有フォルダを作成する。 「基本オプション」−「path」 「セキュリティオプション」−「writeable」 変更を行ったら「設定変更」ボタンを押します。新しい設定はSambaを再起動することなく反映されます。 Sambaを使えば、サーバーマシンに接続されたプリンタを、Windowsクライアントからネットワーク経由で利用することが出来ます。 手順は以下の通りです。 プリンタの接続 プリンタの接続 サーバーでの設定
作成する上でいくつかの注意点があるので、1つずつ見ていきましょう。 1行目 2行目
3,4行目 また、2行目から4行目の行の先頭は「タブ(TAB)」です。「スペース(空白)」ではありませんので注意してください。 ★印刷時に無駄な印刷がされてしまう場合
shというのがページヘッダー(最初に出る紙)、sfというのがフォームフィード(改ページ)を抑制するための命令です。 また、1、2行目とも行の先頭は「タブ(TAB)」です。「スペース(空白)」ではありませんので注意してください。 Sambaの再起動 Windowsクライアントの設定 次にネットワークプリンタに接続します。一番簡単なのは、先ほど確認したSambaサーバー内にあるプリンタのアイコンをダブルクリックする方法です。すると「プリンタの追加ウィザード」が起動します。もし既にドライバがインストール済みであれば、ドライバの選択で表示されるリストに入っているはずですので、それを選択しましょう。ドライバディスクがある場合には、この際にディスクを使用して必要なドライバをインストールしましょう。ウィザードが終了すれば、Windowsの「プリンタ」フォルダに、設定した新しいプリンタのアイコンが作成されているはずです。アイコンを選択し、右クリックでプロパティを開いてテスト印字をしてみましょう。きちんと設定されていれば、プリンタの印字テストが印刷されるでしょう。 無事に印刷されたら成功です。あとは印刷を行いたいアプリケーションの印刷時に、設定したネットワークプリンタを印刷先に指定すれば、アプリケーションからの印刷も可能になります。 変更履歴 |