iPhone等iOS设备向samba服务器写入文件时遇到“未能完成该操作,属性错误”的提示

如果你在Linux服务器上搭建了samba服务用于局域网共享文件,那么当你尝试使用iPhone等iOS设备自带的“文件”app向服务器写入文件时,就可能会遇到“未能完成该操作。找不到属性。”的提示。

这是因为,当年微软为了让mac也能访问samba,专门适配了mac的文件流格式。这个也不是什么mac特立独行的操作,其它文件系统包括微软自己的NTFS也有类似的机制。其实就是给一个文件分了好几个流,(平时我们只会用到一个流,就是正常向文件里写内容的那个流),除了正常的文件内容能往里写,还可以写入文件的图标之类的东西。

这个东西就叫ADS。据说,Edge浏览器也会向其它的文件流里写数据。如果你使用Edge浏览器下载文件,保存地址是一个samba目录,而且这个samba目录没有配置ADS;那么也是会报错的。

如何在Linux的samba服务上配置ADS呢?这样搞:

修改smb.conf,在global段添加如下配置:

[global]
   vfs objects = catia fruit streams_xattr

然后重启samba服务:

sudo systemctl restart smbd

就OK了。

来源:

本文由博客园用户madbunny创作,谢绝转载!

posted @ 2024-11-12 16:52  madbunny  阅读(377)  评论(0)    收藏  举报