2013-01-02 54 views
7

我有一個php腳本上傳文件到某個文件夾,目前他們上傳爲'psacln'組,這樣我就可以通過FTP刪除文件。當PHP以FastCGI的方式運行時,這一切工作正常,我必須將PHP更改爲Apache模塊才能運行PHP擴展。但現在我無法通過PHP腳本刪除文件,因爲權限被拒絕。我假設,因爲現在組「Apache」正試圖刪除屬於「psacln」的文件。我如何讓apache刪除這些文件?添加apache到用戶組文件上傳權限

編輯:LS -alF

drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:05 92/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 06:57 93/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:12 95/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Dec 21 18:56 96/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Dec 21 08:30 97/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:26 98/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:28 99/ 
+0

至少您必須授予使用root/sudo的「Apache」組的權限 – Raptor

+0

您必須擁有apache用戶組的父文件夾並且它必須是可執行的。 – Sahal

+0

哪個linux V? – Sahal

回答

13

我假定你有這個系統的shell和root權限。如果是這樣,您可以嘗試將apache用戶(通常爲apachewww-data)添加到/etc/group文件。

正確的做法是使用usermod,儘管我通常只是直接編輯文件。

總之,如果你的apache用戶apache,嘗試:

sudo usermod apache --append --groups psacln 

這基本上給任何文件,這些文件由psacln組擁有&目錄apache用戶訪問。

如果這不起作用,請發佈帶有文件權限的目錄示例(ls -alF),我們可以從中獲益。

編輯:

要直接編輯組文件使用納米(替代用哪個編輯器你舒服):

sudo nano /etc/groups 

,並找到psacln組並添加apache用戶:

psacln:x:130:apache 

請注意,gid(130)無疑會有所不同。

+0

不起作用,php以'apache:apache'運行'usermod:用戶psacln不存在' – keeg

+0

當你運行'sudo groups psacln'時你會得到什麼?你也可以在目錄列表編輯中加入'.'目錄。 – hafichuk

+0

'id:psacln:沒有這樣的用戶' – keeg

-4

設置的上傳目錄的權限爲777(WRX的所有用戶)。你還能上傳新文件嗎?如果可以的話,你應該可以刪除文件。

+0

您需要設置遞歸權限。父文件夾也應具有權限。 – Sahal

+0

如果你不與其他用戶共享服務器,那麼777就是安全的權限。既然你有子目錄,他們也必須有777權限。 'chmod -R a + w .'從顯示的目錄中。如果它不起作用,您可以隨時將其更改。如果你添加apache到psacln組,你將需要設置組寫入權限,'chmod -R g + w .' –