execute o rsync como root, mas mantenha a propriedade do usuário

36

Eu gostaria de fazer backup de arquivos de usuário de um servidor para outro com o rsync. mas notei que as pastas do usuário mudam para raiz. como posso manter as permissões de usuário com o rsync (executando pela raiz)?

Edotan
fonte
O rsync precisa ser executado como root quando você estiver fazendo uma cópia da unidade e quando estiver copiando o arquivo de volta para a unidade. Se você executar uma das etapas como um usuário com permissão mais baixa, os arquivos raiz serão rebaixados para esse usuário.
Eric Leschinski

Respostas:

46

Use a -abandeira, que inclui, entre outras coisas, as opções -oe -g, que preserva proprietários e grupos. Isso requer que você execute rsynccomo root.

Veja também man rsync.

Sven
fonte
1
Isso também é possível sem ser raiz? Existe uma opção para armazenar o mapeamento em um arquivo lateral separado?
precisa saber é o seguinte
1
Faltou este comentário. Não, ele não funciona sem ser, rootporque você não tem permissão para alterar o proprietário para mais ninguém do que para o seu próprio usuário. Um arquivo de mapeamento não ajudaria em nada com isso.
Sven
15

A manutenção das permissões é obtida através do modo "arquivamento" -a,. O exemplo comum é -avz:

rsync -avz foo:src/bar/ /data/bar

Isso garante que links simbólicos, dispositivos, atributos, permissões, propriedades etc. sejam preservados na transferência. Além disso, a compactação será usada para reduzir o tamanho das partes de dados da transferência.

Jeremy L
fonte
5

Se você estiver usando o rsync para backup, eu realmente recomendo o uso do rsnapshot (ele usa o rsync). Ele gira os backups e usa links físicos para que você possa ver as diferenças entre os backups diários (mas as pastas ainda parecem ter o conteúdo completo). Eu uso isso para fazer backup dos servidores Windows e Linux no trabalho. Perfeito para nós!

Simon Fredriksson
fonte