apache root中的文件权限为770,仍可查看

时间:2013-05-13 02:13:20

标签: php apache ubuntu permissions lamp

我在这里看到很多关于由于LAMP权限而无法访问文件的问题,但没有关于使用权限使http客户端无法查看文件的问题。

我的Apache2根文件夹中有文件和文件夹,我不希望人们通过浏览器或其他外部方式访问。我将权限设置为770,但这似乎不够。外部用户是否以apache用户身份访问文件? 我在Ubuntu Server下运行LAMP,对默认值进行了少量修改,因此我的apache用户是www-data,group是:www-data,apache root是/ var / www。

我有一个/ var / www / _private文件夹,该文件夹具有770权限,并且对其附带的文件具有相同的权限。但是,如果我通过浏览器访问这些文件,它们仍然可以查看。客户端是否以www-data用户身份访问我的文件?如果是这样,我该如何纠正?

我曾在托管设置上工作过,将“其他”权限设置为0足以拒绝外部直接访问文件。我是否需要安装一些额外的模块才能获得此功能?

注意:我仍然需要可访问客户端的PHP脚本来通过includes,fopen等访问这些文件......

1 个答案:

答案 0 :(得分:1)

嗯,对,770意味着文件的所有者和组可以读取,写入和执行它。我猜测Apache是​​该文件的所有者,因此允许它访问它并向全世界开放。

为什么不使用.htaccess文件,而不是修改服务器上的权限,并可能损害文件的可访问性。它将指示Apache在某些情况下执行操作,例如拒绝访问文件。只需使用

在网站的根目录中创建.htaccess文件即可
<Files {your file name here}>
deny from all
</Files>

并且你将拒绝所有人使用Apache访问它。

如果你想拒绝整个目录:

<Directory /var/www/_private>
   Order Deny,allow
   Deny from all
</Directory>