2009-12-25 79 views
0

我有一個腳本,我想在Linux環境中訪問用戶的主目錄。PHP訪問主目錄

Web根目錄:在/ var/www/html等/ 而且還有用戶目錄,例如:/家庭/約翰 /家庭/大衛 等

有在用戶的主目錄中的文件。用戶家的權限屬於用戶。例如: /home/david/file.txt用戶:david組:david

是否可以使用apache訪問這些文件?我認爲這不是因爲許可,

有沒有辦法解決這個問題?

換句話說,下/var/www/html/index.php我的PHP程序可以acccess下/home/david/foo.txt

我怎麼能得到這個工作的文件?謝謝。

回答

2

最好的方法是讓用戶將具體需要的文件放入pub目錄,然後chmod 777該目錄。

如果你想訪問主目錄中的任意文件,你必須以root身份運行Apache,這是一個的安全風險。 (雖然你可以更改主目錄的權限,但這可能會弄亂很多程序,按照我的經驗)。

+1

他也可以設置777個人文件和訪問它們,而無需更改組等 – dusoft 2009-12-25 21:48:21

+2

如果通過*訪問*您的意思是*讀*,644就夠了 - 不需要允許Apache寫入這些文件。還要確保關於該文件的所有目錄至少具有世界執行權限(711)。 – Wim 2009-12-25 21:56:37

+0

兩個好點 - 感謝提高他們。 – 2009-12-27 17:51:31

0

也許我對這些事情有點偏執,但在我看來有些東西在這裏概念上是錯誤的:

一個腳本,暴露給網絡,永遠不應該被授予訪問用戶的主目錄。其中一個原因是,妥協的Web服務器可能導致主目錄中的文件暴露給任何可以訪問Web服務器的人。另一個原因是主目錄中的文件(至少在我的理解中)是一個用戶保存或多或少的個人/私人文件的地方,這些文件不應該被其他用戶使用。否則,他們會把它放在一個公共目錄中。

雖然我不確定你的用例是什麼,但我建議最好使用不同的概念,其中Apache不需要首先訪問其他用戶的主目錄。