全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: easyboy
打印 上一主题 下一主题

[疑问] linux账号的有效期

[复制链接]
11#
 楼主| 发表于 2010-7-4 10:40:18 | 只看该作者
谁告诉我下吧。。
12#
 楼主| 发表于 2010-7-4 12:09:30 | 只看该作者
谷歌了半天还是没找到
13#
发表于 2010-7-4 12:44:28 | 只看该作者
好多高手都给出答案了
14#
发表于 2010-7-4 12:45:58 | 只看该作者
chage -E "2010-07-31" easyboy
15#
发表于 2010-7-4 13:09:14 | 只看该作者
原帖由 yculer 于 2010-7-4 00:29 发表
useradd -e 20xx-xx-xx username

这个不对么??呵呵 看了半天都不知道你想要干什么
16#
 楼主| 发表于 2010-7-4 13:57:01 | 只看该作者
我是想利用PHP调用脚本。创建用户的时候根据创建时间 增加相应的有效期
17#
发表于 2010-7-4 15:56:20 | 只看该作者
我测试过了 默认情况下 useradd 之能被 root 执行
所以还要做些修改才行

首先 确认是否安装了 sudo 命令
然后修改 /etc/sudoers
因为 /etc/sudoers 是只读文件所以要用 visudo 来修改
在结尾加上一行
用户名 ALL=NOPASSWD:/usr/sbin/useradd
其中的红色部分的用户名改为你的执行 webserver 程序的用户名
比如 apache 默认的用户名就是 apache

然后再用下面的php代码就可以了(在主要的地方已经标上注释了)
  1. <?php
  2. header("content-Type: text/html; charset=utf-8");
  3. header("Cache-Control: no-cache, must-revalidate");
  4. header("Pragma: no-cache");
  5. echo '<pre>';
  6. $submit                =        $_GET['submit'];
  7. $username        =        $_GET['username'];
  8. $pass                =        $_GET['pass'];
  9. $password        =        crypt($pass); //用crypt将密码加密
  10. $edate                =        $_GET['edate'];
  11. $self                =        $_SERVER['PHP_SELF'];
  12. echo '<form methode="GET" action="">';
  13. echo '   用户名 <input type="text" name="username"></input>';
  14. echo '   密码 <input type="text" name="pass"></input>';
  15. echo '   有效期 <input type="text" name="edate"></input>';
  16. echo '   <input type="submit" class="ssubmit" name="submit" value="submit"></input>';
  17. echo '</form>';
  18. If ($submit == "submit")
  19. {
  20.         $expire_date = date("Y-m-d",time()+($edate*24*60*60));
  21.         echo $username;//用户名
  22.         echo '<br/>';
  23.         echo $pass;//密码明文
  24.         echo '<br/>';
  25.         echo $edate;//有效期
  26.         echo '<br/>';
  27.         echo $expire_date;//截止日期
  28.         echo '<br/>';
  29.         system("/usr/bin/sudo /usr/sbin/useradd -e $expire_date -p $password $username");
  30. }
  31. echo '</pre>';
  32. ?>
复制代码


主要函数说明
$username  用户名
$pass  密码明文
$password  用crypt将密码加密
$edate  有效期
$expire_date  截止日期

[ 本帖最后由 zyypp 于 2010-7-4 17:04 编辑 ]

评分

参与人数 1威望 +7 收起 理由
easyboy + 7 感谢啊

查看全部评分

18#
 楼主| 发表于 2010-7-4 15:59:26 | 只看该作者

回复 17# 的帖子

亲一下
19#
发表于 2010-7-4 16:04:36 | 只看该作者

回复 18# 的帖子

你先试一下 我没在lin下测试
20#
发表于 2010-7-4 16:58:58 | 只看该作者

回复 19# 的帖子

17楼的代码 已经修改好了 我在lin环境下已经测试能够正常使用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-10-31 02:21 , Processed in 0.066146 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表