创建文件并设置目录权限

时间:2012-10-02 00:24:00

标签: php xml

我正在使用下面的PHP代码创建动态xml文件。

...
$file_name = "";
$rss_feed_dir = $_SERVER['DOCUMENT_ROOT'] . '/xml/';

chmod($rss_feed_dir, 0777);

$file = $rss_feed_dir . $file_name . '.xml';

$file_handle = fopen($file, "w");
fwrite($file_handle, $xml);
fclose($file_handle);

如果目录权限设置为0777,则会创建该文件,并且似乎在0755处失败。我在许多网站上阅读过世界执行权限可能会带来安全风险。

我应该在这个脚本的末尾chmod回到0755吗?

是否有更好的方法来设置目录权限?

1 个答案:

答案 0 :(得分:1)

我怀疑这是因为你的rss_feed_dir所指向的目录是另一个用户所拥有的目录 - 除了用于运行你的脚本的用户之外。

因此,如果您的脚本未使用指定的组或用户运行,那么755权限将排除您对目录的写访问权。这解释了为什么在权限为755时无法成功执行写文件命令,但在777时成功。

如果此php文件位于服务器上并从Web调用,请尝试修改目录所有权:

chown -R YOUR_USER:www-data YOUR_RSS_DIRECTORY_HERE

然后chmod到775

希望有所帮助!