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

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

[Rdiff-backup-commits] Changes to rdiff-backup/rdiff_backup/fs_abilities


From: Ben Escoto
Subject: [Rdiff-backup-commits] Changes to rdiff-backup/rdiff_backup/fs_abilities.py
Date: Thu, 20 Oct 2005 16:20:32 -0400

Index: rdiff-backup/rdiff_backup/fs_abilities.py
diff -u rdiff-backup/rdiff_backup/fs_abilities.py:1.16 
rdiff-backup/rdiff_backup/fs_abilities.py:1.17
--- rdiff-backup/rdiff_backup/fs_abilities.py:1.16      Wed Aug 17 04:11:23 2005
+++ rdiff-backup/rdiff_backup/fs_abilities.py   Thu Oct 20 20:20:29 2005
@@ -43,6 +43,7 @@
        carbonfile = None # True if Mac Carbon file data is supported. 
        name = None # Short string, not used for any technical purpose
        read_only = None # True if capabilities were determined 
non-destructively
+       high_perms = None # True if suid etc perms are (read/write) supported
 
        def __init__(self, name = None):
                """FSAbilities initializer.  name is only used in logging"""
@@ -89,7 +90,8 @@
                                                          ('Hard linking', 
self.hardlinks),
                                                          ('fsync() 
directories', self.fsync_dirs),
                                                          ('Directory inc 
permissions',
-                                                          self.dir_inc_perms)])
+                                                          self.dir_inc_perms),
+                                                         ('High-bit 
permissions', self.high_perms)])
                add_boolean_list([('Access control lists', self.acls),
                                                  ('Extended attributes', 
self.eas),
                                                  ('Mac OS X style resource 
forks',
@@ -149,6 +151,7 @@
                self.set_dir_inc_perms(subdir)
                self.set_resource_fork_readwrite(subdir)
                self.set_carbonfile()
+               self.set_high_perms_readwrite(subdir)
                if override_chars_to_quote is None: 
self.set_chars_to_quote(subdir)
                else: self.chars_to_quote = override_chars_to_quote
                if use_ctq_file: self.compare_chars_to_quote(rbdir)
@@ -378,6 +381,16 @@
                                return
                self.resource_forks = 0
 
+       def set_high_perms_readwrite(self, dir_rp):
+               """Test for writing high-bit permissions like suid"""
+               tmp_rp = dir_rp.append("high_perms")
+               tmp_rp.touch()
+               try:
+                       tmp_rp.chmod(07000)
+                       tmp_rp.chmod(07777)
+               except (OSError, IOError), e: self.high_perms = 0
+               else: self.high_perms = 1
+               tmp_rp.delete()
 
 def get_fsabilities_readonly(desc_string, rp):
        """Return an FSAbilities object with given description_string




reply via email to

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