TOPS-10: Users
Today let's investigate how users and logins are handled on TOPS-10. We will see how to look at user information and add new ones, and there's also a brief discussion of the security of this version.
Viewing user information
The REACT program is used to manage users on TOPS-10. Although you
can start this program as a regular user, it will not have much effect
as it cannot read the accounting files in SYS:. So first, login as
the operator, which has a user ID of 1,2 and password failsa, and
then start REACT.
.login 1,2 JOB 11 KA603 TTY1 Password: [LGNJSP Other jobs same PPN] 1018 22-Feb-79 Thu .r react FOR HELP TYPE "H<CAR RET>" *
Type r to read in the main accounting file SYS:ACCT.SYS and t to
display it on the terminal. For the second command, it will ask you if
you want to list codes (ie passwords) as well.
*r [8 OUT OF 500 ENTRIES ARE USED] *t LIST CODES?y ... 100 100 DEMONSTRATIO 000000000000 DEMO1 777777777777 511,,511 2,,5 017500001763 8 SEP 768 0 511
There's no ready source of documentation for these fields, but you can work out what some of them are by context, such as the account name and password.
To view the other accounting file SYS:AUXACC.SYS type a. REACT
will read this file into its buffer and you can again display it with
t.
*a [5 OUT OF 500 ENTRIES ARE USED] *t ... 100 100 DSKB 0 100000 100000 0
This indicates what disk structures the user is allowed to access.
Type e to exit REACT.
Creating a new user
Often you will want to set up a new user ID beyond the 100,100
account so you can arrange your work or just to have a personalised
account. To prepare for this, first choose an octal project and
programmer ID pair. For regular users these numbers should be larger
than 10. For this example let's choose 200,200. Also select a login
name (here rupert) and a password (here secret). Passwords can be
1-6 characters long and are case-insensitive.
The easiest way to do this is copy an existing user and edit it.
Logged in as user 1,2 again, start REACT and load the main
accounting file with r. Type i 200,200=100,100 to copy the user
from 100,100 and then c 200,200 to change the name and code
fields. Finally, write the file with w.
*i 200,200=100,100 *c 200,200 CHANGE: name ARGS: rupert CHANGE: code ARGS: secret DEMO1 WAS THE OLD CODE FOR THAT NUMBER CHANGE: *w
Next, change the auxiliary accounting file to give access to disk
structures. Load it in with a, insert a copy with i, save the file
and exit.
*a [5 OUT OF 500 ENTRIES ARE USED] *i 200,200=100,100 *w *e EXIT
One last task needs to be done - create a user file directory for the
new login. Still as 1,2, use the credir command.
.r credir Create directory: [200,200] Created DSKB0:[200,200].UFD/PROTECTION:775 Create directory: ^C
The login is now ready for use.
Changing passwords
Using REACT you can change the password for any user with the C
command, choosing the code option as shown above.
It should also be possible for a user to change their own password.
The help file for LOGIN indicates this is done by giving the
/PASSWORD switch at login time, ie
.login 200,200/password
However, the version we have does not seem to support this.
Who am I?
With multiple logins it can be easy to lose track as to what you are
currently logged in as. The PJOB command will help here.
.pjob Job 11 User RUPERT [200,200] TTY1
Predefined users
Certain user IDs have a predefined function. There is often also a
logical device name associated with these, so for a directory of
system help files you can do either dir [2,5] or dir HLP:.
| User | Meaning | Logical |
|---|---|---|
| 1,1 | Master File Directory | MFD: |
| 1,2 | System operator | |
| 1,3 | Old versions of programs | OLD: |
| 1,4 | System programs | SYS: |
| 2,5 | Help files | HLP: |
| 3,3 | Batch queues | |
| 5,11 | Relocatable object library | REL: |
| 5,17 | MACRO universal files | UNV: |
| 10,6 | Software distributions | |
| 10,7 | Software distributions | DEC: |
The full set of defined users - including those empty or not present on the disk files we are using - can be found in the Operating Systems Command Manual Appendix A.
Security
As you can see from the above, security is fairly rudimentary on this version of TOPS-10. Passwords can be as short as one character, are stored in plain text and being case-insensitive their strength is not great.
At login time, if you enter an invalid user id or an invalid password for an existing user id you do get the same message.
?LGNIET INVALID ENTRY - Try again
so it is not possible to guess user IDs this way. However, some
minitor commands such as SYSTAT are available before you login, so
you can get a list of currently logged in users that way. It is
possible to keep trying different passwords - there is no lock out
after a number of attempts - but the system introduces a small delay
after each attempt which at least slows this down.
More information
For TOPS-10 6.03 there is no printed documentation for REACT
available that I can find. There is a short help file available via
H while running REACT, or via HELP REACT from the command line.
Bitsavers has the Monitor Installation Guide with a description of
REACT for TOPS-10 version 7, but this is quite different from the
version we have in 6.03.
The Operating Systems Command Manual documents the LOGIN~ command,
but note this differs slightly from what the online help file for LOGIN.
Questions, corrections, comments
I welcome any questions or comments, and also especially any corrections if I have got something wrong. Please email me at rupert@timereshared.com and I will add it here and update the main text.