Ein menschenfreundlicherer Samba-Name, der verstümmelt

11

Auf den meisten unserer Computer wird Ubuntu ausgeführt, aber zwei von ihnen booten Windows doppelt, und wenn wir Gäste haben, führen sie normalerweise auch Windows-Computer aus. Daher wird auf unserem Dateiserver (Ubuntu-Server) neben NFS auch Samba ausgeführt.

Und da wir hauptsächlich Ubuntu verwenden, möchten wir die Vorteile gegenüber Windows nutzen, z. B. die Möglichkeit, die Zeichen \:*?"<>|in einem Dateinamen zu verwenden. Das Problem ist natürlich, dass Windows diese Zeichen in Dateinamen nicht akzeptiert und Samba den Dateinamen daher in etwas Akzeptableres übersetzen muss. Die Art und Weise, wie dies geschieht, finde ich jedoch widerlich.

Der Dateiname wird Episode 182 - Exorcist 2: The Heretic.mp4beispielsweise zu E4Q82R~Y.MP4. Dies ist eine schreckliche "Korrektur". Gibt es eine Möglichkeit, Sambas Mangeln ein wenig menschenfreundlicher zu machen? Ist es möglich, es Episode 182 - Exorcist 2_ The Heretic.mp4stattdessen zu "korrigieren" , wo die illegalen Zeichen einfach ersetzt werden?

Alex
quelle
1
Lesen Sie die Beschreibung dieses Patches in der Samba-Mailingliste . Die beschriebene Methode funktioniert sofort mit Samba 4.1.4-Debian.
Mpy
@mpy Ich habe es versucht, aber es funktioniert immer noch nicht für mich, wenn ich Dateien mit illegalen Windows-Zeichen auf meine Samba-Freigabe kopiere. Es funktioniert nur, um Dinge zu konvertieren, die in Ordnung gewesen wären (wie ein in ein Symbol konvertiertes Leerzeichen), aber nicht für Dinge, die nicht funktionieren würden (wie ':', die in ein anderes Symbol konvertiert wurden). Irgendwelche Hinweise?
pd12

Antworten:

11

Wenn Sie über Google hierher kommen und sich fragen, was zu tun mangled mapist, da dies veraltet ist, können Sie das Problem mit vfs_catia lösen. In meinem Fall brauchte ich nur Doppelpunkte, also habe ich Folgendes in meine smb.conf eingefügt:

vfs objects = catia
catia:mappings = 0x22:0xa8

Ich habe es unter gestellt [global], aber das kann sich auf die Leistung auswirken. Daher würde ich empfehlen, es unter einen anderen [share]Abschnitt zu stellen.

Emil
quelle
Ich habe es versucht, aber es funktioniert immer noch nicht für mich, wenn ich Dateien mit unzulässigen Windows-Zeichen auf meine Samba-Freigabe kopiere. Es funktioniert nur, um Dinge zu konvertieren, die in Ordnung gewesen wären (wie ein in ein Symbol konvertiertes Leerzeichen), aber nicht für Dinge, die nicht funktionieren würden (wie ':', die in ein anderes Symbol konvertiert wurden). Irgendwelche Hinweise?
pd12
2
Das funktioniert super! Eine Sache zu beachten ist, dass Sie nicht alles demselben Charakter zuordnen können und in Ihrem Beispiel alles, was tatsächlich einen Unterstrich enthält, nicht mehr zugänglich ist. Stattdessen habe ich die folgenden Zuordnungen verwendet : 0x3a:0x7e 0x3f:0x5e, so :wird ~und ?wird ^.
Geoffrey
2

In diesem Link sehen Sie die Mangling-Optionen. Ich denke zuerst sollten Sie die Option deaktivieren:

mangled names

Danach sollten die Namen wohl besser aussehen ...

Um den Doppelpunkt zu ersetzen, verwenden Sie zB diese Zeile:

mangled map =(: _)

Sie können weitere Ersetzungsregeln wie folgt hinzufügen:

mangled map =(: _) (foo bar)

(ersetzt auch das Auftreten von foo durch bar)

Michael K.
quelle
Sie sehen jetzt besser aus. Wenn ich "verstümmelte Namen" auf "nein" setze, werden die Dateinamen in Windows völlig unverändert angezeigt. Dies sieht sicherlich besser aus, führt jedoch dazu, dass Windows-Anwendungen die Dateien nicht öffnen können. Wenn ich versuche, eine Datei tes:t.txtim Editor zu öffnen , wird mir beispielsweise mitgeteilt, dass die Datei [...] \ tes: t.txt nicht gefunden werden kann. Gleiches gilt für andere "illegale" Dateien in ihren jeweiligen Anwendungen.
Alex
habe meine Antwort bearbeitet!
Michael K
mangled mapwurde aus Samba entfernt. Nach allem, was ich nach einigem Hin und Her sagen kann, wurde es vor Jahren entfernt. Dies ist, was meine log.smbdDatei sagt, wenn ich versuche, es zu verwenden:Ignoring unknown parameter "mangled map"
Alex
Sie haben Recht ... veraltet. Es wird nicht funktionieren. Es ist nicht so einfach - der komplizierte Dateiname soll verhindern, dass zwei Dateien mit dem Namen der Dame vorhanden sind. Die Dateien foo: .txt und foo_.txt könnten vorhanden sein, und dann würde Ihre Umbenennung fehlschlagen. Das Beste wäre also, Dateinamenregeln so durchzusetzen, dass nur Namen zulässig sind, die in beiden Dateisystemen zulässig sind.
Michael K