X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6c82f74b6ff3cda7c8ef8d08e561125202bb80da..943882a289da2ad2d6ae1ef9c8bba494d769ba50:/rsync.c diff --git a/rsync.c b/rsync.c index 6644f141..2f772ace 100644 --- a/rsync.c +++ b/rsync.c @@ -267,6 +267,7 @@ static int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, { int updated = 0; STRUCT_STAT st2; + extern int am_daemon; if (dry_run) return 0; @@ -300,8 +301,9 @@ static int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st, } #endif - if ((am_root && preserve_uid && st->st_uid != file->uid) || - (preserve_gid && st->st_gid != file->gid)) { + if ((am_root || !am_daemon) && + ((am_root && preserve_uid && st->st_uid != file->uid) || + (preserve_gid && st->st_gid != file->gid))) { if (do_lchown(fname, (am_root&&preserve_uid)?file->uid:-1, preserve_gid?file->gid:-1) != 0) {