Остановить удаление файла при монтировании NFS

У меня есть файлы, хранящиеся в NFS-монтировании, которые я хочу предотвратить, чтобы удалить. Вариант использования: у меня есть демо-версия веб-приложения, которое использует одни и те же изображения в каждой демонстрации - когда кто-то удаляет запись, он удаляет связанные изображения, файлы и т. Д., Но я не хочу, чтобы эти изображения удалялись по мере их использования всеми. Они должны иметь возможность удалять другие изображения и т. Д., Но только не те, которые я выбираю.

Ранее они были на локальном диске и я использовал:

chattr +i file

который работал удовольствие - я перенес все ifles в NFS, и когда я попробую это, я теперь получаю:

chattr: Inappropriate ioctl for device while reading flags on file

На данный момент у меня есть cron, который запускается каждые 15 минут и копирует эти файлы из альтернативного каталога обратно в правильное место, которое работает, но это не идеально, особенно если учесть, что люди, подписавшиеся на демонстрацию, могут увидеть пропущенные изображения за это время окно, которое выглядит мусором. Я мог бы переписать логику приложения, если бы меня толкали, но я надеялся на что-то на уровне файловой системы, которое могло бы работать вместо этого.

В этом ответе ( https://unix.stackexchange.com/a/90369/86224) предлагалось включить ACL, но я не могу этого сделать и не могу получить команду chmod, чтобы остановить удаление файлов:

-rw-r--r-- 1 owner owner 24751 Dec 23 16:30 file.ext

Есть ли в NFS альтернативный способ остановить удаление файла?

2 ответа

Я думаю, что это должно работать.

  1. Сделайте так, чтобы защищаемые файлы принадлежали пользователю root:root. например chown root:root
  2. Убедитесь, что root_squash включен на монтировании nfs.
  3. chmod 0644 файлы.
  4. Если вам это удастся, выполните команду chown root:root для каталога и chmod 755 для каталога. Это единственный способ гарантировать, что он не может быть удален кем-либо, кроме root.

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

Я знаю, что вы сказали, что не можете включить их, но я настоятельно рекомендую вам посмотреть ACL. ACL превосходно подходят для управления разрешениями в сложных средах.

В /etc/exports использоватьro возможность экспортировать общий ресурс только для чтения.

/path/to/nfs webserver.com(ro)

Если у вас есть выборочные файлы, которые вы хотите защитить только для чтения, я бы посоветовал не спускаться по кроличьей норе изменений ACL и разрешений, а просто сделать монтирование статических ресурсов и экспортировать их как (ro),

Другие вопросы по тегам