让你的Linux支持WEB修改密码
发表于:2007-07-01来源:作者:点击数:
标签:
现在使用Linux做为 服务器 越来越普遍,一个中小机构采用Linux做邮件服务器、WEB服务器等都十分合适。而这些服务的用户(如E-Mail用户)常常并不是十分熟悉电脑,修改自己的密码比较费劲。所以,如果能够提供一个操作方便的修改密码的方法是十分有用的。下面
现在使用Linux做为
服务器越来越普遍,一个中小机构采用Linux做邮件服务器、WEB服务器等都十分合适。而这些服务的用户(如E-Mail用户)常常并不是十分熟悉电脑,修改自己的密码比较费劲。所以,如果能够提供一个操作方便的修改密码的方法是十分有用的。下面,我们就一起来让你的Linux服务器支持用户通过WEB方式来修改密码。
自由软件chpasswd能够使你十分轻松地完成这个功能
需求。
一、 下载软件
这个自由软件源于波兰,截止到笔者写这篇文章时,最新版本是2.1版。你可以在http://sic.popnet.pl/~mlody/chpasswd/下载到这个软件。
该软件已在Slackware 4.0/7.0、Debian GNU/Linux woody、RedHat 6.1/5.2中
测试通过。
软件源程序包名称是:chpasswd.2.1.tar.gz,它是使用gzip压缩过的,压缩后大小为83K。笔者在此假设你将这个软件下载后,存放在/usr/local目录下。
二、 安装软件
这个软件的安装十分简单:
1. 以root用户登录系统;
2. 转到/usr/local目录,然后解压缩这个软件:
cd /usr/local
tar -zxvf chpasswd.2.1.tar.gz
成功执行后,会在/usr/local目录下新生成一个chpasswd.2.1目录。
3. 进入软件目录,安装软件:
cd chpasswd.2.1
./build.sh
这时将出现以下输出(中文部分是笔者加上去的注解):
create-html.sh for chpasswd 2.0, make by ml0dy
conwerting... @#error1@# file
conwerting... @#error2@# file
conwerting... @#error3@# file
conwerting... @#error4@# file
conwerting... @#error5@# file
conwerting... @#error6@# file
conwerting... @#error7@# file
conwerting... @#error8@# file
conwerting... @#index@# file
conwerting... @#ok@# file
done. (准备WEB页面文件)
Configure script for chpasswd 2.0, make by ml0dy
...finded HTTP daemon (/usr/local/apache/bin/httpd) (自动发现HTTP进程)
...COOL, Apache HTTP daemon (ver.1.3.14) (发现是Apache)
...configure file: /usr/local/apache/conf/httpd.conf (配置文件是httpd.conf)
...Group = nobody
CGI-BIN directory: /usr/local/apache/cgi-bin (找到CGI目录)
...correcting Makefile
g
clearcase/" target="_blank" >cc -DHAVE_CONFIG_H -I. -O2 -Wall -c libs/commonio.c -o libs/commonio.o
gcc -DHAVE_CONFIG_H -I. -O2 -Wall -c libs/commonio.c -o libs/commonio.o
gcc -DHAVE_CONFIG_H -I. -O2 -Wall -c libs/pwio.c -o libs/pwio.o
gcc -DHAVE_CONFIG_H -I. -O2 -Wall -c libs/shadowio.c -o libs/shadowio.o
gcc -DHAVE_CONFIG_H -I. -O2 -Wall -c libs/sgetpwent.c -o libs/sgetpwent.o
gcc -Wall -O2 -c salt.c
gcc -Wall -O2 -c pw_encrypt.c
gcc -Wall -O2 -c md5_crypt.c
gcc -Wall -O2 -c des_crypt.c
gcc -Wall -O2 -c cgilib.c
gcc -Wall -O2 -c mgets.c
gcc -Wall -O2 -DHAVE_SHADOW -o chpasswd chpasswd.c salt.o pw_encrypt.o md5_cryp(至此完成了编译过程)
cp chpasswd /usr/local/apache/cgi-bin/chpasswd.cgi
chown root /usr/local/apache/cgi-bin/chpasswd.cgi
chgrp nobody /usr/local/apache/cgi-bin/chpasswd.cgi
chmod u+s /usr/local/apache/cgi-bin/chpasswd.cgi
chmod a-rx /usr/local/apache/cgi-bin/chpasswd.cgi
chmod g+rx /usr/local/apache/cgi-bin/chpasswd.cgi
(将chpasswd.cgi拷贝到相应目录并做相应的权限设置)
到此为止,软件就安装完成了。
三、 使用WEB修改密码
软件就安装完成后,你只要将chpasswd.cgi链接到你主页上就可以完成了,或者在客户端浏览器上输入www.yourdomain.com/cgi-bin/chpasswd.cgi,你将看到以下界面:
在login栏中输入你的用户名,在current passwd栏中输入你原来的密码,并在new passwd和new passwd(confirm)栏中输入新密码(注意,两个密码需一致),然后按下change按钮。当出现以下画面,就表示修改成功:
如果出现了什么错误,则会出现相应的提示,其中包括:
1) ERROR:You didn@#t write your login, that@#s stupid...
你没有填写你的用户名,真笨!
2) ERROR:You didn@#t write your current password...
你没有填写你的当前密码;
3) ERROR:Your new password and confirmed new password do not match.
你两次输入的新密码不一样;
4)ERROR:You can@#t change password by WWW, contact to your administrator!
你不能通过WEB方式修改密码,请与管理员联系;
5)ERROR:Incorrect password...
当前密码不对(防止别人知道用户名情况下修改你密码)
6)ERROR:You didn@#t write your new password...
你没有填写你新密码;
7)ERROR:Unknown user.
用户名不存在,估计你输错了;
8)ERROR:You didn@#t write your new password (confirm)...
你没有输入new password (confirm)。
这八种错误都有出现一个类似于上面的这个的网页,给您提示。
四、 使用技巧
1. 禁止某些用户通过WEB方式修改密码:
有些系统帐号如root、ftp等帐号一般是不需要通过WEB方式来修改的,另外,有时你会不想让某个用户通过WEB方式修改密码,你只需修改一下配置文件就行了。
安装chpasswd后,会生成一个/etc/www.deny文件,在这个文件中列出的用户均不能通过WEB方式进行修改密码。你只需将用户添加进去就可以了,马上生效。
2. 修改chpasswd的页面
如果你对chpasswd自带的这些页面不满意的话,你可以自己修改它。
它们在/usr/local/chpasswd.2.1/html目录中,这个目录有以下几个文件:
index.html:修改的主界面
ok.html:修改成功的界面
error1.html
error2.html
……
error8.html:就是上面所述的8个错误的界面。
你可以直接修改它们,修改完成后后转到/usr/local/chpasswd.2.1目录下,执行./create-html.sh命令。然后再执行./bulid.sh完成安装。
另外请注意:在有些系统中为了追求更大的
安全性,连root用户都没对/etc/shadow写的权限,这样会出现一些问题。
原文转自:http://www.ltesting.net