Назад | Перейти на главную страницу

OS X: ошибка Finder -36 при использовании общих ресурсов SMB на сервере Samba, привязанном к AD

Мы планируем развернуть SMB-дома на Debian (5.0.3) для наших клиентов Mac, а не покупать четыре новых сервера Xserve. Наши тестовые серверы собраны и работают нормально. Клиенты Windows работают отлично, но мы столкнулись с проблемой с OS X (10.6.x и 10.5.x). Мы идем по этому пути вместо файловых серверов Windows из-за целого ряда других проблем, которые возникают при этом.

В частности, при монтировании общего ресурса SMB с включенными расширениями unix и удаленным сервером, привязанным к AD, искатель не может сохранять файлы на общем ресурсе, вместо этого прикоснувшись к файлу, а затем вылетев с ошибкой ввода-вывода -36, создание папки в порядке. Копирование файлов в терминале проходит нормально, и проблема, похоже, ограничивается поисковиком.

Проблема возникает (я думаю), когда удаленный UID / GID передается при использовании расширений unix. OS X использует свою собственную winbind idmap (odsam) для определения эффективного UID / GID от пользователей и групп AD, в то время как мы используем избавленную карту на сервере. Следовательно, существует несоответствие прав собственности, которое нашедший предпочитает соблюдать.

Как OS X, кажется, справляется с этим, заключается в использовании удаленных uid и gid на уровне разрешений файла (см. Ниже), а затем установка OS X acl, предоставляющая локальному uid / gid соответствующие разрешения для файла. Я думаю, что поисковик касается файла (что позволяет ядро ​​из-за ACL), а затем проверяет разрешения файловой системы и выходит из строя с ошибкой ввода-вывода.

На клиенте

fc-003353-d:homes2 root# ls -led test/
drwx------+ 2 135978  100513  16384 Feb  3 15:14 test/
 0: user:jfrench allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit
 1: group:ARTS\domain users allow 
 2: group:everyone allow 
 3: group:owner allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit,only_inherit
 4: group:group allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit,only_inherit
 5: group:everyone allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit,only_inherit

Мы безуспешно пробовали следующее:

В настоящее время мы используем обходной путь, который заключается в том, чтобы просто отключить расширения unix, которые заставляют Mac просто монтировать общий ресурс как локальный пользователь с u = rwx perms. Это работает для большинства вещей, но приводит к тому, что некоторые приложения, которые ожидают, что определенные химические завивки ломаются, неявно ломаются. В худшем случае мы продолжим работать таким же образом, но хотели бы, чтобы расширения unix были включены.

С уважением.


Соответствующая конфигурация SMB ниже:

[global]
        workgroup = ARTS
        realm = *snip*
        security = ADS
        password server = *snip*
        unix extensions = yes
        panic action = /usr/share/panic-action %d
        idmap backend = rid:ARTS=100000-10000000
        idmap uid = 100000-10000000
        idmap gid = 100000-10000000
        winbind enum users = Yes
        winbind enum groups = Yes
        veto files = /lost+found/aquota.*/
        hide files = /desktop.ini/$RECYCLE.BIN/.*/AppData/Library/
        ea support = yes
        store dos attributes = yes
        map system = no
        map archive = no
        map readonly = no

Вы можете попробовать: расширения unix = нет

Другая статья Apple TS1564 ссылается на более раннюю проблему в 10.3 / 10.4, приводящую к ошибке -36 с общими ресурсами SMB.

По-видимому, это связано с открытым текстом и шифрованной аутентификацией ... что еще нужно учитывать?

Ура, М.

Вы можете изучить настройки именованных потоков. У Apple есть статья в теме. «Mac OS X v10.5, v10.6: об именованных потоках на SMB-подключенных NAS, Mac OS X и серверах Windows; могут появляться предупреждения« -36 »или« -50 »»

Проблема, вероятно, связана с ошибками Finder в том, как он обрабатывает вилки ресурсов как расширенные атрибуты.

Я бы попробовал:

ea support = нет

Это может привести к получению файлов ._, но пока Apple не позаботится о том, чтобы их файловый менеджер стал совместимым, вам придется иметь дело с этим.

Изменить: я только что заметил, что вы действительно пытались их отключить. Вот где я столкнулся со всеми проблемами Finder. После небольшого поиска похоже, что отключение расширений unix - единственное исправление, о котором сообщалось.

Просто чтобы уточнить: ваш обходной путь - установить unix extensions = no в /etc/smb.conf на КЛИЕНТЕ, верно?

Потому что я пробовал это, но все равно получаю ошибку 36.

У меня сама была эта проблема, и я нашел гораздо более простое решение на http://osxdaily.com/2015/02/21/fix-error-code-36-finder-mac-os-x/.

На вашем Mac откройте терминал и запустите dot_clean напротив папки назначения вашего загружаемого файла.

Например. Я скачиваю все свои файлы в ~/Downloads папку, поэтому я запускаю:

dot_clean ~/Downloads

После этого повторная попытка загрузки прошла успешно.