当文件包含冒号时,Samba 无法正确显示文件。
原文件名: test:file.txt
Windows 下的显示名称: T8S6CH~R.TXT
我该如何解决?
信息:
Linux: SLES 11 SP 3
桑巴: Version 3.6.3-0.33.39.1-3128-SUSE-CODE11-x86_64
roa*_*ima 17
Sambamangled names
选项的问题在于这两种设置都不理想。您可以拥有未被修改但无法以任何方式访问的名称,因为它们包含非法字符,或者名称被修改为 DOS 8.3 格式并因此接近不可读。
幸运的是(现在)有一个VFS 模块被调用catia
,它将提供自定义字符映射。特别是可以映射出 Windows 文件名中被认为是非法的字符。
在该[global]
部分放置这些行:
# Mapping illegal characters, where enabled with "vfs objects = catia"
mangled names = no
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
Run Code Online (Sandbox Code Playgroud)
在每个[share_name]
部分添加下一行(如果您已经有vfs objects
一行,只需附加catia
到列表中):
vfs objects = catia
Run Code Online (Sandbox Code Playgroud)
像往常一样,如果它要应用于您的所有共享,则可以放置此基于共享的设置[global]
而不是每个单独的共享定义。
在我的基于 Debian 的系统上,这个 VFS 对象模块是作为标准包的一部分安装的。
此设置映射的文件名的一个示例是2017-12-24 12:23.txt
. 使用mangled names = yes
此文件显示为2BB0Y9~4.TXT
. 使用vfs objects = catia
而不是具有显示该文件名2017-12-24 12÷23.txt
。它并不完美,但已经很不错了。最重要的是,我可以从 Windows 应用程序访问它。
出于某种原因,Samba 开始修改包含冒号的文件名。到目前为止,我在互联网上找不到关于这种行为的任何信息。
解决方法很简单。mangled names = no
在该[global]
部分中添加/etc/samba/smb.conf
并重新启动 Samba 修复了该问题。
归档时间: |
|
查看次数: |
6072 次 |
最近记录: |