歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

如何通過WEB方式安全添加系統用戶

在網上看到一些通過 php 直接添加系統用戶的解決方法,這些方法都在腳本中保存系統超級用戶密?很大的 安全 性問題。這裡提供的方法是通過php在前台添加用戶、密碼記錄到 mysql 數據庫 中,後台通過cron 隔時(時間可以自己設定)執行添加用戶的程序。程序中
  在網上看到一些通過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
  );

Copyright © Linux教程網 All Rights Reserved