Windows 9xから13文字を越える長さの共有名が利用できない

提供: Samba-JP
J35から転送)
移動先:案内検索
KB番号 J0035
最終更新日 2002/01/12
作成者 たかはしもとのぶ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 2.2.x日本語版
  • Samba 2.2.x
  • Samba 2.0.x日本語版
  • Samba 2.0.x
  • Windows 95 / Windows 98 / Windows Me

現象

Sambaで13文字より長い(13文字を含まない)共有名を作成した場合、Windows 9x側からは13文字より長い部分が切り詰められた共有名として認識されます。 その為、Windows 9x側からアクセスしようとすると、

 \\server\share にアクセスできません。
 指定された共有名が見つかりません。入力された共有名を確認してください。

というエラーメッセージが出力されてアクセスすることができません。

もし切り詰められた共有名と同じ名前の共有がたまたまSambaに存在していると、その共有に対して接続が行なわれます。

例えば、Samba 上に

  • 12345678901234
  • 1234567890123

という2つの共有が存在したい場合、Explorer で Samba サーバの共有を一覧すると 1234567890123 という名前の共有を示すアイコンが2つ存在します。どちらのアイコンをクリックしても、 1234567890123 という名前の共有に接続されます。

またdefault serviceパラメータが設定されている場合は、その共有に対して接続が行われます。

なお、この文字列の切り詰めは2バイト文字が考慮されていないため、共有の13バイト目から14バイト目にかけて2バイト文字が存在していた場合、切り詰められた共有名は不正な文字列になります。

原因

これはWindows 9xとSambaの仕様になります。

Windows 9xでは、12文字を越える共有名へのアクセスはサポートされていません。そのため、Sambaでは13文字を越える共有名を強制的に切り詰めていますが、Windows 9xに送信する共有名を切り詰めているにも関わらず、内部的な共有名が切り詰められていないため、アクセスできないという事象が発生しています。関連する情報として

もご参照ください。

対処策

Sambaサーバ側で13文字を越える長さの共有を作成しないように注意してください。長いアカウント名を利用している場合、アカウント名の長さが13文字を越えると、そのユーザのホームディレクトリへのアクセス時にも同様の問題が発生することに注意してください。

Samba 2.0.10日本語版リリース1.0以降では、こうした共有へのアクセス時に警告をログ出力するとともに、内部的な共有名も切り詰めることで、Windows 9xから切り詰められた共有名でのアクセスを可能とするように暫定的な修正を行なっています。なおWindowsとの互換性を保つために、12文字を越える共有名は利用できなくなりましたので、13文字の長さの共有名を利用している場合は、注意してください。

この技術情報は sugj-tech:3062 からの一連のスレッドの議論を元に作成されています。