发信人: foxban (foxban), 信区: BBS_DEV
标 题: PASSWDS转换文档(第一版)
发信站: 燕赵测试站 (Thu Apr 29 04:58:50 2004), 站内
此文档由foxban@bbs.hbu.cn & roctall@bbs.hbu.cn参考前人文档共同完成,转载请注明来源。
将bbs和bbssrc两个文件夹打包备份.
整个过程可以用root执行,只是记得最后启动bbs服务之前要chown -R bbs:bbs bbs
编辑/etc/ld.so.conf 在里面添加 /home/bbs/lib,然后执行 ldconfig -v.
1.分析修改转换程序(convpass.c)
首先对比了YZBBS,FB2K,smth,KBS四者PASSWDS的数据结构定义,发现三个系统userec结构的
定义并没有太大区别.
在convpass.c中只include了一个外部文件(bbs.h),所以这给程序的修改提供了很大便利,缩
小了查找源码的范围
由于系统要启用mysql的支持,所以编译convpass前要检查一下bbssrc/src目录下是否存在
mysql.h,mysql_com.h,mysql_version.h三个文件,如果没有的话,将/usr/include/mysql/目录下的相应文件拷贝过来.
由于yz的userec里没有lastlogout这个结构类型,所以将convpass.c中关于这项的定义注释掉,将convpass.c中常量的值替换成数值,
如char username[NAMELEN],NAMELEN的值为40,则直接写成char username[40].
convpass.c文件下有一个CURSOR_FLAG的变量,在kbs下这个定义已经换成ACTIVITED,所以更
改之即可.
输入下列语句进行程序的编译gcc -I/home/bbssrc -I/home/bbssrc/src -lBBS -lsystem
-L/home/bbs/lib -o convpasswd convpasswd.c
2.转化.PASSWDS文件
关闭bbs系统服务
killall miscd
killall bbslogd
killall bbsd
清空bbs的虚拟内存(ipcclean,最好用bbs帐号执行)
ipcclean
删掉安装带的.PASSWDS文件
(如果有的话), 把需要转化的.PASSWDS文件cp到$(BBSHOME), 改名成
PASSWDS.BAK_FOR_TAR(决定于convpass.c中的
定义)用原来的(需要转化的) home/ 目录(装bbs用户信息的) 替换smthbbs安装时带的那个
(如果转换时发现home中
没有用户目录的话,convpass会自动建立),运行bin里面的 convpasswd, 会生成
.PASSWDS.NEW,如果有人没有好友列
表,就会有显示说有人的friendslist没有转化成功,没有关系,不会影响大局.把
.PASSWDS.NEW改名成.PASSWDS, 运行
bin里面的chlevel转换用户权限,至此.PASSWDS转化结束, 同时 home/ 目录里面,每一个用
户的好友列表有都转化完毕
--
FROM 221.192.237.*