我正在使用fopen創建一個新文件。fopen創建文件,但如何更改權限?
$filename = 'user_data/10.xml';
$openhandle = fopen($filename, 'w+');
然後我檢查該文件是否使用了:file_exists()
函數。
問題是:該文件正在創建一些所有者,可能是文件夾名稱,但它不是我。此外,該文件的權限僅爲readable by the owner
。 由於我不是所有者,因此我無法讀取該文件或更改權限。
但如果試圖用它改變:
chown($filename, 'myusername');
chmod($filename, 777);
我試着用sudo
文件的所有者和使用終端的權限變化。這工作正常。 所以我也嘗試使用上述功能與shell_exec()
,所以它在根目錄下運行。
但沒有運氣。
雖然我沒有太多關於文件權限編號的經驗,但chown命令也無法正常工作。
那麼我應該如何更改文件的所有者和權限,以便我是其他PHP腳本的所有者及其可讀可寫?
上傳文件(在任何chmod之前)時,文件上的權限是什麼,user_data文件夾上的權限是什麼以及誰是分配的所有者? – 2011-12-28 20:18:17
我創建一個新的空文件,然後使用fwrite()寫入它。該文件的權限是: 所有者和組:WWW的數據 業主:讀 組:執行 其他:執行 在USER_DATA文件夾,我的主人,所有的三個人都設置爲讀,寫,Execute ... – 2011-12-28 20:23:59
正如TimWickstrong所說的,您應該向chmod命令添加一個前導0,但也會出現您可能沒有chmod權限的情況。試試$ chmoded = chmod($ filename,0777);如果(!$ chmoded){echo「無法更改文件權限」;} ...另外,如果文件權限是777,則不需要chown。 – 2011-12-28 20:26:30