我使用的是WordPress,我希望WordPress創建的文件具有創建它們的文件的用戶,而不是Web服務器運行的用戶。例如,我的WordPress文件和目錄由www-data
組中的philip
擁有。當WordPress創建文件時,我希望文件的所有者爲philip
而不是www-data
。我可以使用setuid或sticky來創建由某個用戶創建的PHP文件嗎?
這可能嗎?我的懷疑是它可以通過setuid
或sticky bit
實現,但我不知道如何應用它。
我使用的是WordPress,我希望WordPress創建的文件具有創建它們的文件的用戶,而不是Web服務器運行的用戶。例如,我的WordPress文件和目錄由www-data
組中的philip
擁有。當WordPress創建文件時,我希望文件的所有者爲philip
而不是www-data
。我可以使用setuid或sticky來創建由某個用戶創建的PHP文件嗎?
這可能嗎?我的懷疑是它可以通過setuid
或sticky bit
實現,但我不知道如何應用它。
不是沒有很多額外的努力。從你所描述的,這聽起來像你可能使用mod_php或類似的東西運行PHP;作爲Web服務器用戶,它將始終在Web服務器中運行。 setuid/setgid僅在有新的進程正在執行時才能工作,但在此情況並非如此。
你可以通過使用CGI或FastCGI(它可以讓你運行所有的PHP腳本作爲你自己的用戶)來運行PHP,但這可能是你不想做的很多額外的設置。
如果您不想讓該組訪問,可以使用粘滯位設置g-rwx
。 setgid
(您要求更改組,而不是用戶)的問題是,運行該命令的用戶必須具有分配該組的權限。如果您不希望Web服務器(即www-data)有權訪問,那麼您可能不希望將gid更改爲其有權訪問的任何組。否則,你需要擁有其他一些具有其他權限的進程,並通過cron或其他調度程序對Web服務器進行更改。
謝謝duskwuff,是的,我真的不想使用FastCGI。我想我必須得到我得到的東西。 –