一、步骤
1.用户验证信息的创建
存储形式
文本文件,SQL数据库,ldap目录存储,nis(网络信息服务)
2.配置文件中basic的配置
配置文件格式
<Directory “/path">
访问控制的目录
Options None
可以不写
AllowOverride None
可以不写
AuthType Basic
验证方法
AuthName "String“
描述语句
AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE"
验证的数据文件路径
Require user username1 username2 ...
允许AuthUserFile文件中部分用户能访问
Require valid-user
允许AuthUserFile文件中的所有用户登录访问
<Directory>
二、 操作
1.用户验证信息的创建
虚拟账号放在文本中
使用专用命令完成此类文件的创建及用户管理
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
-c:自动创建文件,仅应该在文件不存在时使用
-m:md5格式加密,默认方式
-s: sha格式加密
-D:删除指定用户
用户信息
用户名 | 密码 | 所在组 |
---|---|---|
user1 | user1 | groupA |
user2 | user2 | groupB |
user3 | user3 | groupA |
user4 | user4 | groupB |
创建上述表中用户验证信息
[root@localhost /etc/httpd/conf.d]$ htpasswd -c basic_secert user1
New password:
Re-type new password:
Adding password for user user1
[root@localhost /etc/httpd/conf.d]$ htpasswd -m basic_secert user2
New password:
Re-type new password:
Adding password for user user2
[root@localhost /etc/httpd/conf.d]$ htpasswd -s basic_secert user3
New password:
Re-type new password:
Updating password for user user3
[root@localhost /etc/httpd/conf.d]$ htpasswd -m basic_secert user4
New password:
Re-type new password:
Adding password for user user4
创建成功
[root@localhost /etc/httpd/conf.d]$ cat basic_secert
user1:B60njYjEpDKZM
user2:$apr1$89VaA4I3$cPgrLjSCvBEqYLzin45pe0
user3:{SHA}Bubu9q3y5fVOpsQ8N21tNmBfgQ4=
user4:$apr1$BIHV/lJ4$czPIjfQ65/yYYof4/P2wy0
创建上述表中组验证信息
[root@localhost /etc/httpd/conf.d]$ vim basic_secert_group
groupA: user1 user3
groupB: user2 user4
2.配置文件
方法1:/etc/httpd/conf.d/*.conf配置文件
[root@localhost /etc/httpd/conf.d]$ vim basic_secert.conf
<directory /var/www/html/secert>
authtype basic
authname "A specific user can access the secert directory"
authuserfile /etc/httpd/conf.d/basic_secert
require user user1 user2
authgroupfile /etc/httpd/conf.d/basic_secert_group
require group groupA
</directory>
方法2:将配置信息写到/var/www/html/secert/.htaccess中
#修改/etc/httpd/conf/httpd.conf,使.htaccess文件生效
与访问控制相关的哪些指令可以放在指定目录下的.htaccess(由AccessFileName指定)文件中,覆盖之前的配置指令
AllowOverride All: 所有指令都有效
AllowOverride None:.htaccess
文件无效;和不写此设置作用相同
AllowOverride AuthConfig Indexes
除了AuthConfig和Indexes的其它指令都无法覆盖
有bug,不能用
cd /etc/httpd/conf.d
cp basic_secert.conf /var/www/html/secert/.htaccess
mv basic_secert.conf basic_secert.conf.bak
三、验证
结果
authuserfile /etc/httpd/conf.d/basic_secert
require user user1 user2
用户中的user1和user2可以访问
authgroupfile /etc/httpd/conf.d/basic_secert_group
require group groupA
groupA组用户可以访问
结果是:user1,user2,user3可以访问