smbcontrol [Pid] close-share [share]
smbcontrol smbd close-share [share]
Первая команда закрывает все (или одну) открытую шару для конкретного пользователя (PID соответствует конкретному пользователю)
Вторая - закрывает все соединения к конкретному ресурсу.
Например:
smbcontrol smbd close-share documents
Данная команда закроет все соединения к ресурсу documents
smbcontrol 24608 close-share documents
Закроет все соединения к ресурсу documents (убьет процесс 24608). Что такое 24608 - это PID - который привязывается к пользователю.
Соответствие PID - пользователь можно найти выполнив следующую команду:
smbstatus -p
Пример вывода данной команды:
Samba version 3.2.5
PID Username Group Machine
-------------------------------------------------------------------
24608 vasya_pupkin domain users s0072 (::ffff:192.168.10.168)
Таким образом, соединение Васи Пупкина обрабатывает процесс 24608.
К сведению - если открыто несколько документов, то будет открыто несколько процессов для Васи Пупкина (вот такой он важный человек)
Посмотреть какой файл залочен (используется на данный момент) можно набрав команду
smbstatus -L
Например:
smbstatus -L Locked files: Pid Uid DenyMode Access R/W Oplock SharePath Name Time -------------------------------------------------------------------------------------------------- 24608 10070 DENY_NONE 0x81 RDONLY NONE /home/samba/documents/text.txt Wed Jan 11 18:25:22 2012
Здесь мы видим, что Вася редактирует файл text.txt и он был открыт Wed Jan 11 18:25:22 2012.
Для того чтобы получить всю информацию о используемых ресурсах достаточно набрать smbstatus
2. Второй способ заключается, чтобы собственноручно убить процесс smbd (то есть сделать то, что выполняет smbcontrol)
Например:
1. С помощью smbstatus -p находим, соответствие PID - пользователь.
2. С помощью smbstatus -L находим нужный PID (открытый документ или ресурс)
3. Убиваем процесс через kill -9 PID
3. Если известно, какой пользователь (например Вася) заблокировал файл на ресурсе documents, то можно сделать следующее
smbcontrol `smbstatus -p | grep vasya_pupkin | awk {'print$1'}` close-share documents
Это автоматизация действий, описанных в пункте 1. Единственное - закроются все ресурсы, открытые этим пользователем.
4. Если НЕТ никаких lock по smbstatus -L, значит необходимо посмотреть в папке, не осталось ли lock файла. Столкнулся с этим, после того, как после reset не мог открыть файл.
Смотрим, что находится в папке
ls -la /home/samba/documents
Видим
-rwxrwx---+ 1 vasya_pupkin domain users 73 2012-01-12 09:18 .~lock.Отчет.xls#
-rwxrwx---+ 1 vasya_pupkin domain users 29184 2012-01-12 09:18 Отчет.xls
Удаляем файл блокировки
rm /home/samba/documents/.~lock.Отчет.xls#