When zrsyncd is run as non-root user, and the UID of a source file/dir differs, it tries a chmod, fails, displays a traceback and quits:
2016-08-19 01:30:52 zrsyncd.cmp_node:504 DEBUG [24971] does not exist: u'/tmp/mytarget'
2016-08-19 01:30:52 zrsyncd.mkdir:627 DEBUG [24971] mkdir(u'/tmp/mytarget'); chown(); utime()
2016-08-19 01:30:52 zrsyncd.chown:623 DEBUG [24971] chown(u'/tmp/mytarget', 2311, 5001)
Process sync_server:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/home/daniel/.zrsync/zrsync/zrsync/zrsyncd.py", line 699, in run
reply["tree_diff"] = self.sync_tree(src_tree, request["no_delete"])
File "/home/daniel/.zrsync/zrsync/zrsync/zrsyncd.py", line 475, in sync_tree
res = self.cmp_node(node)
File "/home/daniel/.zrsync/zrsync/zrsync/zrsyncd.py", line 513, in cmp_node
node["st_atime"], node["st_mtime"])
File "/home/daniel/.zrsync/zrsync/zrsync/zrsyncd.py", line 629, in mkdir
self.chown(dirname, uid, gid)
File "/home/daniel/.zrsync/zrsync/zrsync/zrsyncd.py", line 624, in chown
os.lchown(name, uid, gid)
OSError: [Errno 1] Operation not permitted: '/tmp/mytarget'
zrsyncd should instead send a note back to the client, which should display a warning.
When zrsyncd is run as non-root user, and the UID of a source file/dir differs, it tries a chmod, fails, displays a traceback and quits:
zrsyncd should instead send a note back to the client, which should display a warning.