Linux 版 (精华区)
发信人: cucme (说你说我), 信区: Linux
标 题: 自动备份被删除或自杀ID资料的程序
发信站: 紫 丁 香 (Sun Aug 22 20:55:04 1999), 转信
发信人: triton (半颗勇敢的心), 信区: BBSDev
发信站: 武汉白云黄鹤站 (Sun Jul 4 15:50:06 1999), 转信
由于最近发生ID被盗用后自杀,导致用户数据损失的情况,在主机系统资源
限制情况下,无法做到所有资料的备份,特修改程序备份部分资料。
在delete.c中,找到d_user函数,做如下修改
secnum = time(0);
dirnum = (secnum/86400)%7;
suffix = secnum;
/* sprintf(genbuf,"/bin/rm -fr mail/%c/%s",toupper(lookupuser.userid[0]),lookupuser.userid) ; */
sprintf(genbuf,"/bin/mv mail/%c/%s databak/mail/%d/%s%d",toupper(lookupuser.userid[0]),lookupuse
r.userid, dirnum, lookupuser.userid, suffix) ;
/* add by triton for keep personal mail */
system(genbuf) ;
/* sprintf(genbuf,"/bin/rm -fr home/%c/%s",toupper(lookupuser.userid[0]),lookupuser.userid) ; */
sprintf(genbuf,"/bin/mv home/%c/%s databak/home/%d/%s%d",toupper(lookupuser.userid[0]),lookupuse
r.userid, dirnum, lookupuser.userid, suffix) ;
/* add by triton for keep personal data */
system(genbuf) ;
则ID的资料被备份到~bbs/databak下的 home/或mail/的一个目录下,具体目录和
时间有关。
再编一个外部程序delbak.c
#include
#include
main()
{
char genbuf[100];
int d,j;
d = time(0)/86400;
j = (d+1)%7;
sprintf(genbuf,"/bin/rm -rf /home/bbs/databak/mail/%d",j);
system(genbuf);
sprintf(genbuf,"/bin/mkdir /home/bbs/databak/mail/%d",j);
system(genbuf);
sprintf(genbuf,"/bin/rm -rf /home/bbs/databak/home/%d",j);
system(genbuf);
sprintf(genbuf,"/bin/mkdir /home/bbs/databak/home/%d",j);
system(genbuf);
}
使用cron使之每天运行一次清除过期备份。
此法仍然不能防止恶意捣乱,ID被盗用后若盗用者删除所有信件,则程序无法防止。
最好的办法仍是利用主机资源全部备份。
--
哦 算了吧 就这样忘了吧
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.243.5]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.455毫秒