Назад | Перейти на главную страницу

Разрешить перезапись открытых файлов на smb-ресурсе

У нас есть общий ресурс smb в Linux, который используется в качестве сетевого ресурса для компьютеров с Windows. Мы помещаем в него исполняемый файл, чтобы каждый мог его использовать. Проблема в том, что если у кого-то запущено приложение, мы не сможем обновить файл в общей папке.

Странно то, что если вы удалите файл с компьютера с Windows, он, похоже, завершится успешно, но когда вы обновите каталог, он появится снова. Кроме того, если вы попытаетесь скопировать файл, он просто зависнет, не выдает ошибку разрешения.

Я ожидаю, что либо пользователю будет отказано в разрешении на удаление файла, потому что он открыт кем-то другим, либо он позволит вам удалить его. Странно то, что если вы удалите файл, а затем другой пользователь закроет файл, он внезапно исчезнет, ​​что нехорошо.

В идеале был бы способ указать smbd не разрешать никому блокировать файл для определенного общего ресурса. Если кто-то удаляет файл, он должен быть удален, даже если он открыт другим пользователем.

Samba поддерживает только отключение блокировки на сервисном (долевом) уровне а не на уровне отдельного файла. Отключение блокировки создает возможность повреждения данных, и справочная страница предупреждает об этом. (Я никогда этого не делал, поэтому не могу рассказать вам никаких личных анекдотов. Для меня это звучит как плохая идея.)

То, о чем вы просите, не является чем-то, что настоящий SMB-сервер на базе Windows когда-либо сделал бы, поэтому я могу представить, что это создает проблемы, особенно если вы запускаете какие-либо приложения «базы данных», которые используют общий доступ к файлам из этого общего ресурса.

если ты иметь для этого я бы посвятил целую службу этому одному исполняемому файлу, чтобы быть уверенным, что вы не собираетесь создавать повреждение данных с другими файлами.