Rsync - mantém a permissão 'root' em outra máquina?

3

Estou apenas tentando copiar um diretório de um servidor doméstico para outro, ambos executando o Ubuntu (9.04 e 9.10), usando o rsync. O problema que estou tendo é que alguns dos arquivos no diretório (e subdiretórios) são de propriedade de root. A conta do administrador principal em ambas as máquinas é 'ben', portanto, execute isso no servidor antigo:

rsync -v -u -a -p -t -rsh=ssh --stats --progress source/ ben@newserver:/dest

Solicita a senha do ben @ newserver, copia a fonte / mas todas as permissões são 'ben' no novo destino. Rodar isso usando o sudo significa que eu tenho acesso aos arquivos do root, mas do outro lado não posso escrevê-los como pertencentes ao root. O envio para root @ newserver pede a senha do root, que o Ubuntu não lhe dá.

Alguém pode explicar simplesmente como fazer isso? Obrigado :)

    
por Ben Hymers 01.11.2009 / 17:52

3 respostas

5

Você pode configurar as chaves SSH e colocar sua chave pública no arquivo ~root/.ssh/authorized_keys2 do root em newserver . Dessa forma, você pode fazer todo o processo como root.

Alternativamente, você pode definir a senha do root via:

sudo passwd root

Mas as chaves SSH são mais seguras e (IMHO) mais convenientes.

    
por 01.11.2009 / 18:14
3

Você pode usar a opção --rsync-path para executar sudo rsync na máquina remota; Eu suspeito que você terá que dar privilégios sudo% user_de ben para executar rsync , pois as chances de rsync-path passar o prompt de senha de volta para a máquina de origem são pequenas.

    
por 01.11.2009 / 18:06
1

Para que o rsync mantenha todos os atributos de propriedade / permissões do arquivo, ele precisa estar rodando como root no final que está sendo gravado. Se você é apenas raiz em uma extremidade, isso precisa ser o fim da escrita, então você precisaria fazer

rsync -v -u -a -p -t -rsh=ssh --stats --progress user@oldserver:source/ /dest/

enquanto estiver logado como root no novo servidor.

A opção --fake-super pode ser útil ao enviar arquivos para um local de backup em que você não tem acesso root (e ao recuperar os arquivos posteriormente), mas isso não será aplicável aqui sem rsyncing para um local intermediário em qualquer servidor com essa opção, em seguida, rsyncing para o destino final com ele também).

As outras opções, como já mencionado, é dar ao seu usuário, no final da escrita, acesso sem senha ao rsync como root em sua configuração do sudo.

    
por 01.11.2009 / 19:55