- 主题:求助: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.*
转换程序里面的老结构和你那个一样么...
【 在 linton (难得糊涂) 的大作中提到: 】
: FB2000 v1219 to SMTH-1.2.2,.PASSWDS转换不成功
: 操作系统: Solaris 9 for X86
: 转换后用户数据丢失,且用户的个人目录也被删掉,是什么原因造成的??,如何解决??
: ...................
--
FROM 128.12.181.30
【 在 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.*
那就有可能是你操作上的问题了,特别是SYSOP都说找不到用户
你转换之前是不是已经启动了BBS服务,转换之后是不是没有清共享内存,等等
【 在 linton (难得糊涂) 的大作中提到: 】
: 一模一样,这是转换程序的结构:
: #define CONV_PASS 1
: typedef struct olduserec { /* Structure used to hold information in */
: ...................
--
FROM 128.12.181.30
【 在 atppp (Big Mouse) 的大作中提到: 】
: 那就有可能是你操作上的问题了,特别是SYSOP都说找不到用户
: 你转换之前是不是已经启动了BBS服务,转换之后是不是没有清共享内存,等等
转换之前我,我把系统重新起动后,才以bbs身份进行转换的.
--
FROM 202.193.161.*
hexdump -Cvn100 .PASSWDS
【 在 linton (难得糊涂) 的大作中提到: 】
: 转换之前我,我把系统重新起动后,才以bbs身份进行转换的.
--
FROM 128.12.181.30
【 在 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.*
转换之前要停系统,清掉共享内存,然后才能执行convpasswd
你把新的文件mv成.PASSWDS这个毫无用处,因为.PASSWDS的数据这个时候在共享内存里面
【 在 linton (难得糊涂) 的大作中提到: 】
: 过程:
: bin/convpasswd
: mv .PASSWDS.NEW .PASSWDS
: ...................
--
FROM 128.12.181.30
转换之前,我重起了计算机,且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.*
看看你们站的 ENCPASSLEN / PASSLEN 长度是不是 14,水木里好像把 OLDPASSLEN 定义成14了
【 在 linton (难得糊涂) 的大作中提到: 】
: 转换之前,我重起了计算机,且BBS没启动,才进行转换的(是用BBS身份转换):
: # reboot
: $ ipcs
: ...................
--
修改:zls0424 FROM 166.111.207.*
FROM 166.111.207.*