Evitar las limitaciones de CIFS/Samba

Evitar las limitaciones de CIFS/Samba

Mi situación: tengo un NAS que sirve recursos compartidos a través de CIFS/Samba. Internamente, utiliza un sistema de archivos ext3, pero esto no es relevante (creo). Tengo algunas computadoras con Linux (que usan sistemas de archivos ext4) de las que quiero hacer una copia de seguridad en esos recursos compartidos.

Mi problema: utilizar el recurso compartido para realizar copias de seguridad plantea dos problemas principales. Por un lado, no puedo copiar todos los archivos al NAS porque algunos archivos tienen nombres muy largos que CIFS no puede manejar. Por otro lado, los permisos de archivos y directorios no se copian correctamente. Por ejemplo, cada archivo del recurso compartido tiene todos los bits de "ejecución" configurados, independientemente de los permisos del archivo original.

Mi pregunta: ¿Cuál es la forma más sencilla de evitar estas "deficiencias" para poder realizar copias de seguridad y restaurar archivos sin tener que manejar manualmente los nombres de archivos y los permisos?

Alguna información adicional sobre mis experimentos hasta ahora:

  1. Mi primera idea fue simplemente crear sistemas de archivos ext4 dentro de archivos (escasos) en el recurso compartido, luego montarlos y usarlos para las copias de seguridad reales. El inconveniente aquí es que eliminar archivos de los sistemas de archivos no disminuye el tamaño de los "archivos" ext4 en el recurso compartido y los sistemas de archivos deben tener un tamaño limitado desde el principio. Es engorroso cambiar su tamaño después de su creación.

  2. Intenté usarecryptfsporque esperaba que cifrara los nombres de archivos y los permisos de una manera que les permitiera sortear las limitaciones de CIFS. Esto no funcionó, ya que los nombres de archivos están encriptados, pero se usan como nombres de archivos nuevamente (por lo que los nombres de archivos largos solo se alargan, no se acortan). Además, ecryptfs no "oculta" los permisos. Los archivos cifrados simplemente conservan los permisos de los originales, por lo que cualquier archivo descifrado volverá a tener todos los bits de "ejecución" configurados.

  3. Una persona amigable en IRC recomendó usar una cantidad dinámica de archivos grandes y usarlos como volúmenes para LVM. No lo he probado todavía, pero en teoría debería funcionar. Tendría un volumen lógico con un ext4 que se distribuiría entre varios archivos en el recurso compartido. Si necesitara más espacio, crearía más archivos y los agregaría al volumen; si usara menos espacio, podría eliminar algunos. El único inconveniente aquí es que aún tendría que realizar cambios de tamaño (y comprobaciones periódicas de cuánto espacio se necesita realmente). En retrospectiva, esto proporciona poca o ninguna ventaja sobre el uso de archivos individuales, ya que podría truncarlos/hacerlos crecer y luego cambiar el tamaño del sistema de archivos ext4 también.

  4. Lo que imagino es, por ejemplo, un FUSE que guarda nombres de archivos y permisos en, digamos, una base de datos y no depende del sistema de archivos subyacente para soportar todo. Desafortunadamente, todavía no he encontrado nada como esto.

Respuesta1

Samba con ecryptfs parece funcionar para mí en Ubuntu 14.04.

Usé esta guía:http://www.cyberciti.biz/faq/adding-a-user-to-a-samba-smb-share/

Mi corazonada es que el truco consiste en dar la misma contraseña en:

passwd USER

y

smbpasswd -a USER

Supongo que ecryptfs recoge la contraseña cuando se la entrega a Samba. Me encantaría escuchar una aclaración sobre cómo sucede esto.

información relacionada