Проблема с mangled namesвыбором Samba заключается в том, что ни одна из настроек не является идеальной. У вас могут быть имена, которые не искажены, но к ним нельзя получить доступ каким-либо образом, поскольку они содержат недопустимые символы, или имена, которые искажены в формате DOS 8.3 и, следовательно, близки к нечитаемым.
К счастью, есть (сейчас) модуль VFS,catia который будет обеспечивать пользовательские сопоставления символов. В частности, можно отобразить символы, которые считаются недопустимыми в именах файлов Windows.
В [global]разделе разместите эти строки:
# Mapping illegal characters, where enabled with "vfs objects = catia"
mangled names = no
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
В каждом [share_name]разделе добавьте следующую строку (если у вас уже есть vfs objectsстрока, просто добавьте catiaв список):
vfs objects = catia
В моей системе на основе Debian этот объектный модуль VFS был установлен как часть стандартного пакета.
Одним из примеров имени файла, которое сопоставляется с этим параметром, является 2017-12-24 12:23.txt. Используя mangled names = yesэтот файл отображается как 2BB0Y9~4.TXT. Использование vfs objects = catiaвместо этого имеет это имя файла отображается как 2017-12-24 12÷23.txt. Это не идеально, но довольно хорошо. И самое главное, я могу получить к нему доступ из приложений Windows.