Aqui eu tenho um servidor Samba (Debian 5.0) que está configurado para hospedar perfis do Windows XP.
Os clientes se conectam a este servidor e trabalham em seus perfis diretamente no compartilhamento samba (o perfil não é copiado localmente).
De vez em quando, um cliente pode não desligar corretamente e, portanto, o Windows não libera os bloqueios de arquivo. Ao olhar para a tabela de bloqueio do samba, podemos ver que muitos arquivos ainda estão bloqueados, mesmo que o cliente não esteja mais conectado. No nosso caso, isso parece ocorrer com os arquivos de bloqueio criados pelo Mozilla Thunderbird e Firefox. Aqui está um exemplo da tabela de bloqueio do 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
Podemos ver que os arquivos foram abertos pelo Windows e impuseram um bloqueio DENY_ALL.
Agora, quando um cliente se reconecta a esse compartilhamento e tenta abrir esses arquivos, o samba diz que está bloqueado e nega acesso.
Existe alguma maneira de contornar essa situação ou estou perdendo alguma coisa?
Edit: Nós gostaríamos de evitar a desativação bloqueios de arquivos no servidor samba, porque não são boas razões para ter aqueles habilitados.