2017-06-04 82 views
0

我的网络服务器作为www-data运行,但由于某种原因,这个图像文件可以从网上看到没有问题。这里是权限/所有权:chmod 600仍然允许从世界访问apache服务器网络文件

ls -alht /var/www/html/file.jpeg 
-rw------- 1 www-data www-data 

如果我在该文件上做了一个chmod 000,它不能被视为预计。

我完全被这个难住,任何人有任何想法是怎么回事?非常感谢。

+0

你清除缓存在客户端上,从而在浏览器没有加载从本地存储缓存图像限制通过密码访问?此外,Web服务器可能(可能)正在做自己的缓存,因此也尝试重新启动httpd。最后,如果您正在使用内容交付网络,那么也可能是缓存。尝试-rw -----用一个新的文件名。 –

+0

感谢您的回复,我曾尝试访问4个不同的浏览器/设备,它们以前没有查看过这个文件。我也尝试重新启动服务器,并且没有内容交付网络 - 我在本地主机上运行服务器,并从局域网内的其他Web浏览器访问它。 – Techmanic

+0

真的很奇怪,我在openbsd系统上对另一个web服务器执行了完全相同的权限更改,并且它完全一样 - 仍然可以访问这些文件。那个在网上直播。 – Techmanic

回答

1

Linux权限仅适用于Linux用户而非网站用户。

您的网络服务器是一个以Linux用户身份运行的单一应用程序:组标识(www-data:www-data)。这就是关键所在。如果您的网络服务器可以读取/执行文件,那么技术上任何访问网站的人都可以访问该网站,

您可以通过在Linux操作系统级别更改权限影响的唯一的事情是防止Web服务器读取文件或将其投放到任何人或作出让其他的Linux用户在同一系统上无法访问它们。这在使用共享主机时尤为重要,其中多个用户代表使用相同Linux服务器的许多不同人员。

http://linuxcommand.org/lts0070.php

如果你想防止您的网络服务器上,从您的网络服务器对公众被服务,你应该配置你的.htaccess文件或类似网站的conf文件,如/ etc/apache2的/ sites- available/mysite.conf禁止访问特定位置。

如果您正在使用的nginx作为web服务器,然后你的conf文件应在/etc/nginx/conf.d找到或/ etc/nginx的/网站可用的或类似的

http://www.ducea.com/2006/08/11/apache-tips-tricks-deny-access-to-some-folders/

另外,您可以使用htpasswd的

https://wiki.apache.org/httpd/PasswordBasicAuth

相关问题