diff options
Diffstat (limited to 'rdiff-backup/rdiff_backup/backup.py')
-rw-r--r-- | rdiff-backup/rdiff_backup/backup.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/rdiff-backup/rdiff_backup/backup.py b/rdiff-backup/rdiff_backup/backup.py index d18c3c0..c314d63 100644 --- a/rdiff-backup/rdiff_backup/backup.py +++ b/rdiff-backup/rdiff_backup/backup.py @@ -110,8 +110,16 @@ class SourceStruct: if dest_sig.isflaglinked(): diff_rorp.flaglinked(dest_sig.get_link_flag()) elif src_rp.isreg(): + reset_perms = False + if (Globals.process_uid != 0 and not src_rp.readable() and + src_rp.isowner()): + reset_perms = True + src_rp.chmod(0400 | src_rp.getperms()) + if dest_sig.isreg(): attach_diff(diff_rorp, src_rp, dest_sig) else: attach_snapshot(diff_rorp, src_rp) + + if reset_perms: src_rp.chmod(src_rp.getperms() & ~0400) else: dest_sig.close_if_necessary() diff_rorp.set_attached_filetype('snapshot') |