Como definir permissões de destino com o rsync (chown chmod)

13

Estou tentando fazer um rsync local, de um ponto de montagem para uma pasta local. Preciso definir o proprietário, o grupo e as permissões para configurações específicas. Aqui está o que eu estou usando:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

Acabo com permissões 760 em diretórios e arquivos e root: root on owner (o rsync é executado como root).

O que estou fazendo errado?

TIA

Roger Creasy
fonte
O sistema de arquivos de destino é algo como NTFS, já que é "Drive_D"?
Sami Kuhmonen 11/08/16
direcionar sistema de arquivos ext4 é
Roger Creasy
A adição de -p ajuda?
Sami Kuhmonen 11/08/16
-p faz o chmod nos arquivos movidos funcionar. Eu preciso testar para garantir que ele não substitua permissões em nenhum arquivo existente. Obrigado. E, ainda tenho a questão chown
Roger Creasy
1
Para isso você realmente precisa -og eu acho #
Sami Kuhmonen

Respostas:

19

O rsync precisa ser informado de que você deseja definir as permissões e as informações de proprietário / grupo. Seria lógico supor que ter --chmodou --chowndiria isso, mas não o fazem.

Para que as permissões sejam propagadas, você precisa do sinalizador --permsou -pe, para proprietário / grupo, precisa --owner --groupou -ogsinalizadores para que as informações do proprietário / grupo / permissão sejam definidas.

A documentação é um pouco pouco clara, portanto não está claro como as permissões são tratadas com combinações diferentes ou se os arquivos existentes são afetados.

Sami Kuhmonen
fonte
ainda não está claro, porque executando como sudo, o que eu preciso fazer, os documentos linux.die.net/man/1/rsync apontam que você só pode definir o destino da mesma forma que a fonte. O problema é que eu preciso configurá-lo para o que o usuário está logado, por exemplo,$(whoami)
Brian Thomas
1

Achei esta versão StackOverflow da mesma pergunta mais útil, porque parece que Roger e eu temos rsyncs com preferências diferentes para o formato de --chmod(a minha é a 3.1.3 de um pacote Debian).

Como Sami disse, o rsync precisa receber "permissões", portanto, inclua ou inclua -pimplicitamente o uso -a. Porém, para executar o comando, você precisa (por exemplo, dos diretórios 755 e arquivos 644) --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r, em vez do formato "D755, F644".

FarFetchd
fonte