Назад | Перейти на главную страницу

Подключите общий ресурс unix samba 4 к клиенту osx без искаженных имен файлов

У меня есть unix-сервер (arch linux) с samba 4.1.12. В общем ресурсе есть файлы в кодировке utf-8 nfc (стандартный utf-8).

Когда я монтирую этот общий ресурс samba в клиент osx (10.9.5), файлы со специальными именами, например File with "quotes" отображаются искаженными (C7XSWH~V) на клиенте osx.

Когда я создаю файл со специальными символами на клиенте osx внутри общего ресурса, он правильно отображается в osx, но на сервере unix он отображается со странным символом, например File with quotes.

Я думаю, это потому, что osx ожидает, что имена файлов будут в utf-8 nfd форма, но файлы являются серверными как utf-8 nfc.

В основном я хочу иметь рабочую общую папку samba, где пользователи из клиентов osx и unix могут получать доступ и хранить файлы, а в именах файлов должны быть разрешены специальные символы. Есть ли способ сделать эту кроссплатформенную?

Как я могу сказать osx, что нужно просто использовать кодировку utf-8 nfc для общего ресурса samba? Как это сделать?

Я уже пробовал такие вещи, как явная установка кодировки в smb.conf на сервере unix, но безуспешно:

unix charset = utf-8
dos charset = utf-8

# --> error in log:
# invalid DOS charset: 'dos charset' must not be UTF8, using (default value) CP850 instead

# or

dos charset = utf-8-mac

# --> error in log:
# dos charset 'utf-8-mac' unavailable - using ASCII

Это отсутствующая функция в клиенте samba. В самбе 4.2 есть vfs_fruit модуль для преодоления этих ограничений - см. ветку списка рассылки https://lists.samba.org/archive/samba/2014-De December/187545.html Больше подробностей.

С vfs_fruit модуль вы можете сделать:

vfs objects = catia fruit streams_xattr
fruit:encoding = native

И samba прозрачно отображает имена файлов для клиентов osx (даже если у нее все еще есть проблемы, например, если файлы заканчиваются пробелом).

Вы пробовали добавить mangled names = no к smb.conf?