小知识:php创建带有效期的linux账户

所以只能想办法让 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 截止日期
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:只允许用来代理上网的SSH账号的方法

2023-5-20 2:56:04

建站知识

小知识:linux格式化新硬盘并挂载并设置开机自动挂载

2023-5-20 3:12:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索