Intereting Posts
Как изменить задержку, возникшую после ввода неправильного пароля? Пока команда не найдена и синтаксическая ошибка рядом с неожиданным токеном Помощь с предоставлением групповых разрешений другим файлам пользователя Как установить программное обеспечение RAID-5, созданное Windows под Linux? Как устранить неприятности при запуске графического интерфейса с терминала? Что делает эта командная строка (`echo $ 1 | xargs -n 1 basename | cut -d '.' -f1`)? Принять любой секретный ключ для аутентификации Можно ли создать zip-файл без использования zip-бинарного файла? Эффективный способ загрузки двоичных файлов с сервера Как найти конкретный образ RPi? Как обнаружить сбой сетевого соединения? Конкретное разрешение каталога для одного пользователя, использующего sftp Ошибка Proxychains DNS, но не с помощью ping Не применяется ли umask к файлам? Как я могу сделать правило udev с использованием серийного номера устройства «sibling» (для устройств USB без уникальных серий)?

WORM или файловая система архива?

Я пытаюсь придумать метод хранения файлов изображений в долгосрочной перспективе таким образом, чтобы к ним можно было получить доступ, но не изменить (Write Once Read Many)

  • Файлы будут размером ~ 1 МБ, я не ожидаю, что на протяжении жизни будет больше 1000. Я могу выбрать для записи партии на CD / DVD для длительного хранения в автономном режиме
  • Я бы хотел, чтобы они были в формате, где я могу читать файл в любое время, но не изменять или удалять его
  • новые файлы могут быть добавлены в любое время автоматически

Я просмотрел несколько разных вариантов, и я еще не нашел ничего, что работает. Самое близкое, что я нашел, это использование chattr для установки неизменяемого бита на ext4. Недостатком этого является то, что только root может установить бит, даже если у меня есть файл. Я бы предпочел не пойти по этому маршруту, если это возможно.

Почему бы просто не подключить файловую систему только к чтению?

Если писать недостаточно, вы можете перемонтировать его как чтение / запись при сохранении изображений, а затем повторно установить его как прочитанное только потом.

Если вы установили эти ACL по умолчанию в каталог:

 setfacl -dm u::rx,g::rx,o::rx the-directory 

Тогда создаваемые в нем файлы и каталоги будут доступны только для чтения (для всех).

Обратите внимание, однако, что это не мешает пользователям изменять разрешения файлов, которые они создают впоследствии.

Также обратите внимание, что он переопределяет umask (он сделает файлы доступными для чтения, даже если umask в противном случае ограничил бы доступ к чтению).

Вы можете использовать управление версиями, возможно, с сервером VCS на удаленном компьютере. Вы можете настроить несколько пользователей (один с правами на запись, один без) или просто полагаться на возможность отменить изменения, если вы делаете ошибки в своей местной проверке.

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

Конечно, вам все равно необходимо поддерживать целостность файловой системы VCS.

Я просто измерил свой собственный локальный SVN-репо для двоичных файлов: он имеет 21 000 файлов (около 98% двоичных файлов), в среднем 1,2 Мбайт каждый. Свежие выписки по WiFi могут занять некоторое время 🙂