Запишите однажды, считайте много (WORM) с помощью файловой системы Linux

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

  1. Остановите соединения с MySQL через сокет и потребуйте, чтобы они все были сетевым интерфейсом; давайте предположим, что слушатель database1 находится на порте 3307, и database2 находится на 3 308 (MySQL обычно слушает на 3 306).
  2. Препятствуйте тому, чтобы user1-находящиеся-в-собственности процессы соединились со слушателем TCP database2 с чем-то как:

iptables -A OUTPUT -p tcp --dport 3307 -o lo -m owner --uid-owner user1 -j REJECT

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

8
задан 26 October 2013 в 00:08
4 ответа

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

Жизнеспособным решением является использование Amazon Glacier с возможностью хранения архивов WORM. Согласно официальному блогу AWS по адресу: https://aws.amazon.com/blogs/aws/glacier-vault-lock/

[...] новая функция Glacier, которая позволяет заблокировать хранилище с помощью различные меры контроля соответствия, которые предназначены для поддержки этого вариант использования хранения важных записей. Теперь вы можете создать замок хранилища политику хранилища и заблокируйте его. После блокировки политика не может быть перезаписаны или удалены. Glacier будет обеспечивать соблюдение политики и защитите свои записи в соответствии с элементами управления (включая предопределенные срок хранения), указанный в нем.

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

Для меня это обеспечивает именно то, что необходимо, без затрат на оборудование NetApp или EMC, и при этом, похоже, соответствует требованиям к хранению записей.

1
ответ дан 2 December 2019 в 23:07

Это можно сделать с помощью OpenAFS и томов только для чтения. Однако нужно установить много инфраструктуры, чтобы она работала, и она может не соответствовать требованиям.

http://www.openafs.org/

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

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

2
ответ дан 2 December 2019 в 23:07

Если вам просто нужно получить доступ к файлам из системы в какие пользователи не могут их перезаписать, вы можете смонтировать удаленный том, на котором у вас нет прав на запись. Самый простой способ сделать это - смонтировать общий ресурс samba / cifs только для чтения.

В противном случае, если вам нужен способ разрешить пользователям записывать новые файлы (которые нельзя перезаписывать или изменять), решение - смонтировать путь FTP с FUSE curlftpfs.

Вы можете установить свой каталог proftpd с помощью следующих директив:

AllowOverwrite off
<Limit WRITE>
  DenyAll
</Limit>
<Limit STOR>
  AllowAll
</Limit>

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

ссылки: CurlFtpFS , ProFTPD

0
ответ дан 2 December 2019 в 23:07

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

Plan9 или его производные могут включать все необходимые функции. См. Plan9 и Venti

0
ответ дан 2 December 2019 в 23:07

Теги

Похожие вопросы