Firebird BBS 3.0 版
"注:以下文件乃编改自台湾种子站FirebirdBBS3.0版之使用手册。 ———————————————————————————————————— 目 录———————————————————————————————————— (零)前言 (一)架站前的考量 [1]硬体的准备 [2]网路流量的考量 [3]系统安全的考量 [4]身份确认的重要性 (二)安装BBS程式 [1]建立BBS的相关帐号 [2]取得BBS程式 [3]设定及安装BBS程式 [4]测试BBS程式及错误的排除 [5]其他版本BBS升级须知 (三)设定BBS的相关档案 [1]修改系统设定档 [2]修改BBS的选单 [3]开版及建立精华区 [4]BBS目录下档案说明 [5]活动看板的设定与使用 (四)外部工具程式使用 [1]简介自动程序 [2]上站人数统计 [3]上站人次统计 [4]上站次数,发表文章次数,使用时间排名 [5]十大热门话题统计 [6]讨论区使用率统计 [7]观看.PASSWDS的程式--showuser.c [8]自动loginBBS帐号安装 [9]BBSnet,Lynx,Archieclient,IRC..etc安装 (五)寄信给BBS站内使用者及E-mailPost安装 [1]身份确认信处理的流程 [2]如何修改系统使BBS站内User能收到Intermail [3]E-mailpost安装及使用 (六)转信程式INNBBSD的安装 [1]安装转信程式 [2]设定转信所需的设定档 [3]申请转信的方法 [4]参考文件[已知NewsServer列表] [5]自动砍信程式expire介绍 ————————————————————————————————————— 第零章 前言————————————————————————————————————— 本板是从FPUG(FirebirdPowerUserGroup)推出的FB3.01003SNAP发 展而来的一个分支。这支代码由AddWaterBBS站站长 deardragon继续开发 发布。本代码秉持GNU软体开发精神而开放给大家自由拷贝使用、修改。 本板代码根据实际的需要,对原有的FirebirdBBS结构功能做了极多的改动, 不仅仅舍弃了部分微弱功能,而且加入了大量实用的功能,并对系统性能做了 大幅度提高。 本板开放让大家抓取,其目的在於希望能让各Firebird系列的站台互相交流, 集思广益,一齐参与发展,使FirebirdBBS在研发方面做得更加的尽善尽美。 本板在BSDLicence下发行,在不修改原有之版权宣告的情形下,各位可任意拷 贝及修改。但是我们有个小小的要求,就是若您对它作了一些修改,或修正错误 ,或添加功能,请回报给发展小组,或在Firebird连线版上post出您改过的 地方,好让大家也能分享您的成果。与人分享的快乐,胜过独自拥有,这是本板 发行的目的。 ————————————————————————————————————— 第一章 架站前的考量————————————————————————————————————— [1]硬体的准备 足够的记忆体及SWAP是影响上站人数上限的关键,硬碟的大小则影响到各板文 章能保留篇数的多少,在架站前需衡量所需配备。据观察,一台具有32MB记忆 体的Linux机器在BBS人数达80人左右时开始会用SWAP。(Linux作业系统 在记忆体不足的状况下才会用SWAP) 因为BBS的档案多以信件,讨论区文章为多,这些都是1K~2K的小档案,所 以系统的档案结构每个inode以1K或2K为佳,您可以下df-i指令观察目 前inode的使用状况。inode的大小通常是在newfs时选择的。 [2]网路流量的考量 当您的BBS站公开给外界使用以後,通常会遇到以下麻烦: 如果有大量使用者透过网路连接您的BBS,会对您们当地的网路造成「有点大, 又不会太大」的网路交通量。 ==>对策:礼貌性知会网路管理单位,统计网路交通流量,了解BBS系统对网路 的影响程度,以调整BBS的管理策略。 [3]系统安全的考量 由於BBS站是一般cracker觊觎的对象之一,因此设立BBS站之後,容易让您 的工作站成为显著的入侵目标。 ==>对策:请更加注意您的系统安全,尤其当执行外部程式(如gopher,lynx, tin....etc),务必确定程式没有执行上的漏洞,或者寻找修改过专为 BBS用的版本,并请勤於修补作业系统的漏洞。 [4]身份确认的重要性 除非您的BBS站是封闭式的BBS(也就是使用者必须经过严格的申请程序才能拥 有帐号),否则请注意匿名使用者的问题。匿名使用者的言责问题一直是网路上 争议的论点之一,因此请您在开站之前考虑您的做法。 ==>对策:确认使用者身份以後才给予发表文章的权利,而且规定使用者身份只 能透过系统管理员查询。如此即可适度保障使用者隐私权、又可在发 生问题时追查责任的归属。 ————————————————————————————————————— 第二章 安装BBS程式————————————————————————————————————— [1]建立BBS的相关帐号 在安装BBS之前,请您先在系统中加入以下使用者。步骤是:用root登陆入系 统,使用groupadd命令,为系统创建一个专门用于bbs的组用户 bbs。命令 是 [root@bbs/root]#groupadd-g999bbs 然后再建一个bbs用户。命令是 [root@bbs/root]#adduser-u9999-gbbsbbs 建立后,即表示用于bbs的用户名是bbs,用户ID是9999。然后你还要为 bbs用户设置密码,命令是: [root@bbs/root]#passwdbbs 然后再修改/etc/group文件,将bbs加入到bbs:x:999:的后面,使之成为 bbs:x:999:bbs。(新建帐号的步骤会因系统不同而有差异,请您在建立帐号之 前参考您的系统管理手册。采用UID9999的原因是为了避免与一般使用者的 UID产生冲突) 一般建立好新帐号后,可以在/etc/passwd中看到以下的内容: bbs:x:9999:999::/home/bbs:/bin/bash ※目前FB2000已经废除bbsrf,所以不必再开两个bbs、bbsuser两个帐号,只 需一个帐号(bbs)即可。bbs是专门用于修改程序的系统帐号。 为bbs的源程序创建两个目录bbssrc,bbs: [root@bbs/root]# mkdir/home/bbssrc;mkdir/home/bbs [root@bbs/root]# chownbbs.bbsbbssrcbbs 以上操作均是以root身份执行的。 [2]取得BBS程式 请以bbs登陆入系统,再抓取BBSsource,本板的source可由以下位址取得: http://fb2000.dhs.org/download/FB2000v0918.tar.gz 取回後,解开FB2000v0918.tar.gz的原始程式,以进行安装程序。 解开FB2000v0918.tar.gz的方法: [bbs@bbsbbs]$cd/home [bbs@bbsbbs]$tarzxvfFB2000v0918.tar.gz [3]设定及安装BBS 1.手动设定 以bbslogin,编辑bbssrc/include/functions.h,这个档定义了一些bbs的 重要功能,您可以视需要打开或关闭。目前FB3预设使用bbsd,bbsrf则已经 废除。 2.自动设定系统环境及填写主要BBS资料 同样以bbslogin,到bbssrc/目录底下执行以下指令: %./configure 执行的过程应类似以下画面: .................................. PleasefilldataforyourBBS 请填写与贵站相关的BBS数据...................................HomedirectoryofBBS-->[/home/bbs] ==>bbs目录所在UIDofBBS-->[9999] ==>bbs的系统UIDUSERofBBS-->[bbs]==>bbs的系统帐号GIDofBBS-->[999] ==>bbs的系统GIDGROUPofBBS-->[bbs]==>bbs的系统组TheIDofyoursite-->[AddWaterBBS] ==>贵站的英文代号Thenameofyoursite-->[快意灌水站] ==>贵站名称(中文可)Thedomainnameofyoursite-->[some.where.on.earth] ==>贵站domainnameTheIPaddressofyoursite-->[127.0.0.1] ==>贵站IPaddressTheDefaultboardofyoursite,onlychangeitifupgradingfromoldsystemwithdifferentdefaultboard-->[sysop]==>预设看板Maximumnumberofusers-->[20236] ==>最大使用人数Maximumnumberofboards-->[256] ==>开板最大数目Maximumnumberofon-lineusers-->[256] ==>最大同时上线人数ShowidletimeofBBSusers?-->[Y] ==>显示idle时间UseDLM?-->[Y]==>使用动态连接模块Makebbsusersinvisible(-DINVISIBLE)?-->[N] ==>是否不写入系统utmpPLEASECHOOSETHISCAREFULLYIslibcrypt""DES""correct?-->[Y] ==>密码编码方式........................................updatingcache./config.cachecreating./config.statuscreatingMakefilecreatingconfig.hcreatingInstall.sh ........................................................................YoumayreviewtheMakefilenow.Then,type'make'tobuildyoursystem......................................................................... 在设定一些数值时,请确切考虑您的硬体设备是否足够支撑。特别是最大同时上 线人数,它是与记忆体的大小非常有关的。 如果您使用FreeBSD,请注意您系统的密码编码方式是MD5还是DES,若您从 旧BBS系统升级到FB2000,在这里您别无选择,必须使用DES,没安装的话, 请先安装DES後,再执行configure。 程式会自动判断您所用的系统,并且询问您所架设的BBS之基本资料,以造出必 要的Makefile。顺利的话,您应该可以在bbssrc/目录底下找到刚打造出来的 Makefile。您可以观看此档的设定,若有必要,可手动修改之。 在bbssrc/include下亦可找到config.h这个档,在编译程式之前您亦可对它 作一些手动的修改。同一个目录下可找到chat.h这个档,您可以在此更改聊天 室的名称和portnumber。 还有一个要注意的地方,在bbssrc/src/Makefile中,有个EXTRADEF的定义, 您可以在最後面加上-DWITHOUT_ADMIN_TOOLS,这样就不会编译SYSOP会用到的 系统管理程式,可以节省记忆体,对大型BBS本功能尤其有效。 3.编译BBS程式 以bbs登入,在bbssrc/下执行如下指令: [bbs@bbsbbs]$make 进行编译动作。编译过程无错误的话,bbssrc/src目录底下应该会产生bbsd(或 bbs),chatd以及thread几个执行档。这几个档案都已产生的话,代表BBS程 式的编译已经完成。 如果因为任何error导致BBS程式无法产生的话,请先检查安装程序是否有错 误,然後重新。若无法解决,可将编译过程产生的讯息张贴至快意灌水站BBSdev 板求助。 4.安装BBS程式 以bbslogin,在/home/bbssrc目录底下执行: #makeinstall 即可大功告成。请继续测试您刚架设完成的BBS站。 [4]测试BBS程式及错误的排除 1.测试前准备 执行: [root@bbs/root]$/home/bbs/bin/bbsd2000 这里的2000是指你的BBS端口号。即port.别人访问你的BBS时, 就可以通过telnetyour.server.id2000来连接你的bbs。当然,port 可以随意用您喜欢的port,若您要用port23,请先关掉系统原有的 telnetd,关掉telnetd的方式请参考的说明文件,否则可以跳过此节。 如果您要使用系统原有的port23,你必须关掉系统原有的telnetd, 如果您要直接使用bbsrf,请跳到2。关掉telnetd的步骤是:(全部是以 root的身份执行) 1).修改/etc/inetd.conf,寻找以下的字串: telnet stream tcp nowait root /usr/libexec/telnetd telnetd 把该行改成: telnet1 stream tcp nowait root /usr/libexec/telnetd telnetd ※因作业系统不同,您看到的设定可能与上述设定不尽相同,请把 握一个原则,就是在第一个telnet後面加上1就对了。 2).接著修改/etc/services,在适当位置加上: telnet1 2300/tcp #previousin.telnetddaemon ※这行设定将您旧的telnetdport设到2300,您可以自行修改您 喜欢的port数字,建议往後面设,如54321。 ※又:由于你将系统的telnetd端口设成了其他的number,那么 缺省的telnet将使用portnumber,如果你使用telnet登陆 其他使用23port的主机时,你需要人为地加上对方主机使用的 port。如:登陆快意灌水站:telnet210.38.240.15823 3).执行以下指令,找出inetd的PID: [root@bbs/root]$ps-ax|grep""inetd"" 接著执行以下指令,就可重新起动inetd(或重开机也可): [root@bbs/root]kill-HUP(PID) 2.测试BBS并取得SYSOP权利 在你的系统的shell里使用telnetlocalhostport登陆到你的bbs中。应该 可见到BBS的进站画面。此时,当BBS程式要求您输入代号时,请输入new, 以便注册一个新使用者。由於名称为SYSOP的使用者拥有一切权利,因此您必须 先注册SYSOP,并且设定密码。 【注意】:SYSOP必需完全为大写字母。 ※请注意:如果你登陆SYSOP帐号只能在你的bbs主机上(或登陆到bbs主机 上),使用telnetlocalhostport来登陆。否则会得到一个警告,并禁止登陆,您如果不希望这样,您可以在/home/bbssrc/include/functions.h中屏蔽该功能。 接下来,请再注册guest帐号,此帐号为BBS的参观帐号,不须输入密码即可 进入BBS(注册时随便打个密码即可)。如果您不想提供guest帐号,可以略过此 步骤,并记得把guest加入""不可注册之ID""的名单内。若您提供了guest帐 号,请参考稍後的文件说明替guest设定「恰到好处」的权限。通常guest帐 号是只能参观不可发言的,因此通常不具有发表文章或聊天的功能。 3.错误的排除 如果天不从人愿,程式一声不响地结束了,请您以bbs登入系统,执行ipcs指 令,查看sharedmemory,SHM的使用情形与owner是否正确,正常的owner 应该是bbs,如果不是的话,请利用ipcrm清除之,然後重新执行bbs。通常此 类误会有Error!shmaterror!key=ooxx的讯息。 若还是不行,请检查~bbs/etc中是否有menu.inisysconf.ini这两个档案, 内容是否完整。如果完整的话,请试著删除~bbs/sysconf.img档案,再重新进 入BBS测试。 如果还是不行的话,请试著清除整个BBS系统,重新开机後再安装几次试试。如 果真的没有办法,请到fb2000.dhs.org的BBSdev讨论区求助,或者给dragon@fb2000.dhs.org写信。在此特别推荐第一种做法,因为这样子可以 在网路上遇到较多使用FirebirdBBS20000系统的管理者,得到立即回应的机 会较大。当然啦,在求助之前请详述您的系统平台、所用的编译器,以及出现的 错误讯息等资讯,这样子大家才能容易帮您找出可能发生问题的地方,不然可能 会没人回答您的问题喔! 又,在发问前,请先往前找找是否有人回答过相同的问题。 [5]其他版本BBS升级须知 目前本系统提供从其他版本的BBS到本板本的转换程式,具体情况请参阅 本目录下的Update_To_FB2000文件内容。 ————————————————————————————————————— 第三章 设定BBS的相关档案————————————————————————————————————— 以下介绍主要的设定档,以便使用者架出一个符合自己要求的BBS [1]修改系统设定档 修改~bbs/etc/sysconf.ini 以下分别说明sysconf.ini中选项的意义 #comment EMAILFILE =""etc/mailcheck"" <--如果把这行前面加上#就不寄身份确认信#NEWREGFILE =""etc/newregister"" <--如果把这行前面#拿掉就有新手三天限制 PERM_BASIC =0x00001 <--以下为一些权限的定义,将在menu.iniPERM_CHAT =0x00002 中使用(请小心修改以免造成问题)PERM_PAGE =0x00004.......................... PERM_SPECIAL6 =0x8000000PERM_SPECIAL7 =0x10000000PERM_SPECIAL8 =0x20000000 PERM_ESYSFILE =PERM_SYSOP,PERM_WELCOME,PERM_ACBOARD^^^^^^^^^^^^^^拥有修改部份/全部系统档的权限PERM_ADMENU =PERM_ACCOUNTS,PERM_OVOTE,PERM_SYSOP,PERM_OBOARDS,\ PERM_WELCOME,PERM_ACBOARD,PERM_DENYPOST^^^^^^^^^^^^^^可看到并使用管理者选单PERM_BLEVELS =PERM_SYSOP,PERM_OBOARDSPERM_UCLEAN =PERM_SYSOP,PERM_ACCOUNTS AUTOSET_PERM =PERM_CHAT,PERM_MESSAGE,PERM_PAGE,PERM_POST,PERM_LOGINOK^^^^^^^^^^^^^^设定身份确认通过的使用者可得到的权限 #include""etc/menu.ini"" 注意!修改完sysconf.ini後,请至BBS主选单按Shift+~或者砍掉 ~bbs/sysconf.img,以便更新系统设定。 [2]修改BBS的选单 1.加入背景:在每个选单背後都有一个背景,以主选单为例,它的背景就是由 screen这行所指定的S1_MAIN所决定: #---------------------------------------------------------------------%S1_MAIN 这里是背景 我是可爱的哲哲!! 我好帅喔!! %#--------------------------------------------------------------------- 在%S1_MAIN与%中的文字都会被当成背景印出. 2.menu.ini内各设定的意义(以主选单为例) %menuTOPMENUscreen 3,0,S1_MAIN ^^^^^^^指定用那个背景 title 0,0,""欢迎光临靠边站(CobaBBS) "" ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^这是每个选单都 欲印出的座标 有的标题 !M_EGROUP 3,0,0, ""EGroup"", ""E)分类讨论区"" ^^^^ ^^不限权限皆可用 从(3,0)开始印 !M_MAIL 0,0,PERM_BASIC,""Mail"", ""M)私人信件服务""^^^^^^^ ^^^^^^^^^^要有BASIC权限才看的到这个选项跳到M_MAIL选单 !M_TALK 0,0,PERM_BASIC,""Talk"", ""T)进入聊天选单"" ^^^^(0,0)表接著上行印 #!M_INFO 0,0,PERM_BASIC,""Info"", ""I)设定个人资料""^^^^^^^^这行前加了个#,代表拿掉这行 以上只简介了大致上的设定方法,详细可使用的功能请参考 ~bbsroot/bbssrc/bbshome/etc/menu.ini的档案,对照修改您 现在使用的menu.ini。 注意!修改完menu.ini後,请至BBS主选单按Shift+~或者砍掉 ~bbs/sysconf.img,以便更新系统设定。 [3]开板及建立精华区 1.开板及分类讨论区 刚建好的BBS除了预设的讨论区外,什麽讨论区也没有,站长可以视使用者需要 开启适当的讨论区,同时为了BBS使用者找寻讨论区方便起见,必需将相关的讨 论区分类在同一个群组中(Group),讨论区群组的设定请见~bbs/etc/menu.ini, 以下是参考的设定: title 0,0,""分类讨论区选单""screen 3,0,S_EGROUP@BoardsNew 11,25,0, ""New"", ""N)阅读新文章 New""@EGroups 0,0,0, ""0BBS"", ""0)BBS系统--[站内]""..(略).. ..(略).. ..(略)... .......(略)...............@EGroups 0,0,0, ""6Sports"", ""6)体育健身--[运动][职棒]""@EGroups 0,0,0, ""7Talk"", ""7)物理专业--[中国物理协会]""@BoardsAll 0,0,0, ""Boards"", ""B)所有讨论区""!.. 0,0,0, ""Exit"", ""E)回到主选单""%EGROUP0=""0""............EGROUP6=""rs"" <--rs为分类码,开板时会用到,r与s皆定义为EGROUP6EGROUP7=""xf""EGROUPT=""*"" 请特别注意分类选单的0)将会分到EGROUP0,6)将会分到EGROUP6... 开启新板的方式是到主选单下选A)系统管理功能表的N)开启新的讨论区,第 一个建立的板必需为sysop(安装时已预先建立好),请如下输入: 讨论区名称:sysop <--填入讨论区的英文板名 讨论区说明:0[站内]○站务管理区 ^讨论区说明的第一个字为分类码(定义於menu.ini),以此0为例 ,将会分至EGROUP0,也就是0)BBS系统--[站内],其馀部份 的讨论区说明请按此形式填写,以免到时板面排的不好看。 讨论区管理员:SYSOP <--指定讨论区的BM 是否限制存取权利(Y/N)?[N]:n <--指定只有某些权限者才能存取此板 是否加入匿名板(Y/N)?[N]:n <--是否为匿名板 1.本站系统 system.faq 2........ .......... 14.其他 other.faq 请输入你的选择:1 <--选择精华区要放那?以後可再调整位置 已经置入精华区..... 新讨论区成立 2.建立精华区 使用者在讨论区按下x键便会跳至该讨论区的精华区,要达成此功能必须要正确 设定~bbs/0Announce/.Search档案内容,在一般情况下,您不用手工来设置它, 如果确有变动,则修改该文件。该文件可能的内容如下: linux: Linux installbbs: Linux/bbs sysop: sysop .... ....... 其中冒号前代表boardname,後面的代表对映的目录名例如:在installbbs板 按下x时,FirebirdBBS就会去找~bbs/0Announce/Linux/bbs下的精华区。 正常开板时即会自动写入此档,平常无需自加,但如果精华区目录有更动时,请 记得修改此档。 [4]BBS目录下档案说明 以下说明在~bbs目录下各重要档案的功能,请详加阅读以便能更掌控贵站的正 常运作。 PartI.☆主要资料档案☆ ——————————————— 1.BBS_HOME/.PASSWDS 存放每位使用者的基本资料,宣告structuserec。 欲观看此档内容,请参考第四章[7]的说明。 2.BBS_HOME/.BOARDS 存放讨论区的基本资料,宣告structboardheader,里面有一个element.flag 是用来存放讨论区的状况 3.BBS_HOME/WelcomeWelcome.rec 进站後的欢迎画面,和记录读取情况。可直接用编辑器修改Welcome 的内容,注意!!只有当Welcome有更新过时,使用者才会看到。 4.Welcome2 与Welcome类似,但每次进站都会看到,且允许有多重画面,以@login@ 彼此隔开。 5.BBS_HOME/home/A-Z 存有各个使用者的目录,并依照使用者ID的第一个字来分类排放: 例如:SmallPig使用者的目录就放在BBS_HOME/home/S/SmallPig, wildwolf使用者的目录就放在BBS_HOME/home/W/wildwolf。 6.BBS_HOME/boards 里面存有各讨论区的directory。 7.BBS_HOME/vote 里面记录各讨论区的投票控制档,以及讨论区简介。 8.BBS_HOME/0Announce 里面记录精华区资料。 9.BBS_HOME/etc 系统控制档案。 10.BBS_HOME/help 各控制键说明文件档案。 PartII.☆使用者目录☆ —————————————— BBS_HOME/home/A-Z/USERID/* 1.friends 记录好友名单,宣告structfriend。 2.logout 使用者自订离站画面。 3.maillist 寄信给一群人列表。(目前已删除) 4.notes 个人备忘录。 5.plans 个人说明档。 6.signatures 签名档。 7.mailcheck 身份确认暂存档。 8.register 身份确认记录档。 PartIII.☆投票目录☆ —————————————— BBS_HOME/vote/BOARDNAME/* 1.notes 讨论区介绍(备忘录)。 2.noterec 记录讨论区读取情况。 3.control 投票控制档。 4.desc.????? 投票描述。 5.flag.????? 使用者投票记录。 6.results 投票结果。 7.secnotes 秘密备忘录。 PartIV.☆系统控制档案☆ —————————————— BBS_HOME/etc/* 1.anonymous 匿名板名单(目前已移至~bbssrc/include/config.h中控制) 2.autopost 每日系统自动Post列表。 使用法如下:在autopost档中填入以下内容 /home/bbs/0Announce/bbslist/board1 bbslists 讨论区使用率(图) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^ 欲自动张贴的档案名 张贴至何板 张贴时用的标题 ※自动张贴的原理是当有使用者上站时,去检查~bbs/etc/checknotepad内存的时 间,是否距离上次自动张贴已经过24小时,是便自动张贴,否则不动作。 3.boardref 站长开板时所用的参考文件。 4.checknotepad记录留言板与自动Post的时间记录。 5.f_fill 填写注册单失败的mail内容。 6.s_fill 填写注册单成功的mail内容。 7.firstlogin 新手上路将阅读的文件。 8.fmail 身份确认失败的mail内容。 9.smail 身份确认成功的mail内容。10.goodbye login三次错误的画面。11.issue 进站前的画面。12.junkboards 不记文章数的板。 ※只要板名列入junkboards,BBS使用者在此板发表的文章均不列入个人张贴文章 数统计,适合用於灌水板或匿名板等。 13.mailcheck 身份确认寄出信件的内容。 ※请务必修改此档内容,以免使用者收到确认信还莫名其妙。 14.menu.ini 选单控制档。 ※一些需要使用外部程式的选项在一开始是被#符号mark起来的。倘若您已安装 好相关外部程式,可将其在menu.ini前面的#去掉,存档後按Shift+~或 把~/bbs/sysconf.img砍除,则该选项随後就会在选单中出现了。 15.sysconf.ini 系统控制档。16.newregister 注册说明档。17.notepad_tmp 使用者留言暂存处。18.notepad 留言板。19.sysops 站长列表。 ※请在此档中加入站长的ID及职称,例如: wildwolf 系统管理 aci 站务管理 当使用者有建议时,便可在离站时选择适当职务的管理者,留信给他。 20.user_full 注册人数已满。21.loginfull 上站人数已满。22.register 新使用者注册帐号之辅助画面。23.logout 离站画面。 ※离站画面可使用多个,只要中间以@logout@隔开即可,请bbssrc/bbshome/ete/\ logout的范例。 24.wmail 退信讯息档。 ※当认证信被退回时,系统将会以此封信内容告知使用者。 25.whatdate 纪念日清单。 ※可以在这里面设定特别的日子并加以描述,当天BBS将会将该日子的描述显示在 画面下方。注意!字与字之间请勿输入空白,若发现显示错误或输入错误而要更 改,需重新开机方可生效。 26.expire.ctl expire(post)程式设定档。 ※这个档案用来设定各板面保留文章的天数,上限及下限等。 PartV.☆讨论区目录☆ —————————————— BBS_HOME/boards/BOARDNAME/* .DIR 文章资料档。 .DIGEST 文摘资料档。 .THREAD 同标题模式文章资料档。 M.123456789.A 文章。 [5]活动看板的设定与使用 FB3.0的活动看板采用新的机制,活动看板的内容来源从notepad板中的文摘 (也就是被g起来的文章)中选录。活动看板的宽度也从五行改成七行,您可从 include/functions.h设定是否加大活动看板为七行)。 当您安装一套新的系统时,预设在notepad板安装了三个活动看板。您可以自行 修改,增添。如果你是FB3.00614-SNAP之前的FB3使用者,请先清除movie 的shared-memory(shmkey:30030),因为更动到相关的资料结构,若不清除则 上站会被踢出。 新增一个活动看板很简单,只需要发表一篇文章在notepad板,然後去把那个文 章给收录文摘(在文章之前按一下g),然後重新上站,你可以发现~bbs/trace会 纪录活动看板更新的讯息。此後,只要notepad有新增或删除文摘的话,就会自 动更新活动看板。 ※本来程式在收录活动看板时会自动跳过4行的档头,然後才抓取7(或5)行 的资料来做为活动看板的内容,在这里你可以在活动看板的文章标题上,来控 制程式从这个档案的第几行开始收录成为活动看板,你只要将标题的第一个字 元改成$,然後第二个字元设成你所想要的行号(0~9)。 Ex: $0 <-这个活动看板从档案的开始(系统预设的活动看板即采用此方法)。 ※新活动看板机制由edwardc从MagicBBS990424移植过来。 ————————————————————————————————————— 第四章 外部工具程式使用————————————————————————————————————— 本章主要是介绍在~bbssrc/util下的程式,这些程式在安装BBS程式时并未安 装,贵站可以视需要参考以下章节的说明安装这些外部程式。 [1]简介自动程序 在完成基本的BBS架设之後,就要开始安装BBS程式以外的一些应用程式,而 这些应用程式有些可能5分钟就要跑一次,有些可能是定时每天的xx时xx分 要执行某这些动作当然不可能每次都由我们自己来做,所以才需要由电脑定时的 为我们执行。以下便是简单的介绍执行自动程序的方法。 一个描述自动程序的档内容可能是这样的: 0,30 8,9,10,11 * * * /home/bbs/bin/account^^^^ ^^^^^^^^^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^minute hour monthdaymonth weekday command 我们先把他写在一个档里,叫cron.bbs,然後执行: %crontabcron.bbs 此时User指定的自动程序就会被加入系统中。如果我们想要更改自动程序时, 可以再去修改cron.bbs然後再执行一次crontabcron.bbs即可。你可以执行 crontab-l确认一下自动程序是否已加入。但值得注意的是,谁执行了crontab cron.bbs,自动程序就会加入谁的自动程序中,以後电脑自动执行程式时,也会 以那个人的身份来执行。所以像以下我们所介绍的应用程式都要用bbs的身份来 执行时,在下crontabcron.bbs时,就必需要确认此时是以bbs的身份来 执行,请特别注意这点。 [2]上站人数统计 请确定先前执行configure时,到Makebbsusersinvisible(-DINVISIBLE) 选项时您选N,如果您当时选Y,请修改bbssrc/Makefile将-DINVISIBLE拿 掉了,之後makeupdate更新bbs程式。接下来请至~bbssrc/util/local_utl 下,修改averun.c的90行附近,将其改为贵站的中文站名,再下如下指令: %makeaverun 把averun拷到~bbs/bin下并在~bbs/下建立cron.bbs,加入以下内容: 0,5,10,15,20,25,30,35,45,50,55****/usr/bin/uptime>>\ /home/bbs/reclog/uptime.log 57****/home/bbs/bin/averun/home/bbs/reclog/uptime.log;/bin/rm\ /home/bbs/reclog/uptime.log 560***/bin/mv/home/bbs/0Announce/bbslist/today\ /home/bbs/0Announce/bbslist/yesterday;/bin/rm/home/bbs/reclog/ave.src ※为方便阅读,太长的命令用""\""断开,切成两行,实作时请务必写成一行,并 将""\""拿掉。 再来用bbs的身份login,建立/home/bbs/reclog的目录,这个目录是用来存 放累计用的资料,之後再进入BBS的精华区,在精华区主目录下,开一个目录叫 bbslist(用g功能),在bbslist的目录之下建两个档案,一个叫today(今日 上站人数统计),另一个叫yesterday(昨日上站人数统计),然後离开BBS,切到 ~bbs/目录下,用bbs身份下: %crontabcron.bbs 以後电脑就会自动更新这两个档的内容。 [3]上站人次统计 请至~bbssrc/util/local_utl下,修改account.c108行附近有关站名的中文 部份,然後执行: %makeaccount 再把accountcopy到~bbs/bin下,接著进入BBS,在bbslist目录下开两个 档,一个叫countusr(今日上站人次统计),一个叫countusr.last昨日上站人 次统计),内容先空白。然後修改~bbs/cron.bbs,加入如下内容: 0,5,10,15,20,25,30,35,40,45,50,55****/home/bbs/bin/account 00***/bin/cp/home/bbs/0Announce/bbslist/countusr\ /home/bbs/0Announce/bbslist/countusr.last ※上述指令中,原本采用mv,会造成每天晚上12:00以後进不去的问题,所以 改用cp指令。 之後在~bbs/目录下,以bbs身份下crontabcron.bbs就做完上站人数的自 动统计功能了。 [4]上站次数,发表文章次数,使用时间排名 请至~bbssrc/util/local_utl下执行: %makebbstop 再把bbstopcopy到~bbs/bin下,进入BBS,至精华区bbslist目录下开四 个档,分别是toplogin(上站次数排行),toppost(post次数排行),topstay(使 用时间排行),topall(总积分排行),然後修改~bbs/cron.bbs的内容,加入如 下叙述: 00***/home/bbs/bin/bbstop/home/bbs501>\ /home/bbs/0Announce/bbslist/toplogin 00***/home/bbs/bin/bbstop/home/bbs502>\ /home/bbs/0Announce/bbslist/toppost 00***/home/bbs/bin/bbstop/home/bbs503>\ /home/bbs/0Announce/bbslist/topstay 00***/home/bbs/bin/bbstop/home/bbs504>\ /home/bbs/0Announce/bbslist/topall 在~bbs/目录下,以bbs身份下crontabcron.bbs以後电脑就会自动更新这 四个档的内容。 [5]十大热门话题统计 请至~bbssrc/util/local_utl执行: %makepoststat 再把poststat拷至~bbs/bin,建立~bbs/etc/posts目录(owner为bbs)进入 BBS,在bbslist目录下开四个新档day,week,month,year;分别是本日十大 热门话题,本周十大热门话题.....。然後用bbs的身份把~bbs/etc/posts下 的对映档link至这(即在~bbs/etc/posts下指令: rm~bbs/0Announce/bbslist/day;ln-sday~bbs/0Announce/bbslist/day 其馀依此类推。再修改~bbs/cron.bbs加入如下叙述: 10****/home/bbs/bin/poststat/home/bbs 在~bbs/目录以bbs身份下crontabcron.bbs,之後每小时会做一次统计。注 意!只要某板有设ReadorPost限制,那个板便不列入统计,所以一般板请勿 设ReadorPost限制。 [6]讨论区使用率统计 请至~bbssrc/util/local_utl目录下: %makeusage 把usage拷至~bbs/bin下,再进入BBS,在精华区bbslist目录下建两个档 board1(图表式的讨论区使用率统计),board2(文字式的讨论区使用率统计),再 修改~bbs/cron.bbs加入: 15****/home/bbs/bin/usage0;/home/bbs/bin/usage1 在~bbs/目录以bbs身份下crontabcron.bbs即可。 [7]使用者生肖、星座统计 到~bbssrc/util/local_utl执行: %makehoroscope 把horoscope拷至~bbs/bin下,再进入BBS,在精华区bbslist目录下建两 个档:counthoro(星座统计),countani(生肖统计),再修改~bbs/cron.bbs加 入: 0****/home/bbs/bin/horoscope 在~bbs/目录以bbs身份下crontabcron.bbs即可。 [8]观看.PASSWDS的程式--showuser.c showuser.c这支程式。可以把.PASSWDS的资料列出来。先至~bbssrc下如下 指令: %makeshowuser 再将showuser拷至~bbs/bin下,只要下如下指令: %showuser~bbs/.PASSWDSi8n12r12m30u8 即可列出使用者的各项资料,详细参数执行showuser便有说明。 [9]Lynx,Gopherclient,MJ..etc安装 1.Lynx的安装 Lynx功能定义於特别服务选单的@WWW,这个功能选项会去执行~bbs/bin/\ www.sh,只要在www.sh中执行lynx即可。(lynx是一种只有文字介面的浏 览器。请特别注意,lynx必需先经修改,不能让使用者有更改编辑器设定的选 项,也不能让使用者可以进入shell,以免系统被侵入,如果你对这方面不熟, 请先至转信installbbs板询问清楚再安装此功能。) 2.ArchieClient的安装 Gopher功能定义於网路功能选单的@ExecArchie,这个功能选项内定会去执行 ~bbs/bin/archie.sh。archieclient程式可以由以下位址取得: ftp://ftp.firebird.org.tw/pub/Firebird/add-ons/archie-1.4.1.tar.gz 3.IRCClient的安装 IRC功能定义於网路功能选单的@ExecIRC,这个功能选项内定会去执行~bbs/\ bin/irc.sh,只要在irc.sh中执行irc即可。 irc程式可以到ftp://ftp.firebird.org.tw/pub/firebird/add-ons/\ ircii-2.8.tar.gz,请自行阅读内附说明安装至贵站系统中。 4.POP3D的安装 POP3D可以让BBS使用者通过POP3Client,如NetscapeMail,Micorsoft Outlook,Eudora等等,离线阅读他们在BBS信箱内的信件。要使用pop3d 请到~bbssrc/util/local_utl执行makebbspop3d,接著把编出来的bbspop3d 放在适当地方(如/home/bbs/bin)再以root执行之。您必需以root来执 行,一旦执行後便会常驻了,可考虑把它设定成开机自动执行。 5.bbs-fingerd的安装 fingerd可以让使用者透过fingerclient(port79)来查看BBS站的线上使 用者,或query个人资讯,就好像在站上query使用者一样。要使用fingerd 请到~bbssrc/util/fingerd里执行make,接著把fingerd档放置到适当地方 ,例如~bbs/bin,或/usr/local/bin。请注意,因为这个程式占用了port79 的fingerport,请您务必要用root执行,并请勿更改档案权限,否则程式会 无法执行。且执行前请先确定系统中有无其他fingerd或其他程式正使用port 79,若有bbs-fingerd无法bindport79,将不会作用。 ————————————————————————————————————— 第五章 寄信给BBS站内使用者及E-mailPost安装————————————————————————————————————— 这章所要安装的是最难处理的sendmail的设定修改,因为各OS以及sendmail 的版本都会有所差异,所以本章只能大略的说明一般性的安装流程,如果安装有 问题,请将完整退信内容,及~bbs/bbslog档案内的讯息张贴至转信installbbs 板求助。 [1]身份确认信处理的流程 本板FB3.0在使用者注册後,便会以SYSOP.bbs的身份发身份确认信给使用者 的E-mail位址处,当使用者收到信件後,直接reply信件,将确认信回寄给原 发信者SYSOP.bbs,便可通过身份确认(使用暗码认证无须此步动作)。如果我们 详细的解说其流程则是如下所示: send: ===== SYSOP.bbsmailtouser->sendmail(bbs)->sendmail(user)->user receive: ======== usermailtoSYSOP.bbs=>sendmail(user)=>sendmail(bbs)=> mailtoSYSOP->bbsmail->mail2bbs->SYSOP.bbs 一般未修改过的sendmail.cf并不接受收信者为xxx.bbs的型式,所以主要要 更改的就是这个部份。以下[2]便说明如何修改,请特别注意!对sendmail.cf 而言,空白与TAB是不同的东西(虽然看起来好像一样),请仔细参阅说明更改。 [2]如何修改系统使BBS站内User能收到Intermail 1.请至~bbssrc/util/mail2bbs,编辑Makefile,查看DomainName与一些档 案的路径是否有误,修正後,以root身份在该目录下打make,如没遇到错误 ,系统会自动把编译出的档案拷背到/home/bbs/bin中,您可到~bbs/bin中 查看是否有bbsmailmailgate.plmail2bbs等程式。 2.修改/etc/sendmail.cf sendmail.cf中的Rule可分为三段,第一个段是检查进来的信件header某 部分是否符合该Rule,如果是,就交给第二段做转换,不是就pass给下一个 Rule,直到信被收进来或退回;而第三段是注解或错误讯息,方便使用者了解 这个Rule的动作。注意!Rule的每一段以Tab分开,不可偷懒用空白。 随便一个rule来做介绍: R$* $:$>Parse0$1 initialparsing ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ""R$*""是第一段,""$:$>Parse0$1""是第二段,initialparsing是注解。这 三段中间用^^^^^^标示的部分需以Tab分开。 以下开始介绍要修改的地方。 找寻下面的段落: R$* $:$>Parse0$1 initialparsingR<@> $#local$:<@> specialcaseerrormsgs 在这两行中间加入下面几行: #挡拨接线路来的广告信啦!R$*dialup$*$|$* $#error$@5.7.1$:""noaccessfromdialupsystem""R$+ts$+hinet$+$|$* $#error$@5.7.1$:""Byebye,HiNetdialupuser...""#BBSmailer(这行是注解)R$+.bbs<@$=w.> $#bbsmail$:$1 bbsmailgateway 找寻下面段落: #handlelocallydeliverednamesR$=L $#local$:@$1 speciallocalnamesR$+ $#local$:$1 regularlocalnames 在这两行中间加入下面两行: #BBSmailer(这行是注解)R$+.bbs $#bbsmail$:$1 bbsmailgateway 找寻下面段落: ##################################################### LocalandProgramMailerspecification ##################################################### 其後加入: Mbbsmail, P=/home/bbs/bin/bbsmail,F=lsSDFMuhP,S=10,R=20, A=bbsmail-d$u ※再次强调,rule的三个栏位须以Tab隔开,不是Space! 3.测试改好的sendmal.cf 执行sendmail-C/etc/sendmail.cf-bt >0SYSOP.bbs rewrite:ruleset 0 input:SYSOP.bbs rewrite:ruleset199 input:SYSOP.bbs rewrite:ruleset199returns:SYSOP.bbs rewrite:ruleset 98 input:SYSOP.bbs rewrite:ruleset 98returns:SYSOP.bbs rewrite:ruleset198 input:SYSOP.bbs rewrite:ruleset198returns:$#bbsmail$:SYSOP rewrite:ruleset 0returns:$#bbsmail$:SYSOP 若最後不会refer到bbsmail,检查是否如上2.所示加入所属rule,并确 实以Tab区隔栏位。 4.执行kill-1`cat/var/run/sendmail.pid`重跑sendmail。 修改完/etc/sendmail.cf後,kill-1`cat/var/run/sendmail.pid`,这样 系统便会重新启动sendmail并读入刚刚设定的/etc/sendmail.cf。请执行: #ps-ax|grepsendmail 如果有看到sendmail:acceptingconnectionsonport25等字眼就代表你 的mail2bbs已经装好了!赶快寄一封信到你的bbs信箱试试看吧!BBS的信 件格式是YourID.bbs@YourBBS.Domain.Name。 [3]E-mailpost安装及使用 注意!此方法因为有些安全上的问题,故不建议使用,我们正研究替代方案中! E-mailpost的安装只是利用原先sendmail就提供的forward信件功能,将寄 给bbs这个帐号的信件,经程式处理後转贴至BBS站上。因mailpost与下一 章的news转信程式combine在一起,需一起安装,因此以下同时介绍两者的安 装方式: 1.以bbslogin先至~bbssrc/util/innbbsd/下,编辑Makefile,查看前面几 行设定是否有误,然後执行make;makeinstall,这样即可装好。 2.在~bbs/下编辑.forward档内容,加入如下内容: ""|/home/bbs/innd/mailpost/home/bbs"" 请注意!!双引号的部份也要写入档案中 3.确定已在/etc/shells中加上bbs的shell。 4.写一篇测试用的mail叫email_test,档头一开始是 #name:user-id #password:user-password #board:board-name #title:article-tile #localpost: <---如果有加这行此篇文章便不转信出去 (空一行) ............... ............... 然後mailbbs@your-domain-name<email_test看看E-mailpost是否正常 5.检查~bbs/bbslog,看看是否内容像 postto/home/bbs/boards/board-name/M.820143515.A ........................................... 就完成E-mailPost安装了! 注:在~bbssrc/doc/examples目录下有修改好的sendmail.cf档供参考喔! ————————————————————————————————————— 第六章 转信程式INNBBSD的安装————————————————————————————————————— 转信程式的设定会随贵站所需的转信方式而有所不同,本章只简介安装INNBBSD 这套转信程式的方法,并只介绍client读取抓信方式的转信设定,其馀的设定 请参考~bbssrc/util/innbbsd/README的说明。 FB3的INNBBSD内含bbsnnrp档信系统,预设是关闭的,如果您有需要,请参 照~bbssrc/util/innbbsd/README.antispam来自己设定您的设定档。 [1]安装转信程式 安装方式请参阅上一章最後一节mailpost的说明,在此不赘述。 [2]设定转信所需的设定档 1.在~bbs/innd修改如下的几个档案(最好使用vi来做) [bbsname.bbs] JCPP <---与你在执行configure时写的BBSID一样。 [nodelist.bbs ] csie news.csie.nctu.edu.tw POST(119) Csie JCPP sexboy.Dorm12.nctu.edu.tw IHAVE(7777) CobaBBS ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ BBSID 你的BBShostname 转信方式 注解 这个档案描述了NewsServer的Domain与NewsServer的代号的对映表, 例如:news.csie.nctu.edu.tw->csie 而POST(119)代表使用nnrpaccess的方式(跟tin很像),IHAVE(7777)则 代表贵站使用port7777的innbbsd来收信。其中BBSID千万不要跟别站相 同,以免会有信件回流的误判。 [newsfeeds.bbs] tw.bbs.test test csie 请按照~bbssrc/doc/TW_NewsGroup_List的参考文件,将想转的Newsgroups 写在第一栏,而第二栏写的是要转进贵站的那个板名(请先建立好),而第三栏 则是写明这个Newsgroup是从那个NewsServer转进,以後送信时便会送到 那里。 [csie.active] tw.bbs.test 0000000000 0000000001 y csie.active则是定义要从那个NewsServer抓那些groups,对於每个News Server都要建立一个对映的activeFile(例如:以上只有从csie抓,所以 只需有一个activefile,档名则自定)。後面两个0000000000则是active number,以後会随著每次抓信动作而更新。也就是记录抓信抓到那了! 2.写好这些档案後,以bbs身份在~bbs/innd下执行innbbsd,或以root将 innbbsd写入/etc/inetd.conf以inetd启动设定方式如下: innbbsdstream tcp wait bbs /home/bbs/innd/innbbsdinnbbsd-i 再执行ctlinnbbsdreload(重读设定档)。 ※写入/etc/inetd.conf的方式不建议用。 3.现在测试抓信,以bbs身份在~bbs/innd下打: ./bbsnnrpnews.csie.nctu.edu.tw ./csie.active ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ 到那个NewsServer抓 对映的activeFile 再进入BBS观看信件是否转入。 4.现在测试送信,以bbs身份在~bbs/innd下打: bbslink-v/home/bbs 观看送信过程是否有error,再setenvNNTPSERVER=news.cise.nctu.edu.tw 用tin-r连至NewsServer的tw.bbs.test讨论区,检查信件是否送出! 5.转信程式非常敏感,请勿用bbs以外的身份来跑innbbsd,bbsnnrp,bbslink ...etc之类的程式,会造成BBS系统无法正常运作。 6.本板之程式,将所有欲送出的信件先统一放入一记录档,当执行bbslink时, 便可免除逐步搜寻讨论区寻找新信件的麻烦,如贵站之前已有装过innbbsd, 请务必改用FB3packages中附的innbbsd程式。 7.转信送信均正常後,可将bbsnnrp&bbslink的动作写入crontab中。 [3]申请转信的方法 不论是用主动抓信或由上游NewsServer□信,皆以离贵站最近的NewsServer 为佳。以上的转信范例皆以交大资工的NewsServer为例,不过因为这台load 很重,建议另寻别台。当贵站所要转进的Newsgroups很多时,建议改采server feed的方式,不要用bbsnnrp抓信。申请转信可以参考下一节说明,直接mail 给管理者申请。 [5]自动砍信程式介绍 FB3.0以後采用用C改写後的expire来取代原先效能低落的perl程式,该 程式位於~bbs/bin中,设定档在~bbs/etc/expire.ctl,你可以在BBS的管理 选单中利用「编辑系统档案」功能直接编修各板上限,各种设定方法与使用方法"