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 截止日期

时间: 2024-08-31 11:20:15

php创建带有效期的linux账户的相关文章

Linux账户管理详解

当用户登陆Linux系统时,Linux将做如下检查: 1)在/etc/passwd文件里匹配输入的用户名,获取该用户名的UID和GID(其中GID和/etc/group关联) .Home目录和Shell设置 2)在/etc/shadow里核对该用户的密码 /etc/passwd文件结构 这个文件的每一行代表一个账号,如下所示: oracle:x:501:501::/home/oracle:/bin/bash 1. 用户名 2. 密码:早期的密码放在该字段,但如今的密码已单独放在/etc/shad

《Raspberry Pi用户指南》——2.5 创建一个新的用户账户

2.5 创建一个新的用户账户 Raspberry Pi用户指南与面向单用户的Windows和OS X不同,开放社区一开始就将Linux设计成一个多用户操作系统.默认情况下,Debian配置了两个用户账户:Pi(普通账户)和root(拥有额外权限的超级账户). 小提示 不要一直使用 root 账户登录.使用非特权用户账户,可以保护你的操作系统免受意外破坏以及互联网上下载的病毒和其他恶意软件的破坏.虽然你已经有了Pi账户,但是创建自己专用的账户将更好些.另外,还可以为可能要使用到树莓派的任何朋友或家

用ASP.ENT创建带事件的用户控件

下面说下怎么创建带事件的用户控件:   标准的WEB空间有事件,来进行交互,同样用户控件也有.   要创建一个带事件的用户控件很简单,只需要三步:   1.定义个公开的(public) 的事件委托,如ClickEventHandler   2.在用户控件类中定义引发事件的方法,如OnClick方法   3.在引发事件的方法中判断事件是否为空,如果不为空,就可以写事件出来代码了.   下面我们来一步一步实现,   1.创建一个用户控件文件--LinkClick.ascx.   2.从工具箱中拖入L

ASP.NET 创建带事件的用户控件

ASP.NET 用户控件的创建与使用----在这篇中讲了用户控件的创建与使用. 下面说下怎么创建带事件的用户控件: 标准的WEB空间有事件,来进行交互,同样用户控件也有. 要创建一个带事件的用户控件很简单,只需要三步: 1.定义个公开的(public) 的事件委托,如ClickEventHandler 2.在用户控件类中定义引发事件的方法,如OnClick方法 3.在引发事件的方法中判断事件是否为空,如果不为空,就可以写事件出来代码了. 下面我们来一步一步实现, 1.创建一个用户控件文件--Li

Win7系统下如何创建带密码隐藏的文件夹保护个人隐私文件

  1.首先创建一个文件夹,并命名为"隐藏文件"; 2.然后打开该文件夹,然后在窗口空白处右击鼠标选择"新建→ 文本文档"命令创建一个文本文件; 3.将以下代码复制到刚才新建的文本文件中: cls @ECHO OFF title Folder Private if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK if NOT EXIST Privat

sqlserver-sql sever 如何创建带条件的唯一性约束

问题描述 sql sever 如何创建带条件的唯一性约束 比如要建立一个由四个字段(a,b,c,d)组成的唯一性约束, 要求 a 不为 null 时 (a,b,c,d)唯一,a = null的时候,不做限制 解决方案 加一个表,只包含a,b,c,d四个字段,设为复合主键 原表加触发器,如果a,b,c,d有值,数据插入新表 解决方案二: 设置联合主键就可以了,或者在management studio中选中多个字段,创建唯一约束.

详解使用Dockerfile创建带Apache服务的CentOS Docker镜像_docker

使用Dockerfile创建带Apache服务的CentOS Docker镜像 在宿主机上准备的文件清单: Dockerfile #启动ssh和apache服务的角本 run.sh 以上文件都放到/root/apache_centos目录下 mkdir -p /root/apache_centos cd /root/apache_centos 基础镜像:以镜像centos为基础的开放SSH服务的镜像 [root@localhost apache_centos]# docker images RE

entity-Hibernate Entity 怎么带年份。即自动创建带年份的表

问题描述 Hibernate Entity 怎么带年份.即自动创建带年份的表 例如一张表是 T_Money_Data2015(此年份跟随系统登录时间变化) 怎么实体化一个类,并让hibernate 自动创建他. 解决方案 http://www.th7.cn/Program/net/201304/131631.shtml

c#-请教关于C#创建带参数线程的问题

问题描述 请教关于C#创建带参数线程的问题 我现在想创建一个多个线程来求两个矩阵的相乘,其中我把计算用的函数CalMatrix封装在类中方便创建线程时调用,类如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Threading; namespace