• [转]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权限不给用户(浏览器)权限即可么???

  • 相关阅读:
    MongoDB 基础学习
    在 PostgreSQL 中使用码农很忙 IP 地址数据库
    在 MySQL 中使用码农很忙 IP 地址数据库
    编译opencv和opencv_contrib
    修改本次提交日志
    clone报告超过限制
    修改gitolite管理员
    libevent简介[翻译]11 连接监听:接收一个TCP连接
    libevent简介[翻译]11 Evbuffers:缓冲IO的功能函数
    Windows查看TCP连接数
  • 原文地址:https://www.cnblogs.com/linewman/p/9918818.html
Copyright © 2020-2023  润新知