目次


共通のスレッド: Samba 入門、第2回

ユーザー環境のためのSambaのコンパイル、インストール、および構成

Comments

Samba のダウンロード

まず、Samba 2.0.7 (またはそれ以上) を Samba.org Web サイトからダウンロードしましょう (当記事の「参考文献」を参照)。最も近くにあるミラー・サイトを選択して、「ダウンロード(download)」をクリックします。ここでは、ソースをダウンロードします。ページ中央のヘッダー「ダウンロード (Download)」のすぐ下にある段落部分に正しいリンクが示されています。この段落部分は見落としがちですが、どのリンクをクリックすればよいか迷わなくて済むため大変便利です。

インストール上の注意事項:
本稿では、Samba を最初からコンパイルしますが、Samba をバイナリー・パッケージ (たとえば、Linux ディストリビューションと一緒に提供される RPM) からインストールすることもできます。この方法でもまったく問題はありません。しかし、前号の記事で述べたように、この方法では、ファイルの場所が本稿で示すものと多少異なることがありますので注意が必要です。

Samba 2.0.7 (またはそれ以上) をダウンロードしたら、それを任意のディレクトリーに解凍します。コマンド・プロンプトから、次のように入力します。

% tar xzvf samba-2.0.7.tar.gz

これによって、samba-2.0.7 ディレクトリーが作られます。このディレクトリーに cd コマンド で入り、周囲を調べてみましょう。まず、docs ディレクトリーに注目します。この中には、textdocs というもう 1 つのディレクトリーが入っています。texdocs ディレクトリーには、すべての Samba 文書が入っています。textdocs ディレクトリー内で最も重要なファイルの 1 つに、DIAGNOSIS.txt があります。このファイルは、Samba の操作をする場合に発生しうる問題を診断する方法を説明しています。ファイルに含まれている診断プロシージャーの一部について、本稿で後ほど説明します。

Samba のコンパイルおよびインストール

メイン samba-2.0.7 ディレクトリー内のソース・ディレクトリーにも注目してください。ソース内には、すべての make ファイルをセットアップするために設計された構成スクリプトが入っています。他のすべての構成スクリプトの場合と同様、構成オプションのリストを入手するために、次のように入力します。

$ ./configure --help

次のように、出力をパイピングすると、すべてのオプションを表示することができます。

$ ./configure --help | more

ディレクトリーとファイル名オプションに注目してください。すべてのものがインストールされている場所と、デフォルトのインストール・パスが /usr/local/samba であることに注意してください。Samba を構成するときに、"--prefix=/usr/local" オプションを渡すことにより、上記のパスを /usr/local に変更することができます。たとえば、次のようなパス設定を使用するとします。

$ ./configure --prefix=/usr/local --localstatedir=/var/log --sysconfdir=/etc

この構成オプションにより、Samba のデフォルト・ツリーは、構成ファイルを除き、/usr/local に入れられます。Samba では、これらは /etc およびログ・ファイルに入っていると仮定されますが、実際には /var/log に入ります。これらの構成オプションを省略すると、すべてのもの が /usr/local/samba ディレクトリー・ツリー (/usr/local/samba/var、/usr/local/samba/etc、など) に入ります。

ここで、コンパイルを開始します。構成を行った後で、次のように入力します。

$ make

コンパイルが終わったら、root でソフトウェアをインストールします。次のように入力します。

# make install

サーバーの構成

Samba の構成は、通常、smb.conf ファイルを使用します。これが Samba のメイン構成ファイルです。ファイルには、多くの異なる構成オプションが含まれています。混乱を避けるために、ここでは Samba の正しい操作を行うために不可欠なオプションのみを使用します。まず、smb.conf の所在を確認しなければなりません。上記で指定されている構成オプションを使用した場合は、smb.conf を /etc に入れなければなりません。デフォルト・パスを使用した場合は、Samba は /usr/local/samba/etc でファイルを探します。開始するには、正しいディレクトリーに cd で入り、使い慣れたテキスト・エディターを始動して、以下の行に入力します。本稿では、注釈をはさみながら、各オプションの働きを理解していただけるように説明を行っていきます。以下の行を smb.conf ファイルに追加してください。

[global]
workgroup = YOURWORKGROUP
security = user
encrypt passwords = yes
guest account = guest

最初の行では、「グローバル (global)」セクションにオプションを入れることを Samba に知らせています。このセクションだけで多くのオプションを定義することができます。これらのオプションは、Samba のグローバルな振る舞いを制御します。

2 行目では、Samba が作成する Windows ワークグループの名前を Samba に知らせています。YOURWORKGROUP をワークグループの該当名に置き換えます。

3 行目では、ユーザー・レベルのセキュリティー・モードで稼働するよう Samba に指示しています。このオプションにより、Samba は、任意のネットワーク・リソースにアクセスするための有効なユーザー名/パスワードの組み合わせを指定するように、すべての Windows 接続クライアントに指示します。これは大変適切な処置です。ユーザー・レベル・セキュリティーは、Samba で最もよく使用されるセキュリティー・レベルです。ユーザー・レベル・セキュリティーは、多くのファイル共用状態に非常によくマッチしているからです。しかし、このほかにもセキュリティー・レベルがあります。1 つの手軽なモードは、既存の Windows NT または 2000 サーバーのセキュリティー・データベースに照らして、すべてのユーザーを認証するよう Samba に指示します。この記事では、そのモードについては説明しません。このモードの詳しい説明については、smb.conf メイン・ページの「セキュリティー (security)」オプションを調べてください。

次に、4 行目を説明します。ここでは、暗号モードでパスワードを Samba と交換するように Samba に指示しています。すべてのマシンが Windows for Workgroups 時代のマシンのように非常に古いものでない限り、常に Samba を暗号モードで実行する方が賢明です。暗号化されたパスワードを使用可能にすると、Samba には、標準の Unix パスワード・データベースのほかに、自分自身のパスワード・ファイルも必要になります。2 つのパスワード・ファイルを持ちたくないという理由で、暗号パスワードを安易にオフに切り替ないようにしてください。暗号パスワードをオフに切り替えることによって、Windows 2000 だけでなく、比較的古いバージョンの Windows NT 4.0 にも問題が発生します。2 つのデータベースを別々に維持したくない場合には、両方のデータベースを同期するための方法が Samba にいくつか用意されていますので、そちらを使用することをお勧めします。

5 行目では、ゲスト・アクセスに使用する Unix ユーザー・アカウントを指定しています。"guest account=nobody" を使用するのが一般的ですが、システムにゲスト・ユーザーが存在しない場合には、ゲスト・ユーザーをシステムに追加することをお勧めします。新規のゲスト・アカウントには、パスワードは必要なく、また対話式にログインできなくてもかまいません。(パスワードを指定したり、デフォルト・シェルを使用してゲストを構成しても問題はありません。)

これで、WINS サポート・オプションを smb.conf に追加できるようになりました。以下の 2 つの行のいずれかをグローバル・セクションに追加することができます。

wins support = yes

または

wins server = IP address of WINS server

WINS サーバーがすでに現行サブネット (たとえば、WINS を実行する Windows NT サーバー) に設けられている場合は、2 番目のオプションを使用して、WINS サーバーの名前を等号の右側に指定することができます。そうすると、Samba の内部 WINS サービスが使用不可になり、指定した WINS サーバーが使用されます。

WINS サーバーをサブネット上で実行していない場合、または、Samba を自宅でセットアップするような場合で、WINS サーバーが明確に分からないような場合は、最初のオプションを使用することができます。そうすれば、Samba が LAN の WINS サーバーになります。

WINS の機能は何だろうかと疑問に思われるかもしれません。基本的には、WINS はローカルの動的 DNS データベースと考えることができます。Samba が WINS サーバーとして稼働している場合には、同一サブネット上のすべての Windows 互換マシンが、その IP アドレスと NetBIOS 名 (別名「コンピューター名」) を Samba に登録します。これにより、Windows マシンは、Samba の WINS データベースを使用して、特定の NetBIOS 名のための IP アドレスを要求することができます。WINS は、ネットワーク・ブラウズのキー・コンポーネントです。ネットワーク・ブラウズとは、Windows マシンの「ネットワーク コンピュータ (Network Neighborhood)」内をあちこち動き回っている動作です。

これで、以下のいくつかのオプションをさらにグローバル・セクションに追加できるようになりました。

local master = yes
os level = 99
domain master = yes
preferred master = yes

では、説明に移ります。これらのオプションは、すべてネットワーク・ブラウズに関係しています。WINS がネットワーク・ブラウズのキー・コンポーネントであることは、すでに述べました。しかし、ブラウズを正しく機能させるには、もう 1 つ大切なことがあります。ローカル・マスター・ブラウザーが存在していなければならないということです。変に聞こえますか。では、もう少し詳しく説明しましょう。

ブラウズが正しく機能するには、ローカル・サブネットに存在するマシンとワークグループを一元管理するリストがなければなりません。このリストはブラウズ・リストと呼ばれます。ブラウズ・リストは、「ネットワーク コンピュータ (Network Neighborhood)」を最初にクリックしたときに表示されるワークグループ、ドメイン、マシンなどのリストを作成するために使用されます。最近の Windows マシンは、どれでもローカル・マスター・ブラウザーになることができます。理想的には、Samba をネットワークのローカル・マスター・ブラウザーにしたいものです。

どのようにしたらいいのでしょうか。基本的には、サブネット上のいくつかの Windows 対応マシンが定期的にそれを行っています。これらのマシンは、LAN を介してパケットをやり取りし、だれをローカル・マスター・ブラウザーにするかを決定しようとしています。このプロセスは「ブラウザー選択」と呼ばれます。

結局は、このブロードキャスト・パケット戦争の「勝者」が、ローカル・マスター・ブラウザーになります。os level = 99 オプションを使用すると、Samba をこの戦争の勝者にすることができ、LAN 上の他のすべてのマシンを負かすことになります。このような状態が生じるのは、すべてのバージョンの Windows (Windows 95 から NT や 2000 まで) が、最先端バージョンの Windows をローカル・マスター・ブラウザー (より新しいバージョンの Windows には、より大きな番号が付く) にすることを意図したハードコード OS レベルを持っているからです。Samba を 99 に設定すると、Samba はすべての Microsoft 製品を負かして、常にローカル・マスター・ブラウザーになることができます。

セキュリティー・オプション

グローバル・セクションを終える前に、いくつかのセキュリティー・オプションについて説明しましょう。ホストの「許可 (allow)」オプションを使用すれば、以下のように、Samba に接続できる IP アドレスを制限することができます。

hosts allow = 192.168.1. 127.

このオプションを使用すれば、192.168.1 ネットワークのマシンのみを、127 のローカル・ホストに加え、Samba にも接続することができます。ホスト許可行の末尾に 127. が入っていることを常に確認してください。

マシンに複数のネットワーク・インターフェースが含まれている場合は、インターフェース・オプションが非常に役立ちます。このオプションを使用すると、Samba を使用できるネットワーク・インターフェースを指定することができます。以下のように使用されます。

interfaces = eth1

これが、Samba を必要なインターフェースだけに限定する簡単な方法です。また、インターフェースを限定すると、ハッキングを防止するという効果もあります。

テスト・シェア

Samba のグローバル・オプションを構成したので、次に、/tmp ディレクトリーへのアクセスを可能にするテスト・シェアの作成に入ります。以下の行を追加します。

[tmp]
path=/tmp
writeable=yes

Samba を開始すると、これらの設定によって tmp というシェアが使用可能になります。このシェアには、Samba サーバー上の /tmp ディレクトリーのコンテンツが含まれています。ほとんどのユーザーがそうですが、あるユーザーが /tmp への書き込み許可を持っている場合、そのユーザーは、/tmp ディレクトリーにファイルを作成したりファイルを修正したりすることができます。

さて、これらのすべての項目を smb.conf に追加したので、次に、構成が正しいことを確認します。これを行うためには、以下のような testparm ユーティリティーを使用します。

$ testparm

「Enter」を押すと、すべての構成オプションのリストが画面に表示されます。smb.conf にエラーが含まれていると、この時点で、それらのエラーも表示され、注釈が付けられます。エラーがあった場合は、画面上の指示に従って修正してください。これで、Samba ユーザーを構成し、Samba をテスト・ランに使用できるようになりました。

ユーザーの作成

"mypass" パスワードを持つ "myuser" ユーザーが Samba を使用できるようになるには、以下のものが存在していなければなりません。

  1. 有効な "myuser" Unix アカウント。myuser はログインできなくてもかまいませんし、myuser の Unix パスワードは Samba で使用されることはありませんので、必要であれば、ダミー値に設定することができます。myuser が対話式に Samba サーバーにログインする場合でも、問題ありません。
  2. smbpasswd ファイル内の有効な "myuser" 項目。smbpasswd ファイルは、デフォルトの Samba インストール接頭部に常駐する private というディレクトリーに入っています (この例では、/usr/local/private)。myuser を smbpasswd ファイルに追加するには、smbpasswd コマンドを使用します。以下の行を root で入力します。
# smbpasswd -a myuser
New SMB password: <enter "mypass" here>
Retype new SMB password: <enter "mypass" again>
Added user myuser.

これらのステップは、すべての新規 Samba ユーザーごとに繰り返す必要があります。既存の Unix アカウントが Samba を使用できるようにしたい場合は、ユーザー名とパスワードを smbpasswd ファイルに追加するのを忘れないようにしてください。Windows 専用ユーザーを追加する場合は、ユーザーを smbpasswd ファイルに追加するだけでなく、同じユーザー名で Unix アカウントも作成する必要があります。Unix アカウントがすでに存在していない限り、smbpasswd はユーザーを追加しませんので、最初に Unix アカウントを作成しなければなりません。

両方のアカウントが必ず必要です。というのは、Samba は、Unix アカウントを使用して、ディスクに関する該当許可を設定する一方で、smbpasswd ファイルが認証のために使用されるからです。Windows NT から接続する場合は、Samba の「アドミニストレーター」ユーザーを作成するようにしましょう。

サーバー構成

Samba を開始し、クライアント・マシンを構成できる段階に近づきました。しかし、Samba ボックスが、ネットワーク上のすべての Windows クライアント・マシンを名前で PING できることをまず確認してください。うまく機能しない場合には、いくつかの項目を /etc/hosts に追加したり、DNS を更新するなどして、Samba ボックスが Windows マシンを正しく見つけ出せるようにしなければなりません。

また、「localhost」のみが 127.0.0.1 にマップするように /etc/hosts が設定されているときに、Samba が最もよく機能するということも頭に入れておいてください。マシンの FQDN は、LAN で使用される 1 次 IP アドレスにマップしなければなりません。たとえば、以下のとおりです。

#/etc/hosts excerpt
	
127.0.0.1       localhost
192.168.1.1     mybox mybox.mydomain.com

Samba の開始

これで、Samba が構成され、実行できるようになりました。Samba を開始し、次に、Windows マシンを正しく構成する作業に入ります。Samba を開始するには、以下の行を root で入力します。

# smbd
# nmbd

これにより、Samba の 2 つのサーバー・プロセス smbd および nmbd が開始されます。これらのプロセスは、任意の通知メッセージやエラー・メッセージを、それぞれ /var/log/log.smb と /var/log/log.nmb にログ記録します。Unix サイドが実行されているため、クライアント・マシンに切り替えて、それらを正しくセットアップしなければなりません。

クライアント・マシンの構成

Windows マシンが Samba ワークグループに参加できるように構成するためには、TCP/IP プロトコルが正しく構成されていることを確認する必要があります。以下の各項目も確認する必要があります。

  1. Windows マシンが Unix マシンを名前で PING できる。(確認するには、"ping myserver" を C:\> プロンプトで入力します。)
  2. Windows マシンが WINS サーバーを使用するように構成されている。Samba が WINS サービスを提供する場合は、これを Samba ボックスの IP に設定する必要があります。それ以外の場合は、それを有効な WINS サーバーの IP に設定する必要があります。この設定は、通常、TCP/IP 設定ダイアログに入っています。
  3. Windows マシンが YOURWORKGROUP のメンバーである。

テスト

いよいよ正念場にさしかかりました。Windows マシンのリブートが終わったら、Samba が受け入れるユーザー名/パスワードを使用して Windows にログオンしてください。Windows 95/98 を使用する場合は、このユーザー名/パスワードの組み合わせは単にファイルに保管されるだけで、後で任意のネットワーク・リソースに接続するときに使用されます。

Windows NT ワークステーションを使用する場合は、このユーザー名/パスワードの組み合わせは、NT のローカル・セキュリティー・データベースにも含まれていなければなりません (そうでない場合には、NT への初期ログインを行うことができません)。これを行うには、アドミニストレーターとして NT にログオンし、ユーザー・マネージャーを使用してアカウントを作成します。いったんログアウトし、作成したアカウントで再度ログインしてください。

正しくログインしたら、「ネットワーク コンピュータ (Network Neighborhood)」をダブルクリックして、YOURWORKGROUP ワークグループを調べます。中を見てみましょう。Samba サーバーがリストされているかどうか確認します。それをダブルクリックし、/tmp シェアがリストされているかどうか確認します。リストされていれば、成功です。Samba が正常に稼動している証拠です。リストされていなければ、以下のものを調べます。

  1. testparm を実行します。smb.conf は正しいでしょうか。正しくない場合には、問題を修正し、Samba を再始動します。
  2. smbd と nmbd は稼働していますか。稼働していない場合には、ログ・ファイルにエラーがないか調べて、問題個所があればそれを訂正し、smbd と nmbd を再始動します。
  3. 正しい WINS サーバーを使用するように Windows クライアント・マシンを構成しましたか。そのような構成がされていない場合には、Windows クライアント・マシンがネットワーク上のマシンの IP アドレスを探す際に問題が発生する可能性があります。
  4. Unix マシンを Windows から (またはその逆へ) PING することができますか。PING できない場合には、ネーム・レゾリューションが正しく行われるように、/etc/hosts ファイルまたは DNS を構成してください。

これらのすべてのことを調べても Samba がまだ稼動しない場合には、docs/textdocs ディレクトリーの DIAGNOSIS.txt ファイルに示されている各ステップを慎重に実行してください。構成またはネットワークの問題を間もなく突き止めて、修正できるでしょう。何らかの理由で smb.conf を変更した場合は、smbd と nmbd に HUP シグナルを送って、それらが smb.conf を再読み取りするように強制する必要があります。その方法は、以下のとおりです。

# kill -hup <pid of smbd>
# kill -hup <pid of nmbd>

代替方法として、単に smbd と nmbd を強制終了し、それらを再始動することもできます。

次回

次号の Samba 記事では、Samba の拡張オプションについて説明します。それらのオプションを習得することによって、希望通りにシェアを機能させるようにセットアップできるようになります。また、Samba での印刷など、Samba のいくつかの拡張フィーチャーについても説明します。次回をお楽しみに。


ダウンロード可能なリソース


関連トピック

  • メインSamba Web サイト(英語) から Samba をダウンロードします。
  • 「Samba/iX」(英語) を調べてください。これは、MPE/iX オペレーティング・システムを実行する HP e3000 が、Microsoft の Message Block (SMB) を使用してサービスを提供できるようにするプログラムの集合です。
  • Samba Unleashed」, by Steve Litt, with contributions from Daniel Robbins を参照ください。
  • Using Samba」(O'Reilly Publishing; 1999) (英語) は、Samba 管理についての総合的なガイドで、Windows NT ドメインとの統合、SWAT グラフィック構成ツール、などの新規追加機能を解説しています。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=230648
ArticleTitle=共通のスレッド: Samba 入門、第2回
publish-date=07012000