Samba: предотвращение случайного рекурсивного массового удаления файлов

Samba: предотвращение случайного рекурсивного массового удаления файлов

Я предоставляю общий доступ к некоторым папкам в Ubuntu 18.04, чтобы к ним можно было получить доступ на чтение и запись с клиентов Windows.

Структура файла:

myshare/
  dir1/
     somefile1.txt
     somefile2.txt
  dir2/
  dir3/

Клиент Samba имеет разрешения на чтение/запись/создание/удаление файлов внутри dir1.

Я попал под непреднамеренную аварию пользователя: Пользователь нажалудалитьна dir1, и все файлы внутри dir1были удалены.

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

Итог: на стороне сервера у меня нет возможности отличить разрешенное удаление одного файла от нежелательного, полного, рекурсивного удаления папки.

Я что-то пропустил?

Я думал о двух трюках, но не смог найти ни одного решения:

  1. Могу ли я поместить файл внутрь dir1, который заставит клиент samba прервать операцию пакетного удаления? У меня был некоторый успех с размещениемне удаляемый файлв dir1, но успех кажется случайным.

  2. Я заметил, что если я делаю dir1корнем общего ресурса, то вышеуказанный риск исчезает. Если пользователь затем нажимает «удалить», dir1операция отклоняется, что идеально. Но наличие dir1, dir2, dir3и т. д. в качестве отдельных общих ресурсов плохо масштабируется. Я хочу, чтобы у пользователя была только одна точка доступа /myshare. Но есть ли способ заставить dir1вести себя как общий ресурс (чтобы клиент мог просматривать его, но не удалять) и при этом все еще отображаться внутри /myshare?

Было бы приемлемо решение, работающее только для клиентов проводника Windows.

Связанный контент