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