linux添加web用户,用web安全添加系统用户的方法

在网上看到一些通过php直接添加系统用户的解决方法,这些方法都在脚本中保存系统超级用户密码,因此有很大的安全性问题。这里提供的方法是通过php在前台添加用户、密码记录到mysql数据库中,后台通过cron隔时(时间可以自己设定)执行添加用户的程序。程序中都没有记录系统超级用户密码,这样能保证系统的安全。如下为添加用户的后台程序,这个程序只是为很粗糙的演示程序,功能为把ddornot=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->errstrn";

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 "$saltt$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

);0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值