2009-07-20 88 views
4

我剛剛學會在我的ubuntu linux localhost上首次安裝Apache 2。我正在使用PHP5。Apache Webserver - 如何寫權限設置爲755而不是777

我注意到,無論何時我想寫入文件或目錄,我都必須chmod 777目的地。

但是從我的第三方託管解決方案的工作經驗來看,我通常可以寫入具有755權限的文件和目錄。

我可以在我的本地主機上做些什麼,以便我可以用755個權限寫入文件和目錄?如果這個答案很長,有人可以給我一個鏈接指導一步一步來做到這一點?

回答

4

您可能無法實現此目的,因爲文件的所有者與嘗試對文件執行操作的用戶不同。

的權限是:

業主羣大家

rwx-rwx-rwx 

i.e. 111 = 7 which allows read/write and execute. 
101 = 5 which is just read and execute 

你不能在用戶因爲你的記錄寫入該文件不具有訪問所有者/組的一部分文件。

最終的7(即rwx-rwx-111(7))意味着在全局範圍內,每個人都可以讀取/寫入該文件。

如何解決這一問題
在Linux中,你可以使用chown或chgrp命令命令來實現你想要的結果。

0

首先,您需要了解您的PHP代碼正在運行的用戶。如果您使用mod_php5(軟件包名稱libapache2-mod-php5)與Apache一起運行「worker」或「prefork」MPM,則這可能是www-data

只要您只在服務器中運行一個Web應用程序,這不是什麼大問題。但是,如果您運行多個應用程序(或由多個用戶擁有的腳本),則可以爲各種安全相關的「樂趣」設置自己的身份。

16

以下是網站內容管理的一些簡單的規則(在Apache),大多數人應該遵循:

  1. 的所有內容應chown'd & chgrp'd到apache的運行相同的用戶。在新的Ubuntu安裝中,用戶和組都是「www-data」。
  2. 如果您想管理您自己的用戶組下的服務文件,那麼您應該將自己添加到www-data組,並確保此組中的用戶對所有服務文件和目錄具有讀/寫訪問權限。這裏需要注意的是,您要確保不要創建新文件作爲您的個人帳戶。這些應該仍然由www-data擁有。最簡單的方法是將文件創建爲你自己,然後將其文件命名爲www-data:www-data。

如果你做了這兩件事,那麼你應該可以寫入由Apache服務的文件。我不確定您的文檔根目錄在哪裏,但類似這樣的內容可能適用於最簡單的安裝:

$ sudo usermod $USER -a -G www-data 
$ cd /var/www 
$ sudo chown -R www-data:www-data . 
相關問題