在这里,我有一个配置为承载Windows XP配置文件的Samba服务器(Debian 5.0)。
客户端连接到该服务器,并直接在samba共享上处理其配置文件(配置文件未本地复制)。
有时,客户端可能无法正确关闭,因此Windows无法释放文件锁。查看samba锁定表时,我们可以看到即使客户端不再连接,许多文件仍被锁定。在我们的情况下,这似乎发生在Mozilla Thunderbird和Firefox创建的锁定文件中。这是samba锁定表的示例:
# smbstatus -L | grep DENY_ALL | head -n5
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
15494 10345 DENY_ALL 0x3019f RDWR EXCLUSIVE+BATCH /home/CORP/user1 app.profile/user1.thunderbird/parent.lock Mon Nov 22 07:12:45 2010
18040 10454 DENY_ALL 0x3019f RDWR EXCLUSIVE+BATCH /home/CORP/user2 app.profile/user2.thunderbird/parent.lock Mon Nov 22 11:20:45 2010
26466 10056 DENY_ALL 0x3019f RDWR EXCLUSIVE+BATCH /home/CORP/user3 app.profile/user3.firefox/parent.lock Mon Nov 22 08:48:23 2010
我们可以看到文件是由Windows打开的,并施加了DENY_ALL锁。
现在,当客户端重新连接到此共享并尝试打开这些文件时,samba会说它们已被锁定并拒绝访问。
有什么办法可以解决这种情况,或者我缺少什么?
编辑:我们想避免禁用Samba服务器上的文件锁定,因为那里是有那些能很好的理由。