php项目有效期授权_php创建带有效期的linux账户

这篇博客探讨了如何通过修改sudo配置,允许Web服务器在无密码的情况下调用useradd命令来创建新用户。作者首先确认sudo命令的存在,然后编辑/etc/sudoers文件,在末尾添加一行以允许特定用户执行useradd命令。接着,展示了一个PHP代码示例,该代码通过GET请求接收参数,并使用sudo调用useradd命令,创建带有指定有效期的用户。
摘要由CSDN通过智能技术生成

所以只能想办法让 webserver 调用这个命令了,平时想要提高权限只有 su 和 sudo 这两个命令,所以我就把思路放在这上面了,可是结果调用了这两个命令后也还是不行,在网上搜了搜知道可以修改 sudo 的配置来达到我想要的效果,好了不再废话了,下面进入正题.

首先 确认是否安装了 sudo 命令

然后修改 /etc/sudoers

因为 /etc/sudoers 是只读文件所以要用 visudo 来修改

在结尾加上一行

用户名 ALL=NOPASSWD:/usr/sbin/useradd

其上面的用户名改为你的执行 webserver 程序的用户名

比如 apache 默认的用户名就是 apache

然后再用下面的php代码就可以了(在主要的地方已经标上注释了)

PHP代码:(请把

复制代码代码如下:

header("content-Type: text/html; charset=utf-8");

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

echo '< pre>';

$submit = $_GET['submit'];

$username = $_GET['username'];

$pass = $_GET['pass'];

$password = crypt($pass); //用crypt将密码加密

$edate = $_GET['edate'];

$self = $_SERVER['PHP_SELF'];

echo '< form methode="GET" action="" >';

echo ' 用户名 < input type="text" name="username">< /input>';

echo ' 密码 < input type="text" name="pass">< /input>';

echo ' 有效期 < input type="text" name="edate">< /input>';

echo ' < input type="submit" class="ssubmit" name="submit" value="submit">< /input>';

echo '< /form>';

If ($submit == "submit")

{

$expire_date = date("Y-m-d",time()+($edate*24*60*60));

echo $username;//用户名

echo '< br/>';

echo $pass;//密码明文

echo '< br/>';

echo $edate;//有效期

echo '< br/>';

echo $expire_date;//截止日期

echo '< br/>';

system("/usr/bin/sudo /usr/sbin/useradd -e $expire_date -p $password $username");

}

echo '< /pre>';

主要函数说明

复制代码代码如下:

$username 用户名

$pass 密码明文

$password 用crypt将密码加密

$edate 有效期

$expire_date 截止日期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值