web-dev-qa-db-fra.com

Comment définir des autorisations de destination avec rsync (chown chmod)

J'essaye de faire un rsync local, d'un point de montage à un dossier local. Je dois définir le propriétaire, le groupe et les autorisations sur des paramètres spécifiques. Voici ce que j'utilise:

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

Je me retrouve avec des autorisations 760 sur les répertoires et les fichiers, et root: root sur la propriété (rsync est exécuté en tant que root).

Qu'est-ce que je fais mal?

TIA

12
Roger Creasy

rsync doit être informé que vous souhaitez définir les autorisations et les informations sur le propriétaire/groupe. Il serait logique de supposer qu'avoir --chmod ou --chown le dirait, mais ce n'est pas le cas.

Pour que les autorisations se propagent, vous avez besoin du --perms ou -p drapeau et pour le propriétaire/groupe dont vous avez besoin --owner --group ou -og drapeaux pour les informations de propriétaire/groupe/permission à définir.

La documentation est un peu imprécise, il n'est donc pas clair comment les autorisations sont gérées avec différentes combinaisons ou si les fichiers existants sont affectés.

19
Sami Kuhmonen

J'ai trouvé cette version StackOverflow de la même question pour être plus utile, car il semble que Roger et moi avons rsyncs avec des préférences différentes pour le format de --chmod (le mien est 3.1.3 d'un paquet Debian).

Comme l'a dit Sami, rsync doit être informé des "autorisations", donc incluez -p, ou le faire implicitement inclus en utilisant -a. Mais ensuite, pour que la commande s'exécute réellement, vous avez besoin (par exemple pour les répertoires 755 et les fichiers 644) --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r, plutôt que le format "D755, F644".

1
FarFetchd