Samba文件locking

我想以下列方式设置我的samba服务器:

  1. 客户端1打开文件A
  2. 客户端2尝试在客户端1打开文件时打开文件A.
  3. 客户端2被授予对文件的只读访问权限

编辑:所有的客户端将是Windows XP或Windows 7的机器。

按照这个页面 ,我想要的是最接近拒绝模式的DENY_DOS,但我似乎无法使该选项生效。

任何帮助将不胜感激。

您不能强制所有程序使用samba提供的文件locking机制。 许多“简单”的应用程序只是打开文件,制作一个本地副本(无论是在内存中还是在本地磁盘上),然后closures原始文件,所以锁只能持续打开和复制操作。 记事本就是这样的一个例子。 而且,这实际上是大多数项目的一个特征,而不是一个缺点。

考虑一下当应用程序崩溃的时候会发生什么情况。 使用文件系统锁的程序应该意识到它及其含义并具有恢复和释放机制。 这就是“简单”应用程序避免文件系统locking的原因。

如果您真的想为所有应用程序使用某种“正在使用”消息,则应使用版本控制系统。 正如serverfault上的其他地方所提到的,这不一定是一个技术问题,更重要的是一个社交问题:你将很难说服非技术人员实际使用它。