Здесь у меня есть сервер Samba (Debian 5.0), который настроен для размещения профилей Windows XP.
Клиенты подключаются к этому серверу и работают со своими профилями непосредственно на общем ресурсе samba (профиль не копируется локально).
Время от времени клиент может не завершить работу должным образом, и поэтому Windows не освобождает файловые блокировки. Глядя на таблицу блокировок samba, мы видим, что многие файлы по-прежнему заблокированы, даже если клиент больше не подключен. В нашем случае это происходит с файлами блокировки, созданными Mozilla Thunderbird и Firefox. Вот пример таблицы блокировки самбы:
# 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, потому что есть веские причины, чтобы включить их.