当启用区分大小写的名称时,Samba是否能与Windows一起使用?

我希望 Windows客户端可以访问* nix Samba共享.

Samba可以选择启用或禁用文件名区分大小写.通常对于Windows访问,这是禁用的,因此fred == FRED = fReD.

然而,这导致了一个主要问题,AFAICT:

>在unix上,您创建两个文件夹
被称为“RODDY”和“roddy”
>在Windows上,你会看到两个
文件夹,但……
>从Windows中删除/重命名/打开一个时,
你可能会结束
删除/重命名/等等.
你无从知道哪个!

所以,我的问题是,如果区分大小写的标志设置为“ON”,Samba如何在Windows上运行?用户是否仍然可以看到这两个文件夹,并且文件操作是否以一致的方式工作?

解决方法

应该没问题. Windows资源管理器可以正确显示文件名大小写.我在我的smb.conf中使用它来确保我在资源管理器中键入的内容是Samba使用的内容(我将所有这些设置为每个共享):
case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes

我经历了一个快速测试(后端是Samba 3.0.24,前端是WinXP).文件是通过SSH会话在samba服务器上创建的.

$cd /some/samba/share/path
$mkdir test
$cd test

$mkdir test1 TEST1
$touch test1/foo TEST1/bar

在此之后,我浏览了映射驱动器到测试目录.我可以看到“test1”和“TEST1”目录.我打开“test1”并看到“foo”文件.我打开“TEST1”并看到“bar”文件.到现在为止还挺好.

然后我回到测试目录,在Explorer窗口中,将TEST1重命名为TEST2. Windows略有吓坏 – 它重命名了该文件夹,然后将两个文件夹显示为TEST2 – 似乎已重命名这两个文件夹.但是,在SSH终端中,我检查了:

$ls
test1 TEST2

因此,Windows重命名了该文件,Samba正确获取了文件名.当我在资源管理器窗口中按F5刷新文件夹内容时,显示更改为显示正确的文件夹名称.

警告:Linux文件系统允许Windows没有的一些字符(如“:”). Samba has a “name mangling” option将这些文件名转换为Windows会喜欢的内容.例如,如果我在SSH窗口中创建一个名为“FA:23”的文件,Samba将名称变为“F7T4H0~F”,这就是Explorer窗口中显示的内容.

相关文章

Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果