O Rsync não preserva o UID / GID mesmo com -a e --numeric-ids

1

Estou tentando usar rsync para fazer backup de arquivos remotos, mas os UIDs / GIDs no sistema remoto são diferentes do que tenho localmente. Não importa o que eu tente, todos os meus arquivos locais são "opux / opux", ambos com * ID 1000. Aqui está o meu rsync:

sync -e "ssh" --rsync-path="sudo rsync" -AXSHavz --progress --numeric-ids pi@rpinfs:/mnt/mainhdd/dospace/ --exclude 'videos' ~/backups/dospace/

Eu tentei --super e --fake-super , mas a primeira apenas me deu "Operação não permitida" e a segunda não parece fazer nada. Como devo fazer isso?

Eu sei que uma maneira de fazer backups preservando todos os metadados é usar o tar, mas pelo que entendi, ele não faz backups remotos muito bem. Eu quero algo que pode ser executado de forma simples e, idealmente, não como root no meu sistema local.

O sistema remoto é um Raspberry Pi rodando Raspbian, então o único usuário de login é o root. Meu sistema local é o Ubuntu 16.04 AMD64.

    
por PenguinLust 06.08.2017 / 00:06

1 resposta

2

Se você estiver transferindo dados do remoto, não será necessário root remotamente (a menos que o usuário do SSH não tenha permissão de leitura (e de diretórios: execute) para todos os arquivos afetados.

Mas se você quiser que o rsync altere o proprietário (e o grupo) de um arquivo localmente, ele deverá ser executado como root em geral. A exceção: Se todos os arquivos e diretórios pertencerem ao mesmo usuário (que não é aquele em que você normalmente executa o rsync localmente), então você pode executar o rsync como aquele usuário.

Uma solução alternativa é não se preocupar com os metadados do arquivo em relação a rsync e lidar com isso separadamente:

getfacl --recursive /mnt/mainhdd/dospace

Mas algo precisa ser executado como root localmente. Se é melhor executar setfacl como root do que executar rsync , pois root é uma questão interessante ...

    
por 06.08.2017 / 00:28