При передаче файлов, содержащих специальные символы, такие как «() ?:» в имени файла через Samba, имена преобразуются в неузнаваемый формат. Например, файл
my_file:_(important).txt
отображается как
M43J1E~0.TXT
Есть ли способ избежать такого поведения (без переименования файлов, очевидно)? Я предполагаю, что кодировка символов не виновата, потому что несколько символов UTF-8, кажется, работают нормально.
Ответы:
Windows не допускает некоторые символы в именах файлов, которые разрешает Unix. Samba «искажает» имена файлов, чтобы они соответствовали ограничениям Windows. Вы можете проверить файл
/etc/smb.conf
или/etc/samba/smb.conf
посмотреть, какие настройки на месте. Чтобы показать эти настройки плюс значения по умолчанию, используйте эту команду:Чтобы сузить это немного:
Смотрите эту страницу для получения дополнительной информации. Кроме того, смотрите примерно на полпути вниз по этой странице (та же информация, что и предыдущая ссылка).
источник
Я использую общую папку на OS-X и Windows. Некоторые файлы имеют ту же проблему, потому что они попадают в следующее: Они используют символы в имени файла, не поддерживаемые Windows.
См .: http://support.microsoft.com/kb/177506
В нем перечислены символы, не поддерживаемые Windows в файлах или каталогах. Я предполагаю, что Samba использует тот же список символов при перечислении файлов и каталогов.
Чуть дальше они написали:
Но я, лично, взял список недопустимых персонажей в качестве справки для ознакомления некоторых клиентов здесь;)
источник
У меня есть ноутбук Apple Macbook Pro с 64-битной OS X 10.11 «El Capitan» под управлением Samba 3, который я установил через Macports .
У меня также есть ноутбук Dell Inspiron с 64-битным GNU / Linux XUbuntu 16.04 «Xenial Xerus» под управлением Samba 3, который я установил через APT.
Обе машины имеют общие сетевые папки и используют Samba для связи по моей WLAN (беспроводной локальной сети).
Обе мои системы на бразильском португальском. Таким образом, я использую специальные символы , такие как ç , á , ã , â , ô , é , ó и так далее.
Когда я использую свой ноутбук Linux для доступа к общим ресурсам OS X Samba, все строки отображаются правильно: слова, такие как maçã , ônus и bênção , отображаются правильно. Файлы и папки с длинными именами также отображаются, и их имена отображаются правильно. Таким образом, сервер Samba, работающий на OS X, уже правильно настроен ...
... но все происходило иначе: если я использовал приложение Finder в OS X для доступа к общим ресурсам Linux Samba, все файлы и папки, содержащие хотя бы один из этих специальных символов, не отображались (они оставались невидимыми для я), и длинные имена файлов и папок были преобразованы в странные короткие имена. Таким образом, что-то не так с сервером Samba, работающим на моей машине с Linux.
=> В моем случае эта проблема была решена путем добавления следующих строк в
[global]
разделsmb.conf
файла на моей машине с Linux:После этого я открыл окно терминала оболочки и перезапустил сервер Linux Samba с помощью этой команды:
... которая может быть заменена этой другой командой (в случае, если приведенная выше команда не работает в вашем дистрибутиве Linux):
После того, как я перезапустил сервер Linux Samba, приложение Finder в OS X наконец-то правильно показало все файлы и папки, которые ранее были скрыты, поскольку их имена имели один или несколько специальных символов. Изуродованные («укороченные») имена также были «неоправданными».
Сноски :
smb.conf
файла/etc/samba/smb.conf
smb.conf
хранит файл в стандартном расположении/etc/samba/
: существует несколько различных способов редактированияsmb.conf
файла. Например, если вы не используете среду рабочего стола (например, ваша система имеет только терминал оболочки, без окон), вы можете установить текстовый редактор Nano , введя такую команду, какsudo apt-get install nano -y
или,sudo dnf -b -y install nano
или что-то еще (в зависимости от того, какой дистрибутив Linux вы используете. используете), а затем запуститьsudo nano /etc/samba/smb.conf
. В случае, если вы используете среду рабочего стола, вы можете установить графический текстовый редактор, такой как GNOME Edit , введя команду, напримерsudo apt-get install gedit -y
илиsudo dnf -b -y install gedit
или что-то еще (в зависимости от того, какой дистрибутив Linux вы используете), и затем запуститьsudo gedit /etc/samba/smb.conf
.display charset
параметр устарел.dos charset
Параметр не поддерживаетUTF-8
аргумент. Таким образом, он должен использовать аргумент по умолчаниюCP850
.mangled names = no
указывает серверу Samba не сокращать длинные имена файлов и папок. Следовательно, поскольку клиент Samba просто копирует пользователю то, что сервер Samba предоставил клиенту, после правильной настройки сервера клиент больше не будет показывать пользователю сокращенное имя.источник
из документации samba вы можете использовать их:
источник