14 Aug 87
Notes on TERM's BBS installation:

	BBS installation is performed by the bbsinst.cmd script.  This script
should be run from the BBS "root" directory... /usr/term is recommended.

If you are on a multiuser system, installation is done in three steps:

	1. login as root
	2. edit the /etc/passwd file and add a new user named bbs,
		with a directory of /usr/term/bbs and a shell of
		/bin/sh.  The following line can be used as your
		/etc/passwd entry:

		bbs::64:64:Bulletin board:/usr/term/bbs:/bin/sh

	3. run the term bbs installation script, by typing:
		term -z bbsinst

Under DOS, type:

	term bbsinst

Files used by the bbs: (* indicates files created during installation)

	bbs.cmd		the bulletin board system
	bbsmail.cmd	the message base system
	bbsadmin.cmd	the user administration system
	bbsio.cmd	generic io and user procs common to various .cmd files
	*startup	the text file printed to the screen before login
	*stats		system statistics, such as what it is, etc.
	*userlist	the userlist for the bbs, containing mucho info

Installation is non-destructive (copies, does not "move" or "rename" files);
The first operation by the bbs is the creation of the directory "bbs" under the
current one... this will make /usr/term/bbs if you run install from /usr/term.

Several directories will be created under the bbs directory:

	*upload			where uploaded files are put
	*dnload			where files availble for download should be
	*message		where the message-base directories live
	*message/general	where the messages in the base "general" live
				(this is a sample message base directory)


A hard disk is recommended, but not necessarily required for this program
(floppy system is DOS only).  Due to the possible size of the files (believe
me, this thing can grow!), a hard disk is recommended.

	Startup on multiuser systems involves the installation of an account
with the name bbs and the shell /bin/sh (the directory may be different,
depending on installation).  An example of a valid /etc/passwd entry is:

	bbs::64:64:Bulletin board:/usr/term/bbs:/bin/sh

All files and directories will be marked as being owned by that account.
No password is necessary.  The bbs will run at whatever communication
parameters you log into the bbs user with, but will change to 8 data bits,
1 stop bit, and no parity for file transfers; it will change back to
whatever it was when the file tranfer is complete.

	DOS startup requires that the bbs directory be the current directory.
Therefore, startup is as follows:

	cd bbsdir/bbs
	bbs

	Under UNIX, system maintenance is by way of menu commands.  The
system comes with the account ADMIN (firstname) ADMIN (last name), and
ADMIN (password, upper case!), access mask 511.  Other users can be given
or restricted from access simply by changing their access mask via the admin
menu.  File format is given repeatedly in bbsio.cmd.  Alias changing is also
implemented, but not accessable for normal users.  Time limits may be imposed
through the use of a global variable set to time() at login and checked at
each menu command line display (the menus are not necessarily displayed if the
user is in expert mode) by a test, such as the following:

	if time() > logtime+1800

where logtime is the variable name set to time() on login and 1800 is the
seconds allowed (30 minutes, in this case).  Overides, due to permission,
may be desireable.

Access masks:
Bit	Meaning
---	-----------------------------------------------------------------------
 0	The user has registered.  Look at this bit before giving everthing away
 1	The user can send and get mail; set by default.  If not here, the user
	is told that they've been bad and should call the sysop.
 2	User may upload stuff
 3	User may download stuff.
	You may want users to upload something before they can download ANY
	files (to encourage contributions), you may want some users to not
	upload (say they've uploaded 2 meg and enough's enough!), you may want
	to limit upload and download access seperately, etc.
 4	User may kill any message, add/delete message bases - give SPARINGLY!
	this lets a user read/delete anybody's messages.  This should be used
	sparingly.  In addition, sysops (bit 7 set) may delete/create message
	bases.  You are allowed 20, so you probably want to limit access here!
 5	user #1 - one of the two provided access masks for you to use for your
	own functions;  you might set this bit to allow a user to call out on
	another line by doing "init ttyxx" on another modem line (see the INIT
	command in the manual), to allow access to a menu which "run"s games,
	a database, or whatever (see the RUN command), or anything else you
	can think of.
 6	user #2 - the other pre-defined bit... you can, of course, add more,
	but if you add more than four, you will need to alter userlist I/O, as
	only 4 spaces for a decimal access mask, and 5 more bits would push it
	to 5 digits with all bits set.
 7	User is sysop.  A user who is a sysop is allowed access to the sysop
	menus, can read everyones mail, and in general do all but a few things.
	A sysop can edit users, as long as they do not have bits in their mask
	that the sysop does not.  For instance, if a sysop does not have UKILL
	(bit 4), he CANNOT alter a user who does have that bit.  In addition,
	if a sysop HAS UKILL, he can add/delete message bases.
 8	User is administrator - administrators can do ANYTHING, regardless of
	what other bits they have.  An administrator can delete/edit ANYBODY.
	An administrator can read/kill ANYBODY's mail.  An administrator can
	even get a UNIX shell, thereby allowing him to change the files which
	make up the bbs, move files from the upload area to the download, etc.
	For this reason, usually only one person is allowed administrator
	access.

In any case, access is checked at the menus (for invisible commands) and
in the proc chkper in the file bbsio.cmd.  There are a few others, but if you
grep for "access", they will all show up.

The time limit imposed on transfers starting (30 seconds) is done to avoid
redefining the packet timeout for each protocol, although that is probably
a good idea.  You may change this to suit your needs and your users needs.

Remember that case is important on passwords, but nowhere else.
