Finder Mac OSX не отображает некоторые файлы на SMB-общем доступе.

Вопрос или проблема

Иногда в 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.

  1. Единый предварительно составленный символ: U+00C1 Латинская заглавная буква A с ударением, UTF-8: 110 000 11 10 00 0001
  2. Комбинирующий символ, объединенный с обычной 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. Вот рекомендации и возможные подходы для диагностики и решения проблемы:

Это может быть связано с:

  1. Кодировкой и диакритическими знаками:

    • Одна из наиболее распространенных причин невидимости файлов – это использование символов с диакритическими знаками в названиях. Как вы уже заметили, файлы с комбинациями диакритических символов (например, U+0301, U+030A) могут быть недоступны в Finder. Попробуйте заменить такие символы на их составные эквиваленты (например, используйте U+00C1 вместо U+0041 плюс U+0301).
  2. Краткость имен файлов и папок:

    • Некоторые пользователи сообщали, что папки с именами короче 7 символов не отображаются в Finder. Это может быть связано с определенными ограничениями в обработке имен или кодировок. Попробуйте изменить имена папок или файлов, чтобы они были длиннее.
  3. Настройки Samba:

    • Убедитесь, что у вас правильно настроены конфигурационные параметры Samba. Проверьте и измените следующие настройки в вашем smb.conf:
      • mangled names = no: Убедитесь, что эта строка присутствует, она необходима для работы с именами файлов, содержащими специальные символы.
      • unix charset = UTF-8: Это очень важно для правильной интерпретации символов, особенно если вы работаете с Unicode.
      • create mask, directory mask: Убедитесь, что они установлены правильно, чтобы предотвратить скрытие файлов из-за проблем с правами.
  4. Выяснение проблем с кэшированием Finder:

    • Finder иногда кэширует данные о файлах. Попробуйте сбросить или удалить файл .DS_Store, который находится в корневом каталоге общей папки. Отметьте, что это не всегда может решить проблему, но стоит попробовать.
  5. Тестирование с другим клиентом:

    • Поскольку вы упомянули о том, что Windows и Linux корректно отображают все файлы, полезно проверить, как ведет себя другой SMB-клиент в Mac (например, mount_smbfs с командной строки) и посмотреть, будут ли файлы видимыми там. Это может помочь исключить проблему с Finder.

Рекомендации:

  • Попробуйте устранить проблема с диакритическими знаками, изменив названия файлов и папок.
  • Проверьте конфигурацию Samba на предмет других возможных источников проблемы, включая установленные версии и обновления.
  • Если проблема сохраняется, вам может потребоваться обратиться в техподдержку Apple или сообщество Samba для получения дополнительных рекомендаций и возможных патчей.

Заключение:

Сложности с видимостью файлов в Finder на Mac OS при работе с SMB-сетями могут возникать по причинам, связанным как с конфигурацией сервера Samba, так и с особенностями работы операционной системы. Применив предложенные рекомендации, вы сможете лучше диагностировать и, возможно, решить проблему.

Оцените материал
Добавить комментарий

Капча загружается...