#---------------------------------------------------------------------------
#
#                           ix/MBox  F A Q
#             Bulletin Board System for UNIX(-Derivations)
#
#                          Volker Schuermann
#                     Wuppertal, FRG, 19.04.1995
#
#---------------------------------------------------------------------------

Q: I can't find an answer to my (rather complicated) question in the various
   README files. What can I do?
A: Just let me (volkers@unnet.wupper.de) have a mail describing your problem.
   At least I should be able to point you to the right chapter in the README. 

Q: Is it possible that the main README file isn't quite uptodate?
A: You're right, I'm afraid ... the thing is, that everytime I've finished
   the documentation, the development of the BBS as gone forward a few
   steps and all my scribblings are outdated again.

   But in general you should follow the instructions in the README file, as
   long as you do read all other README.* files as well! Those README.* files
   are strictly kept uptodate! That of course applies to this FAQ also!
  
   If any of your questions aren't answered in this FAQ completely, PLEASE
   don't hesitate to mail me! There are NO dumb questions, ask everything! 

Q: I'm unable to compile anything! I tried [make mbox] but the compiler/linker
   complains about missing "prototypes" and much more. What's wrong?
A: You of course followed the README: [make english], [make inst]. Otherwise
   directories aren't there when needed, languages files aren't created and so
   on. Read the installation instructions in README and do as described there!

Q: How can I check my completed installation?
A: Use the (undocumented) command "checkit" inside the BBS!

Q: How are guests supposed to call the ix/MBox?
A: You should have some lines in [/etc/passwd] which look like these:

   guest::406:1:BBS User:/home/guest:/local/mbox/mbox
   bbs::407:1:BBS User:/home/guest:/local/mbox/mbox
    
   If "guest" or "bbs" calls in, he/she hasn't to enter a password. Instead
   of a shell the ix/MBox is started to handle the BBS login and all further
   access to your system. There isn't any shell account/access for those users!

Q: I can type in a line but when I hit the ENTER key to execute it, nothing
   happens! I can strike the key as often as I want, the cursor does not leave
   the end of the line.
A: That's a very common problem. Look at [./src/defs.h]. You'll find the
   definition of the ENTER key there. Comment out the predefined stuff and
   define ENTER as 10 (LF) or 13 (CR), depending on your systems conventions.

   Move to the [./src] and do the following:

   cc enter.c -o enter
   chmod a+x enter
   enter

   Press the ENTER key now to see which code is used. Take the number for the
   definition in [./src/defs.h].

Q: How can I get that LISA keeping quiet?
A: Just tell her! No joke! Say "Lisa, be quiet!" and she will do ... well,
   at least as long as you don't wake her up again "Hello Lisa!".

   Tell your users that they might get rid of Lisa by simply typing:

   autoexec = quiet

   That's a macro definition. Use the [macro] command to verify ...

   "autoexec", "quiet" and "macro" are the english counterparts of the
   german keywords "Autoexec", "Ruhe" and "Makro" ...)

Q: If a guest (called "bbs" on my system) logs in to my machine, he is
   connected immediately to the BBS and not ask to sig on there! Means,
   he cannot even enter a username!! Why's that???
A: Congratulations, you're the loser of the month! Over and over again, I've
   told you that you have to have different GIDs for guests and users. But
   you of course haven't any clou what a GID actually is, have you???

   Right, "UNIX administration made simple" ... 

   Check [/etc/group] first. You'll need to have or to create two entries
   there:

   other::1:
   users::6:
    
   Or maybe:

   bbs::105:

   The numbers may vary! Just keep yours in mind!!! Now lets go over to
   another file called [/etc/passwd]. There you should see/have lines
   such as theses:

   volkers:x:405:6:Volker Schuermann:/home/volkers:/bin/bash
   bbs::501:1:BBS User:/home/guest:/local/mbox/mbox   

   Or as an alternative (see above):

   bbs::501:105:BBS User:/home/guest:/local/mbox/mbox
 
   
   Noticed the different GIDs??? Well, the GID of the normal users is (6),
   the one for Guests (BBS users) is (1) or (105), depending on which one
   you've decided to make use of.

   Back to [mbox.h], where all the action is:

   #define USERS_GID  6 
   #define GUEST_GID  1

   Or:

   #define GUEST_GID  105


   You have it now, don't you? If not, well, why don't you just stay a user
   yourself and forget about being a sysop ...

Q: Why aren't there any boards/newsgroups listed at all?
A: You have to run [mb-daemon all -x] first! (Be patient, it'll take time!) 
 
Q: Why does the BBS speak german?
A: You have to [make english] to get the english version. And of course
   you have to recompile the whole stuff again ... tough luck!

   make clean; make english; make inst

Q: I can't get the ix/MBox working cause I always get complaints about 
   not having set SETUID, not having "root.root" permissions or having 
   identical GIDs for Guests and Users. I don't like programes owned by
   "root.root". I hate programs with SETUID set and I don't want to have
   a special group for guest. What can I do?
A: I'm quite sick of answering this question! If you don't want to use
   the ix/MBox as planned, you shouldn't use it at all!

Q: Why does the BBS report no boards with NEW articles at all?
A: Check your scanner-date. Use [setup]!

Q: Is there a way to offer external program within the ix/MBox!
A: Certainly! There are two places you should look at:

   ./etc/list.udc       There you'll find a list of user defined commands.
                        You can put external commands in there to be offered
                        together with the internal MBox commands.

                        You also will notice the keyword XTENSION used
                        instead of a path to an external programm inside
                        that file.  

   ./etc/xtensions/*    Here you'll see the scripts called XTENSIONs. Have
                        a look at "xtension" to learn about that script
                        language. It's as simple as impressive ;-)

Q: I'm still running a BBS and I don't want to type in all the userdata
   all by myself. Is there a script?
A: If your current BBS is a ix/MBox you only have to follow [VERY.IMPORTANT]
   to convert your old data.

   If it's any other sort of BBS, you should let your users do the updating.
   Tell them to use the command "account" ("postfach") to be registered. 

   Not very much convenient, so here's an offer: Find a way to put your old
   userdata into an ASCII text file and mail it to me. I'll write a converting
   tool to build up the USERDATABASE for the ix/MBox!

Q: Why do I always get problems if I try to mail or write something?
A: It sounds like you've forgotten to use SETUID "root.root" for [mbox].

Q: Is there a way to make up SIGs (special interest groups)?
A: No problem. If you want to have certain commands (internal as well as
   external ones!) to be accessed only by members of a SIG, just do this:

   Let's say the command is called "Stocks". Just create a file with the
   name [./etc/sigs+areas/stocks.sig] and name all userids there, which
   should be allowed to use this command.

   If it's a newsgroup that you want to offer to selected users only, look
   at the [./etc/sigs+areas/list.sigs] file. There's a list of newsgroups
   and userids.

   Rather stupid but easy to maintain and quick to implement ;-) 

Q: Well, I'm planning to make up an AREA based BBS - what'll I have to do?
A: Not much. Move to the [./etc/sigs+areas] directory and make sure that
   a list [list.areas] is there. If not, make it up and fill it after you've
   had a look at [README.SIGS+AREAS] ... that'll be pretty helpful.

Q: I can change some definitions in [mbox.h] as often as I want, but
   after having compiled the BBS, actually nothing has changed! What's wrong?
A: The BBS takes some definitions from [./etc/mbox.cfg]. If the definitions
   you've changed are part of that file as well, your changes will never
   become active. In that case you'd have to DELETE the [./etc/mbox.cfg] file
   and restart the BBS.

Q: Wouldn't it be nice if one could offer a description of the contents of a
   group just entered - as infact done with the cdrom groups?
A: Just have a file [.mbox] in the spool directory of the group in question:

   /usr/spool/news/local/pd/msdos/.mbox
   /usr/spool/news/alt/binaries/pictures/supermodels/.mbox 

Q: I've set paths, aliases, routers, etc. for SMAIL/SENDMAIL but no mail
   arrives. What can I do?
A: Look at XMDLOG (see [./src/mbox.h] about where to find it). By default, it
   should be at [/usr/adm/xmd.log]. In almost all cases you'll find something
   like "No SETUID for XMD". Just do "chmod ug+s xmd" than.

Q: Users are confused, cause whenever they try to change group with the "GO"
   command, they are thrown out. Can one correct that?
A: Pretty simple! Fetch the [./src/languages/english.cmd] file and take a look.
 
   By default the relevant lines should look this way: 
 
   150     0       0       1       Board
   180     0       0       1       Goodbye
   180     0       0       0       Bye

   Change it to someting like this:

   180     0       0       1       Bye
   150     0       0       0       Board
   150     0       0       1       Go

   The order has changed and a couple of 0 have turned to 1 and vice versa!
   Every little change here does have an effect!!! Restart the BBS and type
   a "?" to get the commands survey. Check it extensivly!!

Q: Why does the BBS terminate everytime I try to get in as ROOT?
A: You've defined the ONE AND ONLY terminal which ROOT may use in
   PMS_TTY [mbox.h], do you remember??

Q: Well the ix/MBox speaks english, german and french, but I want it to talk
   in my own tongue and I haven't quite managed to find out how to make up the
   files. Is there any guide?
A: Sure! Try to follow the instructions in [./LANGUAGES]. It's not that
   complicated at all, but quite a piece of work!

Q: Is it possible to run more than one version of the ix/MBox at a time?
   I'm planning to run the english and the french version using the same
   files (userdata, newsgroups, etc.). Would that be ok?
A: Yes it will be! This BBS is prepared to be used that way also, but
   not completly yet: All the editors and external files will be offered
   in one language only ... Inform yourself about how to make up a multi-
   language BBS by reading [./MULTI.LINGUAL]!

Q: I'm installing the ix/MBox on a SVR4.2 (UnixWare, Ontime etc.) and I
   can't get it compiled. Is there a trick???
A: Yes! Look at [tools.c], near line 57 you should find a special hint. It's
   not an official patch yet, but it might do the trick! Test and tell!!!

Q: How can I set a level different from GUESTs level for users who just
   joined the pack and haven't already been verified?
A: When a user gets his account first, he is given PD_U_LEV. The value
   of it is taken from the command #195, "extern" level. Have a look
   at [./src/languages/*.cmd] to learn about it.                            
 
   Just by the by, all the levels are obtained as described above!

   MAILOUT_LEV     160  (extern)   mails to receivers outside the BBS
   ADMIN_LEV       125  (extern)   administration/sysop permissions
   WRITE_EX_LEV    230  (extern)   write news articles distrib. "world"
   WRITE_IN_LEV    230  (intern)   write news articles distrib. "local"
   WRITE_INTERNAT  998  (intern)   mails to receivers outside the country
   PD_D_LEV        195  (intern)   download files
   PD_U_LEV        195  (extern)   upload files
   EXE_LEV         240  (extern)   execute shell commands
   GUEST_LEV       230  (intern)   guests start level

   Most of the levels are sometimes abused for other purposes. If you're
   changing levels, please check the source code! Use "fgrep EXE_LEV *.c"
   for instance to make sure you know what the specified level is used for!

   If your userlevel is >= ADMIN_LEV, you also may change the levels by
   simply using the command "level" ...

Q: Why do I never see new articles in the boards of the BBS?
A: Maybe you never start MB-DAEMON by [cron|crontabs]!?

   Check the following files: [./etc/mb.daemon], [./etc/mb-daemon.lastrun]
   and [./etc/log.mbd], [./etc/log.mbd-error]. Yes, MB-DAEMON has become
   pretty talkative indeed ;-)

Q: Why do I only get a few newsgroups instead of all?
A: Use the command [admin] and choose [change user] option. There you'll
   find a [Newsgroups] entry. Delete the list of groups and type [all]!

Q: I'm trying to install some external progams but all of them need some
   information from the BBS. Is there a doorfile or something?
A: No, but I could create one if you like. On the other hand, there are
   some environment variables set by the BBS:

   TERM		Terminal setting (vt100, ansi-color, ansi ...)
   USERNICK	Nickname of the user
   USERHOME	BBS home directory of the user

   If you need more, just have a quick look into the file [./src/intro.c]
   and search for one of the variables to get a picture how one could define
   other ones.

Q: You said: "Just add the newsgroup [cdrom] ...". I don't know how to 
   do so!
A: It depends. Check whether you find a command "addgroup". If you are
   using CNEWS, you'll see it in [/usr/local/lib/news/bin/maint]. You can
   make up your new group with "addgroup cdrom y" than.
  
   If you don't have that much luck, you have to do some things on your
   own. Firstly, edit the file [/usr/local/lib/news/active]. Add a line that
   looks nearly this way:

   cdrom 000000 000000 y

   Now make up a directory for it with "mkdir /usr/spool/news/cdrom" and let
   it have the right permissions with "chown news.news /usr/spool/news/cdrom".

   And don't forget to update the [/usr/local/lib/news/explist] as described
   in README.CDROM! 
 
Q: Why do I have trillions of mails in postmasters maildrop?
A: If you use the SMAIL/SENDMAIL couple you have to blame them. If you use
   UMAIL etc. you have to run XMD hourly by [cron|crontabs]!

Q: Why does XMD crash instead of delivering mails?
A: It has to be owned by [root.root] and SETUID set!

   Also read my remarks concerning SMAIL/SENDMAIL a few lines above!

Q: My MB-DAEMON seems to be in trouble sometimes, but I can't see what's
   wrong, cause I'm starting it by CRON.
A: To look after your MB-DAEMON watch the [./etc/log.mbd-error] file!

Q: Is there a "general" hint what to do when I run into trouble?
A: First of all clear the database using [mv ./etc/users.* ./tmp] - that
   might help. If not, try [make clean; make english; make inst] ...

Q: WENDY?!? What is she/it? And: Where exactly is she/it???
A: It's an RTF fullscreen editor especially designed for online use. You'll
   find it in [./contrib/wendy]. I guess the only changes you'd have to
   do is to specify the language in the Makefile. Everything else should be ok
   by default ... worth checking out anyway - your users will love it!!

   By the by: RTF is the Rich Text Format as used by MIME. Pretty handy
   when it comes to make up good looking info/intro pages. Of course you
   can also use the HTML (don't ask what that means!) format for that
   purpose - the <html> token as an indicator of an HTML text is vital.
   And forget about using "links", cause that's not yet implemented!

Q: I can't locate the commands in [mbox.cmd] anymore! Where are they???
A: The structure of the ix/MBox fs has changed a bit to make multi language
   systems possible. Therefor the commands file has moved:

   [./src/languages/*.cmd]

Q: When I write an article it is stored in the NEWS properly, but I
   never get a new line in the index file of the BBS. What's wrong?
A: Run the command 'checkit' inside the BBS. Have a close look at the
   output of the 'Supporting Tools' part. If [MB_DAEMON] says: 'not found'
   you have to reedit the 'MB_DAEMON' definition in [mbox.h].
   If that's not the reason for the trouble the next unit 'Permissions'
   will sched a bit of light on the problem. Fix the permissions and
   owner of MB-DAEMON. 

Q: Why seems MB-DAEMON to be sooooo slow?
A: Spend a TMP-directory on the same FS/partition as HOME|MBOXHOME!

Q: Why do I have to build a shell account for every single BBS user?
A: You do NOT have to! But you have to have different GID (group IDs) for
   guests and users in [/etc/passwd]. See [mbox.h]! This is VITAL! Please
   don't give up 'til you really have everyting made up correctly!!!

Q: Why do I get addresses like this in UUCP-Spoolfiles:
   [From: unnet!Volker.Schuermann@unnet.w.open.DE]
A: It's a problem with RMAIL. Have a look at README.addrpatch to fix it!

Q: Sometimes after a user has left (or has been left ;-) one of the mbox
   programs (mbox, chat, ...) is still running and sort of blocking the
   port. What can I do?
A: It's a common problem with most BBSs. There isn't a propper fix, but
   as usual we can provide you with a workaround. Look at the [contrib]
   directory. There you should find a file [./contrib/sighup.bug]. Try
   to follow the comments within the file ...

Q: How can I include ELM etc. to the BBS command set?
A: Check the file [./etc/list.udc]!

Q: I can't change the group to the "cdrom" dummy! What's wrong?
A: The problem is the so called mount point. It has to be [/cdrom], 
   [/cdrom2] and so on. Use the "mount" command to see which mount point
   is currently used. If it's not [/cdrom] you have to do something
   about it, really!

Q: Sometimes users report that they aren't allowed to download files
   because of a "security gap". What's the matter with that?
A: You've forgotten to update [./etc/list.critical]. Put the path the
   user should also have reported to the file - but be careful! Do NOT
   enter [/etc], [/usr/lib] and so on, cause that'll open a huge 
   security gap!

   No, I'm not telling! That gap must still be in place on lots of BBSs
   running the ix/MBox. It wouldn't be nice to expose the sysops of those
   systems to the risk of loosing essential data.  

Q: My GZIP does not work as defined in [./etc/list.packers]. Is there a fix?
A: Yes! Use [./contrib/gnuzip] instead of [/usr/bin/gzip].

Q: Why does the BBS blow up, when I use C-NEWS as a UNIX (R) NEWS service?
A: Maybe I haven't implemented the aliasing mechanism correct - please
   tell me how it works!

Q: How am I supposed to add new boards/areas/newsgroups?
A: The whole story depends on your UNIX (R) NEWS system. If you run CNEWS,
   you have to use [/usr/local/lib/news/bin/maint/addgroup]. BNEWS leaves
   you with no help at all. You have to edit the [active] file and to create
   the directories by yourself. In both cases you have to run [mb-daemon all -x]
   to install index and thread files for the new group(s)!

Q: I can't find my NEWSGROUPS [see mbox.h] file. Where do I have to look for it?
A: Ask your provider. The file is distributed via the [*.admin.*] newsgroups
   periodically.

Q: I don't have a MODERATORS [see mbox.h] file. What does it matter?
A: Not much. Leave the definition blank and ix/MBox will let your UNIX (R)
   NEWS system do the rerouting.

Q: Recently I heard about using the SURF package to connect to the ix/MBox,
   what's that?
A: SURFace is a newstyle communication package in the making ;-) It's just
   a demonstration dummy so far but it shows what the future of the BBS
   business might look like. Most recent target is to use SURF to get BBS
   users via the ix/MBox into the WorldWideWeb! Check out [./contrib.surf.zip]
   to get an idea of what I'm talking about - the package is made for plain
   DOS so far but I hope to find someone who makes up a MS WINDOWS version!    

Q: I don't understand the confusing directory structure of the ix/MBox.
   Is there a "map"??
A: Yes. Look at [MANIFEST] for descriptions and the tail end of [README] for
   a survey.

Q: The "Newsgroups:" line in the admin menue will not be able to hold all the
   groups I like to offer my (new) users. Is there a workaround?
A: Yes indeed. Define NEWS_MINIMUM in [mbox.h] to "selected". A list of
   newsgroups given in [./etc/active.selected] will be offered than.
   
   Oh wait! If you're able to use the "configure" command within the BBS,
   you'd have to change NEWS_MINIMUM and NEWS_LEVEL1 there! Select option
   3 (Misc) to do so.

Q: I'm running ix/MBox with -D_NOINDEX flag set but can't get a list
   of the boards inside the BBS.
A: You have to run "mb-daemon all -x" at least once. That'll build up the
   boards survey.

Q: The command "thread" ("diskussion") does not work properly. What can I do?
A: Judging by the sounds of things you are running MB-DAEMON without the "-x"
   flag. In that case you can NOT use the "thread" command, cause the
   threaded index files aren't built by MB-DAEMON.  

Q: Is there any risk to loose one of my system-files?
A: Yes! If you play around with MB-DAEMON you may destroy [~/news/active]!
   Be clever: Copy first, destroy later ;-)

Q: My "checkit" says that there aren't any terminals such as "vt52", "ansi"
   and so on. Why?
A: Your "checkit" tries to get facts about the terminals from [/etc/termcap].
   Make sure that all offered terminals have entries in that file. The "ansi"
   and "color-ansi" entries are delivered in [./contrib/termcap.color].

Q: What to do to make use of the COLOR-ANSI termcap-entry?
A: Just append like this: [cat ./contrib/termcap.color >> /etc/termcap]!
   NOTE: Two (2) ">>"!!

Q: If one chooses "vt100" as a terminal, a couple of "2" signs (the number)
   appears frequently on the screen. What does this mean???
A: I means that you are not actually using a VT100 terminal. Such a device
   would know how to handle the "2" signs. There are two ways to get rid
   of them: 

   Just select a terminal emulation that represents your current terminal
   or have a look at [/etc/termcap] and strip of the leading "2" signs from
   the vt100 entry - THAT IS A BAAAAD SUGGESTION ;-))

Q: Why does my SMAIL create a second Message-ID & Received-Field?
A: Just set the SMAIL-Flag [-received_field]. To make life easier, append
   the flag [error_copy_postmaster], too! 

Q: How can I recreate the "/usr/lib{/smail}/aliases" file for the BBS users?
A: Use the (undocumented) command "rebuildA" (no, no missprints!)!

Q: Do I have to install a shell account for every BBS user?
A: Absolutly NOT! You should have a [guest] or [bbs] account with no
   password. This account should call the BBS instead of a shell. The
   BBS than handles the login & accounting!

Q: I want to make access time level dependent. How to??
A: See [./etc/list.timeouts] for it. There you can set access time and the
   number of calls depending on user levels. Also look at [./etc/thrown.out]!

Q: I don't understand the whole [cron/crontab] business! How to handle it?
A: If you run SMAIL/SENDMAIL you don't need any crontab entry for the XMD.
   Otherwise you should install someting like this in [/usr/lib/crontab]
   (for System 7 UNIX) or [/usr/spool/cron/crontabs/*] (for SVR4):
 
   10 *		*  *  *  /usr/local/bin/xmd

   This will start XMD (located in [/usr/local/bin]) 10 minutes after the
   hour every hour daily. On SVR4 systems you'd have to activate the new
   crontab first (see [man crontab] to learn how to).
   
   For MB-DAEMON you also should spend a line in the crontab. Firstly you
   have to figure out which time your incoming news have been sorted in.
  
   20  5        *  *  *  /usr/local/bin/news/bin/input/newsrun  
   20  6	*  *  *  /usr/local/bin/mb-daemon all -x

   or

   20  *        *  *  *  /usr/local/bin/news/bin/input/newsrun
   20  6        *  *  *  /usr/local/bin/mb-daemon all -x 
   20  12,18,22 *  *  *  /usr/local/bin/mb-daemon

   The first example calls MB-DAEMON daily at 6.20am after the NEWSRUN
   has unbatched and delivered the NEWS articles. The second one does it
   a bit more often but without rebuilding the entire structure each time. 
   
   NOTE: Every line in every index file built by MB-DAEMON will take 80 bytes
   of your harddisk capacity. Do a bit of calculating before you let MB-DAEMON
   make your harddisk run over ...

Q: I've got quite a big NEWS system (more than 300 MB of articles) here and the
   MB-DAEMON runs for hours on my system. Any fix?
A: No, not a real fix but a way out: Run MB-DAEMON without the "-x" flag. The
   index files will be alright. The problem is, that there aren't any threaded
   index files made anymore. The command "THREAD article" will work ok, but
   no index will be shown on command "THREAD" without argument.          

Q: How to maintain the USERDATABASE?
A: Play around with the command "ADMIN". You'll see a menu to choose from.
   NOTE: To change the "Account:" entry you have to be on the terminal
   defined in PMS_TTY [see mbox.h]!

Q: I logged in and out several times now, but my protocols, calls and other
   logfiles do not show any single entry!
A: Log in and out as "guest" ... sysops logins (every user with level >= 10 is
   a sysop) don't produce any log information! If you like to monitor your
   cosysops, let them have level 9 only. They'll have the same rights but will
   be recorded in the logfiles.

Q: XMD seems to be sleeping after being called by SMAIL/SENDMAIL - what does
   this mean?
A: XMD sleeps indeed! That to avoid problems with the locking mechanism.
   It will wake up after a few seconds or even minutes ... don't care too much.

Q: Is it possible to port the BBS to system XYZ?
A: Just try it :-) If you've done so let me have the CDIFFs!

Q: Are there any plans to develope further versions of this BBS?
A: Surely! Join our Mailing-List to keep in touch - see README how to!

Q: I can't locate any hints about the COPYING conditions. What about it?
A: The ix/MBox package is FREEWARE. Therefore you can copy, use and change
   it as often as you like. Of course you have to leave my "copyright"
   notices intact. Every version (even if you've improved it) has to be offered
   for free! Copying charges are quite a different story ...
