我希望Windows客户端可以访问* nix Samba共享。
Samba可以select启用或禁用文件名区分大小写。 通常对于Windows访问,这是禁用的,所以fred == FRED = fReD。
然而,这导致了一个主要的问题,AFAICT:
所以,我的问题是,如果区分大小写的标志设置为“ON”,Samba如何在Windows上运行? 用户是否仍然可以看到这两个文件夹,并使文件操作以一致的方式工作?
应该没问题。 Windows资源pipe理器可以正确显示文件名大小写。 我在smb.conf中使用它来确保我在Explorer中input的是Samba使用的内容(我设置了每个共享的所有内容):
case sensitive = True default case = lower preserve case = yes short preserve case = yes
我经历了一个快速testing(后端的Samba 3.0.24,前端的WinXP)。 文件是通过SSH会话在samba服务器上创build的。
$ cd /some/samba/share/path $ mkdir test $ cd test $ mkdir test1 TEST1 $ touch test1/foo TEST1/bar
在此之后,我通过映射的驱动器浏览到testing目录。 我可以看到“test1”和“TEST1”目录。 我打开“test1”,看到“foo”文件。 我打开“TEST1”,看到“酒吧”文件。 到现在为止还挺好。
然后我回到testing目录,并在资源pipe理器窗口中将TEST1重命名为TEST2。 Windows吓了一跳 – 它重命名了文件夹,然后把两个文件夹都显示为TEST2 – 看起来已经重命名了这两个文件夹。 但是在SSHterminal上,我查了一下:
$ ls test1 TEST2
所以Windows重命名了这个文件,并且Samba正确地获得了文件名。 当我在资源pipe理器窗口中按F5来刷新文件夹内容时,显示更改为显示正确的文件夹名称。
警告: Linux文件系统允许一些Windows不支持的字符(比如“:”)。 Samba有一个“名称修改”选项可以将这些文件名转换为Windows所喜欢的内容。 例如,如果我在SSH窗口中创build一个名为“FA:23”的文件,Samba会将名称改为“F7T4H0〜F”,这就是浏览器窗口中显示的内容。
为我工作的选项如下:
preserve case = yes short preserve case = yes