Following files will be installed:

bbs		the user-program (clients)
bbs-guest	a startscript for starting bbs as user "guest" from login
bbsd		the daemon
bbsmail		the e-mail forwarder (sendmail -> bbsmail -> bbsd)
bbs.conf	configuration-file for bbs and bbsd
etc/users	users-datafile
etc/kermrc	configuration for kermit (called by 'kermit -y ...')
etc/termtable	table with terminal types
help/*		helpfiles for bbs
mail/		an empty directory (for messages, e-mail and newsrc)
scratch/	an empty directory (for sockets, created and removed by 'bbs')

'bbs' creates (and removes) at runtime:
scratch/talk-*-*  	sockets for 'talk'
scratch/letter.*  	textfile for sending e-mail or a message
scratch/*.*	  	textfile for reading messages
scratch/*.*.tmp   	textfile for answering a message
scratch/newsreply.*	textfile for news reply
scratch/news.*		testfile for news reading

'bbsd' creates at runtime:
etc/bbsdpid	contains pid of bbsd
etc/bbs-socket	socket to connect daemon and clients
etc/bbslog	logfile (there are also messages to console and syslog)

'bbsd' creates (and removes) permanently:
mail/*		users messageboxes
mail/*.newsrc	users newsrc files

You want 'sz', 'rz', 'kermit' and 'sendmail' to install 'bbs'.
For reading news you want a NNTP server supporting 'XOVER',
posting news is possible by NNTP ('POST' - command) or by 'inews'.

1. Read README
2. Run Configure
3. Check Makefile, local.h, bbs.conf and users
4. Run make
5. Run (as root) make install. Maybe set 'bbs' suid (for 'talk').
6. Create uploaddirs according to 'users' (must be writeable for bbs-owner)
6. Make an entry in /etc/passwd for 'bbs' and/or 'bbs-guest', e.g.
       bbs:*:33:31:BBS (clients):/users/ftp/pub:/usr/local/ft_bbs/bbs-guest
7. Check permittions and locations, be sure no bbs-user can read/write
   non-public files, especially 'users', 'bbs.conf', 'bbs.log', 'kermrc'.
8. Edit 'users'.
9. Edit 'kermrc'.
10. Edit termtable
11. Make an entries in sendmails 'aliases' with 'bbsmail' for each BBS-User
    receiving e-mail.
11. Run 'bbs' and assign passwords, especially for sysop.


One example for a secure setup:

Install-Directory: /usr/local/lib/ft_bbs
Chroot-Directory: /users/ftp/pub
Client-Owner: bbs
Client-Group: ftp
Daemon-Owner: bbsd
Daemon-Group: ftp
Running daemon suid bbsd (y for yes, n for no) [y] y

Above example give 'bbs'-users access to all anonymous ftp files (if
they are placed in /users/ftp, of course). For uploding files refer to
file 'users' (Uploaddir).

Each time 'bbs' connects to 'bbsd', it sends a keyword to it in order to
authorize. This key is build from two parts, both are defined in 'local.h',
which is build by 'Configure'. One part may be overwritten in 'bbs.conf'
('Authkey'), the other is fix. If authentication fails, you get the message
wrong authorisation
connection to daemon failed
This may happen by accident e.g. if you run 'Configure' and compile a new
client but use an old daemon, so the fix part mismatches.
Be sure to install 'bbs', 'bbsd' and 'bbs.conf' unreadable for unsecure
users.

Sysop can change everyones password. On first time, log in as sysop
(with the username asked by 'Configure') and change it. A user with
securitylevel = 0 may not change his password.

For 'talk', both parties must be able to send/receive signals (SIGUSR1 and
SIGUSR2). On most UNIX this means equal real uid or equal effective/saved
uid. Look at man-page for 'kill(2)' and install 'bbs' according to. You may
run every 'bbs' at the same uid by setting a suid, this is safe, because
it has an own accounting mechanism.

If a user wants to change terminal type, he can enter the terminal type
name. To offer a menu containing often used types, You can install a table
of it, look in conf/term for some examples. The table should only contain
important types, it is possible at runtime to enter a type not included in
table.

If a user shall be able to receive e-mail, he wants an entry in sendmails
'aliases' like
user: "|/users/ftp/bbs/bbsmail user"

A cleaner but more difficult way is to configure sendmail directly:
insert lines like (replace the FC/.../etc/bbsusernames path to your setup)

FC/users/ftp/bbs/etc/bbsusernames

LOCAL_RULE_0
R$=C < @ $=w . >                $#bbsmail $: $1
R$=C                            $#bbsmail $: $1

MAILER(bbsmail)dnl

into Your m4 config file and run m4 on it to get a new sendmail.cf.
A proper bbsmail.m4 will be created by 'Configure', put it into 'cf/mailer'.
The 'bbsusernames' File is a list of all BBS users and will be created and updated by 'bbsd' automatically. If you don't want this, remove 'bbsd's 
write-permittion on 'bbsusernames'.

For being able to send e-mail, read news and post news, a user wants according
permittions in 'users', look there for it.

For news, a NNTP server which supports the 'XOVER' - extension (like INN,
which was used for testing) is needed for reading, postings will be done by
NNTP or by calling a local 'inews' by 'inews -h'.

'bbs' and 'bbsd' uses databases (especially for news). You can use berkeley
'db' ('dbopen' and friends) or 'ndbm' ('dbm_open' and friends), but 'db' is
strongly recommended (and more tested).
