! File access control record. This record is used by the file system to ! validate access requests and to apply defaults to newly-created files. %constinteger max group membership = 48 %recordformat fsys access fm(%integer user ID, supervisor ID, %integer privileges, %integer groups, %integerarray group(1 : max group membership)) %constinteger fsys access size = 8 + 4 + 4 { + 4 for each group } %constinteger readall privilege = 16_0001 %constinteger no local privilege = 16_0002; ! NB negated for convenience %constinteger admin privilege = 16_0004 %constinteger bootarea privilege = 16_0008 %constinteger no remote privilege = 16_0010; ! User can't log on remotely %constinteger bypass privilege = 16_0020 ! Global authority record. This one contains pointers to all the various ! access control records required by the various file systems. %recordformat access fm(%record(fsys access fm)%name local, %record(*)%name NFS) ! Attributes list, used to obtain and modify file attributes. Passed to the ! various file systems to modify files' attributes, and from the file systems ! to the client interpreters to obtain files' attributes. It doesn't really ! belong here, but it'll do for now (better than FACMess). %recordformat attributes list fm(%record(attributes list fm)%name next, %integer code, status, %integer numeric, (%integer numeric2 %or %string(*)%name textual)) %constinteger file ID attribute = 1 %constinteger file owner attribute = 2 %constinteger file supervisor attribute = 3 %constinteger owner access attribute = 4 %constinteger local access attribute = 5 %constinteger world access attribute = 6 %constinteger group access attribute = 7 %constinteger defined groups attribute = 8 %constinteger file creator attribute = 9 %constinteger static ID attribute = 10 %constinteger audit ID attribute = 11 %constinteger date created attribute = 12 %constinteger date modified attribute = 13 %constinteger date accessed attribute = 14 %constinteger creation name attribute = 15 %constinteger file size attribute = 16 %constinteger file extents attribute = 17 %constinteger file flags attribute = 18 %constinteger first attribute = file ID attribute %constinteger last attribute = file flags attribute %constinteger attribute OK = 0 %constinteger attribute unavailable = -1 %constinteger attribute list overflow = -2 %constinteger unrecognised attribute = -3 %end %of %file