2012-03-10 80 views
0

我在這裏有點困惑。但這可能只是我缺乏經驗。dso(mod_php)和FTP /文件權限

我設置了PHP DSO(mod_php),我的服務器運行平穩穩定。但問題是,爲了使用include和所有東西運行php,我必須將所有用戶帳戶文件(/ home/*/public_html/*)所有者設置爲nobody:nobody。

這給我介紹了兩個問題: - 這真的有必要嗎?我寧願讓他們的用戶:用戶 - 那麼FTP呢?如果我使用FTP上傳文件,它們歸user:user所有,所以它們不能被包含在另一個php文件中(引發錯誤)。由nobody擁有的文件:nobody無法通過ftp修改..

僅供參考:我也啓用了SuEXEC。我應該禁用這個嗎? FY12:我知道我可以將所有權限設置爲777,但這只是錯誤的。

非常感謝!

+0

看看[這個答案](http://stackoverflow.com/questions/4453078/how-can-i-tell-apache2-run-mod-php5-by-default-but-run-this-vh-在-CGI-模式/ 4453201#4453201)。這幾乎是我在這裏回答的。 ([或此](http://stackoverflow.com/questions/4711609/running-exec-as-a-different-user/4711677#4711677))。 – 2012-03-10 10:27:38

+0

謝謝,但我從SuPHP切換到DSO,因爲我想使用opcache(eAccelerator)。我真的需要知道權限應該是什麼。 – eleven59 2012-03-10 10:30:56

+0

在這種情況下,您只能擁有*一個*不同的用戶來執行並運行PHP。我不知道你在運行哪個發行版,但是每個發行版通常都會引入一個小組(Debian:'www-data'),在這個小組下面運行Apache工作站。您可能希望將Apache正在運行的(顯然是「nobody」)當前組更改爲所有用戶共享的內容,並將相應的PHP文件至少設置爲「rw-r -----」或「0640」 。 – 2012-03-10 11:39:06

回答

0

普通的「nobody」應該只讀取正在執行的文件,並且只能寫入/擁有可被php更改的文件。大多數文件所有者應該是您的ftp用戶。

不良做法,以保持php權限來更改可執行文件。

此外,如果「nobody」有權以root用戶身份運行,它將爲php(以及因此用戶)提供所有權利。

+0

我不明白你在說什麼。你能重述一下嗎? – eleven59 2012-03-10 10:31:36

+0

你是否明白,在大多數情況下,PHP(無人運行)應該只能讀取php文件來運行你的應用程序? – Electronick 2012-03-10 10:44:13

+0

是的。但我的問題是關於_what_權限和所有者,我必須在PHP文件上設置,而不是在_which_文件上。 – eleven59 2012-03-10 11:07:24