2013-02-15 82 views
3

我現在得到這個問題,然後在那裏我使用由主機給我的FTP帳戶,並在Wordpress FTP中使用它們。但出於某種原因,例如更新主題時,新主題將在apache/apache下創建,而不是用戶/ psacln用戶名/組。所以在那個時候,我無法刪除或者對這些文件做任何事情,因爲我在psacln組下。爲什麼apache擁有的文件是由wordpress創建的?

我想了解更多關於爲什麼會發生這種情況,以避免這個問題 - 歡迎任何建議!

在此先感謝。

回答

3

當您通過wordpess管理頁面(如主題)上傳文件時,作爲apache用戶運行的httpd進程實際上是在您的系統上創建它們 - 因此他們爲什麼由apache用戶擁有。我建議這個選項來解決此問題:

  1. 自己和Apache加入了一個名爲「WordPress的」
  2. 用它來改變你的WordPress組所有權到新組
  3. 使用新的組設置的SGID權限並且該組寫入權限給wordpress docroot中的所有目錄。

sgid位的設置將使添加到目錄的所有文件成爲相同的組擁有者。

假設你已經添加了自己和Apache同一組,這裏的Linux命令來設置目錄,以確保文件被創建可寫的所有在WordPress組:

chown -R :wordpress /path/to/wordpress/docroot/ 
chmod -R g+w /path/to/wordpress/docroot/ 
find /path/to/wordpress/docroot/ -type d -print | while read i; do SAVEIFS=$IFS; IFS=$(echo -en "\n\b");chmod g+s $i; IFS=$SAVEIFS; done 

其他可能的事需要:

如果您看到apache使用組權限創建文件而沒有寫入,則可能需要更改apache用戶創建新文件的默認umask。默認情況下,它應該是所有者和組寫入允許的,但我知道某些帳戶(如root用戶)的默認umask設置爲只讀組。

+1

感謝您的命令!但是你會發現,90%的時間我無法控制服務器環境(例如沒有shell訪問),因爲客戶可能會用Namesco等廉價運行一些東西。我想這是解決問題的一種方法 - 但是當然,我不是唯一一個能夠在沒有root權限的有限環境中工作的方法。 – Sergey 2013-03-03 18:50:24

+1

那麼爲什麼scumbag Wordpress這樣做呢?我必須下載文件夾並通過FileZilla重新上傳,以便我可以使用這些文件,嗯... – Sergey 2013-03-03 18:57:40

+1

參見http://stackoverflow.com/questions/1113691/a-general-linux-file-permissions-question-apache-and-wordpress。 – pbhj 2014-07-28 10:57:26

0

因爲apache的工作人員孩子在apache的用戶標識下運行,而unix系統上的「普通用戶」不能讓某些OTHER用戶擁有文件。只有root帳戶才能「放棄」所有權。

爲什麼?對於普通用戶來說,製作一個由root擁有的文件或者由另一個用戶擁有的文件是微不足道的。如果一個給定的系統使用用戶配額運行,這將允許用戶徹底顛覆配額,或者通過「給予」他們一堆大文件並超過該用戶的配額來拒絕其他人訪問。

如果您需要訪問這些文件,而不考慮unix所有權,您可以使用POSIX acls進行研究,這些文件存在於/超出unix權限。

+0

乾杯!是的,這是有道理的。然而,在大多數情況下,我在有限的環境中(在客戶端的共享主機上)面對這個問題 - 所以我自己無法訪問任何奇特的命令/設置權限。 – Sergey 2013-03-03 18:52:04

相關問題