Bug 10705 - usermap/groupmap do not escape wildcards passed to the remote
usermap/groupmap do not escape wildcards passed to the remote
Status: NEW
Product: rsync
Classification: Unclassified
Component: core
3.1.1
All All
: P5 normal
: ---
Assigned To: Wayne Davison
Rsync QA Contact
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-07-09 05:59 UTC by Daniel O'Connor
Modified: 2014-07-10 01:21 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel O'Connor 2014-07-09 05:59:48 UTC
Hi,
I was trying to map all GID/UID to 0:0 with..
rsync --chown 0:0 foo user@remote:/tmp

but it bombs out with..
rsync: No match.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]

I am guessing that --chown 0:0 maps internally to --usermap *:0 --groupmap *:0 but they aren't escaped properly.

As a work around I am using..
rsync --usermap \\\*:0 --groupmap \\\*:0 foo user@remote:/tmp

and it works.
(i.e. the *'s are escaped enough the remote invocation doesn't fail).

I imagine this would also work if the remote shell did not error on non-matching globs, however I think the existing behaviour is still broken as if the glob did match the behaviour could be very odd.
Comment 1 Daniel O'Connor 2014-07-10 01:21:17 UTC
I looked through the code and found the --protect-args option which does make --chown work.

I guess it would be difficult to fix unless the wildcard character was changed to something else.

Perhaps the best work around for now would be to mention --protect-args in the --chown/--usermap/--groupmap options in the man page?