当启用区分大小写的名称时,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常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...