summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/rpath.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/rdiff_backup/rpath.py')
-rw-r--r--rdiff-backup/rdiff_backup/rpath.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/rdiff-backup/rdiff_backup/rpath.py b/rdiff-backup/rdiff_backup/rpath.py
index 9bcdd2e..5a94a8b 100644
--- a/rdiff-backup/rdiff_backup/rpath.py
+++ b/rdiff-backup/rdiff_backup/rpath.py
@@ -1491,6 +1491,11 @@ def setdata_local(rpath):
"""
assert rpath.conn is Globals.local_connection
+ reset_perms = False
+ if (Globals.process_uid != 0 and not rpath.readable() and rpath.isowner()):
+ reset_perms = True
+ rpath.chmod(0400 | rpath.getperms())
+
rpath.data['uname'] = user_group.uid2uname(rpath.data['uid'])
rpath.data['gname'] = user_group.gid2gname(rpath.data['gid'])
if Globals.eas_conn: rpath.data['ea'] = ea_get(rpath)
@@ -1502,6 +1507,9 @@ def setdata_local(rpath):
if Globals.carbonfile_conn and rpath.isreg():
rpath.data['carbonfile'] = carbonfile_get(rpath)
+ if reset_perms: rpath.chmod(rpath.getperms() & ~0400)
+
+
def carbonfile_get(rpath):
"""Return carbonfile value for local rpath"""
# Note, after we drop support for Mac OS X 10.0 - 10.3, it will no longer