Wenn Sie Dateien mit Sonderzeichen wie "() ?:" im Dateinamen über Samba bereitstellen, werden die Namen in ein nicht wiedererkennbares Format umgewandelt. Zum Beispiel eine Datei
my_file:_(important).txt
wird angezeigt als
M43J1E~0.TXT
Gibt es eine Möglichkeit, dieses Verhalten zu vermeiden (ohne die Dateien offensichtlich umzubenennen)? Ich gehe davon aus, dass die Zeichenkodierung nicht schuld ist, da mehrere UTF-8-Zeichen gut zu funktionieren scheinen.
Antworten:
Windows lässt einige Zeichen in Dateinamen nicht zu, die Unix zulässt. Samba "zerfleischt" die Dateinamen, damit sie den Windows-Beschränkungen entsprechen. Sie können die Datei überprüfen
/etc/smb.conf
oder/etc/samba/smb.conf
sehen, welche Einstellungen vorhanden sind. Verwenden Sie diesen Befehl, um diese Einstellungen und die Standardeinstellungen anzuzeigen:Um das etwas einzugrenzen:
Weitere Informationen finden Sie auf dieser Seite . Siehe auch ungefähr auf halber Strecke auf dieser Seite (die gleichen Informationen wie beim vorherigen Link).
quelle
Ich verwende einen freigegebenen Ordner unter OS-X und Windows. Einige Dateien haben das gleiche Problem, da sie in die folgenden Kategorien fallen: Sie verwenden Zeichen im Dateinamen, die von Windows nicht unterstützt werden.
Siehe: http://support.microsoft.com/kb/177506
Es listet die von Windows nicht unterstützten Zeichen in Dateien oder Verzeichnissen auf. Ich vermute, dass Samba beim Auflisten von Dateien und Verzeichnissen die gleiche Liste von Zeichen verwendet.
Etwas weiter unten schrieben sie:
Aber ich persönlich habe die Auflistung der nicht erlaubten Zeichen als Referenz genommen, um einige Kunden hier zu informieren;)
quelle
Ich besitze einen Apple Macbook Pro-Laptop mit 64-Bit OS X 10.11 "El Capitan", auf dem Samba 3 ausgeführt wird, das ich über Macports installiert habe .
Ich besitze auch einen Dell Inspiron-Laptop mit 64-Bit-GNU / Linux XUbuntu 16.04 "Xenial Xerus" unter Samba 3, das ich über APT installiert habe.
Beide Computer verfügen über freigegebene Netzwerkordner und verwenden Samba, um über mein WLAN (Wireless LAN) zu kommunizieren.
Beide Systeme sind in brasilianischem Portugiesisch. So verwende ich Sonderzeichen wie ç , á , ã , â , ô , é , ó et cetera.
Wenn ich mit meinem Linux-Laptop auf meine OS X-Samba-Freigaben zugreife, werden alle Zeichenfolgen korrekt angezeigt: Wörter wie maçã , ônus und bênção werden korrekt angezeigt. Dateien und Ordner mit langen Namen werden ebenfalls angezeigt und ihre Namen werden korrekt angezeigt. Somit ist der unter OS X laufende Samba-Server bereits richtig konfiguriert ...
... aber es lief nicht anders herum: Wenn ich die Finder-App unter OS X für den Zugriff auf meine Linux-Samba-Freigaben verwendete, wurden alle Dateien und Ordner mit mindestens einem dieser Sonderzeichen nicht angezeigt (sie blieben für Windows unsichtbar) Ich), und die langen Namen von Dateien und Ordnern wurden in seltsame Kurznamen umgewandelt. Auf meinem Linux-Rechner lief also ein Problem mit dem Samba-Server.
=> In meinem Fall löste das Problem das Hinzufügen der folgenden Zeilen zum
[global]
Abschnitt in dersmb.conf
Datei auf meinem Linux-Computer:Danach öffnete ich ein Shell-Terminal-Fenster und startete den Linux-Samba-Server mit folgendem Befehl neu:
... der durch diesen anderen Befehl ersetzt werden kann (falls der obige Befehl auf Ihrer Linux-Distribution nicht funktioniert):
Nachdem ich den Linux-Samba-Server neu gestartet hatte, zeigte die Finder-App unter OS X endlich alle Dateien und Ordner korrekt an, die zuvor aufgrund ihrer Namen mit einem oder mehreren Sonderzeichen verborgen waren. Die verstümmelten ("verkürzten") Namen wurden ebenfalls "entmischt".
Fußnoten :
smb.conf
Datei/etc/samba/smb.conf
smb.conf
Datei am Standardspeicherort gespeichert/etc/samba/
: Es gibt verschiedene Möglichkeiten, diesmb.conf
Datei zu bearbeiten . Wenn Sie beispielsweise keine Desktop-Umgebung verwenden (z. B. Ihr System verfügt nur über ein Shell-Terminal, kein Fenster), können Sie den Nano- Texteditor installieren , indem Sie einen Befehl wiesudo apt-get install nano -y
odersudo dnf -b -y install nano
oder etwas anderes eingeben (je nachdem, welche Linux-Distribution Sie verwenden) verwenden) und dann ausführensudo nano /etc/samba/smb.conf
. Wenn Sie eine Desktop-Umgebung verwenden, können Sie einen grafischen Texteditor wie GNOME Edit installieren , indem Sie einen Befehl wiesudo apt-get install gedit -y
odersudo dnf -b -y install gedit
oder etwas anderes eingeben (je nachdem, welche Linux-Distribution Sie verwenden) und dann ausführensudo gedit /etc/samba/smb.conf
.display charset
Parameter veraltet.dos charset
Parameter unterstützt dasUTF-8
Argument nicht. Daher muss das Standardargument verwendet werdenCP850
.mangled names = no
Weist den Samba-Server an, lange Namen von Dateien und Ordnern nicht zu verkürzen. Da der Samba-Client nur dem Benutzer repliziert, was der Samba-Server dem Client zur Verfügung gestellt hat, zeigt der Client dem Benutzer nach ordnungsgemäßer Konfiguration keinen verkürzten Namen mehr an.quelle
Aus der Samba-Dokumentation können Sie Folgendes verwenden:
quelle