Eu tenho um requisito para gravar arquivos em um sistema de arquivos Linux que não possa ser substituído posteriormente, anexado, atualizado de qualquer forma ou excluído. Não por um sudoer, root ou qualquer pessoa. Estou tentando atender aos requisitos dos regulamentos de serviços financeiros para manutenção de registros, FINRA 17A-4, que basicamente exige que documentos eletrônicos sejam gravados em dispositivos WORM (escreva uma vez, leia muitos). Eu gostaria muito de evitar o uso de DVDs ou dispositivos caros do EMC Centera.
Existe um sistema de arquivos Linux ou o SELinux pode suportar o requisito de que os arquivos sejam concluídos imutáveis imediatamente (ou pelo menos em breve) após a gravação? Ou alguém está ciente de como eu poderia aplicar isso em um sistema de arquivos existente usando permissões do Linux, etc?
Entendo que posso definir permissões somente leitura e o atributo imutável. Mas é claro que espero que um usuário root possa desmarcá-los.
Pensei em armazenar dados em pequenos volumes desmontados e remontados somente leitura, mas acho que a raiz ainda pode desmontar e remontar como gravável novamente.
Estou procurando idéias inteligentes e, na pior das hipóteses, estou disposto a fazer um pouco de codificação para 'aprimorar' um sistema de arquivos existente para fornecer isso. Supondo que exista um sistema de arquivos que seja um bom ponto de partida. E crie um servidor Linux cuidadosamente configurado para atuar como esse tipo de dispositivo de armazenamento em rede, sem fazer mais nada.
Depois de tudo isso, a criptografia nos arquivos também seria útil!
chattr -i filename
depois rmRespostas:
Você pode fazer isso com o OpenAFS e volumes somente leitura. É necessário instalar muita infraestrutura para fazê-lo funcionar e pode não atender aos requisitos.
http://www.openafs.org/
Basicamente, há um volume gravável e uma ou mais cópias somente leitura do volume. Até você liberar o volume gravável, as cópias somente leitura são imutáveis para os clientes. A liberação do volume requer privilégios de administrador.
Parece que qualquer solução exigiria hardware especializado ou um sistema de arquivos de rede que duplique a semântica do hardware especializado.
fonte
Parece que não há como fazer isso sem escrever código do sistema de arquivos / kernel personalizado.
Uma solução viável parece ser usar o Amazon Glacier com a opção de armazenamento de arquivo WORM. De acordo com o Blog oficial da AWS em: https://aws.amazon.com/blogs/aws/glacier-vault-lock/
Para mim, isso fornece exatamente o que é necessário sem as despesas do hardware da NetApp ou da EMC, enquanto parece atender aos requisitos de retenção de registros.
fonte
Se você simplesmente precisar acessar arquivos de um sistema no qual os usuários não possam substituí-los, poderá montar um volume remoto no qual você não tem permissão de gravação. A maneira mais fácil de fazer isso é montar um compartilhamento samba / cifs somente leitura.
Caso contrário, se você precisar de uma maneira de permitir que os usuários gravem novos arquivos (que não podem ser substituídos ou modificados), uma solução é montar um caminho de FTP com o FUSE curlftpfs.
Você pode definir seu diretório proftpd com estas diretivas:
Dessa maneira, novos arquivos podem ser armazenados no diretório montado, mas não podem mais ser modificados ou removidos.
links: CurlFtpFS , ProFTPD
fonte
Essa é uma variação do problema " Backup infalível " e a única maneira de implementá-lo é com vários sistemas de arquivos worm remotos que usam e compartilham somas de verificação e não têm acesso físico ou administrativo compartilhado. Isso garante que tudo seja gravado uma vez, duplicado, com integridade comprovável e, no caso de um único bloco ser apagado, alterado ou corrompido, recuperável.
O Plan9 ou seus derivados podem implementar todos os recursos necessários. Veja Plan9 e Venti
fonte