人間に優しいサンバ名マングリング


11

ほとんどのコンピューターはUbuntuを実行しますが、そのうち2つはWindowsをデュアルブートし、ゲストがいると、通常はWindowsコンピューターも実行します。したがって、NFSの使用に加えて、ファイルサーバー(Ubuntuサーバー)もSambaを実行します。

また、Ubuntuを主に使用している\:*?"<>|ため、ファイル名に文字を使用できるなど、Windowsに対する利点を活用したいと考えています。もちろん、問題は、Windowsがファイル名にこれらの文字を受け入れないため、Sambaがファイル名をより受け入れやすい名前に変換する必要があることです。しかし、これを行う方法は、不快であることがわかりました。

Episode 182 - Exorcist 2: The Heretic.mp4たとえば、ファイル名はに変わりますE4Q82R~Y.MP4。これはひどい「修正」です。Sambaのマングリングを人間にやさしくする方法はありますか?Episode 182 - Exorcist 2_ The Heretic.mp4代わりに、不正な文字が単純に置き換えられるようなものに「修正」することは可能ですか?


1
Sambaメーリングリストでこのパッチの説明を確認してください。説明されている方法は、ですぐに使用できSamba 4.1.4-Debianます。
mpy 14

@mpy私はこれを試しましたが、違法なWindows文字を含むファイルを私のsamba共有にコピーしても、まだうまくいきません。うまくいったもの(シンボルに変換されたスペースなど)のみを変換するように機能しますが、機能しないもの(別のシンボルに変換された ':'など)には変換されません。ポインタはありますか?
pd12

回答:


11

mangled map 廃止され、Sambaの新しいバージョンでは動作しなくなりました。

vfs_catiaを使用して問題を解決できます。smb.confに次の行を追加します。

vfs objects = catia
catia:mappings = 0x003a:0x2236,0x003f:0x0294,0x002a:0x2217,0x003c:0x276e,0x003e:0x276f,0x0022:0x02ba,0x007c:0x2223,0x005c:0x29f9

マッピングは、コロンで区切られた0x接頭辞付きの16進文字コードで指定されます。提供されるマッピングは、不正な文字を、どの言語でも使用される可能性が低いユニコードの類似に再マッピングします。

?* <> "| \
:ʔ∗❮❯ʺʺ ∣⧹

コードは[global]、個々の[share]セクションの下または中に配置できます。配置すると[global]パフォーマンスに影響する場合があります。

マップする文字はサーバー上のファイル名に使用できないか、アクセスできないことに注意してください。

例:file❮name.txtサーバーで指定されたファイルにアクセスするWindowsクライアントfile<name.txtは、マッピングが原因でサーバーに要求します。これにより、ファイルが見つからないというエラーが発生します。


私はこれを試しましたが、違法なWindows文字を含むファイルをsamba共有にコピーしても、まだ機能しません。うまくいったもの(シンボルに変換されたスペースなど)のみを変換するように機能しますが、機能しないもの(別のシンボルに変換された ':'など)には変換されません。ポインタはありますか?
pd12

2
これはうまくいきます!注意すべきことの1つは、すべてを同じキャラクターにマッピングできないことです。この例では、実際にアンダースコアが含まれているものにはアクセスできなくなります。代わりに、私は次のマッピングを使用:0x3a:0x7e 0x3f:0x5e、そう:なり~?なりました^
ジェフリー

2

、このリンクあなたはマングリングのオプションを見ることができます。最初にオプションを無効にする必要があると思います:

mangled names

その後、名前が良く見えるはずです...

コロンを置き換えるには、たとえば次の行を使用します。

mangled map =(: _)

次のような置換ルールをさらに追加できます。

mangled map =(: _) (foo bar)

(また、fooの出現をbarに置き換えます)


彼らは今良く見えます。実際、「マングルされた名前」を「no」に設定すると、ファイル名はWindowsにまったく変更されずに表示されます。これは確か良く見えますが、Windowsアプリケーションがファイルを開けなくなります。tes:t.txtたとえば、メモ帳でファイルを開こうとすると、「[...] \ tes:t.txtファイルが見つかりません」と言われます。同じことは、それぞれのアプリケーションの他の「違法」ファイルにも当てはまります。
アレックス

私の答えを編集しました!
マイケルK

mangled mapSambaから削除されました。少し見回した後に私が知ることができるものから、それは数年前に削除されました。これは私のものですlog.smbd、私はそれを使用しようとした場合、ファイルは言う:Ignoring unknown parameter "mangled map"
アレックス

あなたは正しい...廃止されました。動作しません。それはそれほど単純ではありません-複雑なファイル名は、2つのファイルがDame Nameになるのを防ぐためです。ファイルfoo:.txtおよびfoo_.txtが存在する可能性があり、名前の変更が失敗します。したがって、最良の方法は、両方のファイルシステムで許可されている名前のみが許可されるように、ファイル名ルールを適用することです。
マイケルK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.