创建文件并设置目录权限
Posted
技术标签:
【中文标题】创建文件并设置目录权限【英文标题】:Create a File and set Directory Permissions 【发布时间】:2012-10-02 00:24:00 【问题描述】:我正在使用下面的 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】:我怀疑这是因为您的 rss_feed_dir 指向的目录是另一个用户拥有的目录 - 而不是用于运行您的脚本的用户。
因此,如果您的脚本未与指定的组或用户一起运行,那么 755 权限将排除您对该目录的写访问权限。这就解释了为什么当权限为 755 时无法成功执行写入文件命令,但在 777 时成功。
如果此 php 文件位于服务器上并从 Web 调用,请尝试修改您的目录所有权本身:
chown -R YOUR_USER:www-data YOUR_RSS_DIRECTORY_HERE
然后 chmod 到 775
希望有帮助!
【讨论】:
如何知道 PHP 脚本属于哪个组?我想知道是否快速解决方法是将组更改为没人? 对不起,我更新了我的答案。您可能需要确保目录上有正确的组权限。 775 是您可能正在寻找的。span>以上是关于创建文件并设置目录权限的主要内容,如果未能解决你的问题,请参考以下文章