web-dev-qa-db-ja.com

大文字と小文字を区別する名前が有効になっている場合、SambaはWindowsでうまく機能しますか?

Windowsクライアントからアクセス可能な* nix Samba共有が欲しい。

Sambaには、ファイル名の大文字と小文字の区別を有効または無効にするオプションがあります。通常、Windowsアクセスの場合、これは無効になっているため、fred == FRED = fReDになります。

ただし、これはAFAICTの1つの大きな問題につながります。

  • UNIXでは、「RODDY」と「roddy」という2つのフォルダを作成します
  • Windowsでは、両方のフォルダーが表示されますが...
  • Windowsから1つを削除/名前変更/開いた場合、どちらかを削除/名前変更/などする可能性があります。 あなたはそれを知る方法がありません!

だから、私の質問は、大文字と小文字を区別するフラグが「オン」に設定されている場合、SambaはWindowsでどのように動作するのでしょうか。ユーザーは引き続き両方のフォルダーを表示でき、ファイル操作を一貫した方法で機能させることができますか?

12
Roddy

それは大丈夫です。 Windowsエクスプローラは、ファイル名の大文字小文字を正しく表示するという優れた機能を果たします。私はこれをsmb.confで使用して、エクスプローラーで入力するものがSambaが使用するものであることを確認します(私はこれらすべてを共有ごとに設定します):

case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes

私はクイックテストを実行しました(バックエンドではSamba 3.0.24、フロントではWinXP)。 SSHセッションを介してSambaサーバーにファイルが作成されました。

$ cd /some/samba/share/path
$ mkdir test
$ cd test

$ mkdir test1 TEST1
$ touch test1/foo TEST1/bar

この後、マップされたドライブをテストディレクトリに移動しました。 「test1」と「TEST1」の両方のディレクトリが表示されます。 「test1」を開いて「foo」ファイルを見ました。 「TEST1」を開いて「bar」ファイルを見ました。ここまでは順調ですね。

次に、テストディレクトリに戻り、エクスプローラーウィンドウでTEST1の名前をTEST2に変更しました。 Windowsは少しおかしくなりました-それはフォルダーの名前を変更し、両方のフォルダーをTEST2として示しました-両方のフォルダーの名前を変更したようです。しかし、SSHターミナルで次のことを確認しました。

$ ls
test1 TEST2

したがって、Windowsはファイルの名前を変更し、Sambaはファイル名を正しく取得しました。エクスプローラーウィンドウでF5キーを押してフォルダーの内容を更新すると、表示が変わり、正しいフォルダー名が表示されます。

警告:Linuxファイルシステムでは、Windowsで許可されていない一部の文字( ":"など)が許可されています。 Sambaには「名前変換」オプションがあります これらのファイル名をWindowsが好むものに変換します。たとえば、SSHウィンドウで「FA:23」というファイルを作成すると、Sambaは名前を「F7T4H0〜F」に変換し、それがエクスプローラーウィンドウに表示されます。

12
quack quixote

私のために働いたオプションは以下の通りです:

preserve case           = yes
short preserve case     = yes
1
surajmohan