2014-08-28 50 views
0

我有一個文件與cronjob一起運行並創建一些文件和文件夾,但是當在網站模式下進入該文件夾時,我無法創建文件或任何文件夾。
我認爲由cronjob owner創建的文件夾是root,但是當想在網站模式下訪問它時,我們是在apache所有者中,並且無法操作它。
當使用0777權限創建文件夾時,它工作正常。沒有將文件夾權限從0775更改爲0777,任何人都知道這個問題的解決方案? 謝謝。通過cronjob和maniuplate在網站端創建文件夾的權限

回答

0

這是可以解決的安全風險Apache所有者或將您創建文件的文件夾設置爲將組所有權傳播到所有創建的文件/文件夾。

要運行一個cronjob作爲另一個用戶:

crontab -eu apache-user 

這將運行作業,運行Apache的所以就沒有必要改變權限相同的用戶。如果文件不能在網站前面寫入,這並不理想。

很明顯,您需要將「apache-user」更改爲運行Apache的用戶。例如:Ubuntu上的www-data,CentOS上的apache。

要設置的文件夾繼承組所有權,以便在文件夾中創建的所有文件將是由組訪問:

chmod g+s folder-you-are-writing-to/ 

,並確保Apache組織被設置爲組:

chgrp apache-user folder-you-are-writing-to/ 
1

如果你的PHP腳本創建文件夾通過root身份運行,那麼你就可以執行exec()chown命令文件所有者更改爲阿帕奇

chown -R username:group /directory 
2

你可以改變你的的cron使該文件夾的所有者工作,無論你的網絡用戶是什麼。

chown -R apache:apache /path/to/folder 

編輯: 如果你要做到這一點,總有具有Web用戶能夠通過運行中的cronjob作爲創建文件等