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

13

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

Roger Creasy
la source
Le système de fichiers cible ressemble-t-il à NTFS, car il s'agit de "Drive_D"?
Sami Kuhmonen
le système de fichiers cible est ext4
Roger Creasy
L'ajout de -p est-il utile?
Sami Kuhmonen du
-p fait fonctionner chmod sur les fichiers déplacés. Cependant, je dois tester pour m'assurer qu'il n'écrase pas les autorisations sur les fichiers existants. Merci. Et, j'ai toujours le problème de chown
Roger Creasy
1
Pour cela, vous avez réellement besoin de -og je pense
Sami Kuhmonen

Réponses:

19

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

Pour que les autorisations se propagent, vous avez besoin de l' indicateur --permsou -pet pour le propriétaire / groupe dont vous avez besoin --owner --groupou les -ogindicateurs pour que les informations de propriétaire / groupe / autorisation soient définies.

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.

Sami Kuhmonen
la source
ce n'est toujours pas clair, car en cours d'exécution en tant que sudo, ce que je dois faire, les documents linux.die.net/man/1/rsync soulignent que vous ne pouvez définir la destination que la source. Le problème est que je dois le régler sur ce que l'utilisateur connecté est, par exemple$(whoami)
Brian Thomas
2

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

Comme l'a dit Sami, rsync doit être informé des "autorisations", donc incluez -p-le ou incluez -le implicitement 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".

FarFetchd
la source