background image

用 PHP 脚本修改 Linux 或 Unix 口令

本文介绍如何使用 PHP 脚本修改 Linux 或 Unix 系统口令。

  需要的工具和安装:

  你必须安装下面的工具和软件:

   修改口令的 Shell 脚本;

– 

   Sudo 访问权;

– 

   Apache or Lighttpd web 服务器;

– 

   PHP 服务端程序。

  步骤 1:安装可以修改用户口令的 shell 脚本

  该脚本可以实际用于修改 Linux 用户的口令(已在 Linux 和 FreeBSD 测试)。

  例子: shell 脚本代码

    #!/bin/sh # exec expect -f “$0″ ${1+”$@”} set password [lindex $argv 1] spawn passwd 
[lindex   $argv   0]   sleep   1   expect   “assword:”   send   “$passwordr”   expect   “assword:”   send 
“$passwordr” expect eof 运行 shell 脚本(下载链接):

  $ chpasswd username password 下载该脚本,然后拷贝到你的 web 根目录或者 web 服务
器的其它位置(用户可读):

  $ cp chpasswd /var/www/或者,如果你使用 Lighttpd web 服务器:

  $ cp chpasswd /home/lighttpd 步骤 2:通过 sudo 以 root 身份执行命令

  Apache 或 Lighttpd web 服务器进入后台运行后会马上使用非 root 权限。这样可以很好
的防止口令修改,就像 passwd 命令需要 root 权限才能修改其它用户帐号的口令。

  通常, Apache 2 使用 www-data 用户, Lighttpd 使用 lighttpd 用户(皆为普通用户,非 root
用户)。使用 root 用户登陆,然后执行下面的命令:

  # visudo 现在你的 web 服务器允许执行口令修改脚本(chpasswd)。如果你使用 Apache 
web 服务器,执行下面的命令:

  www-data ALL=NOPASSWD: /var/www/chpasswd 或者,如果你使用 Lighttpd web 服务器,
执行下面的命令: