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

教你如何实现Apache的用户认证

2013-04-08 21:31 357 查看
有时候,我们会有这样一个需求,就是需要让一些文件经过用户账号密码认证后才能进行访问,并且限定某些站点只有固定的用户才能登陆。下边,则对实现认证的步骤进行详细说明:

一、安装httpd软件包,并重启服务(这个就不多说了吧)
二、编辑/etc/httpd/conf/httpd.conf
在文件中大约330行左右有一行
“AllowOverride none” 这个是系统默认的,无控制列表,见附。
我们这里将none改为AuthConfig参数,并添加以下几行内容,如下:
AllowOverride AuthConfig
AuthType  Basic                         # 用户认证类型
AuthName  "Restricted Site"             # 认证时显示的名字
AuthUserFile  /etc/httpd/conf/htpasswd  # 认证时用户的账号密码文件
AuthGroupFile  /etc/httpd/conf/htgroup  #基于组的认证
# Require user  tom                   # 只有tom用户才能登录
# Require group myusers             # 允许哪个组中的用户登录
Require valid-user        # 出现在账号密码文件中的用户都能登录

三、创建/etc/httpd/conf/htpasswd文件,及用户
使用htpasswd命令创建用户,在第一次创建时加-c可创建文件

# htpasswd -c -m /etc/httpd/conf/htpasswd tom
# htpasswd -m /etc/httpd/conf/htpasswd jerry

四、创建组文件/etc/httpd/conf/htgroup
在文件中写入一行

myusers:  tom  jerry

五、重启服务即可
# service httpd restart
六、验证(本地IP地址为172.16.13.1)

可在本地中检验,也可在浏览器中验证。






附:
AllowOverride none,默认无控制列表,即不使用用户认证,而使用下边的认证机制:基于IP的认证。
Order allow,deny --> allow,deny的顺序表示执行其限定的先后次序
Allow from all (系统默认允许所有主机登录)
1、若只允许一台主机登录,则
Order allow,deny
Allow from 172.16.13.2
2、若只拒绝某台主机登录,则
Order deny,allow
Deny from 172.16.13.3

你的问题解决了吗?很高兴给大家分享我的学习经验。
本文出自 “对着阳光微笑着” 博客,请务必保留此出处http://dongld.blog.51cto.com/4234800/1174199
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: