idl: added bit definition for privilege masks
authorAndrew Tridgell <tridge@samba.org>
Thu, 15 Oct 2009 23:01:28 +0000 (10:01 +1100)
committerJeremy Allison <jra@samba.org>
Fri, 16 Oct 2009 01:52:01 +0000 (18:52 -0700)
When you have backup or restore privileges, you automatically get
extra access bits in ACL interpretation. This adds definitions for the
bits you get.

librpc/gen_ndr/security.h
librpc/idl/security.idl

index 05df02ae8f567463962395d0dfc0cbd95aec948b..297ba18d7f03c49384214527330974b57c5fb104 100644 (file)
 #define SEC_RIGHTS_DIR_WRITE   ( SEC_RIGHTS_FILE_WRITE )
 #define SEC_RIGHTS_DIR_EXECUTE ( SEC_RIGHTS_FILE_EXECUTE )
 #define SEC_RIGHTS_DIR_ALL     ( SEC_RIGHTS_FILE_ALL )
+#define SEC_RIGHTS_PRIV_BACKUP ( SEC_STD_READ_CONTROL|SEC_FLAG_SYSTEM_SECURITY|SEC_GENERIC_READ )
+#define SEC_RIGHTS_DIR_PRIV_BACKUP     ( SEC_RIGHTS_PRIV_BACKUP|SEC_DIR_TRAVERSE )
+#define SEC_RIGHTS_PRIV_RESTORE        ( SEC_STD_WRITE_DAC|SEC_STD_WRITE_OWNER|SEC_FLAG_SYSTEM_SECURITY|SEC_STD_DELETE )
+#define SEC_RIGHTS_DIR_PRIV_RESTORE    ( SEC_RIGHTS_PRIV_RESTORE|SEC_DIR_ADD_FILE|SEC_DIR_ADD_SUBDIR )
 #define STANDARD_RIGHTS_ALL_ACCESS     ( SEC_STD_ALL )
 #define STANDARD_RIGHTS_MODIFY_ACCESS  ( SEC_STD_READ_CONTROL )
 #define STANDARD_RIGHTS_EXECUTE_ACCESS ( SEC_STD_READ_CONTROL )
index 96d24b66859bb9578292c080c33530de019343e8..c24dc64bd79897fe3d1ec2c4741cb69a601c0f4a 100644 (file)
@@ -144,6 +144,21 @@ interface security
        const int SEC_RIGHTS_DIR_EXECUTE  = SEC_RIGHTS_FILE_EXECUTE;
        const int SEC_RIGHTS_DIR_ALL      = SEC_RIGHTS_FILE_ALL;
 
+       /* rights granted by some specific privileges */
+       const int SEC_RIGHTS_PRIV_BACKUP  = SEC_STD_READ_CONTROL | 
+                                           SEC_FLAG_SYSTEM_SECURITY |
+                                           SEC_GENERIC_READ;
+       const int SEC_RIGHTS_DIR_PRIV_BACKUP  = SEC_RIGHTS_PRIV_BACKUP 
+                                             | SEC_DIR_TRAVERSE;
+
+       const int SEC_RIGHTS_PRIV_RESTORE = SEC_STD_WRITE_DAC | 
+                                           SEC_STD_WRITE_OWNER |
+                                           SEC_FLAG_SYSTEM_SECURITY |
+                                           SEC_STD_DELETE;
+       const int SEC_RIGHTS_DIR_PRIV_RESTORE = SEC_RIGHTS_PRIV_RESTORE | 
+                                           SEC_DIR_ADD_FILE |
+                                           SEC_DIR_ADD_SUBDIR;
+
        /* combinations of standard masks. */
        const int STANDARD_RIGHTS_ALL_ACCESS            = SEC_STD_ALL; /* 0x001f0000 */
        const int STANDARD_RIGHTS_MODIFY_ACCESS         = SEC_STD_READ_CONTROL; /* 0x00020000 */