httpd基于basic验证的目录访问

本文介绍了如何通过Apache httpd服务器实现基于basic验证的目录访问控制。步骤包括创建用户验证信息,配置Apache httpd的basic认证,并通过.htaccess文件进行详细设置。最终验证结果显示,user1,user2,user3成功访问了受保护的目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、步骤

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:删除指定用户

用户信息

用户名密码所在组
user1user1groupA
user2user2groupB
user3user3groupA
user4user4groupB

创建上述表中用户验证信息

[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可以访问
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值