【问题标题】:Folder writing permission文件夹写入权限
【发布时间】:2011-08-21 06:05:19
【问题描述】:

如果我没记错的话,要从目录中创建或删除文件,您需要对该文件夹的写入权限或对该文件的写入权限(以防您正在修改它)。 因此,在具有 711 权限的文件夹和具有 755 权限的 php 脚本(在该文件夹中)以及以下代码:

$fileName = "createdFile.txt";
$fileHandle = fopen($fileName, 'w') or die("can't open file");
fclose($fileHandle);

这应该创建一个新文件还是抛出一个错误?我已经在网络服务器的 public_html 文件夹上尝试过这个,它确实有效,这让我很惊讶,因为我已经提到过。

此外,在网络服务器的情况下,我对“每个人”的权限有点困惑。如果您对某个文件夹有 777 权限,但没有可以实际将文件写入或移动到该文件夹​​的 php 脚本,是否有任何风险?或者它必须是 ftp 访问或一些 php 脚本?

抱歉这个令人困惑的问题。如果可以的话,我会尽力澄清。

【问题讨论】:

  • 你能不能在这个脚本创建的文件上做一个ls -l,并发布你是否通过网络服务器运行这个脚本。
  • 我正在通过网络服务器(即公共 url)运行脚本。我无法运行该命令,因为它是共享服务器,但文件权限为 755。
  • 创建的文件设置了755或父文件夹为755
  • 在下面查看我的更新评论。
  • 对不起,如果我不够清楚。包含该文件的文件夹有 711 权限和文件 755 权限,这让我觉得很奇怪,因为它可以毫无问题地创建文件。

标签: php file permissions directory


【解决方案1】:

755 是读执行不写
您需要写入权限 766 或 777

好的,还有一点帮助。可以肯定的是,运行 php 脚本的用户帐户拥有该文件夹,并且由于第一个数字是“7”,因此“所有者”具有读写和执行权限。

【讨论】:

  • 用户解释说,在755目录下,他们可以使用代码sn-p创建文件。
  • 我知道并且我解释说他需要 766 或 777 才能做到这一点。抱歉,我不够清楚,无法让您开心。
  • @James C 我已经编辑了上面的评论,希望让它更清楚一点。我很抱歉,因为我认为这会在他意识到不应该发生之后得到解决,因为那是他的实际问题。
  • 这确实是我的问题,尽管我想知道为什么它在这些条件下工作而不是在“W”允许的权限下工作。
  • 见上文。我相信这是“所有者”而不是权限的问题。
【解决方案2】:

由于您能够提供的有关已创建文件的信息有限,很难给出更好的答案,但我假设服务器正在以与您上传文件的用户相同的用户身份运行。这是我对能够在具有755 权限的目录中创建文件的唯一解释。

我会与您的托管服务提供商聊天或查看他们的文档以验证他们是否存在某种错误配置。

【讨论】:

  • 虽然这看起来是正确的问题,但我看不到“每个人”组上没有 R 权限的文件,所以我可以假设它实际上以“每个人”而不是该用户身份运行。
猜你喜欢
  • 2011-12-14
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
相关资源
最近更新 更多