1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-28 12:59:20 +00:00

Added PWORD and PANDA. Set up initial password database.

Did not link sys;atsign hactrn to sysbin;pword bin, so logins
are not required.
This commit is contained in:
Eric Swenson
2016-11-30 21:40:28 -08:00
committed by Lars Brinkhoff
parent af866af9c7
commit d274195213
7 changed files with 10784 additions and 1 deletions

3
src/acount/-read-.-this- Executable file
View File

@@ -0,0 +1,3 @@
This directory is for purposes of the password system.
Please do not delete any files on it.
--RWK

170
src/sysen1/pwfile.60 Normal file
View File

@@ -0,0 +1,170 @@
;-*-MIDAS-*-
subttl PWFILE -- Define format of the password file
;PRINT VERSION NUMBER
.TYO6 .IFNM1
.TYO 40
.TYO6 .IFNM2
PRINTX/ INCLUDED IN THIS ASSEMBLY.
/
pwfile=:pwpage*2000 ; Where we put it
pwinit==:pwpage*2000 ;time of system invocation for locks feature
pwdone=:pwpage*2000+1 ;time of system invocation for locks feature
pwlock=:pwpage*2000+2 ;lock. If locked, database is closed for
;writing.
pwunkl=:pwpage*200+3 ;must be pwlock+1 ... this gets unlink inst.
pwlkid=:pwpage*2000+4 ;UIND of job doing the locking
pwtime=:pwpage*2000+5 ;time of last update
pwuhak=:pwpage*2000+11 ;UNAME of last person to update, other than
;INIT
pwjhak=:pwpage*2000+12 ;JNAME of last person to update, other than
;an INIT.
pwaccc=:pwpage*2000+13 ;# of times database has been accessed
pwordc==:6 ; # of override tables
pwordt=:pwpage*2000+14 ; Date override tables are in effect
; In halfword disk-date form, 1 date per
; halfword.
pwcnt=:pwpage*2000+17 ;# of passwords we have in our database, *10
pwrbfp=:pwpage*2000+20 ;pointer into buffer
pfgrp=:pwpage*2000+21 ; Default user group
ddtty0=:pwpage*2000+22 ; 0-43 TTY #'s to get DDT directly.
ddtty1=:pwpage*2000+23 ; 44-107 TTY #'s to get DDT directly.
dltty0=:pwpage*2000+24 ; 0-43 TTY #'s to not let randoms use
dltty1=:pwpage*2000+25 ; 44-107 TTY #'s to not let randoms use
pwsptr=:pwpage*2000+26 ; AOBJN ptr to free area in PWSTR area.
atoapl=:pwpage*2000+27 ; -1 ==> Allow applications
pwgdil=:pwpage*2000+30 ; Dialup restriction for each group, a 1
; bit n from the right marks that group as
; priveleged. This bit is overridden
; by the %PFDIL bit in the individual's flag
; word, which says the individual is
; priveleged to use the dialups
pwsgcp=:pwpage*2000+31 ; -1 iff incomplete GC performed.
; If incomplete GC has been performed,
; it must be done before adding a string.
pwholp=:pwpage*2000+32 ; -1 ==> Today is a holiday.
; Turn this on to ignore time restrictions.
pwrbfl==:200 ;length of buffer
pwrbuf=:pwpage*2000+100 ;password data entry history buffer
pwgrct=:20 ; # of possible groups
pwgrdm=:pwpage*2000+300 ; 1 entry per group
dm$wds=:360600,,0 ; 1.1-1.6 When restriction starts, weekday
; # of half-hours after midnight
; 77 = no restriction
dm$sts=:300600,,0 ; 1.7-2.3 When restriction starts, Saturday
dm$sns=:220600,,0 ; 2.4-2.9 When restriction starts, Sunday
dm$wde=:140600,,0 ; 3.1-3.6 When restriction ends, weekday
dm$ste=:060600,,0 ; 3.7-4.3 When restriction ends, Saturday
dm$sne=:000600,,0 ; 4.4-4.9 When restriction ends, Sunday
pwgors=:pwpage*2000+320 ; This table contains the override start
; times for each of the 20 groups. Each
; word is divided into six 6-bit bytes,
; one for each override date, and contains
; the start time in 1/2 hour past 0000 units
pwgore=:pwpage*2000+340 ; Same, override restriction end times.
pwgnam=:pwpage*2000+360 ; SIXBIT name of group
pwstbg==:pwpage*2000+1000 ; Start of string-space AOBJN ptrs
; From here to PWSTBG are ptrs into the
; database...
timmsg=:pwpage*2000+1000 ; Message for each group for logging in
; during the wrong time.
dilmsg=:pwpage*2000+1020 ; Message for each group for using dialups
ovrmsg=:pwpage*2000+1040 ; 20 x 6 table of messages for each group
; on each override date
pwadmn=:pwpage*2000+1200 ; AOBJN ptr (into string space) of people
; who have created/modified accounts
lucktb=:pwpage*2000+1201 ; Table of lucky sites that don't get PWORD
losers=:pwpage*2000+1202 ; Table of sites we need protection from
phone=:pwpage*2000+1203 ; cnt,,offset string phone number for help
naplmg=:pwpage*2000+1204 ; Message to print why no applications
nocmnd=:pwpage*2000+1205 ; Commands to disable
pwstln==:205 ; # of strings to update
pwstpg==:1 ; Page # of string space
pwstr=:<pwpage+pwstpg>*2000 ; String Space. This is divided into thre
; consing areas, NEW, OLD, and NEXT
; When NEW is filled, all pointers into
; OLD are copied into NEXT space, which
; then becomes the NEW space. The old NEW
; space, not suprisingly, becomes the OLD
; space. This is done to avoid half-move
; strings, to guarantee consistancy at all
; times. Strings are pointed to by AOBJN
; ptrs, relative to PWSTR. The AOBJN ptrs
; are examined and updated only with the
; database locked, and are updated only
; after any necessary copying is done.
; Each consing area is 2 pgs long.
pstrln==:4000 ; Length of a string space
pistr0==:0
pwstr0==:<pwpage+pwstpg>*2000 ; String Space 0
pistr1==:pistr0+pstrln
pwstr1=:<pwpage+pwstpg>*2000+pstrln ; String Space 1
pistr2==:10000
pwstr2=:<pwpage+pwstpg>*2000+2*pstrln ; String Space 2
pdpage==:7 ; Page # of UNAME data in file
pwdata=:pwpage*2000+16000
pwname=:pwpage*2000+16000 ;location of first UNAME entry
pwpass=:pwpage*2000+16001 ;location of first password entry
pwflag=:pwpage*2000+16002 ;location of first flag entry
%pf==:1,,525252 ; bit typeout mask
%pfnew==:400000 ; This account has never logged in
%pfdil==:200000 ; is permitted to use dialups.
%pfday==:100000 ; can use it in the daytime.
%pfbad==:040000 ; Means that this name shouldn't be able to
; log in from loser sites.
%pfmsg==:020000 ; Means that he has seen the REFUSE or OFF
; message
pwinfo=:pwpage*2000+16003 ; Various miscellaneous info
pi$==:777400,,170677
pi$crt==:321200,,0 ; 3.9-4.9 Index into creator table for
; who created this account
pi$mod==:201200,,0 ; 2.8-3.8 who last modified this account
pi$grp==:140400,,0 ; 2.4-2.7 access-control group
pi$sta==:100400,,0 ; 1.9-2.3 state of this account
ps%==:400000,,0 ; typeout mask
ps%new==:0 ; Account is nonexistant
ps%apl==:1 ; Account is applied for
ps%hld==:2 ; Account is being held
ps%off==:3 ; Account is turned off
ps%rfs==:4 ; Account is refused
ps%ok==:5 ; Account is OK
ps%sys==:6 ; Account is a system account
ps%del==:7 ; Account is being deleted
; (should never actually be in file)
pi$nul==:001000,,0 ; 1.1-1.8 MBZ
pwdate=:pwpage*2000+16004 ;<creation>,,<login>
pd$crt==:222200,,0
pd$log==:002200,,0
pwmod=:pwpage*2000+16005 ;<modification date>,,0
pm$mod=:222200,,0
pwmore=:pwpage*2000+16007 ;this slot reserved for debugging, etc.
pwleng==:10 ;entries are 8 long

145
src/sysen1/pwinit.1 Normal file
View File

@@ -0,0 +1,145 @@
;-*-MIDAS-*-
title initialize PWORD database
x=:0 ;super temporary
a=:1
b=:2
c=:3
d=:4
e=:5
ct=:6
t=:7 ;temporary arithmetic register
tt=:10 ;temporary arithmetic register, T+1
dski=:11
dsko=:12
lsrc==13 ;channel for LSRTNS
sp=:17
p==:sp
call=:pushj sp,
DEFINE SYSCAL A,B
.CALL [SETZ ? SIXBIT/A/ ? B ((SETZ))] TERMIN
loc 2000
buffer: block 2000
pwpage==buffer/2000
.insrt SYSEN1;PWFILE >
pdl: -100,,pdl
block 100
go: move sp,pdl
movei a,lsrc ;A <- channel for LSRTNS
syscal OPEN,[ %clbit,,.uio ? %climm,,dsko ? [sixbit /DSK/]
[sixbit /BIG/] ? [sixbit /DAT/] ? [sixbit /CSTACY/] ]
.lose %lsfil
move t,[444400,,buffer]
setzm pwcnt ;Nothing yet.
setom atoapl ;We allow applications
setom pwordt ;Set no date override
setom pwordt+1
setom pwordt+2
setom pwinit
setom pwdone
setzm pwrbfp
setom pwgrdm
setom pwgrdm+1
setom pwgrdm+2
setom pwgrdm+3
setom pwgrdm+4
setom pwgrdm+5
setom pwgrdm+6
setom pwgrdm+7
setom pwgrdm+10
setom pwgrdm+11
setom pwgrdm+12
setom pwgrdm+13
setom pwgrdm+14
setom pwgrdm+15
setom pwgrdm+16
setom pwgrdm+17
..foo==0
irp gr,,[USER,DAY,DIAL,TURIST,GRP.04,GRP.05,GRP.06,GRP.07,GRP.08,GRP.09,GRP.10,GRP.11,GRP.12,GRP.13,GRP.14,GRP.15]
move x,[sixbit /gr/]
movem x,pwgnam+..foo
..foo==..foo+1
TERMIN
.suset [.runame,,pwuhak]
.suset [.rjname,,pwjhak]
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
setzm buffer ; Clear the buffer
move x,[buffer,,buffer+1]
blt x,buffer+1777
move t,[444400,,buffer] ; Write 6 blank pages to disk
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer] ; Provide 8 pages of emptyness
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
move t,[444400,,buffer]
movei tt,2000
syscal SIOT,[ %climm,,dsko ? t ? tt]
.lose %lsfil
.close dsko,
.logout 1,
end go

10441
src/sysen1/pword.2661 Normal file

File diff suppressed because it is too large Load Diff