2017-06-04 72 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