web服务的配置与应用3
10.用户认证:下面通过一个实际的例子来说明用户认证的方法。
假设有一个名为mysecret的虚拟目录,其对应的路径/usr/local/mysecret,先需要对其启用用户认证的功能,只允许名为linden和tom的用户访问。
建立口令文件:Apache自带的htpasswd命令提供了建立和更新存储用户名、密码的文本文件的功能,但要注意的是这个文件不能放在能被网络访问的路径。本例为
htpasswd -c /etc/httpd/mysecretpwd linden
htpssswd /etc/httpd/mysecretpwd tom #简历2个用户名并输入密码,生成一个密码文件
建立虚拟目录并配置用户认证:在Apache的主配置文件httpd.conf文件中加入以下语句。
Alias /mysecret "/usr/local/mysecret"
<Directory "/usr/local/mysecret">
AuthType Basic #设置认证类型
AuthName "this is a private directory.Please Login:" #设置认证领域的内容
AuthUserFile /etc/httpd/mysecretpwd #设置口令文件的位置
Require user linden tom #设置允许访问的用户
</Directory>
测试用户认证: 在服务器中使用/etc/init.d/httpd restart 重启服务
然后在url中输入/服务器的ip地址/mysecret
备注:我在/usr/local/mysecret下建立了个index.html文件,属性为644。
/etc/httpd/mysecret的文件属性安上面的方法建立的是600。安以上的操作是出现了登陆的对话框要求输入用户名和密码。但是我输入了不好用啊,不知为什么,但是我把/etc/httpd/mysecret文件的属性给加了chmod o+r mysecret就登陆了我事先写的index.html的网页,并且没有了要求输入用户名和密码的登陆框。我用的是rh9的linux,有谁拿rhel4的朋友给实验一把,看看是不是版本的原因呢,或是rh9的也能解决的话,请告诉我一声。不懈感激了!!