萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> php創建帶有效期的linux賬戶

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

copyright © 萬盛學電腦網 all rights reserved