Вопрос или проблема
Иногда в Finder на Mac OSX пользователи не могут увидеть некоторые файлы.
Какие файлы не видны, кажется случайным.
Это не зависит от версии Mac OSX и не зависит от версии SMB. У меня сервер Samba 4.17.12, который является частью Debian 12. Такая же проблема возникает с Debian 11 или с различными версиями Samba.
Это происходит уже около пяти лет.
Это не связано с правами доступа. Файлы в папке могут иметь точно такие же права, иногда почти одинаковые названия (различаются только одним ASCII-символом, например), но в Finder пользователи могут видеть только некоторые из них.
Пользователи сообщали, что эти невидимые файлы иногда видны в Finder совершенно короткое время, менее одной секунды, после чего файлы исчезают.
Это ошибка в Finder?
Иногда помогало удалить все символы с диакритическими знаками из имен файлов и оставить только базовые ASCII.
Иногда помогало внести небольшие изменения в файл (например, добавить пустую строку в документ Word), и он магически появлялся в Finder снова.
Перемещение невидимого файла в другую папку никогда не помогало, он всегда оставался невидимым.
Я пробовал множество изменений в smb.conf без успеха. Это всегда работало с Windows 7, 8, 10, 11 или с smbclients на Linux.
Я пытался удалить .DS_Store и другие ._ метаданные с Mac, это никогда не помогало.
Я пытался перезагрузить Finder на Mac OSX, перезагрузить Mac… это никогда не помогало.
В журнале логов я вижу, что Mac получает доступ ко всем файлам, даже к файлам, невидимым в Finder. Я не нашел никаких соответствующих сообщений в журнале логов.
Mac и Windows используют оба протокола SMB 3.11 и шифрование AES-128-GCM, разницы нет.
# УПРОЩЕННАЯ КОНФИГУРАЦИЯ
[global]
netbios name = xxxx
netbios aliases = xxxx.localnet
server string = xxxx
os level = 99
time server = yes
server signing = mandatory
smb encrypt = mandatory
dos charset = CP852
unix charset = UTF-8
security = user
local master = yes
preferred master = yes
wins support = yes
admin users = administrator
domain master = yes
min protocol = SMB2
idmap config * : backend = tdb
idmap config * : range = 3000-7999
vfs object = recycle
dns proxy = no
mangled names = no
access based share enum = true
[sharename]
comment = share comment
path = /home/someshare
browseable = yes
create mask = 0660
directory mask = 0770
force create mode = 0660
force directory mode = 0770
force group = users
read only = yes
valid users = username1
write list = username1
Есть идеи, что проверить?
Я не знаю, является ли это ошибкой на Mac или Samba. Подозреваю, что это проблема Mac, но у меня нет идеи, как это подтвердить.
У меня была такая же проблема, но с папками, и я заметил, что папки с именами менее 7 символов не видны. Я не знаю, как это решить, потому что это проблема в macOS. Тем не менее, я смог увидеть те же папки в Windows и Linux. Я проверял это, изменяя имена прямо на сервере. Я дал им более длинные имена, и они мгновенно синхронизировались, и я смог увидеть их в Finder.
Мы сталкивались с подобной проблемой. В нашем случае невидимые файлы имеют кое-что общее — они все содержат объединяющие диакритические символы Unicode (U+0301, U+030A, U+030C).
Unicode имеет два способа представления, например, ударной буквы A.
- Единый предварительно составленный символ:
U+00C1 Латинская заглавная буква A с ударением
, UTF-8:110 000 11 10 00 0001
- Комбинирующий символ, объединенный с обычной ASCII A:
U+0041 Латинская заглавная буква A U+0301 Комбинирующий острый акцент
, UTF-8:0 100 0001 110 011 00 10 00 0001
Файлы, использующие только предварительно составленные варианты, видны.
Если ваша оболочка поддерживает знак ANSI-C (например, bash
), вы можете попытаться найти проблемные файлы с помощью find . -regex $'.*[\u300-\u36f].*'
. Конечно, диапазон можно настроить под ваши нужды. Этот охватывает весь блок объединяющих диакритических знаков Unicode.
Ответ или решение
Проблема невидимых файлов на SMB-ресурсах в Mac OSX может быть связана с несколькими факторами, и, судя по всем предоставленным данным, причиной может быть, как в программном обеспечении Samba, так и в специфике работы Finder в Mac OSX. Вот рекомендации и возможные подходы для диагностики и решения проблемы:
Это может быть связано с:
-
Кодировкой и диакритическими знаками:
- Одна из наиболее распространенных причин невидимости файлов – это использование символов с диакритическими знаками в названиях. Как вы уже заметили, файлы с комбинациями диакритических символов (например, U+0301, U+030A) могут быть недоступны в Finder. Попробуйте заменить такие символы на их составные эквиваленты (например, используйте U+00C1 вместо U+0041 плюс U+0301).
-
Краткость имен файлов и папок:
- Некоторые пользователи сообщали, что папки с именами короче 7 символов не отображаются в Finder. Это может быть связано с определенными ограничениями в обработке имен или кодировок. Попробуйте изменить имена папок или файлов, чтобы они были длиннее.
-
Настройки Samba:
- Убедитесь, что у вас правильно настроены конфигурационные параметры Samba. Проверьте и измените следующие настройки в вашем
smb.conf
:mangled names = no
: Убедитесь, что эта строка присутствует, она необходима для работы с именами файлов, содержащими специальные символы.unix charset = UTF-8
: Это очень важно для правильной интерпретации символов, особенно если вы работаете с Unicode.create mask
,directory mask
: Убедитесь, что они установлены правильно, чтобы предотвратить скрытие файлов из-за проблем с правами.
- Убедитесь, что у вас правильно настроены конфигурационные параметры Samba. Проверьте и измените следующие настройки в вашем
-
Выяснение проблем с кэшированием Finder:
- Finder иногда кэширует данные о файлах. Попробуйте сбросить или удалить файл
.DS_Store
, который находится в корневом каталоге общей папки. Отметьте, что это не всегда может решить проблему, но стоит попробовать.
- Finder иногда кэширует данные о файлах. Попробуйте сбросить или удалить файл
-
Тестирование с другим клиентом:
- Поскольку вы упомянули о том, что Windows и Linux корректно отображают все файлы, полезно проверить, как ведет себя другой SMB-клиент в Mac (например,
mount_smbfs
с командной строки) и посмотреть, будут ли файлы видимыми там. Это может помочь исключить проблему с Finder.
- Поскольку вы упомянули о том, что Windows и Linux корректно отображают все файлы, полезно проверить, как ведет себя другой SMB-клиент в Mac (например,
Рекомендации:
- Попробуйте устранить проблема с диакритическими знаками, изменив названия файлов и папок.
- Проверьте конфигурацию Samba на предмет других возможных источников проблемы, включая установленные версии и обновления.
- Если проблема сохраняется, вам может потребоваться обратиться в техподдержку Apple или сообщество Samba для получения дополнительных рекомендаций и возможных патчей.
Заключение:
Сложности с видимостью файлов в Finder на Mac OS при работе с SMB-сетями могут возникать по причинам, связанным как с конфигурацией сервера Samba, так и с особенностями работы операционной системы. Применив предложенные рекомендации, вы сможете лучше диагностировать и, возможно, решить проблему.