770权限文件在apache根,仍然是可见的


770 permissions on file in apache root, still viewable

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

我有文件和文件夹在我的Apache2根文件夹,我不希望人们能够通过他们的浏览器或其他外部手段访问。我将权限设置为770,但这似乎还不够。外部用户是否以apache用户的身份访问文件?我在Ubuntu Server下运行LAMP,对默认值做了一些修改,因此我的apache用户是www-data,组是www-data, apache根目录是/var/www。

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

我曾在主机设置中工作过,其中将"其他"权限设置为0足以拒绝外部直接访问文件。我需要安装一些额外的模块来获得这个功能吗?

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

好的,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>