前のページ 次のページ 目次

2. Unix ホストでの Samba のコンパイルとインストール

2.1 ブラウズリストに Samba サーバが出ません!

ブラウズに関するより詳しい情報は BROWSING.txt を見て下さい。 Browsing.txt は Samba ソースの docs ディレクトリにもあ るはずです。

GUI クライアントからは、ブラウズできないサーバは選択できないでしょうが、 その場合でも、コマンドラインからなら可能かもしれません。例えば Lan Manager を使っている場合、このようなサービスをディスクドライブ M に接 続するには以下のようにします。

   net use M: \\mary\fred
コマンドの詳しい利用法やパラメータの記述などは、クライアントによって異 なります。クライアントの文書をチェックして下さい。

2.2 サーバにあるはずのファイルが、クライアントから見えません!

次の質問の項を見て下さい。

2.3 サーバにあるファイルをクライアントからみると、変なファイル名になってしまいます!

どんなファイルがおかしくなっているかを調べてみて下さい。おそらくファイ ル名に、大文字や DOS では使えない文字が含まれており、 DOS のファイル名 として正しくないものになっているのではないでしょうか。

Samba サーバはこのようなファイルをまったく無視してしまうように設定する こともできますし、あるいはファイル名を「圧縮 (mangle)」した形でクライア ントに表示させることもできます。ファイルが全く見えなくなってしまう場合 は、おそらく Samba サーバはそれらを無視するように設定されているのでしょ う。これを変更する方法は man ページ smb.conf(5) を調べて下さい。設定し なければならないパラメータは "mangled names = yes" になります。

2.4 クライアントが「指定したコンピュータが見つかりません (cannot locate specified computer)」と言ってきます。

以下の3つのうちのどれかでしょう。 1) サーバの名前を間違って入力した 2) TCP/IP レイヤが正しく動作していない 3) 指定した名前が解決できなかっ た。

まず、タイプした名前が本当にあっているか、良く注意して見て下さい。そ して、ネットワークのどこかのホストに ping や telnet するなどして、 TCP/IP が正しく動作しているかどうか調べて下さい。両方とも OK なら、問 題は名前解決にあると考えられます。

(クライアントにそのような機能があれば) ホストの IP と、用いたい名前の ペアをファイルに書いてしまうと良いでしょう。例えば Lan Manager や Windows for Workgroups なら、適切なエントリを LMHOSTS に書けば良い はずです。これでうまく行くようなら、クライアントと NetBIOS のネームサー バとの通信に問題があります。うまくいかない場合は、名前の付け方に根本的 な問題がありそうです。後者の場合の解決法はこの文書の範囲を越えています。

NetBIOS の名前解決を提供するサーバがサブネットに一つもない場合は、ファ イルに書く方法を取るしかありません。動作している NetBIOS のネームサーバがある場合は (Samba の nmbd プログラムも サーバになれます)、おそらくクライアントの設定に問題があります。 より詳しくはこの FAQ の第三章を見て下さい。

ところで、書き込んだファイルのエントリは、それ以降のテストをするときに は忘れずに削除して下さいね :-)

2.5 クライアントが「指定した共有名が見つかりません (cannot locate specified share name)」などと言ってきます。

このメッセージは、サーバは見つかった(幸先よいスタートですね)けれども、 指定された名前のサービスが見つけられなかったことを意味します。

最初に確認しなければならないのは、接続しようとしているサービスの正確な 名前です(システム管理者に尋ねてください)。そのサービスが存在し、名前 も正しく指定されていたときは以下をご覧ください。なお、サービス名を正 しく指定する方法については、クライアントのドキュメントを参照して下さい。

2.6 クライアントが「ドメインコントローラが見つかりません (cannot find domain controller) 」とか「ネットワークにログオンできません (cannot log on to the network)」というようなことを言ってきます。

どこにも悪いところはありません。 Samba は、プライマリドメインネームコ ントローラを実装していません。理由はいくつかあるのですが、たとえば プライマリドメインコントローラや「ネットワークへのログイン」という 概念そのものが、マルチユーザマシン上で稼動しているクライアント(UNIX のもとで smbclient を使用しているユーザなど)にはそぐわない、と言うの もその一つです。 と言っておきながらなんですが、何人かの開発者が、次のメジャーバージョン で Samba にこの機能を組み込もうと、いま一所懸命努力しています。 協力したい方は、 samba-bugs@samba.org までメッセージを送って下さい!

このメッセージが出ても、リダイレクトされたディスクとプリンタをマウント するうえでは、なんの支障にもならないはずです。とりあえずのところはいい でしょう?

多くのクライアントでは(Windows for Workgroups と LAN Manager も そうです)、 ドメインを STANDALONE に設定すれば、少なくともメッセージは出なくなります。

2.7 印刷できません :-(

接続先のサービスで指定された印刷コマンドが正しいコマンドであること、 絶対パスで指定されていること(たとえば単に"lpr"でなく"/usr/bin/lpr") を確かめてください。

そのサービスに対して指定されているスプールディレクトリが、サービスに 接続しているユーザにとって書き込み可能であることを確かめてください。 とくに、ユーザ "nobody" は、しばしば問題の原因になっています (以前の バージョンの Samba では大丈夫だった場合でも、です)。 "nobody"以外のゲストユーザを作成してみてください。

サービスで指定されているユーザが、プリンタの使用を許可されていること を確かめてください。

smbd が作成したデバッグログを調べてみましょう。プリンタ名を探して、ロ グが何かの手がかりを残していないか見てください。サービス ipc$ に関係するメッセージは無意味です - これは LANMAN1 プロトコルが使用され ているときに、クライアントによるステータス情報の取得に関係するメッセー ジです。

WfWg を使用する際には、デフォルトのプロトコルを NetBEUI でなく TCP/IP に設定する必要があります。これは WfWg のバグです。

Lanman1 プロトコル(デフォルト)を使用している場合は、 coreplus に切り 替えてみてください。また印刷ステータスがエラーである旨のメッセージが出 ても、それは印刷できないという意味ではありませんから、注意してください。 印刷ステータスは、別のメカニズムによって取得されます。

2.8 プログラムをサーバにインストールすることはできたんですが、正しく動作しません。

これにはさまざまな原因が考えられますが、いちばん可能性があるのは、その ソフトウェアがロック動作を使用していることでしょう。お使いの Samba の バージョンが 1.6.11 以降であることを確認してください。ソフトウェアをイ ンストールしたサービスに対して、 Samba の設定ファイルで "locking=no" を指定すれば、この問題を回避できることがあります。しかし、仮に成功して も、これはその場しのぎの解決策と心得てください。

以前のバージョンの Samba では、最新の Microsoft 製品で問題が起こること がありました。とくに Excel 5 と Word for Windows 6 です。これらの問題 はすべて解決ずみのはずですが、まだ問題が残っているようなら、Andrew Tridgell に知らせてください。メールは samba-bugs@samba.org です。

2.9 "server string"が認識されません。

あるいは smb.conf ファイルで変更したにもかかわらず、クライアントがあい かわらずデフォルトの "Samba 1.9.15p4" を報告してくる場合もあります。

nmbd で -C オプションを使用してください。 "server string" は smbd の 出力に影響し、 -C は nmbd の出力に影響します。

現在のバージョンの Samba (1.9.16 以降) では、これらのオプションは smb.conf の "server string" フィールドに統合されています。 nmbd の -C はすでに古い仕様になっています。

2.10 クライアントが「このサーバは共有リソースをリストできる設定になっていない (This server is not configured to list shared resources)」というようなことを言ってきます。

おそらく、なんらかの理由でゲストアカウントが無効になっています。 Samba は、 smbd でのブラウズにゲストアカウントを使用します。ゲストアカウント が有効であることを確かめてください。

smb.conf の man ページにある、 'guest account' の節も参照してください。

2.11 "you appear to have a trapdoor uid system" というログメッセージが残されています。

いくつかの原因が考えられます。1つの可能性は、 uid や gid に 65535 または -1 が使われていることです。これは非常に好ましくないことで、 大きなセキュリティホールとなります。 /etc/passwd ファイルを注意深く調べ、 uid に 65535 や -1 を使用しているユーザがいないことを確認してください。 とくに "nobody" ユーザには注意が必要です。 nobody の uid を 65535 に設定して出荷するような、ひどいシステムも少な くありませんから。

あるいは、OS の uid/gid システムがトラップドアタイプのものなのかも しれません :-)。

これは、実効 uid を root から他のユーザに変更したプロセスは、もう root には戻れない、というシステムです。残念ながらSambaでは、実効 uid を root から root 以外に変更し、再び root に戻れる、と言うことを利用して セキュリティポリシーを実装しています。したがって、OS がトラップドア uid システムを使用していると不都合が生じ、 Samba の中で障害が起こる可 能性があります。デフォルトの share レベルセキュリティでなく、 user レ ベルか server レベルのセキュリティを使用していれば障害は小さく なりますが、それでも問題は起こります。

これはセキュリティホールになる問題ではありませんから、パニックに陥る 必要はありません。しかし Samba の機能のいくつかが使用できなくなります。 たとえば "guest" として印刷しながら、同時に通常ユーザとして共有に アクセスする場合のように、 2つの uid で同時に Samba に接続することはで きなくなります。また使用可能な共有のリストを表示すること(通常 guest ユーザが行います)もできないかもしれません。

OSベンダに苦情をいい、システムを修正してもらってください。

注: uid または gid に 65535 を用いるのがなぜ悪いかというと、この値は uid として -1 に変換されるのですが、 setreuid() システムコールは -1 へ の uid 変更をエラーとせず、無視してしまうからです。つまり uid 65535と して動作しようとするデーモンは、実際には root として動作することになり ます。これは困ります!


前のページ 次のページ 目次