zoukankan      html  css  js  c++  java
  • apache vhost 访问权限配置

    apache的<directory>     </directory>语句,查考如下:

        如何访问根目录下的目录http://192.168.1.12/test/

    • 第一.缺省apache不允许访问http目录(没有<Directory >定义,就没有访问权限)
    访问目录http://192.168.1.12/test/
    会显示:
    Forbidden
    You don't have permission to access /test/ on this server.
    • 第二.无限制目录访问

    在httpd.conf中增加<Directory >定义,即可打开无限制的目录访问权限

    <Directory /home/macg/www/test>
        Options All
        AllowOverride all
    </Directory>

    再访问会显示如下:

    Apache/2.0.54 (Fedora) Server at 192.168.1.12 Port 80

    Index of /test
     Name                    Last modified      Size  Description
     --------------------------------------------------------------------------------
     Parent Directory                             -   
     bg0073.jpg              29-Nov-2006 21:02   36K  
     bg0135.jpg              29-Nov-2006 21:03   41K  
     bg0137.jpg              29-Nov-2006 21:03   47K  
     slade1.html             29-Nov-2006 22:02  1.2K  
     slade2.html             29-Nov-2006 22:02  1.1K  
     slade3.html             29-Nov-2006 22:02  1.4K  
     slade4.html             29-Nov-2006 22:02  1.8K  
     slade5.html             29-Nov-2006 22:02  2.3K  
    --------------------------------------------------------------------------------
    Apache/2.0.54 (Fedora) Server at 192.168.1.12 Port 80


    实际AllowOverride all是enable  .htaccess目录限制功能。
    但test目录下并没有.htaccess文件
    等于开放访问,无限制。

    • 第三.有限制目录访问

    将其他目录中的.htaccess拷贝入要限制访问的目录

    [root@localhost test]# ls -a
     ..  bg0073.jpg  bg0135.jpg  bg0137.jpg  slade1.html  slade2.html  slade3.html  slade4.html  slade5.html
    [root@localhost test]# cp ../test1/.htaccess .
    [root@localhost test]# ls -a
     ..  bg0073.jpg  bg0135.jpg  bg0137.jpg  .htaccess  slade1.html  slade2.html  slade3.html  slade4.html slade5.html
    [root@localhost test]# more .htaccess
    authType Basic
    AuthName "Restricted Files"
    AuthUserFile /etc/httpd/passwords
    Require valid-user

    再访问http://192.168.1.12/test/
    会跳出身份认证窗口,输入用户名密码,即可访问目录


       .htaccess 目录限制的配置

    •     要使用.htaccess文件,先在将httpd.conf中建立<Directory ></Directory>
    <Directory "/home/macg/www/test">   
            Options All            
    允许对目录的操作,ALL---所有操作

        AllowOverride all                      
    AllowOverride all----允许.htaccess所有指令,缺省是all
    AllowOverride None ----完全忽略.htaccess文件

    </Directory>
    •     用/usr/bin/htpasswd创建一个用于认证的密码文件。

    并且这个文件不应该置于DocumentRoot目录下,以避免被下载。
    建议创建在/etc/httpd/目录下:

    [root@localhost httpd]# /usr/bin/htpasswd -c /etc/httpd/passwords macg
                                               -c建立文件
    New password:
    Re-type new password:
    Adding password for user macg
    [root@localhost httpd]# /usr/bin/htpasswd /etc/httpd/passwords gary  
                                没有-c就是单纯的adduser 追加用户
    New password:
    Re-type new password:
    Adding password for user gary
    [root@localhost httpd]# more /etc/httpd/passwords
    macg:U8jCwSsZyAB2g
    gary:06yCDyg7AijlM
    •   在受限制目录下建立.htaccess文件
    [root@localhost test]# ls -a
     ..  bg0073.jpg  bg0135.jpg  bg0137.jpg  .htaccess  slade1.html  slade2.html  slade3.html  slade4.html slade5.html
    [root@localhost test]# more .htaccess
    authType Basic
    authType--------认证类型
         由mod_auth_basic提供的Basic
    Basic认证方法并不加密来自用户浏览器的密码(明文传输)
         更安全的认证方法"AuthType Digest",即由mod_auth_digest供的摘要认证
    最新的浏览器版本才支持MD5认证
    (认证,服务器响应速度会受一些影响,一般有几百个用户就会对响应速度有非常明显的影响)


    AuthName "Restricted Files"
    AuthName "会员区"
    此句是显示给用户看的

    AuthUserFile /etc/httpd/passwords
    此目录接受passwords内定义用户的认证请求
    or
    Require macg
    此目录只接受单一用户macg(unix用户)认证请求




        <Directory ></Directory> 中指令的含义

    <Directory "/home/macg/www/test">   
            Options All            
            AllowOverride all                      
    </Directory>

      Options指令-------目录的访问特性

    option  none    禁止对目录的所有操作
    option all      允许对目录的所有操作,ALL---所有操作
    option ExecCGI    对该目录,可以执行cgi脚本
    option Indexes    允许访问该目录(而该目录没有index.html)时,返回目录下的文件列表                        
    option FollowSymLinks       只允许对目录的FollowSymLinks操作

       AllowOverride指令

    None    不读取.htaccess
    all    all----允许.htaccess所有指令,缺省是all
    Limit    .htaccess函盖具体限定的主机(allow,deny)
    AuthConfig    .htaccess函盖跟认证有关指令(AuthType,AuthName) 




       <Directory ></Directory> 对下面的所有子目录也生效

       所以httpd.conf中先对根目录/进行配置,等于是设置缺省配置

    httpd.conf中先对根目录/进行配置,等于是设置缺省配置

    <Directory />                                  
        Options FollowSymLinks  禁止对目录的访问(option只允许对目录的FollowSymLinks操作)
        AllowOverride None      不读取.htaccess
        Order deny,allow        deny all
        Deny from all               

    </Directory>


    <Directory "/usr/local/apache2/htdocs">

        Options Indexes FollowSymLinks   只允许访问index和连接   
        AllowOverride None
        Order allow,deny       承接父目录(/)的deny all,这里也是deny all
        Allow from all           

    </Directory>



        order allow deny -------------httpd.conf中封IP之类的操作

    Apache模块 mod_authz_host   
    <Directory /docroot>
    Order Deny,Allow
    Deny from ...
    Allow from ...

    </Directory> 
      注意顺序:
    除了后面allow的,其他都deny
    典型的封IP
    Order Allow,Deny
    Allow from all
    Deny from 205.252.46.165            
    注意顺序:
    除了后面deny的,其他都allow

    Deny from 192.168.2       典型的封网段

      

    http://blog.sina.com.cn/s/blog_6151984a0100f1tj.html%20 (讲的很好)

       

       可以访问:
         Options Indexes
         Order allow,deny
         IndexOptions Charset=UTF-8
         Allow from all

        拒绝访问
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all

  • 相关阅读:
    CF1592F2 Alice and Recoloring 2
    CF1601E Phys Ed Online
    AGC050B Three Coins
    [学习笔记]珂朵莉树(Old Drive Tree)
    CF30E. Tricky and Clever Password
    [学习笔记]替罪羊树
    开源项目MiniOA队员招募通知
    MiniOA开发过程记录(33)自动登录模式
    MiniOA开发过程记录(29)安装Maven
    简易工作流设计思考(欢迎补充和批评)
  • 原文地址:https://www.cnblogs.com/andydao/p/4113586.html
Copyright © 2011-2022 走看看