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

Файловая система Linux, которая записывает все файлы, даже удаленные

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

Ага ... странное требование знаю!

Есть ли файловая система или настройки в NFS, чтобы казалось, что пользователь удаляет файлы, пока они действительно хранятся? Мне сказали, что это ревизионная файловая система, но я не смог найти много ссылок на нее.

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

Использование CentOS 5.8. Пользователь не может удалить свои файлы, потому что они «мошенники» и им больше не доверяют (это сложно, и это все, что я знаю).

Управление версиями файловой системы

НИЛЬФЫ делает автоматические и непрерывные снимки, поэтому может отслеживать измененные и удаленные файлы. Версия 2 (также известная как NILFS2) также имеет аккуратный механизм сборки мусора чтобы файловая система не переполнилась слишком большим количеством снимков! Я бы определенно посмотрел на это решение!

Поиск в Википедии тоже дал ext3cow который выполняет копирование при записи на уровне блоков и может отслеживать версии файлов.

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

Другой подход

Можно просто использовать систему инкрементного резервного копирования, своего рода rsync, которая хранит общий ресурс NFS в разных местах, но также может восстанавливать удаленные файлы.

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

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

Возможно, использование обоих подходов могло бы оказаться более безопасным.

Я не знаю насчет NFS, но вы определенно можете сделать это с помощью CIFS. Есть модуль самбы под названием vfs_recycle. Когда он включен, каждый удаленный файл фактически перемещается в каталог, который вы указали в config. Вы также можете включить veto files директиву и укажите каталог корзины, чтобы пользователи не могли ее видеть.

Всегда есть возможность ZFS в Linux и делать периодические снимки экспорта файловой системы. Пример сервис автоматического создания снимков для варианта ZFS для Linux. Снимки файловой системы ZFS по умолчанию отображаются в подкаталоге общей файловой системы (невидимый) .zfs/snapshot/ tree прозрачным для пользователя образом.

Если вы используете файловую систему ext *, вы можете использовать атрибуты для получения желаемого поведения. Вы можете использовать неизменяемый флаг (если вы включите его, с этим файлом нельзя будет выполнять никаких действий) или флаг «u» (когда файл удаляется, его содержимое сохраняется. Это позволяет пользователю запросить его восстановление.)

http://docs.petervg.nl/index.php/component/content/article/41-linux/59-ext3-file-attributes