我正在使用 dovecot 和 postfix 运行 Ubuntu Server 12.04.2 LTS 作为 ActiveDirectory 连接的邮件服务器。这部分一切正常。
现在我们要导出邮件存储以进行备份。我安装了 Samba 并将其加入到域中。我的 Samba 共享如下所示:
[全球的] 名称混乱 = 否 [邮件商店] 评论 = 邮件存储 路径 = /srv/vmail 有效用户 = 管理员 强制用户=vmail 强制组=vmail
我现在可以使用管理员帐户(备份应用程序使用的帐户)访问邮件存储。
浏览邮件存储时,我看到文件名包含“:”,这对于 Windows 来说是无效的。Dovecot 使用它来向邮件目录中的文件名添加某种状态信息。我想保留它。但 Windows 无法读取这些文件。
因此,经过一些谷歌搜索后,我发现以下解决方案可以解决此问题:
[邮件商店] vfs 对象 = catia catia:映射 = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6,0x20:0xb1
但是,尽管“:”(0x3a)被映射,但在使用 Windows 资源管理器浏览共享时,它对文件名没有影响。文件名没有改变。
我试过了mangled names = Yes
,但这只会破坏文件名,直到无法使用。它会将所有包含非法字符的文件名转换为 8.3 格式 - 我们不能使用它进行恢复。而且我认为它无论如何都不会对 VFS 设置产生影响。
那么为什么 samba 不使用 VFS 模块呢?我在日志中看不到有关它的错误。并且“locate”显示了安装的相应库 vfs_catia.so。根据文档,samba 版本应该支持此配置:
# smbd -V 版本 3.6.3
答案1
我在 12.04 和 dovecot 上遇到了同样的问题,去 Google 上搜索并找到了解决方案。
在其中找到一个补丁邮政:
下载补丁(作为附件.bin),然后按照以下(旧)说明进行操作: http://www.cmiss.org/cmgui/wiki/BuildingUbuntuPackagesFromSource 从源代码构建 Ubuntu 软件包。您需要“samba”软件包......
(在某处创建一个有 23MB 空间的文件夹...)
apt-get source samba
apt-get build-dep samba
现在您要将下载的补丁应用到source3/modules/vfs_catia.c
samba-3.6.3 文件夹中的文件:。我不知道如何使用“补丁”应用差异,因此手动应用它 - 它只有 3 行。在 samba-3.6.3/ 文件夹中重建 samba 包:
dpkg-buildpackage -rfakeroot -b
我的构建失败了,但是它确实创建了:
samba-3.6.3/source3/bin/catia.so
当复制到
/usr/lib/samba/vfs/catia.so
重新启动 Samba 即可提供正确的 vfs catia 字符映射 :-)
感谢 Günter Kukkukk 提供的补丁!!!