httpd基于用户的访问控制

基于用户的访问控制

实验环境
IP 192.168.253.128
系统 CentOS7
httpd版本2.4

先在主配置文件/usr/local/httpd/conf/httpd.conf修改

<Directory "/usr/local/httpd-2.4/htdocs">
    Options None
    AllowOverride None
    AuthType Basic
    AuthName "Admin"   ##提示字符串
    AuthUserFile "/usr/local/httpd/htdocs/.user" ##认证的配置文件,等等我们会创建
    Require user hal  ##允许用户hal访问
Directory>

创建/usr/local/httpd/htdocs/.user文件
使用专用命令完成此类文件的创建及用户管理

格式:htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE username

  • -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用;
  • -m:md5格式加密
  • -s: sha格式加密
  • -D:删除指定用户
[root@www htdocs]# htpasswd -c /usr/local/httpd/htdocs/.user hal
New password: 
Re-type new password:

检查配置文件,重启服务

httpd -t
httpd -k restart 

测试
httpd基于用户的访问控制_第1张图片

httpd基于用户的访问控制_第2张图片

基于用户组的访问控制

我们假设有2个组 amdin 和user组
admin组员有ice和cube
user组内有hal
这时候 我们允许admin访问但是不允许user组访问
修改一下配置文件/usr/local/httpd/conf/httpd.conf

<Directory "/usr/local/httpd-2.4/htdocs">
    Options None
    AllowOverride None
    AuthType Basic
    AuthName "Admin"
    AuthUserFile "/usr/local/httpd/htdocs/.user"
    AuthGroupFile "/usr/local/httpd/htdocs/.group"
    Require group admin
Directory>

创建用户账号和组账号文件;
格式为:GRP_NAME: username1 username2 …每行定义一个组
创建后的文件如下

[root@www htdocs]# cat /usr/local/httpd/htdocs/.group
admin:ice cube
user:hal

创建ice和cube用户 上一个实验我们已经创建了 hal用户了就不用重复创建了。因为我们现在是添加用户所以不用-c

[root@www htdocs]# htpasswd /usr/local/httpd/htdocs/.user  ice
New password: 
Re-type new password: 
Adding password for user ice
[root@www htdocs]# htpasswd /usr/local/httpd/htdocs/.user  cube
New password: 
Re-type new password: 
Adding password for user cube

现在查看一下/usr/local/httpd/htdocs/.user文件

[root@www htdocs]# cat /usr/local/httpd/htdocs/.user 
hal:$apr1$UK1I0KDQ$GEKjDw5WX6H5UBqHP20P0/
ice:$apr1$2Mnv.mAd$Klyabjl4mu/BLxrZRw5130
cube:$apr1$kc6vlxgz$.eH3KJ4alapHG69JEYDs0.

检查一下配置文件重启服务

httpd -t
httpd -k restart

我们现在用ice用户登陆,再用hal用户登陆。如果ice可以登陆而hal不能登陆,则试验成功
用hal登陆 不能登陆
httpd基于用户的访问控制_第3张图片
用ice登陆 成功 测试成功
httpd基于用户的访问控制_第4张图片

你可能感兴趣的:(httpd)