我想按照以下方式设置我的 samba 服务器:
- 客户端1打开文件A
- 客户端 2 尝试打开文件 A,而客户端 1 已打开该文件
- 客户端 2 被授予对文件的只读访问权限
编辑:所有客户端都将是 Windows XP 或 Windows 7 机器。
按照这一页,我想要的最接近 DENY_DOS 的拒绝模式,但我似乎无法使该选项生效。
任何帮助将不胜感激。
答案1
您无法强制所有程序都使用 samba 提供的文件锁定机制。许多“简单”应用程序只是打开文件,制作本地副本(在内存中或本地磁盘上),然后关闭原始文件,因此锁定仅在打开和复制操作期间持续。记事本就是一个例子。而且,这实际上是大多数程序的一个功能,而不是缺点。
想想如果应用程序在锁定仍存在的情况下崩溃会发生什么。使用文件系统锁定的程序应该意识到这一点及其影响,并拥有恢复和释放机制。这就是为什么“简单”应用程序避免使用文件系统锁定。
如果您确实想对所有应用程序使用某种“正在使用”消息,则应使用版本控制系统。正如 serverfault 其他地方提到的那样,这不一定是技术问题,而更多的是社会问题:您很难说服非技术人员真正使用它。