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毫秒