diff options
author | dgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2006-11-05 01:19:37 +0000 |
---|---|---|
committer | dgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2006-11-05 01:19:37 +0000 |
commit | 4363435f2a366add774059111a1e405c6f700d76 (patch) | |
tree | df023f151684f09d8564e23b72fe2a7f4660c4f8 | |
parent | 1f00040a3541728a517176d318f0c099a3f813c1 (diff) | |
download | rdiff-backup-4363435f2a366add774059111a1e405c6f700d76.tar.gz |
Set symlink permissions properly. (Patch from Andrew Ferguson.)
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@758 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-rw-r--r-- | rdiff-backup/CHANGELOG | 2 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/rpath.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index 70bd2bc..42da38d 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -1,6 +1,8 @@ New in v1.1.6 (????/??/??) -------------------------- +Set symlink permissions properly. (Patch from Andrew Ferguson.) + Selection fix: empty directories could sometimes be improperly excluded if certain include expressions involving a non-trailing '**' were used. Bug reported by Toni Price. diff --git a/rdiff-backup/rdiff_backup/rpath.py b/rdiff-backup/rdiff_backup/rpath.py index 8d6a302..0b527b5 100644 --- a/rdiff-backup/rdiff_backup/rpath.py +++ b/rdiff-backup/rdiff_backup/rpath.py @@ -100,7 +100,12 @@ def copy(rpin, rpout, compress = 0): if rpin.isreg(): return copy_reg_file(rpin, rpout, compress) elif rpin.isdir(): rpout.mkdir() - elif rpin.issym(): rpout.symlink(rpin.readlink()) + elif rpin.issym(): + # some systems support permissions for symlinks, but + # only by setting at creation via the umask + os.umask(0777 - rpin.getperms()) + rpout.symlink(rpin.readlink()) + os.umask(077) # restore rdiff-backup standard umask elif rpin.ischardev(): major, minor = rpin.getdevnums() rpout.makedev("c", major, minor) |