目次
Sambaのバイナリパッケージは、ほとんどのLinuxかUNIXディストリビューション に含まれている。また、 the Samba home page(本家)にも いくつかのパッケージが置いてある。使用するOSに合わせたパッケージのイン ストールの詳細については、OSのマニュアルを参照してほしい。
もしもソースからSambaをコンパイルすることが必要ならば、 Sambaのコンパイル方法を参照してほしい。
Sambaの設定はsmb.conf
ファイルに格納され、それは、通常
/etc/samba/smb.conf
か
/usr/local/samba/lib/smb.conf
にある。このファイル
を自分自身で編集するか、あるいは、たとえば、Sambaに含まれているWebベー
スのインタフェースSWATのような、種々のGUIツールのどれかを使って編集する
ことができる。
smb.conf
ファイルは、昔のWindows 3.1で使われていたいろいろな
.ini
ファイルと同じ文法を使う。おのおののファイル
はいくつかのセクションからなり、それらは行の先頭が大括弧
([]
)で囲まれた、セクション名から開始される。それぞれ
は0またはそれ以上の、等号(=
)で分離されたキー/値ペア
を含む。ファイルは単なるテキストファイルなので、好みの編集ツールで開い
て編集できる。
smb.conf
ファイル中にあるおのおののセクションは、共有か、Sambaサーバー上
のメタサービスを記述している。[global]
セクションは特
別であり、Sambaサーバー全体にたいして適用する設定を含む。Sambaは複数の
メタサービスをサポートし、おのおのは固有の機能を提供する。例えば、
[homes]
共有は、メタサービスであり、おのおののユーザー
のための、個別のホーム共有を提供させる。[printers]
は
メタサービスであり、プリントキューサポートを確立し、それは、Windows
クライアントから、UNIX/Linuxプリントスプーラに対してプリントジョブが
送られることに先立ち、中間スプールディレクトリの位置を指定する。
printers
メタサービスは、printcap
ファイル中で指定されたものか、lpstat
コマンドか
CUPS API経由かでのすべてのプリンターを共有プリントキューとして公開する
ようにする。smb.conf
ファイル中のprinters
節は
browseable でないように設定できる。もしもbrowseableに設定すると、
共有として見えるようになる。これは、WindowsプリントキューとしてUNIX
システムプリンターを有効にするのみ反応するこのメタサービスをTmakes no
sense。もしも、comment
パラメーターが指定されるならば、
その値がWindowsエクスプローラーのブラウズリスト中にプリンター名の一部と
して表示される。
共有またはメタサービスを指定するsmb.conf
ファイル中のおのおののセクション
は節(stanza)と呼ばれる(訳注:日本ではセクションという呼び名が通用している
ため、以下はすべてセクションとする)。global
セクション
はsmb.conf
ファイル中のすべての他のセクションに影響する設定を指定する。
設定パラメーターはsmb.conf
マニュアルページに説明がある。いくつかのパラメーター
はglobal
セクションのみで使われ、その他いくつかは通常の
共有またはメタサービスセクションでのみ使われ、いくつかは、グローバルまたは
共有、メタサービスセクションで使える。
最小のsmb.conf はとても小さいsmb.conf
を含む。
この節では、Samba で使われるデータベースの簡単な説明を含む。
Samba が格納する tdb ファイルのディレクトリの位置は、コンパイル時オプ ションによって変わる。Samba は2つの場所に tdb ファイルを格納する。 その位置を決める最も良い方法は、以下のコマンドを実行する:
root#
smbd -b | grep PRIVATE_DIR
PRIVATE_DIR: /etc/samba/private
これは、秘密のtdbファイルが/etc/samba/private
ディレクトリに格納されることを意味している。Samba はまた、より
ありふれたデータを含むいくつかのtdbファイルを使う。それらのファイルの
位置は以下を実行することで見つけられる:
root#
smbd -b | grep LOCKDIR
LOCKDIR: /var/lib/samba
それゆえ、例の中で表示されている残りの制御ファイルは
/var/lib/samba
ディレクトリに格納される。
継続的に使われるtdbファイルは
継続的なTDBファイルの説明一覧
にある。すべての継続的なtdbファイルは通常バックアップすべきである。
tdbファイルバックアップのためにtdbbackup
ユー
ティリティを使うこと。すべての継続的なtdbファイルはマシンの
マイグレーション、アップデートとアップグレードの間保存すべきである。
一時的なtdbファイルはバックアップの必要性はなく、マイグレーション、 アップデートとアップグレードの間保存する必要もない。一時的なtdb ファイルは 一時的なTDBファイルの説明 に説明がある。
表1.1 継続的なTDBファイルの説明
名前 | 説明 |
---|---|
account_policy | Samba/NTアカウントポリシーの設定、パスワード満了の設定を含む。 |
group_mapping | Windows グループ/SID から UNIXグループへのマッピングテーブル。 |
ntdrivers | プリンター単位の、インストール済みドライバー情報を格納。 |
ntforms | プリンター単位の、インストール済みフォーム情報を格納。 |
ntprinters | プリンター単位の、devmode構成設定情報を格納。 |
passdb | tdbsamパスワードバックエンドが使われる時のみ存 在。このファイルはSambaSAMAccount情報を格納する。 注意:このファイルは/etc/passwdファイルからか他 の代替システムソースからのユーザーのPOSIXアカウント を必要とする。 |
registry | winreg RPC経由で種々のデータベーステーブルをエ クスポートすることをサポートするための、読み出 し専用Windowsレジストリスケルトンデータベース。 |
secrets | このファイルはWorkgroup/Domain/Machine SID、 LDAPディレクトリ更新パスワードとSambaが正常に 動作するために必要な重要な環境データのさらなる 集合。このファイルには、秘匿しなければならない とても機密性のある情報が含まれている。このファ イルはPRIVATE_DIRディレクトリに格納される。 |
share_info | 共有単位のACL情報を格納。 |
winbindd_idmap | Winbinddのローカル IDMAPデータベース。 |
表1.2 一時的なTDBファイルの説明
名前 | 説明 | バックアップ |
---|---|---|
brlock | バイトレンジロック情報。 | No |
connections | 最大接続数を拡張するために使われる一時的な接続上のキャッシュ。 | no |
eventlog/*tdb | イベントログエントリのレコードほとんどの環境ではこれはシステムログのキャッシュである。 | no |
gencache | WINSサーバーと信頼されるドメインデータのための汎用キャッシュデータベース。 | no |
login_cache | ログイン情報のための一時的なキャッシュで、特に不正なパスワード試行用。 | no |
messages | smbdによって処理されるメッセージの一時的な格納用。 | no |
netsamlogon_cache | net_samloginリクエストからのユーザーnet_info_3 構造データのキャッシュ(ドメインメンバーとして)。 | no |
perfmon/*.tdb | パフォーマンスカウンター情報。 | no |
printing/*.tdb | プリントサービス単位で作成されるlpqコマンドのキャッシュされた出力。 | no |
schannel_store | 機密ファイルで、PRIVATE_DIRに格納され、接続セッ トアッププロセスの再ネゴシエーションの必要なし で再接続可能な一時的な切断が可能になるための暗 号化した接続情報を含む。 | no |
sessionid | 種々のセッション情報とutmp処理のための一時的なキャッシュ。 | no |
unexpected | どのプロセスもリッスンしていない時に受け取ったパケットを格納する。 | no |
winbindd_cache | NT4ドメインかADSから受け取ったアイデンテティ 情報のキャッシュ。ユーザーリストなどを含む。 | yes |
Sambaは2つまたは3つのdaemonから構成される。daemonはバックグラウンドで動
作し、サービスを提供するUNIXのアプリケーションである。サービスの例としては、
httpd
と呼ばれるdaemonが Apache Webサーバーである。
Sambaの場合は、3つのdaemonがあり、そのうち2つが最低必要である。
Sambaサーバーは以下のdaemonから成り立っている:
このdaemonはすべての名前登録と名前解決要求を処理する。
これはネットワークブラウジング中で必要とされる主要な
伝達手段である。これは、すべてのUDPベースのプロトコル
を処理する。nmbd
daemonはSamba開始
プロセスの一部分として最初にコマンドを起動すべきである。
このdaemonはファイルと印刷関係の操作のための、TCP/IP
ベースのすべてのコネクションサービスを処理する。また、
ローカルでの認証も管理する。これは
nmbd
の開始に引き続いて起動すべきで
ある。
このdaemonはWindows NT4またはADSドメインのメンバーの時に
起動すべきである。また、他のドメインとの信頼関係を結ぶ
時にも必要である。winbindd
daemonは
idmap uid
と
idmap gid
パラメーターがsmb.conf
ファイル中に存在するかどうかをチェックする。もしもそれ
らが見つかった場合、winbindd
はUIDと
GIDの割り当てのために指定された値を使う。もしも、パラメー
タが指定されていなければ、winbindd
は起動するが、UIDとGIDの割り当てが出来ない。
SambaがOSベンダーによってパッケージ化されている時、開始プロセスは通常プラッ トフォーム全体に渡って統合された固有の機能となっている。Sambaの起動の正 しい管理に関する特定の情報のためにOSプラットフォームの管理マニュアルを 参照してほしい。
ディストリビューションtarファイル中にのソースコードのexamplesサブディレ
クトリ中にサンプルの設定ファイルがある。実際問題としてオプションがどの
ように組み合わさるかを見る事が出来るので、注意深く読むことを推奨する。
すべてのオプションはマニュアルページを見よ。必要があることに適用するた
めと、smb.conf.default
ファイルを設定し始めること
は価値があるかもしれない。そこには多くのコメントが書いてある。
最も簡単に使える設定ファイルは もう1つ別の簡単なsmb.confファイル 中で見る事ができるようなものを含んでいる。
これは、サーバー上にアカウントを持つ誰でも、ログイン名かサービス名
として、homes
への接続を許す。
(注意:Sambaが使うワークグループ名も設定する必要がある。既定値の
ワークグループ名はWORKGROUPである。)
正しい場所にsmb.conf
ファイルをきちんと置くこと。正しい場所は、
バイナリファイルの構築方法に依存することに注意。正しい場所を知る
ためには、以下のsmbd
コマンド行を実行することで
わかる:
root#
smbd -b | grep smb.conf
[homes]
共有に対するセキュリティ設定の詳しい情報は
Sambaのセキュア化を参照してほしい。
testparmプログラムを使ってsmb.conf
ファイルの内容を検査することは
重要である。もしもtestparmが正しく動けば、設定されたサービスの一覧を
表示する。もしもそうでなければ、エラーメッセージを表示する。それが
正しく動くようにして、動かす前にサービスが合理的であるようにすること。
以下のコマンドを入力する:
root#
testparm /etc/samba/smb.conf
testparmは設定ファイルを解析し、不正な文法や不明なパラメーターを報告する。 また、共通の設定ミスをチェックし、それが見つかれば警告を発する。
smb.conf
ファイルを変更した後には必ずtestparmを実行すること!
smb.conf
ファイルはsmbd
daemonによって定期的にチェッ
クされ、
nmbd
とwinbindd
によりそれがspawnさ
れる毎インスタンスごとにチェックされる。可能な限りこのファイルを小さく
しておくことはよいことである。多くの管理者はSamba設定を文書化すること
を好み、そのため、このファイルを小さくしておくことは、賢明な文書化手法
である。これを適用する1つの解決方法は、
smb.conf.master
というような名前で別のファイルに、
すべての文書と設定を1つにまとめておくことである。
testparm
ユーティリティは、以下のように、マスターの
設定および文書ファイルから完全に最適化されたsmb.conf
ファイルを作成
するのに使える:
root#
testparm -s smb.conf.master > smb.conf
この管理手法は最小限の必要性のためにsmb.conf
ファイルサイズを同じ時に
保つ間詳細な設定変更レコードをメンテナンスすることを可能にする。
SWATはWebベースの、Sambaの設定を行うために使うことが出来るインタフェー スである。SWATはあなたのプラットフォームでSambaパッケージで有効になって いないかもしれないが、分離したパッケージになっているかもしれない。もし もSWATを構築することが必要ならば、編集に注意してSWATのマニュアルページ を読んでソースコードからSWATを構成してインストールしてほしい。
SWATを起動するために、好みのブラウザーを起動し、
http://localhost:901/
を指定する。
Sambaを動かしているコンピューターがブラウザーが動いているコンピューターと異な
るならば、localhost
の部分を置き換えること。
SWATは任意のIP接続されたマシンからブラウザー経由で使えるが、平文でパスワー ドがネットワーク上を流れ、盗聴の危険性があることに注意してほしい。
SWATについての詳細な情報は、 The Samba Web Administration Tool にある。
設定済みのSambaサーバーから有効な共有の一覧を表示するには、以下の コマンドを実行する:
$
smbclient -L
yourhostname
サーバー上で有効の共有の一覧が表示される。もしもそうでなければ、設定が どこか間違っている。この方法はたとえばWindows 2000のような、他のSMB サーバーの共有が有効かと言うことにも使える。
もしも、ユーザーレベルのセキュリティを選択しているならば、共有の一覧を表
示する前にパスワードを要求してくる。詳細はsmbclient
のマニュアルページを参照のこと。コマンドラインに-N
オプションを追加することで、パスワード要求なしに共有の一覧を表示出来る。
以下のコマンドを入力する:
$
smbclient
//yourhostname/aservice
通常yourhostname
はsmbdが
インストールされたホストの名前である。
aservice
はsmb.conf
ファイル中にある任意の
サービスである。smb.conf
ファイル中の
[homes]
セクションがあるならばusernameを試みる
こと。
例:もしもUNIXホストがbambi
で有効な
ログイン名がfred
ならば、以下のように入力:
$
smbclient //
bambi
/fred
Sambaがローカルで正しく動いている時には、他のクライアントからアクセスを 試みることが出来る。数分以内に、Sambaホストは同一のサブネット上のすべて のWindowsクライアント上のマイネットワーク上(Network Neighborhood)に表示 される。他のクライアントからサーバーをブラウズするかそれをマウントするこ とを試みる。
DOS、Windows、あるいはOS/2クライアントからのマウントは以下のコマンドを 動かすことで行える:
C:\>
net use m: \\servername\service
ここで、ドライブ名 m: は任意の有効なドライブ名である。使用するサービス(共有)名を ダブルクリックする時にそれが実際に存在していることは重要である。
印刷システムを試すための例は以下の通り。
C:\>
net use lpt1: \\servername\spoolservice
spoolservice
は対象のサーバー上のプリンターの名前(実際
にはプリントキュー)である。これは、指定されたspoolserviceが所有する
プリンターに送られるWinbowsクライアント上のlpt1:ポートでキャプチャされ
たすべてのプリントジョブを許可する。
C:\>
print filename
Sambaチェックリストを読んでみてもよい。 もしもまだ行き詰まっているならば、 Sambaの問題の解析と解決を参照しよう。 Sambaは世界中でとてもたくさん正常にインストールされている。あなたの 特定の問題が固有であれば、あなたの問題に誰かが遭遇し、それを克服する 方法を見つけていることを発見するために、インターネット上での検索を実 行することは生産的かもしれない。
もしも、Sambaを使うのが初めてで、特にWindowsかUNIX/Linuxののネット ワーキング初心者ならば、「Samba-3 by Example」という本 (訳注:Sambaのドキュメントの一部にもなっている)は評価済みのネットワーク 環境を作るのに手助けとなるだろう。最もサイトのニーズに適合するネット ワークデザインがある最初の五章から単に選び、それを展開するための 単純な段階的手順を取りなさい。その後、ネットワークが動き、更に改良の ための機会のための知識の取得のためには、この本を再度参照しよう。
惨めなフラストレーションのストレスに対する最高のアドバイスは、クールダウ ンすることである!それはそれ自身挑戦かもしれないが、怒っているか、 悩んでいる間、解決策を探すことは難しくなる。頭を冷やせば、探している 答えを見つかることにつながる。繰り返すが、すべての問題は解決策がある 今そうすることが出来なくとも、誰かがそれを見つけるよい機会が ある。それは時間、忍耐と学習で変わる。
少しクールダウンしたなら、 the Samba Checklistを、問題の原因を 確認するために行う事が出来る手順を確認するために参照してほしい。
以下の質問と問題はSambaメーリングリスト上で繰り返し発生するものである。
Sambaの3つの中心的なプログラムは:nmbd, smbd, と winbinddである。 nmbdはネームサーバーメッセージdaemonで、smbdはサーバーメッセージ daemonで、winbinddはドメインコントローラーとの間での通信を処理する daemonである。
もしもSambaがWINSサーバーとして動作していないならば、 システム上には1つのnmbdインスタンスが動作する。もしもWINSサーバーとして 動作するならば、2つのインスタンスがある。1つはWINS要求を処理 する。
smbd はすべての接続要求を処理する。おのおののクライアントに対する 接続が終わると新しいプロセスがspawnする。それゆえ、クライアント接続毎 にたくさんのdaemonが存在する。
winbinddは接続するドメインの数に依存して、数多くのプロセスが起動する。