客观的:我正在寻找一种在 Ubuntu 上创建 Windows 共享的方法,它支持窗户风格8.3 名称修改。
AllYourDrivesAreBelongToUs.txt -> ALLYOU~1.TXT
合理的:我工作的公司有一款基于访问的报价软件,该软件显然在后台使用 8.3 名称修改来访问其文件。我想将这些文件托管在服务器上,但目前它无法在非基于 Windows 的共享上运行。
我读过Samba 版本的名称修改,但这并不等于与引用软件内部明显混乱的硬编码 8.3 名称不匹配。
如果我在 Windows 中映射 Windows 共享驱动器,我可以通过将其截断为 6 个字符并添加 ~1 后跟扩展名来访问长文件,如上所示。目前,这不适用于 Windows 中类似映射的 Samba 驱动器。
问题:有谁知道 samba 设置可以启用窗户风格8.3 文件修改来实现这一点,或者可能知道可以在操作系统级别引入这种别名功能的文件系统包装器?
答案1
[global]
include = /usr/local/samba/lib/smb.conf.%m
这将解析
smb.conf.WfWg
Window for Workgroups 客户端何时附加。现在您可以创建一个/usr/local/samba/lib/smb.conf.WfWg
可能包含以下选项的文件:
[global]
case sensitive = no
default case = upper
preserve case = no
short preserve case = no
mangle case = yes
mangled names= yes
其中有一句注释:
如果您没有使用 Windows for Workgroups 3.1,那么您可能不需要更改这些选项的任何默认设置。
另外需要注意的是:根据旧手册
Samba 仍必须保持与仅以 8.3 格式存储文件的网络客户端(如 Windows for Workgroups)的向后兼容性。如果用户在共享上创建一个名为 antidisestablishmentarianism.txt 的文件,Windows for Workgroups 客户端无法将其与同一目录中名为 antidisease.txt 的另一个文件区分开来。与 Windows 95/98/Me 和 Windows NT/2000/XP 一样,Samba 必须采用一种特殊的方法将长文件名转换为 8.3 文件名,这样相似的文件名就不会引起冲突。这称为名称改编,Samba 处理此问题的方式与 Windows 95 及其后续版本类似,但不完全相同
因此,对此没有 100% 的支持。
答案2
使用shortname
该mount
命令的选项:
shortname=mode
Defines the behavior for creation and display of filenames which fit into 8.3
characters. If a long name for a file exists, it will always be the preferred one
for display. There are four modes:
lower Force the short name to lower case upon display; store a long name when the
short name is not all upper case.
win95 Force the short name to upper case upon display; store a long name when the
short name is not all upper case.
winnt Display the short name as is; store a long name when the short name is not
all lower case or all upper case.
mixed Display the short name as is; store a long name when the short name is not
all upper case. This mode is the default since Linux 2.6.32.
参考:http://manpages.ubuntu.com/manpages/hirsute/man8/mount.8.html