- 主题:求助:FB2000v1219 to SMTH-1.2.2,.PASSWDS转换问题
FB2000 v1219 to SMTH-1.2.2,.PASSWDS转换不成功
操作系统: Solaris 9 for X86
转换后用户数据丢失,且用户的个人目录也被删掉,是什么原因造成的??,如何解决??
那位碰到过这种情况?? 谢谢
例如:
telnet localhost
请输入代号: SYSOP
错误的使用者代号...
请输入代号:
--------------------------------------------------------------
configure:
./configure --prefix=/export/home0/bbs --enable-site=fb2k-v2 \
--disable-www --without-mysql --enable-ssl
--------------------------------------------------------------
FB v1219中用户数据结构:
struct userec { /* Structure used to hold information in */
char userid[IDLEN+2]; /* PASSFILE */
time_t firstlogin;
char lasthost[16];
unsigned int numlogins;
unsigned int numposts;
unsigned int medals; /* 奖章数 */
unsigned int money; /* 金钱 */
unsigned int inbank; /* 存款 */
time_t banktime; /* 存入时间 */
char flags[2];
#ifdef ENCPASSLEN
char passwd[ENCPASSLEN];
#else
char passwd[PASSLEN];
#endif
char username[NAMELEN];
char ident[NAMELEN];
char termtype[16];
char reginfo[STRLEN-16];
unsigned int userlevel;
time_t lastlogin;
time_t lastlogout;/* 最近离线时间 */
time_t stay;
char realname[NAMELEN];
char address[STRLEN];
char email[STRLEN-12];
unsigned int nummails;
time_t lastjustify;
char gender;
unsigned char birthyear;
unsigned char birthmonth;
unsigned char birthday;
int signature;
unsigned int userdefine;
time_t notedate;
int noteline;
};
struct user_info { /* Structure used in UTMP file */
int utmpkey; /* For NJU WWW */
int active; /* When allocated this field is true */
int uid; /* Used to find user name in passwd file */
int pid; /* kill() to notify user of talk request */
int invisible; /* Used by cloaking function in Xyz menu */
int sockactive; /* Used to coordinate talk requests */
int sockaddr; /* ... */
int destuid; /* talk uses this to identify who called */
int mode; /* UL/DL, Talk Mode, Chat Mode, ... */
int pager; /* pager toggle, YEA, or NA */
int in_chat; /* for in_chat commands */
int fnum; /* number of friends */
int ext_idle; /* has extended idle time, YEA or NA */
char chatid[ 10 ]; /* chat id, if in chat mode */
char from[ 60 ]; /* machine name the user called in from */
#ifndef BBSD
char tty[ 20 ]; /* tty port */
#else
time_t idle_time; /* to keep idle time */
#endif
char userid[ 20 ];
char realname[ 20 ];
char username[NAMELEN];
unsigned short friend[MAXFRIENDS];
unsigned short reject[MAXREJECTS];
};
--
修改:linton FROM 202.193.161.*
FROM 202.193.161.*
【 在 atppp (Big Mouse) 的大作中提到: 】
: 转换程序里面的老结构和你那个一样么...
一模一样,这是转换程序的结构:
#define CONV_PASS 1
typedef struct olduserec { /* Structure used to hold information in */
char userid[IDLEN + 2]; /* PASSFILE */
time_t firstlogin;
char lasthost[16];
unsigned int numlogins;
unsigned int numposts;
unsigned int medals; /* 奖章数 */
unsigned int money; /* 金钱 */
unsigned int inbank; /* 存款 */
time_t banktime; /* 存入时间 */
char flags[2];
char passwd[OLDPASSLEN];
char username[NAMELEN];
char ident[NAMELEN];
char termtype[16];
char reginfo[STRLEN - 16];
unsigned userlevel;
time_t lastlogin;
time_t lastlogout; /* 最近离线时间 */
time_t stay;
char realname[NAMELEN];
char address[STRLEN];
char email[STRLEN - 12];
unsigned int nummails;
time_t lastjustify;
char gender;
unsigned char birthyear;
unsigned char birthmonth;
unsigned char birthday;
int signature;
unsigned int userdefine;
time_t notedate;
int noteline;
} olduserec;
--
FROM 202.193.161.*
【 在 atppp (Big Mouse) 的大作中提到: 】
: 那就有可能是你操作上的问题了,特别是SYSOP都说找不到用户
: 你转换之前是不是已经启动了BBS服务,转换之后是不是没有清共享内存,等等
转换之前我,我把系统重新起动后,才以bbs身份进行转换的.
--
FROM 202.193.161.*
【 在 atppp (Big Mouse) 的大作中提到: 】
: hexdump -Cvn100 .PASSWDS
过程:
reboot
bin/convpasswd
mv .PASSWDS.NEW .PASSWDS
bin/chlevel
UserLevel Records Transfering...
1 SYSOP
.....
587 glbbs
588 rsky
589
591 firstlove
592 king
592 Users Attribute Tranfered...
$ VT102VT102VT102
VT102VT102VT102: not found
--------------------------
telnet localhost
请输入代号: SYSOP
错误的使用者代号...
请输入代号:
cat error.log
.......
[03/12 16:26:47 474 3.passwd] (unknown user) deleted imking in 456
[03/12 16:26:47 474 3.passwd] (unknown user) deleted ing in 475
[03/12 16:26:47 474 3.passwd] (unknown user) deleted cn in 511
[03/12 16:26:47 474 3.passwd] (unknown user) deleted n in 524
[03/12 16:26:47 474 3.passwd] (unknown user) deleted n in 531
[03/12 16:26:47 474 3.passwd] (unknown user) deleted king in 536
[03/12 16:26:47 474 3.passwd] (unknown user) deleted n in 225
[03/12 16:26:47 474 3.passwd] (unknown user) deleted ing in 549
[03/12 16:26:47 474 3.passwd] (unknown user) deleted rsky in 553
[03/12 16:26:47 474 3.passwd] (unknown user) deleted rsky in 556
[03/12 16:26:47 474 3.system] (unknown user) reload bcache!
hexdump -cvn100 .PASSWDS:
0000 S Y S O P 00 00 00 00 00 00 00 00 00 81 00
0010 c3 9a cd 7 1 2 7 . 0 . 0 . 1 00 00 00
0020 00 00 00 00 96 01 00 00 / 00 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00 82 00 L a
0040 n z h D Z Y q R G f k 00 S Y S O
0050 P 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0090 00 00 00 00 1f 00 00 00 00 00 00 00 v t 1 0
00a0 0 00 00 00 ff ff ff bf ff ff ff ff 00 00 00 00
.........
--
修改:linton FROM 202.193.15.*
FROM 202.193.161.*
转换之前,我重起了计算机,且BBS没启动,才进行转换的(是用BBS身份转换):
# reboot
$ ipcs
IPC status from <running system> as of Sat Mar 12 23:10:08 CST 2005
T ID KEY MODE OWNER GROUP
Message Queues:
Shared Memory:
Semaphores:
$ bin/convpasswd
$ mv .PASSWDS.NEW .PASSWDS
$ bin/chlevel
# reboot
# ./miscd daemon
# ./bbslogd
# ./bbsd -p 23
试用请输入 `guest', 注册请输入`new',add '.' after your ID for BIG5
请输入代号: SYSOP
错误的使用者代号...
请输入代号:
---------------------
上面这样转换步骤还有问题???
【 在 atppp (Big Mouse) 的大作中提到: 】
: 转换之前要停系统,清掉共享内存,然后才能执行convpasswd
: 你把新的文件mv成.PASSWDS这个毫无用处,因为.PASSWDS的数据这个时候在共享内存里面
--
FROM 202.193.15.*
我站中:
#ifdef MD5 /* MD5 cryptographic support */
#define ENCPASSLEN 35
#else
#define ENCPASSLEN 14 /* Length of encrypted passwd field */
#endif
水木:
#define MD5PASSLEN 16
#define OLDPASSLEN 14 /* Length of encrypted passwd field */
【 在 zls0424 (BBS安装管理) 的大作中提到: 】
: 看看你们站的 ENCPASSLEN / PASSLEN 长度是不是 14,水木里好像把 OLDPASSLEN 定义成14了
--
FROM 202.193.15.*
当我把fb2k-v2.h中的
#define HAVE_WFORUM 1
改成:
#define HAVE_WFORUM 0
然后编译后,进行用户数据转换:
$ ./convpasswd
Warning: you had not defined HAVE_WFORUM in site.h!
Exit.
若把fb2k2smth的convpasswd拷贝到$(BBSHOME)/bin中,进行用户数据转换:
$ ./convpasswd
./convpasswd: error: /export/home0/bbs/bin/.libs/convpasswd does not exist
This script is just a wrapper for convpasswd.
See the libtool documentation for more information.
如何直接去掉 smth2wforum,让在make中就不编译smth2wforum中的所有文件??
没去掉之前编译时的输出:
Making all in smth2wforum
[Linking convpasswd]
【 在 eyee (**久久) 的大作中提到: 】
: 似乎$BBSHOME/bin/convpasswd是smth2wforum里面的,
: 直接到contrib/fb2k2smth/里面去执行那个convpasswd试试
--
FROM 202.193.161.*
我是重新编译后,才做的。
请问fb2k2smth下的convpasswd编译安装后在{BBSHOME}/bin目录下的文件名是什么呢?
./configure --prefix=/export/home0/bbs --enable-site=fb2k-v2 \
--disable-www --without-mysql --enable-ssl
【 在 atppp (Big Mouse) 的大作中提到: 】
: 不要用smth2wforum下面的程序,用fb2k2smth下的程序
: 想办法重新编译下
--
修改:linton FROM 202.193.161.*
FROM 202.193.161.*
问题就是convpasswd的问题,该程序是smth2wforum中的哪个,在安装后把fb2k2smth的convpasswd覆盖了,俺修改contrib中的Makefile,不编译smth2wforum中的文件,安装后,用户数据转换成功,注原系统的.PASSWDS要改为PASSWDS.BAK_FOR_TAR。
但是版面数据转换后有一些问题,见下面,且一些文章内容是空的:
版主: SYSOP [您有信件] 讨论区 [sysop]
离开[←,e] 选择[↑,↓] 阅读[→,r] 发表文章[Ctrl-P] 砍信[d] 备忘录[TAB] 求助[h]
编号 刊 登 者 日 期 文章标题 在线: 1 [一般模式]
1141 : 大家来支持 .@● 的板块
1142 . ●
1143 ●
1144 . ●
1145 * .@●
1146 . ●
1147 .@● 10212804.A
> 1148 . ●
用户邮件也存在着一样的问题。
这是转换的步骤:
./convboards
./calc_effsize
./gen_title
版面数据上面的问题如何解决??是不是我的转换步骤有问题??
谢谢!!
【 在 atppp (Big Mouse) 的大作中提到: 】
: 你可以直接在那个目录下执行的...
: 我怀疑smth2wforum的那个convpasswd安装后会覆盖fb2k2smth的那个...
--
FROM 202.193.15.*