前言:
Apache
服务器通常使用基本认证,利用一些认证参数,可实现对指定目录的认证控制。
Apache
用户认证所需要的用户名和密码有两种不同的存贮方式:一种是文本文件;另一种是
MSQL
、
Oracle
、
MySQL
等数据库。
用户访问指定目录的网页文件时必须输入认证用户名和口令,认证成功后才能进行访问。其实网站管理者管理网站的后台去修改东西时都需要口令的,不然普通用户就可以轻易进入后台去修改网站内容。此次实验只采用文本文件来储存用户名和密码。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.
在对
Apache
服务器进行配置之前,我们先来了解一下配置文件中有关用户认证的字段,这样子可以更清楚的认识配置文件中各字段所起到的作用。(建议:网上搜一下有关这方面得资料)。
²
AuthName
认证域名称:指定用户认证域的名称。
²
AuthType Basic
:配置用户认证的方式,一般只使用
Basic
。
²
AuthUserFile
文件名:指定认证用户文件名及其保存路径。
²
AuthGroupFile
文件名:指定认证组群文件名及其保存路径。
使用认证参数后还需要使用
Require
参数进行授权,指定哪些认证用户或认证组群有权访问指定的目录,
Require
参数有以下三种格式:
Ø
Require
用户名列表:授权给指定用户。
Ø
Require
组群名列表:授权给指定组群。
Ø
Require valid
—
User
:授权给认证用户文件中所有的用户。
Apache
服务器针对目录进行访问控制和认证时,并可选择使用以下方式来实现:
²
直接编辑
httpd.conf
文件,直接设置指定目录的访问控制和认证相关参数。
²
在指定目录创建
.htaccess
文件,访问控制和认证相关参数都保存在
.htaccess
文件中。
这两种方法各有优劣,使用
.htaccess
文件可以在不重启服务器的情况下修改服务器的配置,但是由于
Apache
服务器需要去寻找
.htaccess
文件,会降低服务器的运行性能。
Httpd.conf
文件中
AllowOverride
参数的参数可决定
.htaccess
文件是否起效,以及
.htaccess
文件中可使用的配置参数。
AllowOverride
参数的主要参数有
All
和
None
,
Allow
就是启用
.htaccess
文件,并且可使用所以的参数,
None
是不启用
.htaccess
文件。
2.
我们要在
Apache
的默认主页根目录下新建一个名为
secret
的目录,为了测试配置效果,需要在次目录下新建一个
Index.html
文件,截图如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/f54da91743db21513ede8c81dc7bece0.jpeg)
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
3.
编辑
httpd.conf
文件内容,设置虚拟目录
/var/www/html/secret
。其实是在
httpd.conf
配置文件中添加下面的内容,截图如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/4b97f1694cf57b6552a82a0ad0770d16.jpeg)
目录中
AllowOverride
参数设置为
All
,则所有的访问控制参数都单独保存在
.htaccess
文件中,对于
AllowOverride
参数设置为
All
的解释在配置文件中有很清楚的解释,截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/426b1a518aa379c9196036ec4c5c9328.jpeg)
4.
在
/var/www/html/secret
目录下新建访问控制文件
.htaccess,
并且在
.htaccess
文件中添加相应的内容,截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/e00d95f22d24afed5143f60144f2047a.jpeg)
相应的字段解释看前面的说明就很清楚了。
5.
创建访问网站的认证用户,用户名为
yangzexin,
利用
Apache
附带的程序
htpasswd
,生成包含用户名和密码的文本文件:
/var/www/html/secret/userpass.txt
。使用的命令是:
htpasswd –c /var/www/html/secret/userpass.txt
用户名,如果想要向
userpass.txt
文件中再添加其他用户的话,那么就不能在使用“
htpasswd –c /var/www/html/secret/userpass.txt
用户名”这条命令了,这样子的话会把原先创建的用户给覆盖掉的,所以如果想向该文件中再添加用户的话,那么就要使用这么一条类似的命令了:“
htpasswd –b //var/www/html/secret/userpass.txt
用户名
密码”如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/47dce5d33e12f5aba0d5b0644c32e693.jpeg)
6.
查看一下
/var/www/html/secret/
目录下是否自动创建了
userpass.txt
文件,同时查看里面的内容,截图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/2aaacc8561556dcf7b0ec000f55065b5.jpeg)
7.
输入命令“
service httpd start
”启动
Apache
服务器
![](https://i-blog.csdnimg.cn/blog_migrate/f0111bc66fb108a5e5e981e80172e9db.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/07562e63e372f53066e69cc3dafba6f4.jpeg)
9.
如果是非法登录的用户的话,那么就会出现以下这么一个界面:
![](https://i-blog.csdnimg.cn/blog_migrate/6164013b04e0b61106cea0c12e7da1b0.jpeg)
转载于:https://blog.51cto.com/yangzexin07/227854