Смонтируйте unix samba 4 share to osx client без искаженных имен файлов
У меня есть сервер 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
2 ответа
Это / было отсутствующей функцией в клиенте samba. В самбе 4.2 есть vfs_fruit
Модуль для преодоления этих ограничений - см. ветку списка рассылки https://lists.samba.org/archive/samba/2014-December/187545.html December/ 187545.html для получения более подробной информации.
С vfs_fruit
Модуль, который вы можете сделать:
vfs objects = catia fruit streams_xattr
fruit:encoding = native
Кроме того, samba прозрачно отображает имена файлов для клиентов osx (даже если при этом файлы заканчиваются пробелом, возникают некоторые проблемы).