rsync para cifs montar, mas preservar permissões

2

Estou fazendo backup de um servidor Linux em um compartilhamento do Windows. Atualmente, estou montando o compartilhamento de janelas com cifs e usando o rsync para backups incrementais. As permissões e a propriedade do arquivo não estão sendo preservadas, como seria de esperar após a leitura deste documento do samba :

O protocolo CIFS principal não fornece informações ou modo de propriedade unix para arquivos e diretórios. Por esse motivo, os arquivos e diretórios geralmente pertencem a quaisquer valores que as opções uid = ou gid = estejam configurados e terão permissões definidas como o file_mode e o dir_mode padrão para a montagem.

Como posso atingir meu objetivo de preservar as permissões de arquivo unix ao gravar em um compartilhamento do Windows? Existe outro sistema de arquivos de rede que me permita fazer isso?

Obrigado.

getWeberForStackExchange
fonte

Respostas:

1

O protocolo CIFS possui uma extensão para adicionar suporte a permissões de arquivo POSIX (não tenho certeza sobre ACLs), que já faz parte do Samba. Se você instalar o Services for Unix (ou o que a Microsoft chama agora), ele deverá adicionar esse recurso ao Windows também. Além disso, o SfU vem com o servidor e o cliente para o NFSv3, projetado para sistemas de arquivos Unix.

gravidade
fonte
3

Edit : Como o grawity aponta, o MS tem um pacote adicional para isso. Leia sua resposta primeiro.


Não é apenas o protocolo de compartilhamento de arquivos de rede que não salva esse tipo de dados de permissão, o sistema de arquivos do Windows em si não possui locais para esses dados * . A única maneira de fazer isso seria adicionar algum tipo de camada sobre o Windows para ter um sistema de arquivos e um protocolo de rede com esses recursos. Pode ser uma máquina virtual com uma imagem de disco ou mágica maluca com cygwin, ou drivers especiais do Windows, mas tudo exigirá alguma medida de trabalho.

Se o seu caso de uso for realmente simples, como os backups, você pode considerar o uso tar. Or rsnap. Eles podem criar objetos de arquivo único dos seus dados com todos os dados de permissão de arquivo incorporados, então você pode compactá-los e enviá-los pela rede para o sistema de arquivos que desejar. Existem até maneiras de lidar com atualizações incrementais de dados. Essa pode ser uma maneira de baixa tecnologia para resolver seu problema.

* a menos que você adicione o conjunto de ferramentas Serviços para Unix, que configura uma camada de comparabilidade e armazena os dados extras de permissão ... em algum lugar.

Caleb
fonte
Se eu alternasse para um compartilhamento unix e o montasse no NFS, eu teria esse problema?
getWeberForStackExchange
1
@weberwithoneb: Não. Se o sistema de arquivos remoto tiver recursos de permissão POSIX e você o compartilhar com o NFS, você não terá esse problema.
Caleb
1
Além disso, você não precisaria montá-lo, no entanto, o rsync é capaz de usar vários protocolos de rede (é próprio, ssh, etc) para enviar arquivos. O verdadeiro problema é que o sistema de arquivos de destino precisa oferecer suporte a permissões e magia desse tipo.
Caleb
@Caleb: CIFS faz apoiar permissões UNIX e Windows tem "Serviços para Unix" para adicionar suporte para a extensão.
grawity
@rawity: Então, por todos os meios, adicione outra resposta! (E vou tentar corrigir o meu.) Isso é algo que eu não sabia.
Caleb