rsync set group owner, group permission

10

2

I want to use rsync to transfer files from my computer to a remote Linux system. Regardless of the local file's group ownership, I want to set these values on the remote side.

If I was on the remote Linux system, I could create the directory and set the ownership and permissions as:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

If I create the directory locally and then use rsync (remember, I don't have my_group locally), I do:

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

That works, but I cannot figure out how to set the group owner through rsync. If I do a chmod g+s dest, my_directory has the correct group owner but all of the files inside have the incorrect group owner.

ChrisInEdmonton

Posted 2010-03-15T23:03:49.080

Reputation: 8 110

Hi @ChrisInEdmonton, did you find a way to make this work in the end? I am right now faced with the same issue, I am running cygwin to rsync files from windows to a linux box but cannot set the correct group id of new files being sent through: rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/ The files land as john:john instead of john:projx (where projx is the name of the group) – John – 2015-02-11T15:59:24.620

1I have just found rsync 3.1 includes --groupmap=*:group-name'.. right after i posted ha. – John – 2015-02-11T16:04:21.287

Answers

8

Right this minute, I'm looking for a way to do this in the rsync operation myself, as oppose to in a subsequent operation. I want some files not to be world readable and assign a group, thereby restricting access to the remote server processes within that group. But I haven't found one.

The only thing I can imagine is to:

  1. use --delay-updates to make putting the remote files in a more atomic, instantaneous operation assign
  2. g+rwx,o+rwx in the rsync --chmod option

and then run:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

user31306

Posted 2010-03-15T23:03:49.080

Reputation:

Yeah, I think that's what we are going to do. I'm surprised there's no way that you or I could find to do this just with rsync, but hey. – ChrisInEdmonton – 2010-03-17T14:55:39.303

6

I think the -p flag is missing from your command ..

--chmod

This option tells rsync to apply one or more comma-separated "chmod" strings to the permission of the files in the transfer. The resulting value is treated as though it was the permissions that the sending side supplied for the file, which means that this option can seem to have no effect on existing files if --perms is not enabled.

h3.

Posted 2010-03-15T23:03:49.080

Reputation: 189

1The -p flag is implicitly included as part of the -a (archive) option. – Anthony Geoghegan – 2016-03-23T14:45:36.360