diff --git a/generator.c b/generator.c index da6138a..7806447 100644 --- a/generator.c +++ b/generator.c @@ -1535,8 +1535,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, * permissions during the time we are putting files within them. * This is then fixed after the transfer is done. */ #ifdef HAVE_CHMOD - if (!am_root && !(file->mode & S_IWUSR) && dir_tweaking) { - mode_t mode = file->mode | S_IWUSR; + if (!am_root && !((file->mode & S_IRWXU) == S_IRWXU) && dir_tweaking) { + mode_t mode = file->mode | S_IRWXU; if (do_chmod(fname, mode) < 0) { rsyserr(FERROR_XFER, errno, "failed to modify permissions on %s",