& testing user control & & this ec contains sequences of commands for setting up tests of & user control and for a standard test. & & thvv 1/71 & & ------------------------------------ & &goto &ec_name & - - - - - - - - - - - - - - - - - - - - - - &label test_uc &print Instructions^/ &print first, addname test_uc.ec regenerate_test_environment.ec warm.ec standard_test.ec end_uctest.ec &print then do "ec func"^/ &print regenerate_test_environment - makes new test bed. &print warm - used to reset test bed before running a test. &rpint standard_test - runs standard test of user control &print end_uctest - destroys test bed &quit & & - - - - - - - - - - - - - - - - - - - - - - &label regenerate_test_environment &attach &input_line off & createdir pdt update createdir Proj(1 2 3 4 5 6) createdir SysAdmin createdir Multics qedx a /* System Master File (SMF) for User/System control test environment */ Maxunits: 60; /* six users */ Maxusers: 9; /* nine slots in table */ Maxprim: 10000; Uwt: special_listener, 5; Uwt: process_overseer_, 10; Administrator: VanVleck.SysAdmin; Administrator: *.SysAdmin; Administrator: *.Multics; Group: Other; Grace: 2880; Ring: 4, 7; Attributes: brief, vinitproc, vhomedir, anonymous, bumping, nostartup; projectid: SysAdmin; group: System; projectdir: >user_dir_dir>SysAdmin>tudd>SysAdmin; maxprim: 2; attributes: nobump, guaranteed_login; projectid: Proj1; group: Group1; projectdir: >user_dir_dir>SysAdmin>tudd>Proj1; maxprim: 2; projectid: Proj2; group: Group1; projectdir: >user_dir_dir>SysAdmin>tudd>Proj2; maxprim: 1; projectid: Proj3; group: Group1; projectdir: >user_dir_dir>SysAdmin>tudd>Proj3; maxprim: 3; projectid: Proj4; group: Group2; projectdir: >user_dir_dir>SysAdmin>tudd>Proj4; maxprim: 3; projectid: Proj5; group: Other; projectdir: >user_dir_dir>SysAdmin>tudd>Proj5; maxprim: 3; projectid: Proj6; group: Other; projectdir: >user_dir_dir>SysAdmin>tudd>Proj6; maxprim: 3; end;  wSMF q cv_smf SMF; rn SMF.sat sat & & generate initial person master file and person name table & qedx a /* Person Master File (PERSMF) for User/System control test environment */ personid: Repair; password: repair; projectid: SysAdmin; personid: VanVleck; password: tvv; projectid: SysAdmin; alias: vv; personid: User1; password: 1; projectid: Proj1; alias: u1; personid: User2; password: 2; projectid: Proj2; alias: u2; personid: User3; password: 3; projectid: Proj3; alias: u3; personid: User4; password: 4; projectid: Proj4; alias: u4; personid: User5; password: 5; projectid: Proj5; alias: u5; personid: User6; password: 6; projectid: Proj6; alias: u6; personid: User7; password: 7; projectid: Proj7; alias: u7; personid: User8; password: 8; projectid: Proj8; alias: u8; personid: User9; password: 9; alias: u9; personid: User11; password: 11; projectid: Proj1; alias: u11; personid: User12; password: 12; projectid: Proj1; alias: u12; personid: User13; password: 13; projectid: Proj1; alias: u13; personid: User21; password: 21; projectid: Proj2; alias: u21; personid: User22; password: 22; projectid: Proj2; alias: u22; personid: User23; password: 23; projectid: Proj2; alias: u23; personid: User31; password: 31; projectid: Proj3; alias: u31; personid: User32; password: 32; projectid: Proj3; alias: u32; personid: User33; password: 33; projectid: Proj3; alias: u33; personid: User41; password: 41; projectid: Proj4; alias: u41; personid: User42; password: 42; projectid: Proj4; alias: u42; personid: User43; password: 43; projectid: Proj4; alias: u43; personid: User51; password: 51; projectid: Proj5; alias: u51; personid: User52; password: 52; projectid: Proj5; alias: u52; personid: User53; password: 53; projectid: Proj5; alias: u53; personid: User61; password: 61; projectid: Proj6; alias: u61; personid: User62; password: 62; projectid: Proj6; alias: u62; personid: User63; password: 63; projectid: Proj6; alias: u63; end;  wPERSMF q cv_persmf PERSMF; rn PERSMF.pnt pnt & & now generate pmf's and pdt's for all projects. note proj3 has no pmf or pdt & qedx a /* Project Master file (PMF) for testing user control. */ Projectid: Proj1; Attributes: dialok, bumping; Grace: 1; Homedir: >udd>sa>tudd>Proj1; Accountid: Proj1$account; Initproc: process_overseer_; personid: User1; personid: User11; personid: User12; personid: User13; end;  wProj1.pmf q qedx a /* Project Master file (PMF) for testing user control. */ Projectid: Proj2; Homedir: >udd>sa>tudd>Proj2; Accountid: Proj2$account; Initproc: process_overseer_; Attributes: vhomedir, bumping; Grace: 1; personid: User2; personid: User21; personid: User22; personid: User23; end;  wProj2.pmf q qedx a /* Project Master file (PMF) for testing user control. */ Projectid: Proj4; Homedir: >udd>sa>tudd>Proj4; Accountid: Proj4$account; Initproc: process_overseer_; Attributes: vinitproc, vhomedir; Grace: 1; personid: User4; personid: User41; attributes: bumping; grace: 2880; personid: User42; attributes: bumping; personid: User43; personid: *; initproc: special_listener; homedir: >udd>sa>tudd>Proj4; password: anon; end;  wProj4.pmf q qedx a /* Project Master file (PMF) for testing user control. */ Projectid: Proj5; Homedir: >udd>sa>tudd>Proj5; Accountid: Proj5$account; Initproc: process_overseer_; Attributes: vinitproc; Grace: 1; personid: User5; personid: User51; personid: User52; personid: User53; personid: *; homedir: >udd>sa>tudd>Proj5; initproc: special_listener; end;  wProj5.pmf q qedx a /* Project Master file (PMF) for testing user control. */ Projectid: Proj6; Homedir: >udd>sa>tudd>Proj6; Accountid: Proj6$account; Initproc: process_overseer_; Attributes: vinitproc, vhomedir; Grace: 1; personid: User6; attributes: brief; personid: User61; personid: User62; personid: User63; end;  wProj6.pmf q qedx a /* Project Master file (PMF) for testing user control. */ Projectid: SysAdmin; Accountid: SysAdmin$account; Initproc: process_overseer_; Attributes: guaranteed_login, nobump, vinitproc, vhomedir, nostartup; Grace: 2880; personid: Repair; personid: VanVleck; end;  wSysAdmin.pmf q cv_pmf Proj(1 2 4 5 6).pmf; move Proj(1 2 4 5 6).pmf.pdt pdt>Proj(1 2 4 5 6).pdt cv_pmf SysAdmin.pmf; move SysAdmin.pmf.pdt pdt>SysAdmin.pdt & create master_group_table; addname master_group_table mgt ed_mgt mgt System 1 a Group1 2 c abs 3 * a Group2 1 c abs 3 * a Other -1 w q & qedx a Examples of correct login: login Person_name Projectid enterp Special_name Projectid enter Special_name Projectid Upper and lower case letters are different.  wlogin_help q & create communications db /communications/0="secr" 1="et " 2=1000 3=1000 4=1000 5=1000 .q & qedx a * test "lines" file for User/System Control test environment tty111 tty222 tty333 tty444 tty555 tty666 tty777 tty888 tty999  wlines q & create installation_parms ed_installation_parms installation_parms r all User Control Test Environment Multics Development MIT M u l t i c s D e v e l o p m e n t M I T 3600 1 1800 900 2 0 0 0 0 480 1 0 0 360 1 0 0 150 1 0 0 240 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .00000038580241 10 360 1 2 240 1 1.8 150 1 1.5 150 1 1.5 16000000 16000000 16000000 16000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x y X n Your account is out of funds. T n Your account is past its termination date. W y Your account is nearly out of funds. R y Your account is near its termination date. Y y Your account is out of funds S y Your account is past its termination date. . 4 16 7 10 30 6 3 3 0 w q & & get fresh copy of bound components archive & cp >ldd>tools>bc>bound_user_control_.archive buc.archive &print $$$ done &quit & & - - - - - - - - - - - - - - - - - - - - - - & &label end_uctest & & clean out after a test & answer yes deletedir pdt answer yes deletedir update delete pnt pnt.ht sat answer yes deletedir Proj(1 2 3 4 5 6) answer yes deletedir SysAdmin delete PERSMF SMF *.pmf lines login_help mgt answer_table log accounting installation_parms delete communications whotab &print $$$ done &quit & & - - - - - - - - - - - - - - - - - - - - - - & &label warm & & warmstart after having a bound version & delete log accounting answer_table whotab create log accounting &attach debug /accounting/0=2000;.q &detach &print $$$now do a "new_proc" and a "test_dialup" &quit & & - - - - - - - - - - - - - - - - - - - - - - & &label standard_test & &print $$$ standard test of user control & &attach test_dialup &1 dialup tty111 login User1 Proj1; plain-vanilla login (1) 1 .lcs$test [wd] dialup tty222 l User2; default proj and bad password and "l" zzz l User2; default proj, good password (2) 2 dialup tty333 l User3; pdt missing for proj 3 on purpose 3 enterp Foo Proj4; anonymous user (2.5) anon dialup tty444 l u4; alias (3.5) 4 dialup tty555 l u2; already logged in 2 dialup tty555 enterp Foo Proj1; no anon user zzz l User1 Proj4; wrong proj 1 new_proc tty111 terminate tty222 dialup tty555 login Garbage; unknown name zzz enterp Foo Proj5; give pass when none required (4) zzz dialup tty666 junk User1; incorrect login word login User9; no default proj 9 wait (allow grace to expire) dialup tty666 login; no user name xxx l u11 -bf; Group1 full, shd bump u1 (4) 11 .lcs dialup tty777 l User4 Garbage; bad project id 4 l u12 -np; could bump user2 but no-preempt option 12 dialup tty777 l u6; user locked in brief mode in pdt (5) 6 dialup tty111 l u61; fills system (6) 61 dialup tty888 l u62; should be system full because ^bumping 62 dialup tty888 l u22; should bump user2 22 dialup tty999 l Repair; overload system repair .lcs logout tty111 dialup tty111 l User1; check last login - bumps user11 (7) 1 who logout tty999 lh tty111 login u13 -po special_listener; try special initproc 13 who &print $$$ now a test of installations .qedx rProj5.pmf $i personid: New_fellow;  wtemp q .cv_pmf temp .install temp.pdt .qedx rPERSMF $i personid: New_fellow; alias: nf; password: new; projectid: Proj5;  wtemp q .cv_persmf temp .install temp.pnt .admin$word login "Test dialup message buffer." logout tty888 logout tty111 dialup tty111 wuggawuggawugga; bad login word l New_fellow new .admin$word login .cv_pmf Proj5.pmf &print $$$ this should bump the guy... .install Proj5.pmf.pdt who .cv_persmf PERSMF .install PERSMF.pnt .dl temp.pnt temp.pdt .qx rSMF /Proj4/;/^$/d wtemp q .cv_smf temp &print $$$ should bump Foo.Proj4 .install temp.sat .cv_smf SMF .install SMF.sat .dl temp.sat &print $$$ test of limits logout tty111 dialup tty111 l u1 1 .qx rProj1.pmf /User1/a limit: 0;  wtemp q .cv_pmf temp .install temp.pdt .act_ctl_$update &print $$$ user1 should be bumped wait d l u1; shd not be able to get in either 1 .cv_pmf Proj1.pmf; install Proj1.pmf.pdt &print $$$ now test password changing dialup tty888 l u11 -cpw 11 xxx logout tty888 dialup tty888 l u11 xxx logout tty888 dialup tty888 l u11 -cpw -bf -pf xxx 11 &print $$$ test of help, etc, then shutown d hoohah help e logout tty444 logout tty555 .admin$stop &print $$$ now will check accounting .ap * * accounting .print_log log -a &print $$$ now wait for all bumps wait .admin$stop .act_ctl_$act_ctl_close quit &print &quit &quit & & & & ----------------------------------------------------------- & & & & Historical Background & & This edition of the Multics software materials and documentation is provided and donated & to Massachusetts Institute of Technology by Group Bull including Bull HN Information Systems Inc. & as a contribution to computer science knowledge. & This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, & Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell Bull Inc., Groupe Bull & and Bull HN Information Systems Inc. to the development of this operating system. & Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), & renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership & of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for & managing computer hardware properly and for executing programs. Many subsequent operating systems & incorporated Multics principles. & Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., & as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . & & ----------------------------------------------------------- & & Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without & fee is hereby granted,provided that the below copyright notice and historical background appear in all copies & and that both the copyright notice and historical background and this permission notice appear in supporting & documentation, and that the names of MIT, HIS, Bull or Bull HN not be used in advertising or publicity pertaining & to distribution of the programs without specific prior written permission. & Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. & Copyright 2006 by Bull HN Information Systems Inc. & Copyright 2006 by Bull SAS & All Rights Reserved & &