samba как отобразить файлы с двоеточием в их именах?

13

Samba неправильно отображает файлы, если они содержат двоеточие.

Исходное имя файла: test:file.txt

Отображаемое имя под Windows: T8S6CH~R.TXT

Как я могу это исправить?

Информация:

Linux: SLES 11 SP 3

Samba: Version 3.6.3-0.33.39.1-3128-SUSE-CODE11-x86_64

Петр ВАРГА
источник

Ответы:

13

Проблема с 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.

roaima
источник
1
Смотрите ⁚ ∶ ׃ ꞉ для других символов, которые похожи на двоеточие ASCII.
Стефан
@ StéphaneChazelas, пожалуйста, не стесняйтесь представить это как предложение команде разработчиков Samba. Я просто взял их предложенный список.
Ройма
Когда я делю папку с Nautilus, она, очевидно, не отображается в /etc/samba/smb.conf. Как я могу применить ваше решение в этом сценарии?
Ханс Дерагон
Это прекрасно, спасибо.
Будет
5

По какой-то причине Samba начала искажать имена файлов, содержащие двоеточие. До сих пор я не мог найти ничего относительно этого поведения в Интернете.

Решение очень простое. Добавление mangled names = noв [global]раздел /etc/samba/smb.confи перезапуск Samba устранило проблему.

Петр ВАРГА
источник
Приятно это знать! +1
Лучано Андресс Мартини
4
Это решение является неполным. Файлы с недопустимыми символами Windows, такими как «:», не отображаются. Смотрите решение Роаймы.
Ханс Дерагон
1

Специальный знак вопроса? \ <> * и т.д. недопустимы в именах файлов Windows, и я всегда избегаю их использования.

Тем не менее у меня нет проблем с этими персонажами, использующими мою macOS Catalina для доступа к моим настройкам FreeNAS-11.3-U1 и SMB / Samba. Я не уверен, почему этот параметр не установлен по умолчанию, но вам придется выполнить следующие шаги, чтобы он работал безупречно с MacOS.

В веб-интерфейсе FreeNAS выберите «Общий доступ»> «SMB»> «Правка».

  1. Выберите «расширенный режим» и отметьте catia и fruit в «объектах VFS»
  2. Установите вспомогательный параметр на fruit:encoding = native

Затем перейдите в раздел Сервисы и перезапустите SMB.

trommegutten
источник