0
執行由阿帕奇稱爲PHP腳本如下:PHP fopen()函數沒有權限創建文件進行修改
$h = fopen(getcwd()."tmp.txt","w");
fprintf($h,"hi");
fclose($h);
生成由我個人的用戶ID與644組的權限所擁有的文件。但是,再次執行該腳本會導致錯誤,因爲Apache/PHP以用戶wwwrun身份運行,因此沒有權限覆蓋該文件或chmod它。
這些文件所在的目錄位於我的主目錄中,並具有777權限。我如何讓PHP創建由wwwrun擁有的文件,或者使用666權限創建文件,或者執行其他操作,以允許它被PHP覆蓋。
我很理想地尋找一種解決方案,它也適用於PHP通過外部程序使用exec
函數調用該文件的情況;這似乎也遭受同樣的問題,因爲外部程序運行爲wwwrun,但由外部程序創建的文件屬於我的個人用戶標識。
退房'umask'。 – 2013-03-05 14:27:32
Apache作爲www-data運行,不可能創建一個擁有其他帳戶的文件。允許非root程序將所有權更改爲其他用戶將是一個巨大的安全漏洞。是你的家庭目錄sgid/suid(2777/4777)? – 2013-03-05 14:27:51