WORM ou arquivar o sistema de arquivos?

2

Estou tentando criar um método para armazenar arquivos de imagem a longo prazo de uma maneira em que eles possam ser acessados, mas não alterados (Write Once Read Many)

  • Os arquivos terão ~ 1MB de tamanho por, não espero ter mais de 1000 ao longo da vida. Eu posso escolher gravar um lote em CD / DVD para armazenamento off-line de longo prazo
  • Gostaria de tê-los em um formato em que eu possa ler o arquivo a qualquer momento, mas não modificá-lo ou excluí-lo
  • novos arquivos podem ser adicionados a qualquer momento de maneira automática

Eu olhei algumas opções diferentes e não encontrei nada que funcione ainda. A coisa mais próxima que encontrei foi usar chattr para definir o bit imutável no ext4. A desvantagem disso é que somente o root pode definir o bit, mesmo que eu possua o arquivo. Eu prefiro não seguir esse caminho, se possível.

    
por mkomarinski 12.09.2016 / 17:12

3 respostas

2

Por que não montar simplesmente o sistema de arquivos como somente leitura?

Se a escrita é escassa, você pode remontá-la como leitura / gravação ao salvar as imagens e depois remontá-las como somente leitura depois.

    
por 12.09.2016 / 17:23
1

Se você definir essas ACLs padrão no diretório:

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

Os arquivos e diretórios criados nele serão somente de leitura (para todos).

No entanto, não impede que os usuários alterem as permissões dos arquivos criados posteriormente.

Observe também que ele substitui o umask (ele tornará os arquivos legíveis para o mundo, mesmo que o umask tenha restringido esse acesso de leitura).

    
por 12.09.2016 / 18:07
0

Você poderia usar o controle de versão, possivelmente com o servidor VCS em um computador remoto. Você pode configurar vários usuários (um com privilégios de gravação, um sem) ou simplesmente confiar na capacidade de reverter alterações se cometer erros em sua verificação local.

Você ganha algumas coisas "de graça", como a capacidade de ver se fez alguma alteração (intencional ou acidentalmente) na sua compra local e o histórico de alterações (por exemplo, quando você adicionou cada arquivo). Também é fácil manter vários clientes em sincronia (digamos que você tenha um desktop e um laptop ou deseja compartilhar o repositório com um amigo), se todos puderem obter do mesmo repositório mestre.

Você ainda precisa manter a integridade do sistema de arquivos do VCS, é claro.

Acabei de medir meu repositório SVN local para binários: ele tem 21.000 arquivos (cerca de 98% de binários), com média de 1.2 MiB cada. Checkouts frescos por WiFi podem demorar um pouco:)

    
por 12.09.2016 / 18:23