【 以下文字转载自 BBSSystem 讨论区 】
发信人: atppp (ATP (Big Mouse)), 信区: BBSSystem
标 题: smthbbs - 站务方面问题的文档
发信站: 牧场物语 (Sun Mar 14 12:01:59 2004), 转信
这个东东是写给我一个同学的,还没写完,大家看看玩。如果有用的话我想最好能把
smth代码的文档系统化起来。现在源代码docs/目录下面有些有用的文件,smth的
BBSMan_Dev精华区也有不少有用的材料,但是这些东西如果全统一的放到一起来就会更
方便刚刚接触smth代码的同志们了。我还在写一个技术站务的小文档,希望能继续将文
档事业发扬光大...//hiahia 本猪头接触smth代码时间也不长,下面有错误的话大家指正
1. 开版,版面设置
下面的有一些选项是开版的时候不询问直接设置默认值的。推荐管理员开版之后
立即修改该讨论区的设置,逐项确认各个选项是否设置正确。
1.1 一些选项的解释
1.1.1 讨论区名称
这个是版面的英文名称,同时对应服务器文件系统里面的目录名。
注意不要有特殊符号(包括&\/<>)或者空格什么的,如果有,第一个看起来不
好看,第二个不保证系统上面不出问题。比方说有&符号的话,少数几个WWW的程序不
能正确的处理。有的时候这个限制会有点别扭,参考参考这些版名:
MovieTV NetResources
1.1.2 讨论区说明
这个在FAQ里面讲了,援引如下:
中文名称的格式为:
分区代号+[类名]+ 6 个空格+讨论区中文描述
其中分区代号为 1 个字节,类名为 4 个字节。
举例:
0[站务] 测试用版
要注意的问题:1、分区代号一定要和分类讨论区设置匹配,要不然这个版面就不
属于任何分类讨论区了;2、类名只要是两个汉字即可,随便写什么都可以,不一定要
和分类讨论区里面的设置匹配;3、一定注意空六个空格!
1.1.3 讨论区管理员
这个可以用来直接任命版主,比方输入 atppp SYSOP 就直接任命这个版的版主
是这两个ID。这个似乎一般只用来任命 SYSOP。普通的版主任命请到版主任免的菜单,
因为那样才能给相应用户版主的权限。
1.1.4 不记文章数?
输入Y表示用户在这个版发表文章的话,用户信息里面的文章数不会增加。后面那
个不统计十大也是一样。这地方有点迷惑,因为输入N表示统计,Y表示不统计...
1.1.5 可向外转信? 后面1.2会讲
1.1.6 可粘贴附件?输入Y表示这个版允许在WWW上传附件。这个选项默认是关闭的。
1.1.7 允许 Email 发文? 参考技术站务文档...
1.1.8 不可re文? 输入Y表示这个版禁止回文章。
1.1.9 是否是目录/所属目录 设定讨论区之间的从属关系。
比方你可以设置Linux版是目录,然后设置LinuxKernel所属目录是Linux。
1.1.10 所需职务,还有俱乐部选项,是否更改存取权限 ... 下面的2会讲。
1.2 如何给版面开通转信
一般开通转信的版面的名称会有●的标记,比方说,我站上的cnBBSDev的讨论区
说明就是:
0[转信] ● BBS维护与开发
也就是说,那个6个空格的位置替换成了4个空格和●。这个只是为了提示用户该版面是
参与转信的,没有别的作用。真正要开通转信,站务上需要做的事情是把这个版面设置成
“可向外转信”,剩下的事情就是通知技术站务(或者转信管理员?)改动转信配置。
要注意的事情是,参与转信的版面如果改动了版名(英文版名),需要通知技术
站务改动转信的配置。
FAQ: ●这个符号怎么输入?答:我也不知道,copy&paste吧。
2. 特殊版面如何设置合适的权限
一个站点往往会有一些特殊版面,比方只给特殊人群开放的版面,或者有的时候,
希望有一些版面大家都可以看,但是只有特殊人群才可以发文。达到这个目的一般有
两种方法。
2.1 用版面读取/发表权限限制
这个模式一般用于站务相关的版面。在讨论区设置里面最后会问你是否更改存取
权限。如果你限制(R)读,那么只有特殊的人群才可以进入这个版面,如果你限制
(P)发表,那么所有的用户都可以进入版面看文章,但是只有特殊的人群才可以发表
文章。这个“特殊的人群”就是后面通过设置权限来定义的。比方说,限制(R)读,
然后将L.账号管理员 V.系统管理员 切换成ON,那么这个版面只有拥有L权限.或者.
(注意,是或者)V权限的用户才可以看到 - 我站上的Registry版就是这么设置的。
说明:
1. 限制读的话,就等于限制了发表。如果一个用户可以进入一个限制读的
版面,那么他就自动拥有了可以在这个版面发文的权利;
2. 注意,要拥有更改版面设置的权利,这个版面必须是可读的。比方说,作为
系统管理员,你将Registry版设置成只有L.权限的人可以读,这样的话如果
你没有L.权限,那这个版就连你自己都看不到了!而且你也不能再更改这个
讨论区的设置 - 这时候你只能给自己更改权限,或者干脆找SYSOP。
3. 如果编译的时候加了HAVE_CUSTOM_USER_TITLE,版面可以进一步使用所需职务
来限制。比方,到系统管理菜单修改 KCN 的职务为1,然后将 KCNStory 版面
限制“所需职务”是1(不限制存取权限),那么这个版面对于职务不是1的
普通用户就不可见了。
FAQ1: 我以前设置了版面读/发表限制,现在怎么去掉?答:重新设置限制(R)读,
然后把所有的权限都设置成OFF。
FAQ2: P.Read/Post 限制 这个权限干嘛的?如果你限制(P)发表,这个权限会自动
切换成ON,限制(R)读取或者不限制,这个权限自动是OFF。这个开关不用你
操心,自动会设好的。
2.2 用俱乐部模式
这个一般用于非站务相关的版面;或者是希望同时限制版面读和发表,但是这两个
限制又针对不同的人。俱乐部可以设置隐藏,这样没有这个俱乐部读取权限的用户
就看不到这个俱乐部了。俱乐部允许读/发表的用户列表可以由俱乐部版主或者
R/V权限的用户设置,方法是在版面按 Ctrl+E。
注意:R.讨论区总管自动拥有读取俱乐部版面的权利,但是发表权限还是没有的。
2.3 版面只读
R.讨论区总管 和 V.系统管理员 可以设置版面只读。这个设置是一个单独的flag,
和上面的任何设置都无关。方法是在版面列表下按X。解开只读按Y。这个一般可以用于
设置自动发文的版面,比方说BBSLists。注意:设置了版面只读的话任何人都不能发
文,所以像系统重要通知版一般不用这种设置,应该限制比方只有 V.系统管理员 才可
以POST。
2.4 版面不能被z掉
用户可以按z来z掉一个版。如果有一些版面不希望被用户z掉(比方系统重要通知
版),可以设置 限制(R)阅读,然后将 T.不能 ZAP 切换成 ON。注意,这种情况下
其它的阅读限制设置都失效,所有的用户都可以看到这个版面了。
2.5 上面这些烂规定我想改改
这个...就要改源代码了,求助技术站务吧。主要相关函数:
check_read_perm() check_see_perm() 这两个可以在 site.c 里面定制
haspostperm() boards.c里面
3. 用户权限设置
用户权限,说是说用户权限,但是有些设置其实并不是针对用户的,比方上面提到的
T.不能 ZAP 权限,还有 P.Read/Post 限制 只用在讨论区设定,和用户其实没什么关系。
A. 基本权力 这个是注册了就有的,除非被封禁登录权限了。
B-E 这个基本上只要是通过注册的用户都有。
F. 实习站务 不知道干什么的
K. 版主 版主的权限。如果有个ID确实显示是某个版的版主,但是却不能
进行版主操作,那么可能是由于系统错误在版主任免的时候没有给
这个权限。
O. 系统维护 能够查询/更改用户的权限,其他还能干啥?继续总结中...
Q. 精华区总管
R. 讨论区总管 这两个待总结...
V. 系统总管 比较高的权限,几乎什么都能干了(企图改 SYSOP 密码还是不行的)
4. menu.ini, sysconf.ini
这两个文件位于 ~bbs/etc/ 下面,是系统一些重要设置的配置文件。
4.1 sysconf.ini
这个文件设置一些比较基本的系统参数,而且大部分参数应该由技术站务来设置。
管理技术的站务一定要注意,这个文件里面的PERM_数字设置要和site.h(或者default.h
如果这个站点没有定制权限)里面的设置一致。管理一般站务的同志可能就需要明白下面
这句设置:
PERM_ADMENU = PERM_ACCOUNTS,PERM_SYSOP,PERM_OBOARDS,PERM_WELCOME,PERM_ANNOUNCE
这句话的意思是,只有拥有右边这些权限之一(或者更多)的用户才可以进入系统管理
菜单。
4.2 menu.ini
menu.ini是系统菜单的配置。这个文件是重中之中,修改前最好是有个备份,否则
用户也许就永远进不了BBS了。现在没有发现BBS管理员操作能够备份/恢复这个文件,所
以一般还是推荐修改这两个.ini文件由技术站务来执行。这文件文档好像也到处是,
找到了好的我放过来。需要注意的是每一条菜单都有权限的设置,比方:
!M_ADMIN 0, 0, PERM_ADMENU,"Admin", "A) 系统管理功能表 "
这个PERM_ADMENU就是和上面的sysconf.ini设置相配合使得只有特定权限的用户才能
看到/进入系统管理菜单。再比如:
@ModifyLevel 0, 0, PERM_ADMIN, "Level", "L) 更改使用者的权限"
这就是说,只有有O.系统维护管理员权限的用户才可以更改ID的权限。这里要特别注
意的一点就是 menu.ini 里面的权限设置要和代码一致。比方你将上面这行设置成
PERM_ACCOUNTS企图让账号管理员拥有更改使用者权限的权利,这样做是不够的,因为
代码里面只允许 O.系统维护管理 和 V.系统总管 更改用户权限。
4.3 使这两个文件的更新生效
这两个文件更新以后,需要有V权限的猪头在主菜单按一下shift+~才会使设置生效。
如果记不住这个快捷键(ft),就到/home/bbs目录里面吧sysconf.img*文件都删掉。
无论何种方法,下一个登录的用户就会使用新的设置了。
--