Contornar as limitações do CIFS/Samba

Contornar as limitações do CIFS/Samba

Minha situação: tenho um NAS que atende compartilhamentos via CIFS/Samba. Internamente, ele usa um sistema de arquivos ext3, mas isso não é relevante (eu acho). Tenho alguns computadores Linux (usando sistemas de arquivos ext4) dos quais desejo fazer backup nesses compartilhamentos.

Meu problema: usar o compartilhamento para backups apresenta dois problemas principais. Por um lado, não consigo copiar todos os arquivos para o NAS, porque alguns arquivos têm nomes de arquivos muito longos que o CIFS não consegue controlar. Por outro lado, as permissões de arquivos e diretórios não são copiadas corretamente. Por exemplo, cada arquivo no compartilhamento tem todos os bits de “execução” definidos, independentemente das permissões do arquivo original.

Minha pergunta: Qual é a maneira mais fácil de contornar essas "deficiências" para que eu possa fazer backup e restaurar arquivos sem manipular manualmente nomes de arquivos e permissões?

Algumas informações adicionais sobre meus experimentos até agora:

  1. Minha primeira ideia foi apenas criar sistemas de arquivos ext4 dentro de arquivos (esparsos) no compartilhamento, montá-los e usá-los para os backups reais. A desvantagem aqui é que a remoção de arquivos dos sistemas de arquivos não diminui o tamanho dos "arquivos" ext4 no compartilhamento e os sistemas de arquivos precisam ser limitados em tamanho desde o início. É complicado redimensioná-los após a criação.

  2. Eu tentei usarecryptfsporque eu esperava que ele criptografasse os nomes dos arquivos e as permissões de uma forma que os contornasse as limitações do CIFS. Isso não funcionou, já que os nomes dos arquivos são criptografados, mas usados ​​como nomes de arquivos novamente (assim, nomes de arquivos longos ficam mais longos, não mais curtos). Além disso, as permissões não são “ocultas” pelo ecryptfs. Os arquivos criptografados apenas mantêm as permissões dos originais, portanto, qualquer arquivo descriptografado teria novamente todos os bits de "execução" definidos.

  3. Uma pessoa amigável do IRC recomendou usar um número dinâmico de arquivos grandes e usá-los como volumes para LVM. Ainda não testei isso, mas em teoria deveria funcionar. Eu teria um volume lógico com um ext4 que seria distribuído entre vários arquivos no compartilhamento. Se eu precisasse de mais espaço, criaria mais arquivos e os adicionaria ao volume, se usasse menos espaço poderia remover alguns. A única desvantagem aqui é que eu ainda teria que realizar os redimensionamentos (e verificar periodicamente quanto espaço é realmente necessário). Em retrospecto, isso oferece pouca ou nenhuma vantagem em relação ao uso de arquivos únicos, já que eu poderia truncá-los/aumentá-los e redimensionar o sistema de arquivos ext4 também.

  4. O que imagino é, por exemplo, um FUSE que salva nomes de arquivos e permissões em, digamos, um banco de dados e não depende do sistema de arquivos subjacente para suportar tudo. Infelizmente, ainda não encontrei nada parecido.

Responder1

Samba com ecryptfs parece estar funcionando para mim no Ubuntu 14.04.

Eu usei este guia:http://www.cyberciti.biz/faq/adding-a-user-to-a-samba-smb-share/

Meu palpite é que o truque é fornecer a mesma senha em:

passwd USER

e

smbpasswd -a USER

Presumo que o ecryptfs pegue a senha quando ela for fornecida ao Samba, adoraria ouvir um esclarecimento sobre como isso acontece.

informação relacionada