"..." というディレクトリが "..¥.." として扱われる
KB番号 | J0113 |
最終更新日 | 2002/2/22 |
作成者 | はせがわようすけ |
最終更新者 |
対象
この文書は、以下のプロダクトに付いて説明したものです。 これは現象が発生することを確認した環境であり、下記以外の環境でも同様の現象が発生する可能性があります。
- Samba 2.0.x
- Samba 2.2.2
- Windows 98
現象
Samba で共有しているディレクトリに UNIX 上で "..." や "...." のようにピリオドだけで 構成されるディレクトリを作成した場合、これらのディレクトリに Windows クライアントから アクセスすると、"..." であれば "..\.." に、"...." であれば "..\..\.." にアクセスしたかの ように振舞います。
例えば、\\Samba\Share\dir1 というディレクトリにある "..." というディレクトリを エクスプローラで表示させようとすると、\\Samba\Share が表示されます。
このため、Windows 上でディレクトリを再帰的に辿るようなプログラムを実行させた場合、 処理が完了しないことがあります。 また、フォルダを再帰的に辿りながらファイルを削除するようなプログラムの場合、 場合によっては意図しないファイルまで削除される可能性があります。
原因
これは、Windows 95 以降のディレクトリ名に対する扱いの仕様に起因します。
Windows 95 以降のOSでは、"..." や "...." のようなディレクトリはそれぞれ "..\.." や "..\..\.." を表わします。 (このことは、Windows95/98であれば C:\Windows\tips.txt に記載されています。)
Windows 上では "..." のようなピリオドだけで構成されるディレクトリは作成できませんので このような問題は発生しませんが、UNIX では "/" を除く任意の文字を使ってディレクトリを 作成できるため、このような Windows からのアクセスでは不都合の発生するディレクトリも 作成することができます。
対処策
対処策はありません。
UNIX 側でこのようなディレクトリを作成しないようにしてください。