rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/backup.py r..


From: Andrew Ferguson
Subject: [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/backup.py r...
Date: Sat, 03 Jan 2009 21:41:53 +0000

CVSROOT:        /sources/rdiff-backup
Module name:    rdiff-backup
Changes by:     Andrew Ferguson <owsla> 09/01/03 21:41:53

Modified files:
        .              : CHANGELOG 
        rdiff_backup   : backup.py rpath.py 

Log message:
        Allow rdiff-backup to backup files which it cannot read, but can change
        the permissions of.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.342&r2=1.343
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/backup.py?cvsroot=rdiff-backup&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/rpath.py?cvsroot=rdiff-backup&r1=1.136&r2=1.137

Patches:
Index: CHANGELOG
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.342
retrieving revision 1.343
diff -u -b -r1.342 -r1.343
--- CHANGELOG   3 Jan 2009 21:35:59 -0000       1.342
+++ CHANGELOG   3 Jan 2009 21:41:53 -0000       1.343
@@ -1,6 +1,9 @@
 New in v1.3.0 (????/??/??)
 ---------------------------
 
+Allow rdiff-backup to backup files which it cannot read, but can change
+the permissions of. (Andrew Ferguson)
+
 Take start and end times from same system so that the elapsed time printed in
 the statistics is not affected by time zone. (Andrew Ferguson)
 

Index: rdiff_backup/backup.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/backup.py,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- rdiff_backup/backup.py      3 Jan 2009 21:35:59 -0000       1.47
+++ rdiff_backup/backup.py      3 Jan 2009 21:41:53 -0000       1.48
@@ -110,8 +110,16 @@
                        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')

Index: rdiff_backup/rpath.py
===================================================================
RCS file: /sources/rdiff-backup/rdiff-backup/rdiff_backup/rpath.py,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -b -r1.136 -r1.137
--- rdiff_backup/rpath.py       22 Dec 2008 16:57:41 -0000      1.136
+++ rdiff_backup/rpath.py       3 Jan 2009 21:41:53 -0000       1.137
@@ -1491,6 +1491,11 @@
 
        """
        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 @@
        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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]