当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

如何通过WEB方式安全添加系统用户

文章标题:如何通过WEB方式安全添加系统用户。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  在网上看到一些通过php直接添加系统用户的解决方法,这些方法都在脚本中保存系统超级用户密?很大的安全性问题。这里提供的方法是通过php在前台添加用户、密码记录到mysql数据库中,后台通过cron 隔时(时间可以自己设定)执行添加用户的程序。程序中都没有记录系统超级用户密码,这样能保证系统的安 全。如下为添加用户的后台程序,这个程序只是为很粗糙的演示程序,功能为把addornot=0的用户加入系统中 而已,仅供读者参考。php添加用户信息到数据库的程序略去。程序在RedHat6.0 下通过。
  
  adduserfromdb.pl
  
  #!/usr/bin/perl
  use DBI;
  $dbuser = "xxxx";
  $dbpasswd = "xxx";
  $db = "xxxx";
  
  $dbh = DBI->connect("DBI:mysql:$db",$dbuser,$dbpasswd);
  $query = "select user,passwd from usertable where addornot=0";
  $sth = $dbh->prepare($query);
  $rv = $sth->execute or die "Can't execute the query:$sth->errstr\n";  
      while(@row = $sth->fetchrow_array) {
          #print "user=".$row[0]."\n";
          #print "password=".$row[1]."\n";
          @saltchars = (a .. z, A .. Z, 0 .. 9);
          srand(time||$$);
          $salt = $saltchars[rand($#saltchars)] .$saltchars[rand($#saltchars)];
          #print "$salt\t$row[1]\n";
          $encrypt_passwd = crypt($row[1],$salt);
          #print $encrypt_passwd."\n";
          $add_exec = "/usr/sbin/useradd -p ".$encrypt_passwd." ".$row[0];
          #对useradd增加参数,可以控制用户的组别、目录、登陆与否、shell等等
          #print $add_exec."\n";
          system($add_exec);       
  }
  #1;
  
  用户信息表
  usertable:
  
  CREATE TABLE usertoadd (
    user tinytext NOT NULL,
    passwd tinytext NOT NULL,
    addornot tinyint(4) DEFAULT '0' NOT NULL
  );
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有