Welcome 微信登录

首页 / 网页编程 / PHP / 使用PHP脚本修改Linux或Unix系统口令

使用PHP脚本修改Linux或Unix系统口令2008-05-02赵珂本文介绍如何使用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 “$password ”
expect “assword:”
send “$password ”
expect eof

运行shell脚本(下载链接)

$ chpasswd username password

下载该脚本, 然后拷贝到你的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服务器, 执行下面的命令:

httpd ALL=NOPASSWD: /home/lighttpd/chpasswd

保存和退出文件.