Comment empêcher Rsync de chowner des fichiers transférés?

72

J'ai une configuration de connexion sshfs avec un système de fichiers distant sur un serveur Linux. Je fais une Rsync de mon serveur local au système de fichiers ftpfs. En raison de la nature de cette configuration, je ne peux chownrien faire du système de fichiers sshfs.

Quand je fais le Rsync, il essaie de chown tous les fichiers après les avoir transférés. Cela entraîne des erreurs de chown, même si les fichiers sont correctement transférés.

Avec Rsync, y a-t-il un moyen de lui dire de ne pas essayer de chown les fichiers? Si je rsync comme 1000 fichiers je me retrouve avec un journal de 1000 chown: permission denied (error 13)erreurs. Je sais que ces erreurs ne font pas de mal car la propriété des fichiers est déterminée par la configuration de sshfs elle-même. Mais ce serait bien de ne pas les avoir.

Jake Wilson
la source

Réponses:

107

Vous utilisez probablement rsync comme ceci:

rsync -a dir/ remote:/dir/

L' -aoption selon la documentation est équivalente à:-rlptgoD

      -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X)

Vous voudrez probablement supprimer les options -oet -g:

      -o, --owner                 preserve owner (super-user only)
      -g, --group                 preserve group

Au lieu de cela, votre commande rsync devrait ressembler à ceci:

rsync -rlptD dir/ remote:/dir/

Ou, comme le souligne @glglgl :

rsync -a --no-o --no-g dir/ remote:/dir/

Les autres options utilisées sont:

      -r, --recursive             recurse into directories
      -l, --links                 copy symlinks as symlinks
      -p, --perms                 preserve permissions
      -t, --times                 preserve modification times
      -D                          same as --devices --specials
          --devices               preserve device files (super-user only)
          --specials              preserve special files
aculich
la source
19
... ou juste-a --no-o --no-g
Glglgl
1
J'ai utilisé justement rsync -r --no-o --no-g /source/* /dest/et mon propriétaire et le groupe de fichiers de la destination ont encore été modifiés en fonction de la source. Des idées?
Ram Patra
12

Ne passez pas -oou l'une des autres options qui l'implique.

Ignacio Vazquez-Abrams
la source
5

N'utilisez pas l' -aoption, car elle inclura l' -poption qui conserve les autorisations. Pour cette situation, cela -rdevrait suffire.

Pour plus d'infos, voir man rsync.

Sven
la source
4
Es-tu sûr de -pce que je veux éviter? La propriété est différente des autorisations, n'est-ce pas?
Jake Wilson
0

J'ai rencontré quelque chose de similaire dans lequel rsyncle propriétaire et le groupe de fichiers et répertoires ne sont pas synchronisés à partir d'un serveur distant. Pour corriger, j'ai copié sur le /etc/shadow, /etc/groupet les /etc/passwdfichiers.

Lorsque j'ai exécuté la rsynccommande ci-dessous, elle a fonctionné en ce sens qu'elle conservait les autorisations, les liens symboliques et la propriété.

J'avais configuré les clés SSH pour utiliser SSH sans mot de passe.

rsync -avpog [email protected]:/usr/local /usr
pbroderi31
la source