Tengo el requisito de escribir archivos en un sistema de archivos de Linux que no pueda sobrescribirse, agregarse, actualizarse o eliminarse posteriormente. No por un sudo-er, root, o cualquiera. Estoy tratando de cumplir con los requisitos de las regulaciones de servicios financieros para el mantenimiento de registros, FINRA 17A-4, que básicamente requiere que los documentos electrónicos se escriban en dispositivos WORM (escriba una vez, lea muchos). Me gustaría mucho evitar tener que usar DVD o dispositivos caros de EMC Centera.
¿Existe un sistema de archivos Linux, o puede SELinux soportar el requisito de que los archivos se completen de manera inmutable inmediatamente (o al menos pronto) después de la escritura? ¿O alguien está al tanto de una forma en que podría aplicar esto en un sistema de archivos existente usando permisos de Linux, etc.?
Entiendo que puedo establecer permisos de solo lectura y el atributo inmutable. Pero, por supuesto, espero que un usuario root pueda desarmarlos.
Pensé en almacenar datos en pequeños volúmenes que se desmontan y luego se vuelven a montar de solo lectura, pero luego creo que la raíz aún se puede desmontar y volver a montar como de escritura.
Estoy buscando ideas inteligentes, y en el peor de los casos, estoy dispuesto a hacer una pequeña codificación para 'mejorar' un sistema de archivos existente para proporcionar esto. Suponiendo que haya un sistema de archivos que sea un buen punto de partida. Y establezca un servidor Linux cuidadosamente configurado para que actúe como este tipo de dispositivo de almacenamiento en red, sin hacer nada más.
¡Después de todo eso, el cifrado en los archivos también sería útil!
chattr -i filename
entonces rmRespuestas:
Puede hacer esto con OpenAFS y volúmenes de solo lectura. Sin embargo, es necesario instalar mucha infraestructura para que funcione y es posible que no cumpla con los requisitos.
http://www.openafs.org/
Básicamente, hay un volumen grabable y una o más copias de solo lectura del volumen. Hasta que libere el volumen grabable, las copias de solo lectura no se pueden cambiar a los clientes. Liberar el volumen requiere privilegios de administrador.
Parece que cualquier solución requeriría hardware especializado o un sistema de archivos de red que duplique la semántica del hardware especializado.
fuente
Parece que no hay forma de hacerlo sin escribir un código personalizado del sistema de archivos / kernel.
Una solución viable parece ser usar Amazon Glacier con la opción de almacenamiento de archivos WORM. De acuerdo con el Blog oficial de AWS en: https://aws.amazon.com/blogs/aws/glacier-vault-lock/
Para mí, esto proporciona exactamente lo que se necesita sin el gasto del hardware de NetApp o EMC, al tiempo que parece cumplir con los requisitos de retención de registros.
fuente
Si simplemente necesita acceder a archivos desde un sistema en el que los usuarios no pueden sobrescribirlos, puede montar un volumen remoto en el que no tiene permiso de escritura. La manera más fácil de hacer esto es montar un recurso compartido de solo lectura samba / cifs.
De lo contrario, si necesita una forma de permitir que los usuarios escriban nuevos archivos (que no se pueden sobrescribir o modificar), una solución es montar una ruta FTP con FUSE curlftpfs.
Puede configurar su directorio proftpd con estas directivas:
De esta forma, los archivos nuevos se pueden almacenar en el directorio montado, pero ya no se pueden modificar ni eliminar.
enlaces: CurlFtpFS , ProFTPD
fuente
Esta es una variación del problema de " Copia de seguridad infalible " y la única forma de implementarlo es con múltiples sistemas de archivos de gusanos remotos que usan y comparten sumas de verificación y no tienen acceso físico o de administración compartido. Esto garantiza que todo se escriba una vez, se duplique, se pueda comprobar la integridad y, en el caso de que se borre, modifique o corrompa un solo bloque, se pueda recuperar.
Plan9 o sus derivados pueden implicar todas las características requeridas. Ver Plan9 y Venti
fuente