home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
misc
/
volume32
/
xbbs
/
part02
/
MAKEbbs
Wrap
Text File
|
1992-09-08
|
44KB
|
1,081 lines
This is the setup I used to build XBBS. I set up the main bbs original
directory as /bbs but it could just as easily have been /usr/bbs or /user/bbs
or /usr/john/bbs.
You must, however, insure the the home directory is in the SAME filesystem as
the rest of the directories.
/bbs
'---home /bbs/home - user login area
'---lists /bbs/lists - lists area
'---pgms /bbs/pgms/ - program & files area
'---fls /bbs/pgms/files - files area
'---amiga
'---bbs
'---c64
'---mcs
'---msdos
'---unix
'---uploads
'---msg /bbs/pgms/msg - message area
'---fsale
'---general
'---hwanted
'---special
'---s_tech /bbs/pgms/s_xx - sigs
'---files
'---msgs
/bbs/pgms/xx - various misc
'---xbbsgen
'---allign
'---doc
'---msgpack
'---purguser
xbbs .bbs files
answer.bbs - A file that is generated by the bbs software ( the answers to
the questionnaire ) question.bbs.
areas.bbs contains the path information for uploading, downloading, and
listing of files along with the access privilege of the download
directory.
bulletin.bbs contains your bulletin which is printed out whenever a user logs
into the bbs or with the B command from the main menu.
callers.bbs contains a time log of all of your bbs callers. In addition to the
name and time, all uploads and downloads are logged into this file. If
a file is uploaded as "SYSOP ONLY", the description of the file is
also added to callers.bbs instead of files.bbs. This way, you can
still get the description.
dlmsg.bbs
features.bbs contains the actual programs that you make available to you
users.
filepriv.bbs contains the privileges assigned to the file menu options.
help.bbs contains the HELP information for your users.
helpfile.bbs
helpmsg.bbs
helpsig.bbs
humor.bbs contains the humor file for your users!
inval_port.bbs ports listed in this file will be refused access to the bbs.
lastcall.bbs contains the information about your last user on the system.
listfile.bbs contains the actual list files that you make available to your
users.
mainpriv.bbs contains the privileges assigned to the main menu options.
msgareas.bbs contains the path information for the different message bases.
newuser.bbs contains the message you output to new users.
question.bbs contains the questionaire for new users. The file that is
generated by the bbs software ( the answers to the questionnaire ) is
called answer.bbs and is located in the same directory as
question.bbs.
s_tech.bbs
sigentry.bbs
sigs.bbs contains the listing of the sigs on your system.
sigwelcome.bbs
system.bbs contains the terminate message you output to the user when he "logs
off".
unixmsg.bbs this file will be displayed upon entry into the unix option.
userpriv.bbs is a dynamically created/appended file which contains the
individual user privileges along with their "delta time" allocation.
users.bbs contains the list of all of your users, with their passwords, first
time called, last time called, and their address in the form of city
and state.
welcome.bbs contains the "welcome" message you output when the user logs in.
Please note that this is sent prior to the bulletin and may be your
message of the day.
FILES SECTION
=============
files.bbs contains all of the files that are available for downloading. A
different files.bbs is required for each download directory and must
be placed in that directory. ie '/bbs/pgms/fls/uploads/files.bbs'
MESSAGES SECTION
================
messages.bbs contain all of the messages. A different messages.bbs is required
for each message directory and will be created automatically in that
directory. ie '/bbs/pgms/m_forsale/messages.bbs'
There are three codes used within this file :
0 - The message is active and not confidential
5 - The message is active and is confidential
9 - The message was deleted
6) The file, crossref.bbs, contains the cross reference table between the
message number and file record number. This way, RAPID message access
is achieved. Presently, you can have up to 1000 messages within the system.
( active and deleted )
8) The file, header.bbs, contains the information to add the NEXT message
into the message file. This way, a search is not required to find the
proper entry point.
MESSAGES
MSGAREAS.BBS
The file, msgareas.bbs, contain the path information for the different message
bases. The format is as follows:
1) The first line of the file can be used as a RULER SINCE IT IS NOT USED.
2) The following lines in the file have the following format:
a) Columns 1-13 The download path. Please note the ORGPATH is added
to the contents. An example is as follows: ORGPATH = /usr/sandy/bbs
and columns 1-13 contain general; therefore, the entire path
name = /usr/sandy/bbs/general.
3) Column 14 must be a space
4) Columns 15-55 contain the description of the download directory
5) Column 56 must be a space
6) Columns 57-61 contain the DIRECTORY PRIVILEGE - left justified.
Therefore, you can set your privileges from 1 - 32767. WARNING, if
you give your user access to the msg section from the main menu and
DO NOT give him access to any of the directories, he will NOT be able
to get out of the initial directory change!
A MAXIMUM of 99 directories can be used!
To select the message area to use for the "GOOD-BYE" message, immediately
following the privilege level for that message base, insert an asterisk (*).
This will then, automatically, select that msg base for the parting message.
When a message is sent to a user, the name is now verified. In addition to
name verification, the follow-two aliases are permitted: Sysop and ALL. If
Sysop is used as the first name, the Sysop's real name will be substituted
into the message; if All is used as the first name, All Users will be
substituted.
MESSAGE BASES
=============
There are multiple message bases. The three files, crossref.bbs, header.bbs,
and messages.bbs are stored in each different message base.
The file, messages.bbs, contain all of the messages. A different messages.bbs
is required for each message directory and will be created automatically in
that directory. ie '/bbs/pgms/m_forsale/messages.bbs'
There are three codes used within this file :
0 - The message is active and not confidential
5 - The message is active and is confidential
9 - The message was deleted
( Note: if you wish to reactivate a deleted message, just change the "9"
to either a "0" or "5" ).
( A program will be available soon to "squeeze" the message file and
remove deleted messages )
Warning! DO NOT try to modify the following files with an editor like vi:
header.bbs, crossref.bbs, messages.bbs since they are NOT ~truly ASCII files
and the files WILL BE damaged. In the case of crossref.bbs, no ASCII
information is even stored in it ( binary file ).
DAILY MESSAGES
==============
A new option is available that allows you to make different daily messages for
each day of the week for a FULL year. This message is then printed out to your
users during their login process into the bbs.
You can put whatever you wish into this file. The file can be as little as
one line or as large as you desire! Page control is automatically supported
during the output.
You may wish to use this option to wish your users a "Merry Christmas" or a
"Happy New Year".
The file name is in the form of Month_Day.msg. An example of the file that
would be displayed on September 02, 1987 would be as follows:
Sep02.msg
Please note that if the file is not found, NO message will be displayed to
your user; therefore, this is option is COMPLETELY optional and can be ignored
when not needed.
FILES
An option in the files menu "Z(ip new list)". This new option allows you to
scan all allowable directories for NEW, locate, raw and ~regular file list.
There is no need of going from directory to directory, manually, and checking
for new files. Once you get into the file menu, you can select the Z(ip
file menu) option and then select the new file listing which will do the
above operation automatically for you. The software will scan each
allowable directory for you and output the new file list.
If the upload directory is nolonger in the same file-system as the upload
path, a Unix style mv will be performed; however, the user will get a message
telling will to notify the sysop that the upload path is not in the same
filesystem as the bbs users' home directory.
AREAS.BBS
The file, areas.bbs, contains the path information for uploading, downloading,
and listing of files along with the access privilege of the download
directory. The format of the file is as follows:
1) The first line of the file can be used as a RULER SINCE IT IS NOT USED.
2) The following lines in the file have the following format:
a) Columns 1-13 The download path. Please note the ORGPATH is added
to the contents. An example is as follows: ORGPATH = /usr/sandy/bbs
and columns 1-13 contain bbssoftware; therefore, the entire path
name = /usr/sandy/bbs/bbssoftware.
3) Column 14 must be a space
4) Columns 15-55 contain the description of the download directory
5) Column 56 must be a space
6) Columns 57-61 contain the DIRECTORY PRIVILEGE - left justified.
Therefore, you can set your privileges from 1 - 32767. WARNING, if
you give your user access to the files section from the main menu and
DO NOT give him access to any of the directories, he will NOT be able
to get out of the initial directory change!
7) Columns 62-63 must be spaces
8) Columns 64-79 contain the UPLOAD path for that download directory.
A MAXIMUM of 99 directories can be used!
You must now have multiple versions of files.bbs. One, each, for EVERY
download directory and it must be in that directory. The files.bbs file
must only contain the file listing for that particular directory!
FILES.BBS
The file, files.bbs, contains all of the files that are available for
downloading. Initially, you will have to generate it; however, it is
automatically updated with each individual upload which is not for "SYSOP
ONLY". A different files.bbs is required for each download directory and must
be placed in that directory.
The format of the file is as follows:
Filename Description
Please remember that there is only ONE space between the file name and the
description. The size and date of the file is determined at list time and is
dynamically added to the listing. If the file cannot be found, the message
"OFFLINE" is placed in the size field.
There are two special characters that maybe used in the filename field:
. ( period ) and the ~ ( tilde ). The period is used to add comments to
your listing. Please remember that a space must be used to separate the
period from the comment. The comment will be printed out in the
description field of the listing. An example is as follows:
.
. The following files are used to generate the BBS
.
bbsc1.c One of the files to make the BBS.
When this is listed by your users, it will look as follows:
The following files are used to generate the BBS
bbsc1.c 35087 Sep 14 One of the files to make the BBS.
If column 1 has a '+' (plus) in it, the entire line, minus the plus, will be
displayed. This is a NON-FORMATTED comment which your users can see.
The ~ ( tilde ) is used to terminate the listing at a specific spot. If you
DO NOT want your users to see certain files after an entry in your listing,
just place the ~ in column 1 and the listing will stop. This option is made
available if you do not want your new uploads known until you can verify if
they are good files or are public domain. An example of its usage is as
follows:
.
. New Uploads
.
~
Field sizes:
The filename field: 14 characters
The description field: 50 characters
As new files are uploaded, they are appended to the end of the file. You may
want to move the entries to other spots in the file.
A quick note on how files are handled when they are uploaded.
Files are sent, depending on the protocol used, either to your FILES
directory or to your /usr/bbs directory. In the case of the files
being sent to /usr/bbs ( KERMIT UPLOAD ), they will be moved to FILES
after the transfer is completed. If the file(s) is/are marked as
SYSOP ONLY, they will be moved to your BBS directory to insure complete
privacy. Therefore, even if your user knows the name of the file, he
can not get to it!
SIGS
For what it is worth, here is the documentation on how to install and set up
a sig............. Please NO flames!!!!
For clarity, I will be referring to a term called ORGPATH. ORGPATH is nothing
more than the directory that contains the bbs software. <origination path>...
The following steps are REQUIRED to set up a sig:
1) From ORGPATH, make a directory with the SAME name as the SIG.
2) Be sure the permissions are such so that the bbs user has rwx permission.
3) From that directory, make two new directories called files and msgs. The
files directory will be the file section for that SIG. You guessed it, the
msgs directory will be the message base for that SIG.
4) Same as step 2 but for the two new directories.
5) The files directory must contain a file called files.bbs. This is exactly
the same as the GENERAL file directories. Guess what, it uses the same code!
Actually, the message section for the SIG is controlled by the same code as
for the GENERAL message bases.
6) In ORGPATH, generate a file called sigs.bbs. This file is the listing of the
sigs on your system. The distribution contains an example sigs.bbs that you
can use as a guide.
7) Sigs.bbs is basically in the same format as features.bbs etc. The IMPORTANT
difference is that a SIG can either be "private" or "public". If you wish to
make the SIG private, put an asterisk is column 78. You will notice that
the distribution sigs.bbs has two SIGS, one is private and one is public.
The first field is the SIG name and MUST be the SAME name as the SIG
directory that you made in step 1!!!! The second field is the description
and the third field is the privilege level assigned to that SIG.
8) Each SIG MUST have a file in ORGPATH using the SAME name as the directory
but with an extension of .bbs. If the SIG is private, you will have to
make a list of each allowable user in the form of Firstname Lastname.
Remember, on user per line and CAPITALIZE the first character of the first
and last names. A string compare is performed. If the SIG is "public", you
must still make each file by simply typing "touch signame.bbs" where
signame is that of your SIG. REMEMBER, make sure that the file has rwx
permission for the bbs user. This is very important since a public SIG
is dynamically updated by the user.
9) This is optional but nice! In the directory that you made in step one,
you can have a file called sigwelcome.bbs. This file will be displayed,
if it exists, to the SIG user once he has successfully logged into the
SIG. It is nothing more than an ASCII file an can be generated by "vi".
A) This ALSO an optional but nice feature. In the directory that you made
in step one and if it is a private sig, you can have a file called
sigentry,bbs. This file is displayed to the user, if he tries to login
to the sig, and entry is not permitted because he/she is not listed in
the sig users file. It can be used to describe the way he/she can be
registered, by you, into the sig.
Once you have performed the above steps, you are ready to login yourself into
each SIG. Go into each SIGS message section and leave a message. This will
make all the necessary msgs files. REMEMBER, a "private" SIG can only be
entered if the user's name is present within the appropriate .bbs file. This
is ALSO true for you. You MUST enter your name too to gain access.
The msg checking code includes sigs.
An optional file called sigentry.bbs can be added which is displayed to the
user when he opts to log into a private sig and he is not registered.
Added Additional features option to each SIG; therefore, each SIG can have its
own external programs and/or shell scripts which is independent of the main
menu A(dditional) features option. The format of the features.bbs file is
exactly the same as the one for the main menu; however, this file is stored in
the SIG directory ( same as where sigentry.bbs and sigwelcome.bbs are stored )
LISTS
listfile.bbs
To make listfile.bbs, you can use the file, listfile.bbs as a guide.
The format of the file is as follows:
LINE 1 ------------ruler
Line 2 - N The actual files that you make available to you
users.
Each line is broken up into fields. The fields are as follows:
Column 01 - 50 The full path name of the file to list.
Column 51 A space
Column 52 - 72 Description of the file.
A file, /tmp/files, is generated for each and every L(ist) command that is
requested. This is a temporary file which is sent to the user.
PRIVELDGES
FILEPRIV.BBS
filepriv.bbs contains the privileges assigned to the file menu options.
The file simply contains the letter and privilege assigned to the letter.
The range of privileges can vary between 0 and 32767. The privileges are
all relative so you may want to limit the range from 1 to 9. Warning,
be sure that the G option is ALWAYS lower than the lowest individual
privilege so you user can log off! An example of the file can be found
in this download section called filepriv.bbs.
MAINPRIV.BBS
mainpriv.bbs contains the privileges assigned to the main menu options.
It is in the same form as filepriv.bbs. An example of the file can be
downloaded and is called mainpriv.bbs.
USERPRIV.BBS
userpriv.bbs is a dynamically created/appended file which contains the
individual user privileges along with their "delta time" allocation.
The file contains entries for each of your users in the form of:
FIRSTNAME LASTNAME PRIVILEGE_LEVEL DELTA_TIME EXTRA_KBYTES
An example of a particular user maybe as follows:
John Smith 5 600 5
Basically, the above user has a privilege level of 5 and has 10 additional
minutes allowed over the default time (RUNTIME in bbscdef.h). Also, he has
an extra 5 kilobytes of downloading allowed ( added to MAXKBYTES in
bbscdef.h ).
An entry may also look like this:
Joe Blow 2 -2400 -50
This means that the above user has a privilege level of 2 and has
been disallowed 40 minutes from the default time. If the default
time is set at 60 minutes, his total usage time is only 20 minutes.
His maximum allowable download in bytes has also been reduced by
50K!
The default privilege level can be found in bbscdef.h and is called
NEWPRIV.
The menus are variable according to the user's privilege level. If the user
DOES NOT have the privilege to use the option, the option will NOT be
displayed.
A file, inval_port.bbs, can contain a list of the sio lines which you do
not wish bbs users to use. An example of this file is included in the
distribution. A log of the disallowed called is stored in a file called
restricted.bbs.
FEATURES
To make features.bbs, you can use the file, features.bbs as a guide.
The format of the file is as follows:
LINE 1 ------------ruler
Line 2 - N The actual programs that you make available to you
users.
Each line is broken up into fields. The fields are as follows:
Column 01 - 50 The full path name of the program plus commandline
Column 51 A space
Column 52 - 72 Description of program
Column 73 A space
Column 74 - 78 Privilege level assigned to the program
Column 79 An asterisk or space
If column 79 is an asterisk, '*', then the BBS software will switch back to
the default terminal parameters and then execute the program. After the
program completes, it will then switch back to the BBS terminal parameters.
The user will be notified of the switching so that he/she can change his/her
terminal program if necessary.
If column 79 is a space, the BBS program will redirect stdout to a temporary
file and then send the output to the bbs user.
QUESTIONAIRES
This file contains the information needed to make your questionnaire.
The following commands are available in column 1:
! Output the rest of the line and wait for an input
^ is the same as '!' except that the input MUST NOT be NULL (strlen > 0 )
@ Output the rest of the line and send a crlf
& Same as '@' without the terminal crlf
$ Outputs a '?' and waits for an input
* is the same as '$' except that the input MUST NOT be NULL (strlen > 0 )
% Output crlf
Y || y Output the rest of the line and set FLAG true if response is a Y or y
N || n Output the rest of the line and set FLAG true if response is an N or n
{ Start conditional statements ( execute the following lines if FLAG
is equal to true
} End conditional statements
/ Exit questionnaire - Normally used as a conditional statement
An example of a questionnaire is as follows:
@XBBS QUESTIONNAIRE
NDo you want to continue the questionnaire (y/n)
{
/
}
!Input your full name
!Input your home telephone number
!Input your work telephone number
&Input your full address ( 5 lines available )
$
$
$
$
$
!Input your profession
@Thank you for answering my questionnaire
You may use the above example as your questionnaire.
The file that you generate is called question.bbs and is located in the same
directory as the rest of the .bbs files.
The file that is generated by the bbs software ( the answers to the
questionnaire ) is called answer.bbs and is located in the same directory as
question.bbs.
CONFIGURATION
XBBS is configured by using the program xbbsgen.
The following are the questions and sample answers you will be asked:
Input the full path name for the users home directory: /bbs/home
Input the directory name where the bbs software can be found: /bbs/pgms
Input the full path name for checksum: /bbs/pgms/checksum
Input the full path name for crc: /bbs/pgms/crc
Input the full path name for ymod: /bbs/pgms/ymod
Input the full path name for rb: /u/bin/rb
Input the full path name for sb: /u/bin/sb
Input the full path name for rz: /u/bin/rz
Input the full path name for sz: /u/bin/sz
Input the full path name for kermit: /u/bin/kermitt
Input the full path name for sealink: /u bbs/pgms/sealink/sealink
Input the first name of the sysop: rick
Input the last name of the sysop: mccalla
Input the number of SECONDS you will allow for a login: 300
Input the number of SECONDS you will allow for usage: 5400
Input the number of SECONDS you will allow for response: 180
Input the privilege level for new users: 5
Input the maximum privilege level allowed to users: 32767
Input the maximum number of seconds allowed to users: 32767
Input the daily number of KILOBYTES allowed to users: 500
Input the full path name for tar: /usr/bin/tar bin/tar
Input the full path name for zcat( link to compress): /usr/bin/zcat
Input the full path name for arc: /u/bin/arc
Input the full path name for unzip: /u/bin/unzip
Input the full path name of the dev driver for local monitoring: /dev/tty09
Input the full path name for the console device driver: /dev/tty01
Input the full path name for the SHELL and command switch
you wish to use for the U(nix) option in the main menu.
Example: /bin/sh
? /bin/sh
Do wish to have the software do a message scan when the user
logs on? 1=yes, 0=no .....
1
Input the full pathname to be used by the USENET reader.
/usr/bin/readnews
Input the full pathname to be used by the USENET poster.
/usr/bin/postnews
USENET
In order to allow access to usenet there must be a '.newsrc' file in the
'orgpath'. In this example it would be /bbs/pgms
CHAT
By selecting this option the caller can send a beeping signal to the console
terminal to indicate that he would like to chat with the sysop.
The sysop can respond to the request for chat by running the 'chatbbs' command
from the specified console terminal.
Chats are logged into the callers file.
SYSOP UTILITIES
USER SIGNALS that are used:
1) SIGUSR1 Toggles the local monitoring of the BBS. An example of the SHELL
Script that can be used is "toggle". This file can be found in the
download section.
2) SIGUSR2 Toggles the privileges and time of the present user on the system.
The time and privilege level is set to maximum so CARE should be used
with this option since the user can now enter into Unix/Xenix with the
U option in the main menu. An example of a SHELL SCRIPT that can be used
is "systoggle". This file can be found in the download section.
The sysop, by using SIGUSR2, can now give the present user temporary
maximum privileges and time on the system. Since this is a "toggle",
by issuing this signal again, the user will be returned back to the
logon time limits and privileges. An example of a SHELL SCRIPT that can
be used is systoggle.
You can now allow users to enter into Xenix/Unix! Care should be given
when allocating the user such high privileges. This is the U option
in the main menu. A suggestion would be to give this privilege the
maximum allowed in this BBS, 32767. Remember, when SIGUSR2 is issued,
that user WILL HAVE that privilege!
There are two different versions of program which will list the users
on your bbs: listuser and listusers.
The two programs are basically the same except for how they get the file
name. Listuser expects the file to be called users.bbs and also that it
resides in the same directory. This is the version that I use as an
A(dditional features) program. Listusers prompts you for the full pathname
of the file.
REGISTRATION
My address is as follows:
Sanford Zelkovitz
5852 Maxson Drive
Cypress, Ca 90630
Please drop me a line and let me know how this code is working for you.
If you would like to send a donation to help cover my equipment expense, that
would be greatly appreciated!
Sandy
****************************************************
* Brought to you by SJZ *
* 24 hrs a day / 7 days a wk *
* 714-821-9671 - Data *
* 714-821-9670 - Voice *
****************************************************
( For BBS, log in as bbs ) alphacm!login: bbs
Presently, registration, on this bbs, is not required to upload and
download files. However, this policy may change; therefore, I
strongly suggest that you fill out my questionnaire. The
questionnaire option can be found in the main menu: Q(uestionnaire).
If and when the policy changes, non registered users will loose their
download privilege along with the capability of entering messages.
The uucp system name is: alphacm
The uucp and call in data lines accept calls at 19200/9600/2400/1200 baud
< no 300 baud >. A break sequence is required to switch between the baud rates.
The uucp mail path is: ......!att!hermix!alphacm!sandy
......uunet!zardoz!alphacm!sandy ......!trwrb!ucla-an!alphacm!sandy
******* YOU MUST BE AT 8N1 TO LOG INTO THE BBS! *******
The source code for this software is available for downloading.
The modems on this system are now Telebit Trailblazer-Plus(es). Therefore,
19.2K/9600 baud PEP protocol is now supported.
The "PEP" tones are sent AFTER the lower baud tones; therefore, if you are
connecting at 19.2K/9600, you must be sure that your Telebit DOES NOT lock
onto the lower baud tones < set s7 to 60 or higher and set s50 to 255 ).
The reason for sending the "lower baud" sequence first is to allow the
"lower baud" users enough time for a baud rate "lock on".
RTS/CTS flow is enabled for the higher baud rates.
There have been MANY questions left for me on how to connect to this system
via uucp to request files. Actually, the procedure is very simple. Just login
as nuucp with no password. All of the directories used by this bbs have read
privileges; therefore, you can request and receive any file or files that are
available for downloading. You must remember the full path names of the files.
Any file that is in the bbssoftware directory has the path name of
/user/bbsfiles/bbssoftware/.
Likewise, the unix directory has the path name of /user/bbsfiles/unix/. This
is also true for each and every file directory on the system. You can get the
directory name from the A(rea change) command while in the file section. You
will recognize the name by the first field displayed on each and every line.
Just add /user/bbsfiles/ to whatever is displayed.
As an example, if you want the file, ALLbbs.tar.Z, the full pathname is
/user/bbsfiles/bbssoftware/ALLbbs.tar.Z.
If you have a file that you would like to send to this system for others to
use, please send it to /usr/spool/uucppublic.
Remember, the path is /user/bbsfiles/bbssoftware and NOT /usr/........
{trwrb|ucla-cs|cepu}!ucla-an\
\
\
|
|
{att|ihnp4|decvax|sco}!hermix\ |
\|
|--!alphacm!{root|sandy}
/|
uunet!zardoz / |
|
/
/
ucbvax!ucivax!icnvax/
MISC
A COMMON mistake that MANY users have been making is that ALL COMMANDS are NOT
case sensitive. That is, you can use either upper or lower case characters.
The ONLY thing that is case sensitive are the file names used in downloading
and uploading. Like all other BBS software, both upper and lower cases can be
used in any of the menus or options.
Another option, which is neglected, is the capability of stacking a directory
number to the A(rea change) option from within the message and file sections.
Basically, you do not have to list out the list of directories, unless you
want to. If you know that you want to switch to directory 3, all you have to
type is 'a 3' ( note: the ' characters were added only for clarification ).
Actually, any of the following combinations will work: 'a 3' 'a3' 'a;3' or and
non-numeric character between the a and the 3!
Primary and Secondary Extensions
Used on This BBS
A) Primary Extension
1) .arc Use arc to "unarchive" and "uncompress the file"
2) .tar Use tar to "unarchive" the file
3) .cpio Use cpio to "unarchive" the file
4) .ar Use ar to "unarchive" the file
5) .shar Use /bin/sh to separate the file
6) .shr Use /bin/sh to separate the file
B) Secondary Extension
1) .Z Use uncompress to "uncompress" the file
2) .z Use unpack to "uncompress" the file
Note: Files that end with a .Z may be either 12 bit or 16 bit compression.
Normally, when 16 bit compression was used, it will be noted in the
file description.
TO HOT KEY OR NOT TO HOT KEY, THAT IS THE QUESTION
I have had MANY question about the "hot key" entries that are used by the
bbs; primarily, when are they used. The answer is VERY simple, if an input
ONLY requires a single character, IT IS HOT. If an input is completely
satisfied with only two characters, it will terminate after the second
character.
Since there can only be a maximum of 99 message bases, 99 file bases, 99
bulletins, and 99 questionnaires, when you are requested to input that
particular number, the software will be satisfied after only two characters;
however, if a QUIT is also allowed (single "q" entry ), the software WILL
HOT KEY ONCE THE "Q" IS TYPED.
Since the majority of the commands can be fully satisfied with only a
single character, that character is ALL that is necessary and the software
will "hot key". The A(rea change) commands in the message and file
sections allow you to specify the base to change to; therefore, the ARE
NOT "hot keyed". The B(atch read command) allows MANY entries and will
not "hot key" until 80 characters are typed.
Whenever you are asked for an input and a "ruler" is displayed, the
software will "hot key" after the LAST allowable character for that
field.
To summarize the above statements; if the software DOES NOT "hot key" on a
single key stroke, that means one of three things:
1) That particular option has optional secondary parameters
2) That particular option requires additional parameters
3) You typed an invalid entry
All bases (bulletin, file, message, questionnaire) can only have a maximum
of 99 entries; therefore, the inputs will "hot key" after the second
character or the first if a "q" was typed and allowed at that time.
************** OPTIONAL FILE *************
An optional file, locking.h, is now available to allow the XBBS code to
compile on AT&T 3Bs or other truly SysV systems. Remember, this file MUST
NOT be used for Xenix systems.
************************
AVAILABLE FILE PROTOCOLS
For Uploading: Ascii, Xmodem-checksum, Xmodem-crc, Ymodem, SEAlink*, Zmodem,
and Kermit.
For Downloading: Ascii, Xmodem-checksum, Xmodem-crc, Ymodem, Kermit,
SEAlink*, Zmodem, and type. CREDITS: SEAlink is a copyrighted protocol by
System Enhancements Associates.
Note: The kermit that is used on this system NOW supports sliding
windows! There are TWO different Ymodem protocols available, BATCH & NON-
BATCH.
CREATING THE BBS SYSTEM
The paths for all the files may be defined. You will have to modify it for
your system. When designing your system, think of what you are doing! BE
ABSOLUTELY SURE that your BBS software is NOT in the same directory as your
file section for uploads and down-loads! This way, your users.bbs file WILL BE
SECURE! The way that I have my system configured is as follows:
My BBS software is in a directory called /bbs/pgms and my file section is in a
directory called /bbs/pgms/files. Since the file directory is the ONLY
directory available to your users, your BBS system is secure. ( No access to
callers.bbs and users.bbs ).
Make a new user called bbs with a null password ( type a return when asked for
the password ). After this new user is generated, use vi to modify
/etc/passwd. Change the shell entry to the full pathname of bbsc1. In my
system, it is /bbs/pgms/bbsc1, and set his home to /bbs/home. This way, when a
user logs in as bbs, he will NOT have a shell behind him and therefore CANNOT
get into your system! Make another user called bbsuser. When you want to send
mail to your users, address it to bbsuser. This way, the message "you have
mail waiting" will not be displayed.
If your Unix does not run at 8N1 and you have a file, /etc/motd, rename it to
/etc/motd.motd. This way, your user, when he logs in at 8N1 will not receive
JUNK charcters for your message. Then, modify /etc/profile as shown in
etc_profile on this system. ( Your non-bbs users will still get your message
of the day!). You can place the same file as your welcome.bbs and it will be
displayed at 8N1.
To compile the BBS source code, just type "make". Please note that the "s
around make are just there for emphasis.
To compile crc.c, type: cc crc.c -O -o crc
To compile checksum.c type: cc checksum.c -O -o checksum
Kermit is already in the compiled form. If you wish to get the source code,
leave me a message and I will try to comply.
Ymodem uses rb and sb. These files are contained in the COMPRESSED archive,
rzsz.a.Z. You will have to uncompress the file, using uncompress, which is a
linked file to compress. After uncompressing the file, you must then unarchive
it using ar. To compile the files, use the following commands:
To compile sz.c, type: cc sz.c -O -o sz
To compile rz.c, type: cc rz.c -O -o rz
To generate the proper link files, type:
ln sz sb
ln rz rb
Take a look at the sample questions that will be asked by the configuration
program and have the answers ready. If you do not have any of the modem
protocols you will have to download them.
Determine the path structure you want to use for the following sections:
files
messages
lists
sigs
bulletins
Create the directories and in the case of the files sections you will have to
put a blank copy of files.bbs in each directory. For the sigs you will have
to create a ~couple of files. For the message areas they should be left
empty.
Using an editor modify the following files in /bbs/pgms
areas.bbs
bulletin.bbs
features.bbs
inval_port.bbs
listfile.bbs
msgareas.bbs
system.bbs
welcome.bbs
In the bbs all work and users are the single login user of ,bbs,. Internal
priveldges determine what the user is allowed to do.
Once this has been completed, do a chmod 666 *.bbs. This is necessary to
guarantee proper privileges on the bbs files. Also, change the privileges to
777 on the directory, /tmp. This is required so that the upload/download file
listing will function properly for your users. Then, change the owner of
users.bbs to bbs and the group to root. Change the permissions for users.bbs
to 660.
starting with /bbs all directories must be -rwxrwx--- bbs root
all files in all directories must be -rw-rw---- bbs root
or -rwxrwx--- bbs root
If any files are not set there is a very likely chance that the bbs will not
run. These ~privileges will also help protect the bbs from other system
users.
Check the 'bbs' has priveldges for /tmp
Run the xbbsgen program to generate the config file. This file will be placed
in the home file specified for 'bbs' ie /bbs/home
If you have specified a device for the monitor terminal other than /dev/null
when you ran xbbsgen then bbs will need permission to write to it.
Once the system is generated, run it for the first time as a program under
root and enter a message to create the files required for each message base.
To do this change to the home directory of bbs (/bbs/home) and run the command
'su bbs'.
One small paragraph on how the kermit transfer path works: All kermit uploads
are sent to /usr/bbs. After the uploads are completed, the files are moved to
your files directory. Wildcard transfers are enabled. On downloads, ONLY the
files that are in the files directory CAN BE TRANSFERRED. This way, again,
your system is secure.
Please remember the magic words "directory privileges"! You will have to make
sure that the following directories have modes of 777:
1) The directory pointed to by USRBBS in bbscdef.h
2) The directory pointed to by PATHFILE in bbscdef.h
3) The directory pointed to by ORGPATH in bbscdef.h
4) /tmp
A word of caution: if you have a user that uploads a file as SYSOP ONLY, and
the file ~disappears, you DID NOT ensure proper directory privileges! You see,
the code does a link and then an unlink from the original directory ( either
USRBBS for Kermit or PATHFILE for the others ) to ORGPATH. ( A simulated mv in
"C")
Extra Information On How the BBS Operates
1) All errors that are detected that would normally go to stderr are sent,
instead to a file called /tmp/errors_out. Under normal conditions, this
file should always have a 0 length.
Warning! DO NOT try to modify the following files with an editor like
vi: users.bbs, header.bbs, crossref.bbs, messages.bbs since they are
NOT truely ASCII files and the files WILL BE damaged. In the case of
crossref.bbs, no ASCII information is even stored in it ( binary file ).
There have been many questions concerning how to set up the ~ individual
message bases when first bringing up the system. Unfortunately, my
documentation has a LOT to be desired! You see, you should NEVER run bbsc1 as
a stand alone program! The proper way to run the bbs, as a local user, is to
do a cd to the bbs's home directory and then do an su to bbs. This way, the
permissions will always be correct. Prior to running the bbs to generate the
individual message bases, be absolutely sure that you already have the file,
msgareas.bbs in the form that you want. You see, this file contains the names
of the individual directories that contain the different message bases. Also,
be sure that the directories that contain the message bases have
read/write/execute permission for the bbs user. Once this is all done, the
bbs software will generate the needed files for you automatically. You must
manually do the mkdir(s) to make all of the needed directories since the bbs
software expects the directories to be there.
How should my system look prior to running the bbs? This is a question MOST
often asked me. To answer this question, I will graphically show a
hypothetical system.
|------message_base_one
/bbs/home |------message_base_two
| |------message_base_three
|------/bbs/bbsfiles-----|------file_base_one
|------file_base_two
|------file_base_three
|------my_utility_directory
The ONLY file that should be in the hypothetical system as pictured above in
/bbs/home is the .config.bbs file! There shouldn't be ANY other file in this
directory or any other directories made from it. This is VERY important so
that kermit uploads will operate properly. All the the distribution bbs files
MUST reside in the above hypothetical system in /bbs/bbsfiles. This includes
all of the software and ALL of the .bbs files. Within this directory, your
users.bbs, userpriv.bbs, all of your callers files, and daily accounting files
will be generated. Also, as shown above, all of the message base directories
and file base directories will reside. If you set up the system as shown
above, the installation will be completely successful. BE ABSOLUTELY SURE
that the bbs user has read/write/execute permission in ALL of the directories.
If this is NOT the case, file generation and read/write errors will occur.