您的位置:首页 > 运维架构 > Apache

Apache的访问权限控制 总结 归纳

2013-04-10 15:10 531 查看
Apache的访问权限控制
简单介绍:这是一个apache的系列配置文档,配置apache的认证授权,此篇为第一篇。

认证类型:basic 基本认证(常用) digest 摘要认证
在httpd.conf文件中,几个主要认证模块配置如下(默认已配置):

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule auth_digest_module modules/mod_auth_digest.so

LoadModule authn_file_module modules/mod_authn_file.so

LoadModule authn_dbm_module modules/mod_authn_dbm.so

LoadModule authn_default_module modules/mod_authn_default.so

LoadModule authz_user_module modules/mod_authz_user.so

LoadModule authz_dbm_module modules/mod_authz_dbm.so

LoadModule authz_default_module modules/mod_authz_default.so
配置基本认证(basic)
方式一:使用文本格式用户数据库

1、创建认证用户数据库文件(文本格式)
格式htpasswd options FilePath user

-c :第一次创建时使用该选项

-m :将密码使用MD5加密存放

-D :从密码文件中删除用户

如:创建一个用户redhat,将密码文件存放在/etc/httpd/.htpasswd

#htpasswd -cm /etc/httpd/.htpasswd redhat

删除用户

#htpasswd -D /etc/httpd/.htpasswd redhat

# htpasswd -c /etc/httpd/conf/users_txt.pwd admin #//创建文本格式用户文件,同时添加用户admin

# htpasswd /etc/httpd/conf/users_txt.pwd jerry #//在数据库文件中添加用户jerry

方式二:使用dbm格式用户数据库(若用户较多,可采用dbm用户数据库以加快检索速度)

1、创建认证用户数据库文件(Berkeley DB格式)

# htdbm -TDB -c /etc/httpd/conf/users_dbm.db kitty #//创建DB格式(其他格式参考man)用户文件,同时添加用户kitty
2、修改.htaccess配置文件

# vi /var/www/html/auth/.htaccess

AuthName "Private Contents."

AuthType basic

AuthBasicProvider dbm

AuthDBMType DB

AuthDBMUserFile "/etc/httpd/conf/users_dbm.db"

Require kitty

配置摘要认证(digest)

1、创建digest认证用户数据库文件(文本格式) #//digest认证貌似无法使用dbm用户文件

# htdigest -c /etc/httpd/conf/users_digest.pwd "Private Contents." kenthy

2、修改.htaccess配置文件

AuthName "Private Contents."

AuthType digest

#AuthDigestDomain /auth/ #//在目录区段(Directory)配置digest认证时,此行可有可无

AuthUserFile /etc/httpd/conf/users_digest.pwd

Require kenthy
这里要提起的是 AuthUserFile指令,在所有讲述摘要认证的文章中(包括Apache官方文档)都说应该使用AuthDigestFile指令,我最先也是按照 官方文档去配置,结果就是install不成功。系统提示” Invalid command 'AuthDigestFile', perhaps misspelled or defined by a module not included in the server configuration”。这个问题多花我至少1个小时。最先以为是其他的什么地方配置不对,最后经过查阅才发现在Apache2.2.4版本中还不 支持AuthDigestFile指令(通过查看源代码),因此暂时用AuthUserFile指令替代。
认证指令:
1.1 authname 受保护域名称
1.2 authtype 认证方式
1.3 authuserfile 认证口令文件位置
1.4 authgroupfile 认证组文件位置
授权指令:
2.1 require user 授权给指定用户
2.2 require group 授权给指定组
2.3 require valid-user 授权给认证口令文件用户
具体配置步骤:
修改为:
<Directory “/var/www/test”>
Optinons Indexes MultiViews
AllowOverride None
authname “test”
authtype basic
authuserfile /etc/httpd/httppwd
require user test
</Directory> ##只授权test用户访问
Service httpd restart
Vi httpd.conf
修改为:
<Directory “/var/www/test”>
Optinons Indexes MultiViews
AllowOverride None
authname “test”
authtype basic
authuserfile /etc/httpd/httppwd
require valid-user
</Directory> ##口令文件所有用户都可以访问
Service httpd restart
Vi httpgrp
添加:
admin: test bbs
wq!
Vi httpd.conf
修改为:
<Directory “/var/www/test”>
Optinons Indexes MultiViews
AllowOverride None
authname “test”
authtype basic
authuserfile /etc/httpd/httppwd
authgroupfile /etc/httpd/httpgrp
require group admin
</Directory> ##admin组可以访问
Service httpd restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: