!*** MODULE $ACEDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! + ! ! Access Control list Entry structure definitions ! ! - PARAMETER ACE$C_KEYID = '00000001'X ! Key identifier entry PARAMETER ACE$C_RMSJNL_BI = '00000002'X ! RMS BI journal PARAMETER ACE$C_RMSJNL_AI = '00000003'X ! RMS AI journal PARAMETER ACE$C_RMSJNL_AT = '00000004'X ! RMS AT journal PARAMETER ACE$C_AUDIT = '00000005'X ! Security audit journal entry PARAMETER ACE$C_ALARM = '00000006'X ! Security alarm entry PARAMETER ACE$C_INFO = '00000007'X ! General purpose information PARAMETER ACE$C_RMSJNL_RU_DEFAULT = '00000008'X ! RU journal default volume PARAMETER ACE$C_DIRDEF = '00000009'X ! Directory default protection PARAMETER ACE$C_RMSJNL_RU = '0000000A'X ! RU journal (many per file) PARAMETER ACE$C_SUBSYSTEM_IDS = '0000000B'X ! Protected subsystem ids PARAMETER ACE$C_OIL = '0000000C'X ! Object Information Label PARAMETER ACE$C_NEW_OWNER = '0000000D'X ! Protection for owner ACE PARAMETER ACE$C_POSIX_OWNER = '0000000E'X ! Posix UID/GID (persona) from image PARAMETER ACE$C_MAX_CODE = '0000000F'X ! Maximum ACE type code plus 1 PARAMETER ACE$C_RESERVED = '000000FF'X ! Reserved ACE type PARAMETER ACE$C_APPLICATION = '00000007'X ! Alternate application ACE code PARAMETER ACE$C_CUST = '00000001'X ! Customer defined PARAMETER ACE$C_CSS = '00000002'X ! CSS defined PARAMETER ACE$C_VMS = '00000003'X ! VMS defined PARAMETER ACE$M_SUCCESS = '00000001'X PARAMETER ACE$M_FAILURE = '00000002'X PARAMETER ACE$M_DEFAULT = '00000100'X PARAMETER ACE$M_PROTECTED = '00000200'X PARAMETER ACE$M_HIDDEN = '00000400'X PARAMETER ACE$M_NOPROPAGATE = '00000800'X PARAMETER ACE$M_READ = '00000001'X PARAMETER ACE$M_WRITE = '00000002'X PARAMETER ACE$M_EXECUTE = '00000004'X PARAMETER ACE$M_DELETE = '00000008'X PARAMETER ACE$M_CONTROL = '00000010'X PARAMETER ACE$K_LENGTH = '00000008'X ! Length of the overhead area PARAMETER ACE$C_LENGTH = '00000008'X ! Length of the overhead area PARAMETER ACE$C_RMS_ATTRIBUTES = '00000000'X ! variant of ACE for file attributes PARAMETER ACE$K_RMS_ATTRIBUTES = '00000000'X ! variant of ACE for file attributes PARAMETER ACE$K_RMSATR_MINOR_V50 = '00000002'X ! minor ID for VMS 5.0 PARAMETER ACE$K_RMSATR_MINOR_VDW = '00000002'X ! minor ID for DECwindows V1.0 PARAMETER ACE$C_RMSATR_MINOR_ID = '00000002'X ! current minor ID (obsolete symbol) PARAMETER ACE$K_RMSATR_MINOR_ID = '00000002'X PARAMETER ACE$C_RMSATR_MAJOR_ID = '00000001'X ! current major ID PARAMETER ACE$K_RMSATR_MAJOR_ID = '00000001'X PARAMETER ACE$M_STATISTICS = '00000001'X PARAMETER ACE$M_XLATE_DEC = '00000002'X PARAMETER ACE$S_RMSATR = '00000014'X ! size of RMS file attributes ACE (fixed fields) PARAMETER ACE$S_RMSATR_V50 = '00000014'X ! size of RMS file attributes ACE (fixed fields) PARAMETER ACE$S_RMSATR_VDW = '00000014'X ! size of RMS file attributes ACE (fixed fields) ! Beyond the fixed fields, variable length information will by stored PARAMETER ACE$_RMSATR_ORGANIZATION = '00000001'X ! organizational extension object ID PARAMETER ACE$_RMSATR_SEMANTICS = '00000002'X ! file semantics object ID PARAMETER ACE$K_RMSATR_ORG_MAX_LEN = '00000040'X PARAMETER ACE$K_RMSATR_SEM_MAX_LEN = '00000040'X PARAMETER ACE$S_RMSJNL_RU_DEFAULT = '00000011'X ! length of RMSJNL RU default ACE PARAMETER ACE$M_JOURNAL_DISABLED = '00000001'X PARAMETER ACE$M_BACKUP_DONE = '00000002'X PARAMETER ACE$S_RMSJNL_RU = '00000026'X ! length of RMSJNL RU ACE PARAMETER ACE$S_RMSJNL = '00000032'X ! length of RMSJNL AI/BI/AT ACE PARAMETER ACE$S_OIL_S64I64 = '00000020'X ! Length of Type 0 OIL ACE PARAMETER ACE$S_OIL_S128 = '00000020'X ! Length of Type 1 OIL ACE PARAMETER ACE$S_OIL = '00000020'X ! Maximum OIL ACE Size PARAMETER ACE$M_USERNAME_VALID = '00000001'X PARAMETER ACE$M_UIC_VALID = '00000002'X PARAMETER ACE$M_UID_VALID = '00000004'X PARAMETER ACE$M_GID_VALID = '00000008'X PARAMETER ACE$M_GROUP_MODE_VALID = '00000010'X PARAMETER ACE$M_OTHER = '00000007'X PARAMETER ACE$M_GROUP = '00000038'X PARAMETER ACE$M_USER = '000001C0'X PARAMETER ACE$M_S_IXOTH = '00000001'X PARAMETER ACE$M_S_IWOTH = '00000002'X PARAMETER ACE$M_S_IROTH = '00000004'X PARAMETER ACE$M_S_IXGRP = '00000008'X PARAMETER ACE$M_S_IWGRP = '00000010'X PARAMETER ACE$M_S_IRGRP = '00000020'X PARAMETER ACE$M_S_IXUSR = '00000040'X PARAMETER ACE$M_S_IWUSR = '00000080'X PARAMETER ACE$M_S_IRUSR = '00000100'X PARAMETER ACE$M_S_ISGID = '00000400'X PARAMETER ACE$M_S_ISUID = '00000800'X PARAMETER ACE$S_POSIX_OWNER_LENGTH = '0000003C'X ! Length of POSIX_OWNER ACE STRUCTURE /ACEDEF/ BYTE ACE$B_SIZE ! Size of the entry BYTE ACE$B_TYPE ! Type of entry UNION MAP INTEGER*2 ACE$W_FLAGS ! Type dependent & independent flags END MAP MAP PARAMETER ACE$S_INFO_TYPE = 4 PARAMETER ACE$V_INFO_TYPE = 0 ! INFO ACE subtype BYTE %FILL (1) END MAP MAP PARAMETER ACE$S_RESERVED = 4 PARAMETER ACE$V_RESERVED = 0 ! Count of reserved longwords BYTE %FILL (1) END MAP MAP PARAMETER ACE$S_SUCCESS = 1 PARAMETER ACE$V_SUCCESS = 0 ! Audit or alarm upon success PARAMETER ACE$S_FAILURE = 1 PARAMETER ACE$V_FAILURE = 1 ! Audit ot alarm upon failure BYTE %FILL (1) END MAP MAP PARAMETER ACE$S_DEFAULT = 1 PARAMETER ACE$V_DEFAULT = 8 ! Directory default entry PARAMETER ACE$S_PROTECTED = 1 PARAMETER ACE$V_PROTECTED = 9 ! Protected ACE PARAMETER ACE$S_HIDDEN = 1 PARAMETER ACE$V_HIDDEN = 10 ! Hidden ACE PARAMETER ACE$S_NOPROPAGATE = 1 PARAMETER ACE$V_NOPROPAGATE = 11 ! No propagation between versions BYTE %FILL (1) END MAP END UNION UNION MAP UNION MAP INTEGER*4 ACE$L_ACCESS ! Access rights bitmask END MAP MAP PARAMETER ACE$S_READ = 1 PARAMETER ACE$V_READ = 0 ! Allowed to read PARAMETER ACE$S_WRITE = 1 PARAMETER ACE$V_WRITE = 1 ! Allowed to write PARAMETER ACE$S_EXECUTE = 1 PARAMETER ACE$V_EXECUTE = 2 ! Allowed to execute PARAMETER ACE$S_DELETE = 1 PARAMETER ACE$V_DELETE = 3 ! Allowed to delete PARAMETER ACE$S_CONTROL = 1 PARAMETER ACE$V_CONTROL = 4 ! All privileges of the owner BYTE %FILL (1) END MAP END UNION UNION MAP INTEGER*4 ACE$L_KEY ! Start of the key fields END MAP MAP CHARACTER*16 ACE$T_AUDITNAME ! Start of the security journal name END MAP END UNION END MAP MAP UNION MAP INTEGER*4 ACE$L_INFO_FLAGS ! INFO type application flags END MAP MAP INTEGER*2 ACE$W_APPLICATION_FLAGS ! VMS application flags word INTEGER*2 ACE$W_APPLICATION_FACILITY ! VMS application facility code END MAP END UNION UNION MAP CHARACTER*1 ACE$T_INFO_START ! Start of the information END MAP MAP INTEGER*2 ACE$W_RMSATR_VARIANT ! Which variant of the RMS attributes ACE BYTE ACE$B_RMSATR_FIXLEN ! length of fixed format fields ! (introduced at minor ID 3. Older ! ACE's are assumed to be all fixed form) BYTE %FILL ! currectly unused INTEGER*2 ACE$W_RMSATR_MINOR_ID ! RMS file attributes ACE minor ID INTEGER*2 ACE$W_RMSATR_MAJOR_ID ! RMS file attributes ACE major ID UNION MAP INTEGER*4 ACE$L_RMS_ATTRIBUTE_FLAGS ! RMS file attributes flags definitions END MAP MAP PARAMETER ACE$S_STATISTICS = 1 PARAMETER ACE$V_STATISTICS = 0 ! Statistics monitoring enabled on th PARAMETER ACE$S_XLATE_DEC = 1 PARAMETER ACE$V_XLATE_DEC = 1 ! File semantics are DEC-local BYTE %FILL (1) END MAP END UNION ! using a {field-type, length, value} scheme. This allows extensibility ! and compact representation. ! ! field types are: END MAP END UNION END MAP MAP CHARACTER*12 ACE$T_VOLNAM ! Volume name of journal file BYTE ACE$B_VOLNAM_LEN ! Length of volume name of journal file BYTE ACE$B_RJRVER ! RMS journal file structure level UNION MAP INTEGER*2 ACE$W_FID(1:3) ! file id END MAP MAP INTEGER*2 ACE$W_FID_NUM ! file number INTEGER*2 ACE$W_FID_SEQ ! sequence number UNION MAP INTEGER*2 ACE$W_FID_RVN ! relative volume number END MAP MAP BYTE ACE$B_FID_RVN ! alternate format RVN BYTE ACE$B_FID_NMX ! alternate format file number extension END MAP END UNION END MAP END UNION UNION MAP INTEGER*2 ACE$W_RMSJNL_FLAGS END MAP MAP PARAMETER ACE$S_JOURNAL_DISABLED = 1 PARAMETER ACE$V_JOURNAL_DISABLED = 0 ! journaling disabled ! (AI, BI, AT only; set by BACKUP) PARAMETER ACE$S_BACKUP_DONE = 1 PARAMETER ACE$V_BACKUP_DONE = 1 ! BACKUP done on this file; ! RMS needs to write a backup marker ! (AI, BI, AT only; set by BACKUP) BYTE %FILL (1) END MAP END UNION INTEGER*4 ACE$L_JNLIDX ! journal stream index number INTEGER*4 ACE$Q_CDATE(2) ! creation date/time of journal INTEGER*4 ACE$L_BACKUP_SEQNO ! BACKUP sequence number (to ! find where to start in journal). INTEGER*4 ACE$Q_MODIFICATION_TIME(2) ! timestamp of last backup or last ! journal entry recovered. END MAP MAP INTEGER*4 ACE$L_SPARE1 ! For alignment INTEGER*4 ACE$L_SYS_PROT ! Default system protection INTEGER*4 ACE$L_OWN_PROT ! Default owner protection INTEGER*4 ACE$L_GRP_PROT ! Default group protection INTEGER*4 ACE$L_WOR_PROT ! Default world protection END MAP MAP INTEGER*4 ACE$L_SPARE2 ! For alignment INTEGER*4 ACE$Q_IMAGE_IDS(2) ! Start of the image ids (a ! quadword for each identifier) END MAP MAP INTEGER*4 ACE$L_OIL_FLAGS ! For Alignment INTEGER*4 ACE$L_BRAND_NAME ! OIL Type-Specific Info CHARACTER*1 ACE$R_CLASS_PROT ! OIL Class Block END MAP ! - POSIX_OWNER ACE, Persona from Image - ! Process effective persona derived from image activation. ! Support for POSIX/COE effective UID/GID identities granted ! to a process if the image has this ACE and it is valid. ! The UID and GID are extensions to the Persona Security Block ! (PSBDEF). ! ! Currently, only the SUID, SGID, GID and POSIX_MODE (GROUP) ! fields are supported. VMS_GRP_PROT is also used internally. ! MAP UNION MAP INTEGER*4 ACE$L_POSIX_FLAGS ! POSIX_OWNER Flags END MAP MAP PARAMETER ACE$S_USERNAME_VALID = 1 PARAMETER ACE$V_USERNAME_VALID = 0 ! Validates Posix username PARAMETER ACE$S_UIC_VALID = 1 PARAMETER ACE$V_UIC_VALID = 1 ! Validates Posix UIC PARAMETER ACE$S_UID_VALID = 1 PARAMETER ACE$V_UID_VALID = 2 ! Validates Posix User ID PARAMETER ACE$S_GID_VALID = 1 PARAMETER ACE$V_GID_VALID = 3 ! Validates Posix Group ID PARAMETER ACE$S_GROUP_MODE_VALID = 1 PARAMETER ACE$V_GROUP_MODE_VALID = 4 ! Validates Posix mode for Group file pr BYTE %FILL (1) END MAP END UNION CHARACTER*32 ACE$T_POSIX_USERNAME ! Posix Username UNION MAP INTEGER*4 ACE$L_POSIX_UIC ! Posix UIC END MAP MAP INTEGER*2 ACE$W_POSIX_MEM ! Member number in UIC INTEGER*2 ACE$W_POSIX_GRP ! Group number in UIC END MAP END UNION INTEGER*4 ACE$L_POSIX_UID ! Posix User ID INTEGER*4 ACE$L_POSIX_GID ! Posix Group ID UNION MAP INTEGER*4 ACE$L_POSIX_MODE ! Posix file protection (mode) END MAP MAP PARAMETER ACE$S_OTHER = 3 PARAMETER ACE$V_OTHER = 0 ! Other Permissions PARAMETER ACE$S_GROUP = 3 PARAMETER ACE$V_GROUP = 3 ! Group Permissions PARAMETER ACE$S_USER = 3 PARAMETER ACE$V_USER = 6 ! User Permissions BYTE %FILL (2) END MAP MAP ! - Other Permissions - PARAMETER ACE$S_S_IXOTH = 1 PARAMETER ACE$V_S_IXOTH = 0 ! Posix mode - other execute PARAMETER ACE$S_S_IWOTH = 1 PARAMETER ACE$V_S_IWOTH = 1 ! Posix mode - other write PARAMETER ACE$S_S_IROTH = 1 PARAMETER ACE$V_S_IROTH = 2 ! Posix mode - other read ! - Group Permissions - PARAMETER ACE$S_S_IXGRP = 1 PARAMETER ACE$V_S_IXGRP = 3 ! Posix mode - group execute PARAMETER ACE$S_S_IWGRP = 1 PARAMETER ACE$V_S_IWGRP = 4 ! Posix mode - group write PARAMETER ACE$S_S_IRGRP = 1 PARAMETER ACE$V_S_IRGRP = 5 ! Posix mode - group read ! - User Permissions - PARAMETER ACE$S_S_IXUSR = 1 PARAMETER ACE$V_S_IXUSR = 6 ! Posix mode - user execute PARAMETER ACE$S_S_IWUSR = 1 PARAMETER ACE$V_S_IWUSR = 7 ! Posix mode - user write PARAMETER ACE$S_S_IRUSR = 1 PARAMETER ACE$V_S_IRUSR = 8 ! Posix mode - user read PARAMETER ACE$S_S_SPARE = 1 PARAMETER ACE$V_S_SPARE = 9 ! Blank bit field ! - SxID Bits - PARAMETER ACE$S_S_ISGID = 1 PARAMETER ACE$V_S_ISGID = 10 ! Posix set group ID on execution PARAMETER ACE$S_S_ISUID = 1 PARAMETER ACE$V_S_ISUID = 11 ! Posix set user ID on execution BYTE %FILL (2) END MAP END UNION INTEGER*4 ACE$L_VMS_GRP_PROT ! Posix to VMS Group Prot. END MAP ! End - POSIX_OWNER ACE END UNION END STRUCTURE ! ACEDEF !DEC$ END OPTIONS