zoukankan      html  css  js  c++  java
  • [转]apache 设置目录访问权限(Linux文件权限)

    个人学习笔记,部分资料来自网络,有些找不到出处,如有侵权立马删除。



    Linux下Web目录和文件安全权限设置

    在Linux下,web目录和文件权限必须从整体上考虑系统的安全。一般情况下,对目录,需要设置 r(读取)和x(执行)权限,有的目录同时还需要w(写入权限)

    ;对文件,需要r(读取),有的文件需要w(写入)权限或x(执行)权限。

    在Linux系统中,使用命令umask设置创建文件或目录的默认rwx权限,系统默认的umask设置是022,这个权限的计算相当于文件、目录权限的掩码,例如此时

    创建的目录权限755 (rwxr-xr-x),那么其umask权限相当于相对777的掩码022;而此时创建的文件权限为644 (rw-r–r–),其umask权限相当于相对666的掩

    码022。

    当然,这样的权限设置很不安全,同一台server上的不同用户(可能相同也可能不同用户组)/虚拟主机用户能够互相窥探到对方的源码,umask值必须修改的

    比较严格,以使得除root权限之外,不能随意互相窥探其他人的源码、数据库资料等。

    设置方法是:去掉同用户组和其他用户组的r(读取)权限,具体做法是设置目录权限为500(读取+执行)同时文件权限为400(读取),此时umask应设置为277,

    设置目录权限为700(读取+写入+执行)同时文件权限为500(读取+执行),此时umask应设置为177。

    例如对于后者,我们可以使用命令 umask 177设置当前对话下的默认目录、文件创建权限,如果要永久设置,就要修改/root/.bash_profile以及所有用户

    home的录下的.bash_profile文件,将其中的 umask 022改为 umask 177。

    从以上可以看出,如果要设置较为安全的目录、文件权限,几个基本原则就是:


    1、尽可能减少web路径下可写入目录的数量。

    2、文件的写入和执行权限只能选择其一,避免同时出现写入和执行权限。




    -------------------------
    可以通过修改Apache配置文件httpd.conf来实现禁止列出目录/文件列表,方法如下 

    【apache配置禁止访问】 
    1. 禁止访问某些文件/目录 
    增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库: 

     
    Order allow,deny 
    Deny from all 
     
    禁止访问某些指定的目录:(可以用   来进行正则匹配) 

     
    Order allow,deny 
    Deny from all 
     
    通过文件匹配来进行禁止,比如禁止所有针对图片的访问: 

     
    Order allow,deny 
    Deny from all 
     
    针对URL相对路径的禁止访问: 

     
    Order allow,deny 
    Deny from all 
     
    针对代理方式禁止对某些目标的访问( 可以用来正则匹配),比如拒绝通过代理访问cnn.com: 

     
    Order allow,deny 
    Deny from all 
     
    2. 禁止某些IP访问/只允许某些IP访问 
    如果要控制禁止某些非法IP访问,在Directory选项控制: 

     
    Order allow,deny 
    Allow from all 
    Deny from 10.0.0.1 #阻止一个IP 
    Deny from 192.168.0.0/24 #阻止一个IP段 
     
    只允许某些IP访问,适合比如就允许内部或者合作公司访问: 

     
    Order deny,allow 
    Deny from all 
    All from example.com #允许某个域名 
    All from 10.0.0.1 #允许一个iP 
    All from 10.0.0.1 10.0.0.2 #允许多个iP 
    Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对 
    All from 10.0.1 192.168 #允许一个IP段,后面不填写 
    All from 192.168.0.0/24 #允许一个IP段,网络号 
     
    Apache:解决办法; 

     
    Options -Indexes FollowSymLinks 
    AllowOverride All 
     
    Order allow,deny 
    Deny from all 
     

    ----------------------

    在apache中设置禁止在浏览器中访问.svn版本库目录中的文件
    http://blog.csdn.net/qidizi/article/details/8732362



    一般来说,不需要有区别处理.所以直接在全局配置文件上做对.svn目录访问做限制即可

    在apache的配置文件中任何一处输入



    #deny access .svn by web site;and Redirect to home -- qidizi
            Redirect 303 / http://www.qidizi.net/#
    #       Deny From All


    redirect

    加#号会自动转成 /#.svn/dkkd?q=.svn/dkkdff

    加?error=会变成 /?error=.svn/dkkd

    如果什么都不加会出现问题


    然后保存重启apache即可


    然后测试访问

    就会收到以下提示


    Forbidden

    You don't have permission to access /.svn/entrieson this server.

    Apache/2.2.14 (Ubuntu) Server at www.chinahrd.net Port 80
    ---------------------

    对于某些文件的保护,可以认为只给Apache权限不给用户(浏览器)权限即可么???

  • 相关阅读:
    Photoshop 基础七 位图 矢量图 栅格化
    Photoshop 基础六 图层
    Warfare And Logistics UVALive
    Walk Through the Forest UVA
    Airport Express UVA
    Guess UVALive
    Play on Words UVA
    The Necklace UVA
    Food Delivery ZOJ
    Brackets Sequence POJ
  • 原文地址:https://www.cnblogs.com/linewman/p/9918818.html
Copyright © 2011-2022 走看看