tbC: T'S BBS FOR COHERENT. INSTALLATION AND USER GUIDE. T. E. Harrisburg, M.S. 5173 Waring Road, #502 San Diego, CA 92120 USA D E V E L O P M E N T H I S T O R Y : Early Spring 1994: Release tbC00.tar.Z: first beta release, installed on snugbug.cts.com in San Diego, California, and sent to the University of Madrid for test. My own message/mail editor used instead of vi. May 9th, 1994: Release tbC01.tar.Z: second beta release sent to four participants on comp.os.coherent for comment. Two-word loginnames enabled via underbar aliasing. Many bug fixes from v.00. vi reinstated as msg editor. May 25th, 1994: Release tbC02.tar.Z: first public release. Additional instructions added to the program, plus automatic inclusion of vi instructions in edit tempfiles for message/mail. Lotsa bugs mashed. Aug 5th, 1994: Release tbC03.tar.Z: second public release. Entire BBS re-written in pidgin Curses, may it rot, and soon. Added ps -alx command to main menu. Added version display to main menu. Re-enabled the built-in line editor as option to vi. Added code to bbsmain.c & b_readms.c to keep track of the last message read in each of the 26 subboards. Added sysop name to main menu for ease in assigning blame. Added 'last subboard message read' display to Dump User Record. Added micro-event logging to file EVENT.LOG for feature monitoring. Changed event logging so deleting the activity.log and/or EVENT.LOG files terminates logging, re-creating the file(s) re-activates. Forced user to enter proper style loginname, phone numbers. Backspace processing fixed in login(). Added "reply" message inclusion to public boards for vi users. Added "reply" message inclusion to private mail for vi users. ("Feature" of this modification is that the last 'public' msg read can be mailed to a private party by answering 'y' to the 'is this a reply' question.) Removed many unprompted-for keypress pauses, and added "key.." prompts to others. N O T E : If you are already running tbC, be sure to read the new note at the end of the HOWTO file about how to install only the binaries. I N T R O D U C T I O N. INTRODUCTION TO tbC -- a minimal BBS for Coherent NOTE: For purposes of this discussion, I will use the terms "UNIX" and "Coherent" interchangably. "UNIX" is a trademark of AT&T Bell Laboratories, and "Coherent" is a trademark of Mark Williams Company. Since Coherent was written as a UNIX look-alike, this won't cause that much confusion. tbC is a quick and dirty, simple to use BBS program, written specifically for Coherent. It is intended to allow people who know nothing about UNIX to access messages and information on systems running Coherent, without the bother of mastering UNIX first, while not taking the programmer (me!) forever to get it running. For this reason, it was designed to behave like familiar MS-DOS style programs. However, since I like to hack away on code, it will probably gain features as time goes on...unless I find a decent job, that is. My forte is making things simple, and my code is easier to read and maintain than almost any C coder I know...I started out in COBOL, but I had shots. I'll move to northern California, Oregon, or Washington in the proverbial heartbeat. Job offers are always welcomed I'll even take a non-tech gig, I need a change, and I'm looking for someplace cold and rainy. tbC has one main claim to fame: it's simple to run and more understandable than some other bbs programs I've tried in the UNIX world, but it's no pnet. The 'database' style commands like message threading and so forth are not something I'm really interested in at the moment, but I've provided later programmers sufficient access: the message file and header file structures are all ASCII text, and you can write any utilities you like. tbC is Secure: there are no maintenance functions coded into the tbC program. In order to do maintenance activities, you must alter or delete files from outside the tbC program, so you need root access to the Unix system tbC is running on. So tbC is as secure as the rest of your system is. There are no chroot() or suid calls in tbC, and the bbs account can only effect its own files, so tbC can't constitute a security risk to the rest of a functioning UNIX system. O T A I N I N G T H E t b C S O U R C E C O D E . The best programs can't be bought, you have to write them. Canned software is handy, but it's not as satisfying. I wrote tbC to see how it was to develop programs using vi and C on a UNIX system, and had a lot of fun doing so. I encourage you to do the same. If it will help get you started, you can have a copy of the source code for this program, (around 4000 lines now, and it could be reduced by about a third if I just did it) if you send me $30 USA (cash) and tell me how you want it: DOS diskette with a tbCxx.tar.Z file on it, raw cpio, cpio archive on a disk with a Coherent filesystem, a Coherent filesystem with the raw *.c files, whatever. Also, tell me what size media you want, 3.5 DSHD, or 4.25 DSHD floppy. Sorry, no tape at this time, I'm poor. I realize that this is real money, and no, I'm not looking to make a living off of such a mediocre program...but it's a real pain to prepare and mail diskettes, and I want to make sure somebody really wants the stuff enough to justify my time. In addition, my work ain't free. If you give it away you start to think you aren't worth anything, and I'm not going to do that. t B C ' S S T R U C T U R E . Messages are stored by subdirectories, one message to a file, and these files' names are all six-digit numbers. To delete or edit a file, any text editing program may be used. To save time, each subboard has a MESSAGE.HDR file which summarizes each message's number, sender, addressee, and subject. This allows tbC to give a fast listing of all messages in a subboard without opening and reading many files. MESSAGE.HDR is also human-editable ASCII text, and at this point, using vi or me to edit or delete lines from it is the only way to modify the headers. tbC encourages the use of ANSI art to individualize the look of the BBS. Each subboard from "A" to "Z" may have a corresponding A.ANS..Z.ANS title screen file, and this file will be displayed whenever a user jumps to that subboard within the BBS. These files may be created with any ANSI draw program. Since it is tbC's purpose to make UNIX easy to access for new users, it has a provision for a "door" to /rbin/rash (the restricted UNIX shell) so users may practice with a "safe" subset of UNIX. If a user tries to 'shell' out of vi, s/he will probably end up with another instantiation of tbC, rather than /bin/sh, even if s/he specifies the latter. I suspect this is because /bbs/tbC is his/her 'shell' in /etc/passwd. UNIX gurus may correct or verify this suspicion. I N S T A L L A T I O N : See the file HOWTO. Better yet, print it, it's only a page. C O N S I D E R A T I O N S O F S T Y L E . Before you run the program for the first time, you should have decided on a name for your BBS. Generally speaking, the less melodrama and the more humor you can put in a system name, the more callers you'll attract, but please yourself. Also, you should decide on whether or not you are going to be a "public" figure on your board, down in the mud and the blood and the beer of flamewars and phlegmfests, or a faceless sysop, unknown, unknowable, above it all, dispensing cybernetic favors to some, and passing mercifully over the rest. Again, this is a matter of personal style, but I think it's best to keep a low profile, transcend the strife, and declaim sparingly from On High. To interact, you can use an alias other than 'sysop', and if you put your foot in it, you can drop it, and come back to try again, reserving the all-powerful "sysop" personality for dealing with technical problems and those rare times when you must give voice to The Law. After you get done fiddling with the bare-bones tbC, hit 'G' for goodbye. Now that the system is up and running, you have a canvas...what you paint on it is up to you, so let's discuss techniques for personalizing tbC. S E T T H E P E R S O N A L I T Y O F Y O U R B O A R D . Edit the file GROUPS.CNF to set titles and permissions on your subboards. It should have been created by the installation process. The biggest single choice in establishing your system's 'feel' is what subjects you choose for the 26 discussion subboards. Consider these two sets of topics: Astronomy Hockey Biology Surfing Chemistry Inline Skating Veternary Science Brewing Politics Cars The Economy Hot Bikes! Russian Cuisine Swimwear Issues Recycling Offroad You know rather a lot about the user communities of each system, and all without reading a single message. So. How people relate to your board can be influenced by how you set up your subs...just remember that the human being hasn't been born yet who will stick to a topic, on or off of a bbs, so don't expect the discussions on the various subs to stay on track very much or very often. But picking a good subboard subject goes a long way toward getting the discussions STARTED, and that's what counts. After you've decided on several (or all 26) subboard topics, use a text editor to edit the file GROUPS.CNF. This is an ASCII file which is read at startup. The 'titles' for each subboard are listed in order from the top down, just single capital letters at first. You should replace these capital letters with a text string title for the subs you wish to activate. Subboard A will get the first title, subboard B the second, etc. For those boards which you don't intend to use immediately, just leave their letter in GROUPS.CNF as a place holder and change the character after the colon to something higher in the ASCII sequence than 0. After you save GROUPS.CNF, when you select the Jump to Sub command, you'll see a listing of all the subboard letters along with the titles you just created. If you want 'private' groups, you set their 'number' in GROUPS.CNF to a higher value, and modify the field in USER.BBS for the users you want to access that sub to the same or higher (ASCII char) value. For example, groups A & B are unused, anyone can access group C, D is closed, E requires Level 2, and F is restricted to users of level 5 or above. A:9: B:9: C programming:0: D:9: Editors (vi, EMACS, etc.):2: File Download Descriptions:5: USER.BBS is tbC's equivalent to /etc/passwd. In file USER.BBS, Harry Lime has access to group F, but not to E: Harry_Lime:FGh3wXBGi:619-521-1162:619-521-1162:619-521-1162:\ Tue Mar 1 17 36 48 1994:Tue Mar 1 17 36 48 1994:\ 9:0:0:0:0:5:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:9:END T I T L E S C R E E N S . Part of the task of setting a 'tone' for a subboard can be accomplished by creating a 'title screen' of ANSI art. These title screens are displayed each time a Jump to Sub commmand is executed. The ones which came with the installation are pretty generic. They were created on a DOS PC with TheDraw, but might have been done by any program which allows you to save an ANSI screen image...you could even do it by programming in C or using a hex debugger...But It Would Be Wrong...and you'll need medication after. Someone probably has a program written in the UNIX world which could run under, or be ported to, Coherent. If you find one, send it to me, and I'll evaluate it and see if it can be included in tbC's distribution, or if an address pointer can be provided to its FTP residence, at least. In any event, there are convenient ways to synthesize or obtain ANSI art, including running contests among your users, and leave us not overlook alt.ascii.art on the Internet, neither. Once you have the screens you would like to use instead of the ones from the installation, all you have to do is copy them to the proper subdirectories. If you have, say, MOTORBABE.ANS and you want to use it as a title screen for Subboard H (Hot Bikes) just issue the command: mv MOTORBABE.ANS H/H.ANS When a user issues the Jump to Sub command, the system looks for the file ?.ANS where ? is the letter of the subboard she's changing to. If the file is there, it's displayed after the jump command and before the menu. NOTE: These filenames must be in UPPER CASE for tbC to recognize them...UNIX is case sensitive, remember. N E W S : The subdirectory bbs/news is the place for any special notices which you want ALL users to read when they log in. It's easy to get carried away and put so many news files in there that people hang up in disgust before they see the rest of the board. Caveat reporter. Generally one or two important notices--like system downtime or a user meeting date/time are plenty. If you want to emphasize some messages without being pushy about it, you can name one subboard something like PLEASE READ. P O S T I N G N E W S : To post a news message, just create files in the /bbs/news directory with file names like: "000001", "000002", etc., containing your announcements. They will be displayed at login for all users. To remove a news item, just erase or move its file from /bbs/news. (You might migrate it to an "Oldnews" subboard, for instance.) Just remember that all messages on tbC are in separate files, and all these files' names are 6-digit numbers with no dot or extension. F I L E P E R M I S S I O N C H E C K Just as a check, I'm including a listing of all the files in my /bbs subdirectory so you can check them with your own system in case things are misbehaving. Generally the first symptom of file permission trouble is when new users are rejected. Once it's installed, don't screw up and run tbC as a program while logged in as 'root': that proves nothing. Log in as 'bbs' and see how you do...after creating the 'bbs' account in /etc/passwd, of course. -r-------- 1 bbs user 0 Wed Mar 2 01:03 .lastlogin -rw-r--r-- 1 bbs user 123 Fri Feb 4 10:15 .profile drwxrwxrwx 2 bbs bin 144 Mon Feb 21 03:48 A drwxrwxrwx 2 bbs bin 64 Mon Feb 21 01:38 B -rw-r--r-- 1 root root 65 Tue Mar 1 17:36 BBS.CNF drwxrwxrwx 2 bbs bin 96 Sat Feb 26 02:24 C drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:38 D drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:38 E drwxrwxrwx 2 bbs bin 112 Mon Feb 21 01:38 F drwxrwxrwx 2 bbs bin 176 Wed Feb 23 13:01 G -rw-r--r-- 1 bin bin 672 Tue Mar 1 23:54 GROUPS.CNF drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:38 H drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:38 I drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:38 J drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:38 K drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 L drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 M drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 N drwxrwxrwx 2 bbs bin 80 Mon Feb 21 01:39 O drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 P drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 Q drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 R -rw-r--r-- 1 root root 13413 Wed Mar 2 01:02 README drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 S drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 T drwxrwxrwx 2 bbs user 48 Mon Feb 21 01:39 U -rwxr-xr-x 1 bbs user 592 Wed Mar 2 01:03 USER.BBS drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:39 V drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:40 W drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:40 X drwxrwxrwx 2 bbs bin 48 Mon Feb 21 01:40 Y drwxrwxrwx 2 bbs bin 80 Sun Feb 27 13:11 Z -rw-rw-rw- 1 bbs user 1875 Wed Mar 2 01:05 activity.log drwxr-xr-x 2 bbs user 32 Fri Feb 25 18:54 Harry_Lime drwxr-xr-x 2 bbs user 96 Wed Mar 2 00:55 news -r-xr-xr-x 1 bbs user 51614 Wed Mar 2 00:46 tbC drwx------ 2 bbs bbs 54 Wed Mar 2 00:46 whoison F U T U R E D E V E L O P M E N T S . That's about all I feel motivated to write now...I'm sure I'll have more thoughts and will modify this document as time goes by and I get user feedback. There really isn't that much to describe which a moment's use of the tbC menu won't make clear. I appreciate your comments and corrections, and will do my best to incorporate them into later releases of tbC, if anybody thinks it's worth doing, which is far from certain. The BBS is a unique artifact of our time. It draws its roots from the 'salons' of the 1800's, and as such is one of the most promising cultural phenomena I've seen in my life. It allows people who would never acknowledge each other on the street to communicate freely, across gulfs of income, position, culture, religion, sexuality, and age, which is a Good Thing. I hope that history will judge it as a means which, in a turbulent time, caused people to make substantial strides toward a world where they were minded to accept and tolerate each other dispite their differences. Some of us are very different, and would greatly enjoy sharing those differences with the rest of our people, rather than being ostracized for them. Some of us are fearful and that fear causes hostility. If we let the fear go, we will find that it changes into joy over all the new and strange friends we find. Some of us don't think we like people, yet how few people have we really made the effort to know? Given the realities of astronomical distance, the liklihood of us ever meeting an extraterrestrial alien race is small...but there is a wide variety of fascinating home-grown alien lifeforms right here, if you just learn to appreciate them. In closing, I would like to acknowledge the debt of gratitude I feel to Bill Blue, one of the founding fathers of the online community, who gave me my first UNIX access and was very patient with my dumb questions. He provided free UNIX and netnews access for lots of years to many people in San Diego and elsewhere, facilitated a rare community, and gave a valuable educational opportunity to many, while maintaining his cool at all times. It's exactly the kind of thing he would do. Thanks, Bill. T.E. Harrisburg, San Diego, California Mon, May 9th, 1994 Mon, May 23rd, 1994 .