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


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.


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".

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.