我正在使用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