Большинство наших компьютеров работают под управлением Ubuntu, но два из них имеют двойную загрузку в Windows, и когда у нас есть гости, они, как правило, также работают на компьютерах с Windows. Таким образом, в дополнение к использованию NFS, наш файловый сервер (сервер Ubuntu) также запускает Samba.
И поскольку мы в основном используем Ubuntu, нам нравится использовать его преимущества перед Windows, такие как возможность использовать символы \:*?"<>|
в имени файла. Проблема, конечно, в том, что Windows не принимает эти символы в именах файлов, и поэтому Samba должна перевести имя файла в нечто более приемлемое. Однако то, как он это делает, мне кажется неприятным.
Episode 182 - Exorcist 2: The Heretic.mp4
Например, имя файла превращается в E4Q82R~Y.MP4
. Это ужасная «коррекция». Есть ли способ сделать извращение Самбы более дружелюбным к людям? Можно ли «исправить» это как-то Episode 182 - Exorcist 2_ The Heretic.mp4
вместо этого, где просто подставляются недопустимые символы?
Samba 4.1.4-Debian
.Ответы:
mangled map
теперь устарела и больше не будет работать в новых версиях Samba.Вы можете использовать vfs_catia для решения проблемы. Добавьте следующие строки в smb.conf:
Сопоставление задается с помощью шестнадцатеричных кодов символов с префиксом 0x, разделенных двоеточием. Предоставленное сопоставление переназначит недопустимые символы в двойники юникода, которые вряд ли будут использоваться на каком-либо языке.
:? * <> "| \
∶ ʔ ∗ ❮ ❯ ʺ ∣ ⧹
Код можно поставить под
[global]
или в отдельном[share]
разделе. Размещение его[global]
может повлиять на производительность.Обратите внимание, что любой отображаемый вами символ не может использоваться в именах файлов на сервере, иначе они будут недоступны.
Пример: клиент Windows, обращающийся к файлу с именем
file❮name.txt
на сервере, запроситfile<name.txt
у сервера из-за сопоставления, что приведет к ошибке «файл не найден».источник
0x3a:0x7e 0x3f:0x5e
так:
становится~
и?
становится^
.В этой ссылке вы можете увидеть варианты искажения. Я думаю, что сначала вы должны отключить опцию:
После этого, я думаю, имена должны выглядеть лучше ...
Чтобы заменить двоеточие, например, используйте эту строку:
Вы можете добавить больше правил замены, как это:
(также заменяет любое появление foo на bar)
источник
tes:t.txt
в Блокноте, например, мне говорят «Не удается найти файл [...] \ tes: t.txt». То же самое касается других «нелегальных» файлов в их соответствующих приложениях.mangled map
был удален из Samba. Из того, что я могу сказать после небольшого осмотра, он был удален несколько лет назад. Вот чтоlog.smbd
говорит мой файл, если я пытаюсь его использовать:Ignoring unknown parameter "mangled map"