Suena como que lo que estás buscando es encfs . Es la capa FUSE encima de cualquier FS existente que encripta y desencripta sobre la marcha, almacenando la versión encriptada en el sistema de archivos subyacente. El problema es que los metadatos del archivo (propiedad, tamaño, tiempos) son visibles, pero el contenido y los nombres no lo son.
También puedes usar --reverse
para ir al revés: crea una vista encriptada de un fs sin cifrar, útil para hacer copias de seguridad encriptadas compatibles con rsync.
EDITAR PARA AGREGAR
Como lo señaló Æsahættr, otra opción útil es eCryptfs . Este es un controlador FS en el kernel, lo que significa que se requiere permiso de root. Pero es una sobrecarga de rendimiento muy baja y mucho más rápida que en mis propias pruebas. Si bien la implementación es bastante diferente entre los dos, la forma en que los usas es casi idéntica:
encfs /base_dir/ /view_dir/
# or
mount -t ecryptfs /base_dir/ /view_dir/
De forma predeterminada, encfs codifica los nombres de archivo mientras que ecryptfs no, pero estas opciones son configurables. Además, ecryptfs agrega mucha más sobrecarga por archivo que encfs porque almacena metadatos en el propio archivo, mientras que encfs los almacena en un archivo XML oculto. Además, la opción --reverse
que encfs no se traduce realmente bien a ecryptfs; ecryptfs tiene ecryptfs_encrypted_view
pero probablemente no funcionará de la manera que esperas. Supuestamente esto es un trabajo en progreso.
Ambos pueden usar cualquier sistema de archivos como base; Incluyendo, por ejemplo, sshfs. Pero tenga en cuenta que la propiedad y los permisos de los archivos se almacenan tal como están en el sistema de archivos base, lo que podría significar errores de acceso denegado si no hace coincidir las cosas correctamente, o pierde los permisos completamente si se basa en un FS que no lo hace. Apóyalos.