Google
 

Trailing-Edge - PDP-10 Archives - dec-10-omona-u-mc9 - fld1.rnd
There are no other files named fld1.rnd in the archive.
.;18-MAR-77-GR
\\
.LM0.RM70.F.J.FLAG CAP.SP1.TS5
^^FILDAE.DOC\\ -- ^V1(16)
.BR
^FEBRUARY 1977
.FG30
^COPYRIGHT (^C) 1976,1977
.BR
^DIGITAL ^EQUIPMENT ^CORPORATION, ^MAYNARD, ^MASS.
.B 2
^THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
OF THE ABOVE COPYRIGHT NOTICE. ^THIS SOFTWARE, OR ANY OTHER
COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
AGREES TO THESE LICENSE TERMS. ^TITLE TO AND OWNERSHIP OF THE
SOFTWARE SHALL AT ALL TIMES REMAIN IN ^^DEC\\.
.B 1
^THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ^DIGITAL
^EQUIPMENT ^CORPORATION.
.B 1
^^DEC\\ ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY ^^DEC\\.
.T <FLD1.DOC
.PG
^^FILDAE.DOC\\ -- ^V1(16)
.BR
^FEBRUARY 1977
.B3
1.0	<SUMMARY
.B1
^THE SUPPORT FOR A ^FILE ^DAEMON, IN THE 6.03 ^MONITOR,
PROVIDES FOR EXTENDED FILE PROTECTION. ^THE ^FILE ^DAEMON DESCRIBED IN THIS
<.DOC FILE IS A PROTOTYPE THAT YOU MAY USE TO HELP YOU IN UNDERSTANDING
THE MONITOR SUPPORT FOR THIS FEATURE. ^THE ^FILE ^DAEMON IS BEING SUPPLIED
TO SERVE AS A PROTOTYPE FOR THE ^FILE ^DAEMON YOU MAY DESIRE AT YOUR
INSTALLATION. ^INSTALLATIONS WILL HAVE VARYING TYPES OF ACCOUNTING
AND FILE SECURITY MEASURES AT THESE INSTALLATIONS.
^THEREFORE, EACH INSTALLATION'S ^FILE ^DAEMON MAY BE WRITTEN TO ACCOUNT
FOR THESE DIFFERENCES AND REQUIREMENTS. ^THE <DIGITAL<-SUPPLIED PROTOTYPE ^FILE
^DAEMON SUPPORTS ACCESS LISTS AND ACCESS LOGGING WHICH IS PERFORMED ON A
USER'S OR A SYSTEM ADMINISTRATOR'S REQUEST.
.B2
1.1	<BIBIOGRAPHY
.B1
603.<MCO LISTS THE MONITOR CHANGES MADE TO SUPPORT A ^FILE ^DAEMON.
^IN PARTICULAR, REFER TO <MCO NUMBER 6370 FOR A DESCRIPTION OF WHEN THE
MONITOR PASSES CONTROL TO THE ^FILE ^DAEMON.
.B3
2.0	^^EXTERNAL CHANGES (USER INTERFACE)\\
.B1
^THE ^FILE ^DAEMON ALLOWS ANY USER TO SPECIFY WHO CAN (AND CANNOT) ACCESS
THEIR FILES. ^EACH USER MAY CREATE A FILE CALLED <ACCESS.USR (WHICH IS
DESCRIBED IN SECTION 2.2). ^THIS FILE OPTIONALLY LISTS THE NAMES OF SOME OR ALL OF THAT USER'S
FILES AND SPECIFIES, ON AN INDIVIDUAL FILE BASIS, THE USERS WHO CAN
AND CANNOT ACCESS THOSE FILES. ^UNDER SPECIFIC CONDITIONS, THE
^FILE ^DAEMON EXAMINES THE USER'S <ACCESS.USR FILE AND MAY RECORD
INFORMATION REGARDING SPECIFIC ACCESS REQUESTS TO THE LISTED FILES
IN A SEPARATE FILE CALLED <ACCESS.LOG.
.B2
2.1	^THE ^FILE ^DAEMON
.B1
^THE MONITOR CALLS THE ^FILE ^DAEMON (ONLY IF THE MONITOR
FEATURE TEST SWITCH <FTFDAE#=#-#1) EACH
TIME THAT SOMEONE TRIES TO ACCESS A FILE THAT HAS A 4, 5, 6, OR 7
PROTECTION CODE IN THE OWNER'S PROTECTION CODE FIELD AND THE ACCESS FAILS
DUE TO A PROTECTION ERROR OR DUE TO ANY PROTECTION ERROR BECAUSE OF THE 
DIRECTORY PROTECTION CODE. ^FOR EXAMPLE, IF YOU PROTECT A FILE AGAINST A
SPECIFIC USER AND THAT USER ATTEMPTS ACCESS TO YOUR FILE (E.G., <LOOKUP,
<ENTER, <RENAME), THE MONITOR SUSPENDS THE EXECUTION OF THE USER'S 
PROGRAM AND IT SENDS A MESSAGE TO THE ^FILE ^DAEMON. ^THIS MESSAGE INCLUDES
THE TYPE OF ACCESS THE USER IS ATTEMPTING AND THAT USER'S PROJECT-PROGRAMMER
NUMBER. ^THE ^FILE ^DAEMON IS GIVEN CONTROL, AND IT LOOKS FOR YOUR FILE
CALLED <ACCESS.USR (WHICH MUST BE ON THE SAME FILE STRUCTURE AS THE FILE
BEING ACCESSED AND WHICH SHOULD BE IN THE SAME DIRECTORY AREA AS THE FILE
BEING ACCESSED). ^AFTER EXAMINING <ACCESS.USR, THE ^FILE ^DAEMON RETURNS
TO THE MONITOR THE HIGHEST TYPE OF ACCESS YOU HAVE SPECIFIED THAT THIS
USER CAN HAVE TO YOUR FILE AND IT LOGS THE ACCESS REQUEST IN <ACCESS.LOG
(IF YOU SET THE </LOG SWITCH IN YOUR <ACCESS.USR). ^ALL OF THIS
OCCURS EVEN WHEN YOU ATTEMPT TO ACCESS YOUR OWN FILE, IF THAT FILE HAS
A 4, 5, 6, OR 7 PROTECTION CODE IN THE OWNER'S PROTECTION CODE FIELD.
^HOWEVER, AS THE FILE'S OWNER, YOU CAN READ YOUR FILE AND CHANGE ITS
PROTECTION CODE WITHOUT HAVING THE ^FILE ^DAEMON CALLED. ^DEPENDING
ON THE INFORMATION YOU SPECIFIED IN YOUR <ACCESS.USR, THE ^FILE ^DAEMON
EITHER GRANTS OR DENIES ACCESS TO THE ACCESSING USER.
.B1
^IF THE MONITOR ATTEMPTS TO PASS CONTROL TO THE ^FILE ^DAEMON, BUT IT IS
NOT RUNNING, THE ACCESSING USER IS DENIED ACCESS TO THE FILE UNLESS THE
PROGRAM HAS FULL FILE ACCESS RIGHTS ([1,2] OR <JACCT). ^THE SAME RESULT
OCCURS WHEN ONE OF THE FOLLOWING CONDITIONS OCCURS:
.B1.LM9.TS9.I-4
1.	^THE ^FILE ^DAEMON CANNOT FIND <ACCESS.USR IN THE SAME PATH AS
THE FILE TO-BE-ACCESSED.
.B1.I-4
2.	^THE ^FILE ^DAEMON CANNOT FIND <ACCESS.USR IN A HIGHER-LEVEL
DIRECTORY, WHEN A SCAN UP THE DIRECTORY STRUCTURE IS MADE.
.B2.LM0.TS5
^IF THE ^FILE ^DAEMON FINDS <ACCESS.USR BUT CANNOT FIND THE ACCESSED 
FILE NAME IN <ACCESS.USR, THE ^FILE ^DAEMON DENIES THAT USER ACCESS TO
YOUR FILE. ^ACCESS IS ALSO DENIED TO THAT USER IF THE FILE NAME IS FOUND
IN <ACCESS.USR BUT THE ACCESSING USER'S PROJECT-PROGRAMMER NUMBER DOES NOT
MATCH ANY OF THE PROJECT-PROGRAMMER NUMBERS YOU HAVE SPECIFIED THAT MAY
HAVE ACCESS TO YOUR FILE.
.B2
^ALL FILES LISTED IN YOUR <ACCESS.USR ARE ASSUMED TO BE IN THE SAME <UFD
AS THE FILE <ACCESS.USR. ^HOWEVER, IF YOUR <ACCESS.USR IS IN YOUR
<UFD AND DESCRIBES THE TYPE OF ACCESS TO BE ALLOWED TO FILES
CONTAINED IN <SFD<S THE FULL PATH TO THE FILE IN THE <SFD MUST BE
SPECIFIED BEFORE THE ^FILE ^DAEMON WILL CONSIDER THE
FILE SPECIFICATIONS TO MATCH.
^THE ^FILE ^DAEMON TREATS ALL FILE ACCESSORS THE
SAME. ^ALL ACCESSES TO A FILE HAVING A 4, 5, 6, OR 7 PROTECTION
CODE IN THE OWNER'S PROTECTION CODE FIELD CAUSE THE ^FILE ^DAEMON TO BE
CALLED WHEN A PROTECTION ERROR OCCURS.
^THE ^FILE ^DAEMON IS ALWAYS CALLED WHEN A PROTECTION ERROR OCCURS AS A
RESULT OF THE DIRECTORY PROTECTION CODE. ^BECAUSE OF THIS EQUAL TREATMENT,
YOU SHOULD NOTE THE FOLLOWING:
.B2.LM9.TS9.I-4
1.	^IF A [1,2] JOB ATTEMPTS TO ACCESS A FILE THAT IS PROTECTED
SUCH THAT THE ^FILE ^DAEMON IS CALLED, THAT JOB MAY BE DENIED ACCESS TO 
THE FILE. ^THIS IS A POSSIBLE PROBLEM, FOR EXAMPLE, IF THE [1,2] JOB
IS <FAILSA OR <BACKUP AND YOU HAVE DENIED (EITHER IMPLICITLY OR 
EXPLICITY) THESE PROGRAMS ACCESS TO YOUR FILES. ^WHEN YOU DO THIS, YOUR FILE
WILL NOT BE FAILSAFED. ^THEREFORE, YOU MUST ACCEPT THE RESPONSIBILITY
FOR FAILSAFING YOUR OWN FILES.
.TP5.B1.I-4
2.	^IN GENERAL, FULL FILE ACCESS PROGRAMS WILL NOT BE ALLOWED TO READ
YOUR FILES. ^THEREFORE, UNDER MOST CIRCUMSTANCE, <QUEUE WOULD NOT BE ALLOWED
TO QUEUE A FILE THAT WAS PROTECTED SUCH THAT THE ^FILE ^DAEMON WAS CALLED.
.B1.I-4
3.	^IF THE FILE'S OWNER PROTECTION CODE FIELD IS SUCH THAT THE 
THE ^FILE ^DAEMON IS CALLED AND THE OWNER HAS NEGLECTED TO INCLUDE HIS
OWN PROJECT-PROGRAMMER NUMBER IN <ACCESS.USR FOR THIS FILE, THE ^FILE
^DAEMON GRANTS THE OWNER THE SAME TYPE OF ACCESS AS IF A 7 WERE IN THE
OWNER'S PROTECTION CODE FIELD (THE OWNER CAN ONLY READ OR CHANGE THE
PROTECTION OF THE FILE).
.B1.I-4
4.	<ACCESS.USR FILES MAY BE RESTORED AT ARBITRARY TIMES. ^THEREFORE,
A FULL RESTORE OF THE DISK USING <BACKUP OR <FAILSA SHOULD NOT BE
DONE WHEN THE ^FILE ^DAEMON IS RUNNING. ^IF SUCH A FULL RESTORE IS DONE,
THE ACTION MAY NOT ALLOW <BACKUP/FAILSA TO RESTORE FILES THAT
<ACCESS.USR ALLOWS THEM TO BACKUP.
.B1.I-4
5.	^THE <CHKACC <UUO WILL TELL A PROGRAM WHAT A
USERS FILE ACCESS PRIVILEGES ARE. ^THUS BY USING <CHKACC, A PROGRAM
CAN TELL IF THE ^FILE ^DAEMON WILL BE CALLED, BUT THE ACCESS PRIVILEGES
RETURNED BY THE ^FILE ^DAEMON ARE NOT KNOWN.
.B2.LM0.TS5
2.2	<ACCESS.USR
.B1
^EVERY USER CAN CREATE THEIR OWN <ACCESS.USR FILE. <ACCESS.USR IS
MADE UP OF ONE OR MORE 'COMMAND LINES'. ^EACH 'COMMAND LINE' MUST BE WRITTEN
IN THE FOLLOWING FORMAT:
.B1.I10
FILE-SPEC/SWITCHES=[PPN]/SWITCHES,...,[PPN]/SWITCHES
.B1
^THE FILE-SPEC IS A FULL FILE SPECIFICATION (I.E., DEVICE: FILENAME.EXTENSION[PATH].
^THE ^FILE ^DAEMON SCANS EACH LINE OF <ACCESS.USR UNTIL IT MATCHES
A FILE-SPEC ON THE LEFT OF THE EQUAL SIGN AND A PPN ON THE RIGHT.
^ALL ACCESS RIGHTS WILL THEN BE DETERMINED BY THAT LINE (THERE WILL BE
NO CONTINUED SCAN). ^THE USER SHOULD MINIMALLY SPECIFY ONE OF THE SWITCHES
SYNONYMOUS WITH PROTECTION CODES (<READ,EXECUTE,ALL,..) FOR THAT FILE-SPEC.
^IF NO SWITCH IS SPECIFIED, A DEFAULT OF /<NONE IS PROVIDED.
^THE POSSIBLE SWITCHES ARE LISTED BELOW:
.B2.TS30
^SWITCH	^MEANING
.B2.LM9.TS9,13,18.I-9
/<LOG - /<NOLOG
.B1
^THIS SWITCH CAUSES THE ^FILE ^DAEMON TO LOG ANY ACCESS ATTEMPT
IN THE FILE <ACCESS.LOG. ^IF THIS SWITCH IS SPECIFIED, A <LOG ENTRY
IS APPENDED TO THE END OF <ACCESS.LOG, WHICH IS FOUND IN THE SAME DIRECTORY
AS YOUR <ACCESS.USR. ^THE LOG ENTRY INCLUDES THE FOLLOWING:
.B1
	THE DATE OF THE ACCESS
.BR
	THE TIME OF THE ACCESS
.BR
	THE JOB NUMBER OF THE ACCESSING JOB
.BR
	THE PROJECT-PROGRAMMER NUMBER AND NAME
.BR
		ASSOCIATED WITH THE ACCESSING JOB
.BR
	THE NAME OF THE ACCESSING PROGRAM
.BR
	THE TYPE OF ACCESS ATTEMPTED
.BR
	THE FULL FILE SPECIFICATION OF THE ACCESSED FILE
.BR
	THE ACCESS PERMITTED, DETAILING WHETHER ACCESS WAS
.BR
			PERMITTED TO THE FILE
.B1
^IF THE /<EXIT OR /<CLOSE SWITCH (DESCRIBED BELOW) IS ALSO
SPECIFIED, THE FOLLOWING INFORMATION IS ALSO INCLUDED IN THE <LOG ENTRY:
(BOTH IN THE INITIAL ENTRY AND AGAIN WHEN THE FILE IS CLOSED)
.B1
	THE ACCESSING JOB'S RUN TIME
.BR
	KILO-CORE-SECONDS
.BR
	DISK READS
.BR
	DISK WRITES
.B1
^IF THE ^FILE ^DAEMON CANNOT FIND <ACCESS.LOG IN YOUR AREA, IT CREATES ONE,
GIVING IT THE SAME PROTECTION CODE AS YOUR <ACCESS.USR. ^NOTE
THAT THE ^FILE ^DAEMON CAN ALWAYS ACCESS <ACCESS.USR AND <ACCESS.LOG.
.B2.I-9
/<LOG:SWITCH VALUE
.B1
^THIS SWITCH ALLOWS CONDITIONAL LOGGING BASED ON THE SWITCH VALUE. THE
FOLLOWING ARE LEGAL SWITCH VALUES:
.B1
<ALL - LOG ALL ACCESSES ATTEMPTED (SAME AS /<LOG).
.B1
<NONE - DO NOT LOG ACCESSES (SAME AS /<NOLOG).
.B1
<SUCCESSES - LOG ONLY THOSE ACCESSES WHICH WERE PERMITED TO SUCCEED.
.B1
<FAILURES - LOG ONLY THOSE ACCESSES WHICH WERE NOT PERMITED.
.B2.I-9
/<CLOSE - /<NOCLOSE
.B1
^IF THE /<LOG SWITCH AND THE /<CLOSE SWITCH ARE SPECIFIED, THE
^FILE ^DAEMON MAKES THE LOG ENTRY IN <ACCESS.LOG WHEN THE FILE IS CLOSED.
.B2.I-9
/<EXIT - /<NOEXIT
.B1
^IF A PROGRAM IS EXECUTING AND THE /<LOG AND /<EXIT SWITCHES
HAVE BEEN SPECIFIED, THE ^FILE ^DAEMON MAKES THE LOG ENTRY WHEN THE PROGRAM
HAS FINISHED EXECUTION.
.B2.I-9
/<CREATE - /<NOCREATE
.B1
^THE /<CREATE SWITCH ALLOWS A USER WHO WOULD ORDINARILY
NOT BE ALLOWED TO CREATE FILES IN YOUR DIRECTORY TO DO SO.
^THIS SWITCH IS USED IN CONJUNCTION WITH ONE OF THE
<ACCESS.USR SWITCHES THAT ARE SYNONOMOUS WITH PROTECTION CODES (E.G.,
/<RENAME). ^THIS SWITCH CAN APPEAR ON EITHER SIDE OF THE EQUAL SIGN. ^AN
EXAMPLE OF A COMMAND LINE WITH THE /<CREATE SWITCH IS
.B1
<WONDER.TST/CREATE/NONE=[*,*]
.B1
WHICH ALLOWS ANY USER TO CREATE <WONDER.TST IN YOUR DIRECTORY, BUT NONE OF THOSE USERS MAY
HAVE ANY OTHER ACCESS TO THAT FILE. ^ANOTHER EXAMPLE IS
.B1
<WONDER.TST=[10,3333]/CREATE/READ[*,*]/NONE
.B1
WHICH PREVENTS ALL USERS FROM ACCESSING THE FILE <WONDER.TST, BUT ALLOWS
USER [10,3333] TO CREATE THE FILE <WONDER.TST.
.B2.I-9
/<PROTECTION<:NNN
.B1
^THIS SWITCH SPECIFIES THE PROTECTION CODE WITH WHICH A FILE WILL BE CREATED.
^THIS SWITCH IS ALLOWED ONLY ON THE LEFT SIDE OF THE EQUAL SIGN.
^THE VALUE NNN MUST BE AN OCTAL NUMBER IN THE RANGE 0-777.
^THE FILE IS CREATED WITH THE
SPECIFIED PROTECTION CODE IF THE FOLLOWING CONDITIONS OCCUR:
.B1.LM13.TS13,18.I-4
1.	^THE /<PROTECTION SWITCH IS SPECIFIED.
.B1.I-4
2.	^THE ^FILE ^DAEMON IS CALLED BECAUSE A USER ATTEMPTS TO
CREATE A FILE IN YOUR DIRECTORY PROTECTED AGAINST THAT USER.
.B1.I-4
3.	^THE ^FILE ^DAEMON ALLOWS THE USER TO CREATE THE FILE
(DETERMINED BY THE CONTENTS OF <ACCESS.USR).
.B2.LM9.TS9,13,18.I-9
/<PROGRAM<:FILE-SPEC
.B1
^THIS SWITCH ALLOWS THE SPECIFIED PROGRAM TO HAVE THE SPECIFIED TYPE
OF ACCESS TO THE FILE. ^THIS SWITCH CAN ONLY APPEAR ON THE RIGHT
SIDE OF THE EQUAL SIGN IN THE COMMAND LINE. ^FOR EXAMPLE:
.B1
<ONE.TST/READ=[10,10],[10,65]/WRITE,[1,2]/PROGRAM:SYS:BACKUP
.B1
WHERE [10,10] JOBS CAN READ <ONE.TST; [10,65] JOBS CAN READ AND WRITE
<ONE.TST; A JOB LOGGED IN UNDER [1,2] RUNNING <BACKUP CAN READ THE FILE.
^NO OTHER USERS CAN ACCESS <ONE.TST.
.B1
^YOU MAY OMIT THE DEVICE SPECIFICATION OR YOU MAY SPECIFY <DSK: OR <ALL:
IN THE FILE-SPEC ARGUMENT TO THE <PROGRAM SWITCH. ^HOWEVER, THIS IS NOT A 
RECOMMENDED PROCEDURE BECAUSE THERE MAY BE POTENTIAL SECURITY VIOLATIONS.
^THE ^FILE ^DAEMON HAS NO KNOWLEDGE OF YOUR SEARCH LIST; THEREFORE, 
<DSK: IS TREATED IDENTICALLY TO <ALL:. ^IT IS RECOMMENDED THAT THE DEVICE
NAME BE EITHER A FILE STRUCTURE NAME OR AN ERSATZ DEVICE (<LIB: IS NOT ALLOWED,
THOUGH).
.B2.I-9
/<XONLY	^THIS SWITCH, WHEN IT APPEARS IN CONJUNCTION WITH THE /<PROGRAM
SWITCH, WILL CONSIDER THE PROGRAM SPECIFIED IN THE FILE SPEC
ARGUMENT TO THE /<PROGRAM SWITCH TO MATCH THE PROGRAM DOING THE ACCESSING
ONLY IF THIS ACCESSING PROGRAM IS EXECUTE ONLY.
.B2.I-9
/<ALL	<ALL ACCESS IS ALLOWED WHEN THIS SWITCH IS SPECIFIED. 
^SPECIFIED ACCESSORS OF THIS FILE CAN CHANGE THE PROTECTION OF THE
FILE, RENAME, WRITE, EXECUTE, UPDATE, AND APPEND TO THE FILE. (^THIS IS
THE SAME AS PROTECTION CODE 0).
.TP5.B2.I-9
/<RENAME	^RENAME ACCESS IS  ALLOWED. ^SPECIFIED ACCESSORS OF
THIS FILE CAN RENAME, WRITE, READ, EXECUTE, UPDATE, AND APPEND TO THE
FILE. (^THIS IS THE SAME AS PROTECTION CODE 1).
.B2.I-9
/<WRITE	^WRITE ACCESS IS ALLOWED. ^SPECIFIED ACCESSORS OF THIS FILE CAN
WRITE, READ, EXECUTE, UPDATE, AND APPEND TO THE FILE. (^THIS IS THE
SAME AS PROTECTION CODE 2).
.B2.I-9
/<UPDATE	^UPDATE ACCESS IS ALLOWED. ^SPECIFIED ACCESSORS OF THIS
FILE CAN UPDATE, APPEND, READ, OR EXECUTE THE FILE. (^THIS IS THE SAME AS
PROTECTION CODE 3).
.B2.I-9
/<APPEND	^APPEND ACCESS IS ALLOWED. ^SPECIFIED ACCESSORS OF THIS 
FILE CAN APPEND, READ, OR EXECUTE THE FILE. (^THIS IS THE SAME AS
PROTECTION 4).
.B2.I-9
/<READ	^READ ACCESS IS ALLOWED. ^SPECIFIED ACCESSORS OF THIS FILE CAN READ
OR EXECUTE THE FILE. (^THIS IS THE SAME AS PROTECTION CODE 5).
.B2.I-9
/<EXECUTE	^EXECUTE ACCESS IS ALLOWED. ^SPECIFIED ACCESSORS OF THIS FILE
CAN ONLY EXECUTE THE FILE. (^THIS IS THE SAME AS PROTECTION CODE 6).
.B2.I-9
/<NONE	^NO ACCESS IS ALLOWED TO THE FILE. (^THIS IS THE SAME AS PROTECTION CODE 7).
.B2.I-9
.B2.LM0.TS5
<ACCESS.USR IS USED TO SPECIFY FOR EACH FILE WHICH PROJECT-PROGRAMMER
NUMBERS CAN ACCESS YOUR FILES AND WHAT TYPE OF ACCESS THOSE ACCESSORS
CAN HAVE TO THE FILE. ^THE SWITCHES INDICATE THE TYPE OF ACCESS ALLOWED.
.B1
^SWITCHES THAT APPEAR ON THE LEFT SIDE OF THE EQUAL SIGN 
 AFFECT ALL PROJECT-PROGRAMMER
NUMBERS APPEARING ON THE RIGHT SIDE OF THE EQUAL SIGN. ^HOWEVER,
WITH THE EXCEPTION OF THE /<PROTECTION SWITCH, THE SWITCH
ON THE LEFT CAN BE OVERRIDDEN FOR ONE OR MORE PROJECT-PROGRAMMER
NUMBERS ON THE RIGHT BY EXPLICITLY SPECIFYING ANOTHER SWITCH. ^FOR
EXAMPLE, IF THE FOLLOWING LINE APPEARED IN YOUR <ACCESS.USR:
.B2.I10
<TEST.TST/ALL=[10,*],[11,*],[27,*],[17,*]/NONE
.B2
THE ^FILE ^DAEMON WOULD ALLOW ALL MEMBERS OF PROJECTS 10, 11, AND 27 TO
HAVE COMPLETE ACCESS TO THE FILE <TEST.TST. ^HOWEVER, MEMBERS OF PROJECT 17
WOULD BE DENIED ACCESS TO <TEST.TST. ^FOR <PPN<'S OTHER THAN 10, 11, 27, 17, THE ^FILE
^DAEMON WOULD SEARCH FOR A LATER <TEST.TST WHICH CONTAINED THE ACCESSING
<PPN. ^IF NO MATCH IS FOUND, THE ACCESSING <PPN<'S REQUEST IS DENIED.
.B1
^FULL WILD CARD SPECIFICATIONS ARE ALLOWED BOTH ON THE LEFT AND RIGHT
SIDE OF THE EQUAL SIGN. ^COMMENTS AND CONTINUATION LINES ARE ALLOWED IN <ACCESS.USR.
^A COMMENT ON A LINE OR A COMMENT LINE MUST BEGIN WITH A SEMICOLON OR AN EXPLANATION POINT. ^A
CONTINUATION LINE IS INDICATED BY INSERTING A HYPHEN (MINUS SIGN)
IMMEDIATLY PROCEEDING THE _<<CR> WHICH TERMINATES THE CURRENT LINE.
 ^IF THERE IS A SYNTAX ERROR IN A LINE IN
<ACCESS.USR, THAT LINE IS IGNORED. ^YOU SHOULD ENSURE THE ACCURACY OF 
YOUR OWN <ACCESS.USR FILES BY PROOFING CAREFULLY. ^IF THE FOLLOWING LINE
WERE IN YOUR <ACCESS.USR:
.B1.I10
<FOO.BAR+[*,*]
.B1
THE LINE WOULD BE IGNORED BECAUSE A + SIGN APPEARED WHERE AN = SIGN SHOULD
HAVE APPEARED. ^ALL USERS WILL BE DENIED ACCESS TO <FOO.BAR SINCE THE
^FILE ^DAEMON DENIES ACCESS TO ALL FILES NOT APPEARING IN <ACCESS.USR.
^SINCE THE ^FILE ^DAEMON IGNORES THE LINE, IT DOES NOT KNOW THAT <FOO.BAR
IS LISTED IN THE FILE.
.LM0.B2
<EXAMPLE
.B1
^THE FOLLOWING IS AN EXAMPLE OF AN <ACCESS.USR FILE WHICH USES MOST OF
THE FEATURES OF THE ^FILE ^DAEMON.
.LM5.B2
^DIRECTORY USER = [13,675]
.B1
^DIRECTORY PROTECTION = _<700>
.PG.LM35.TS20,33.NF.I-30
^FILE	^PROTECTION
.B1.I-30
<ACCESS.USR	_<777>
.I-30
<ACCESS.LOG	_<777>
.I-30
<F1.TST	_<077>	-	^FILE ^DAEMON WILL NOT BE CALLED.
.I-30
<F2.TST	_<457>	-	^PROJECT MAY <READ, OTHERWISE CALL ^FILE ^DAEMON.
.I-30
<F3.TST	_<477>	-	ONLY OWNER MAY ACCESS WITHOUT ^FILE ^DAEMON.
.I-30
<F4.TST	_<777>	-	^CALL ^FILE ^DAEMON ON ALL ACCESSES.
.I-30
.B2.LM33.F.J.TS33.I-28
<ACCESS.USR
.B1.I-28
<ACCESS.*/NONE=[*,*]	;^NO ONE CAN TOUCH THE <ACCESS.USR AND <ACCESS.LOG INCLUDING [1,2] AND <JACCT USERS. ^NOTE THAT THESE FILES CANNOT
BE BACKED UP IF THE ^FILE ^DAEMON IS RUNNING.
.TP5.B1.I-28
<ALL:*.*/READ/LOG=[1,2]/PROGRAM:SYS:BACKUP/XONLY
.B1
;^ALLOW <BACKUP (FROM <SYS, EXECUTE ONLY, AND RUNNING UNDER [1,2]) TO READ FILE
AND MAKE <LOG ENTRY.
.B1.I-28
<F?.TST/LOG=[10,11]/NONE,[10,*]/EXECUTE/EXIT/CLOSE
.B1
;^LOG ^PROJECT 10 ATTEMPTS TO USE <F1,F2,F3, CATCH [10,11] AND PERMIT
NO ACCESS. ^OTHER PROJECT USERS MAY <EXECUTE ONLY WITH ADDITIONAL
LOG ENTRIES TO RECORD STATISTICS.
.B1.I-28
<*.*/CREATE/PROTECTION:055=[12,21]/ALL,[12,17]
.B1
;[12,21] HAS PRIVILEGES FOR ALL FILES (EXCEPT <ACCESS.*) AND
MAY CREATE FILES WHICH HAVE A PROTECTION OF 055. [12,17] HAS NO
ACCESS TO ANY FILE (/<NONE IS A DEFAULT) BUT MAY CREATE FILES.
^NO LOG ENTRIES WILL BE MADE.
.B1.I-28
<*.*/CREATE/PROTECTION:777/LOG=[123,456]/NONE
.B1
;[123,456] MAY CREATE FILES AT WILL BUT MAY NOT
ACCESS THEM (E.G., A STUDENT TURNING IN HOMEWORK).
.B1.I-28
<*.*[13,675,A]/ALL/PROTECTION:057/CREATE=[1,2]/LOG
.B1
;[1,2] HAS ALL PRIVILEGES IN THIS <SFD AND MAY CREATE FILES WITH
A PROTECTION OF 057.
.PG.I-28
<[13,675].UFD/LOG/READ=[*,*]	;^ANYONE MAY READ THIS DIRECTORY AS A FILE.
.B1.I-28
<F3.TST/LOG=[12,3]/EXECUTE
.I-28
<*.*/LOG=[12,3]/NONE	;[12,3] MAY EXECUTE <F3.TST AND NOTHING ELSE.
.B1.I-28
<*.*=[*,*]/NONE	;^NO OTHER ACCESS IS GRANTED AND NO <LOG ENTRY IS MADE.
.B2.LM0
^NOTE THAT ENTRIES ARE SCANNED FROM LEFT TO RIGHT AND TOP TO BOTTOM WITH
THE SCAN STOPPING ON THE FIRST MATCH OF FILE ON LEFT OF EQUAL SIGN AND A
PPN ON THE RIGHT SIDE OF THE EQUAL SIGN. ^IN CONSTRUCTING THE <ACCESS.USR
FILE, CARE SHOULD BE TAKEN TO SEE THAT A WILD CARD SPEC WILL NOT MATCH
IN A LINE EARLIER THAN A SPECIFIC SPEC IN A LATER LINE. ^AS A GENERAL 
RULE PUT SPECIFIC STATEMENTS FIRST WITH MORE GENERAL "CATCH ALL'S"
LATER. ^THE USER IS ALSO REMINDED THAT IF HE WANTS LOG ENTRIES, HE
MUST USE THE /<LOG (ANY OF AND /<EXIT, /<CLOSE, ETC.) ON EVERY LINE FOR WHICH
THIS IS TRUE.
.LM0.TS5.B3
3.0	^^KNOWN BUGS AND DEFICIENCIES\\
.B1
^NONE.
.B3
4.0	^^INSTALLATION INSTRUCTIONS\\
.B1
^INSTALL THE ^FILE ^DAEMON (<FILDAE) ON <SYS AND INCLUDE THE
FOLLOWING SEQUENCE OF INSTRUCTIONS IN THE <OPSER <AUTO FILE (<OPR.ATO):
.B2.I10
:<SLOG 1/2
.I10
^^.R FILDAE\\
.B2
^THE ^FILE ^DAEMON <DETACH<ES ITSELF AND RUNS UNATTENDED; THEREFORE,
IT DOES NOT MONOPOLIZE AN <OPSER <PTY.
.B1
^IF THE ^FILE ^DAEMON CRASHES FOR ANY REASON, THE OPERATOR SHOULD
<ATTACH TO THE ^FILE ^DAEMON JOB AND TYPE THE FOLLOWING:
.B2.I10
^^R FILDAE\\
.B2
^THE OPERATOR SHOULD NOT LOG IN ANOTHER JOB AND RUN THE ^FILE ^DAEMON,
AS THIS ACTION WILL NOT WORK.
.PG
5.0	^^INTERNAL CHANGES\\
.B1
^NOT APPLICABLE FOR THIS VERSION.
.B3
6.0	<SUGGESTIONS
.B1.LM9.I-4
1.##<LOOKUP <ACCESS.USR ON THE FILE STRUCTURE WHERE THE FILE BEING
ACCESSED RESIDES (THIS IS WHAT IS CURRENTLY DONE). ^IF THIS <LOOKUP
FAILS BECAUSE THE FILE IS NOT FOUND, LOOK IT UP ON <DSK USING THE 
<SYS: SEARCH LIST.
.B1.I-4
2.##^ALLOW PASSWORDS TO BE SPECIFIED IN <ACCESS.USR AND ASK THE USER
ATTEMPTING TO ACCESS THE FILE FOR THE PASSWORD BEFORE ALLOWING ACCESS.
.B1.I-4
3.##^ALLOW A FILE SPECIFICATION AS AN ARGUMENT TO THE <LOG SWITCH.
.B1.I-4
4.##^THE 5 SERIES FILE SYSTEM DEFINES 17 LEVELS OF PRIVILEGES WHICH
ARE MAPPED INTO THE 8 LEVELS OF PROTECTION WHICH MAY BE SPECIFIED IN
THE 3-BIT PROTECTION FIELD. ^HAVE THE ^FILE ^DAEMON IMPLEMENT SWITCHES
WHICH CORRESPOND TO PRIVILEGES RATHER THAN THE PROTECTION CODE.
.B1.I-4
5.##^IMPLEMENT A MECHANISM TO INCLUDE OR EXCLUDE CALLS TO THE ^FILE ^DAEMON ON
A PER DIRECTORY BASIS. ^THIS REQUIRES MONITOR CHANGES.
.LM0.B3
[^END OF <FLD1.DOC]
.BR