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