 |
 |
 |
 |
 |
 |
|
| 作者:Admin 时间:2004-4-3 来自:ASP教程 选择阅读文体:大 中 小 |
|
|
 |
如何设置访问一个目录需要密码
当我们将资源放在用户认证下面时,就可以通过要求用户输入名字和口令来获得对资源的访问。这个名字和口令被保存在服务器的数据库文件中。这个数据库可以采用多种形式。Apache中有如下数据库模块,如:普通文件数据库、数据库管理(DBM)文件数据库、MSQL数据库、Oracle和Sybase数据库等。 默认情况下,可以在某个目录下放一个文件.htaccess,首先介绍一下该文件中的一些基本的配置命令。 AuthName 此指令为口令保护的页面设置认证区域。区域是在提示要求认证时呈现给用户的内容,如:“Please Enter Your Name and Password for this Realm”。 AuthType 此指令为这个领域设置认证类型,在HTTP1.0 中只有一个认证类型——Basic(基本类型)。在 HTTP1.1中有数种,如 MD5。 AuthUserFile 此命令指定一个含有名字和口令列表的文件,每行一对。 AuthGroupFile 此命令指定包含用户组清单和这些组的成员的清单文件,组成员之间用空格分开。例如:
Managers:joe mark Production: mark shelley paul
require require命令指定需要什么条件才能被授权访问。它可以只列出可能连接的指定用户、指定可能连接的用户的一个组或多个组的清单,或指出数据库中的任何有效用户都被自动的授权访问。例如:
require user mark paul(只有mark和paul可以访问) require group managers(只有managers组可以访问) require valid-user(在数据库AuthUserFile中任何用户都可以访问)
配置文件以下面的方式结束:
<Directory /usr/local/apache/htdocs/protected/> AuthName Protected AuthType basic AuthUserFile /usr/local/apache/conf/users <Limit GET POST> require valid-user </Limit> </Directory>
如果require指令出现在<Limit>块内,它将限制访问使用的方式,否则将不允许任何方式的访问操作。在上例中,可以以HTTP GET 或POST的方式访问。为保证其正常运行,require指令必须与AuthName和AuthType之类的指令配合使用。 Satisfy 语法:Satisfy ‘any’|’all’ 缺省值:Satisfy all 如果你既使用了Allow指令又使用了require,你可以用这条指令告诉Apache服务器哪些东西满足鉴权要求。Satisfy的值可以是all或any。使用all ,则只有在Allow指令和require 指令都满足的情况下才鉴权成功;如果使用any,Allow指令和require 指令中任何一条指令满足都可以使鉴权操作成功。 为了给用户user1进入访问,用命令:
#htpasswd -c /usr/local/apache/conf/users user1
为user1分配密码。如果想对一个特殊组保护一个目录,那么配置文件看上去就象下面这样:
<Directory /usr/local/apache/htdocs/protected/> AuthName Protected AuthType basic AuthUserFile /usr/local/apache/conf/users AuthGroupFile /usr/local/apache/conf/group <Limit GET POST> require group managers </Limit> </Directory>
 |
 |
|
|
 |
相关文章 |
|
|
|
 |
 |
|
 |
 |
 |
 |
 |
 |
|
|