When the rsync daemon logs, it fails to determine the correct time: 2014/08/18 18:47:24 [1002] connect from localhost (::1) 2014/08/18 17:47:24 [1003] rsync to dave/in-progress/data/ from dave@localhost (::1) When I specify use chroot = false in the rsyncd.conf, it logs the time correctly: 2014/08/18 19:21:32 [1138] connect from localhost (::1) 2014/08/18 19:21:32 [1139] rsync to dave/in-progress/data/ from dave@localhost (::1)
There's nothing more rsync can do about this. It always calls a time function prior to going into the chroot, but if your OS decides to re-check the time files after that, you'll need to either supply those files in the chroot, or live with the alternate timezone. See the rsyncd.conf manpage for how to setup a deeper dir in a chroot that doesn't allow the user to see the chrooted timezone files (e.g. "Path = /chroot/./copy-dir" allows you to create /chroot/etc that the user can't get to) and/or the exclude option (in the config file).
Perhaps rsync should instead of calling a time function, first determine the offset from UTC that local time is, and then whenever a timestamp is printed first apply that delta and ignore timezones altogether after that. Of course you lose the capability of showing the timezone (apart from [-+]HHMM) but that's not done anyway AFAIK.