【问题标题】:PHP Server Creates a File That It Can't DeletePHP 服务器创建一个无法删除的文件
【发布时间】:2013-01-31 21:07:34
【问题描述】:

我最初发布了一个完全不同的问题,因为我不知道为什么我不能取消链接(删除)服务器已经创建的文件;我发现了更多信息,因此觉得重新提出我的问题是合适的。

PHP 脚本通过 fopen 创建一个文件,并为用户提供一个下载链接。下载后,该脚本旨在通过取消链接删除文件。我似乎无法让它工作。我检查了权限,这就是文件和目录的样子:

drwxrwxr-x+  55 root        _www    1870 Jan 31 09:49 .
-rw-r--r--    1 _www        _www     1362 Jan 30 12:46 file.csv

这告诉我 _www 组对目录具有读取、写入和执行权限以及对文件的读取和写入权限(更不用说 _www 用户拥有该文件!)。当然,_www 是服务器。因此,如果服务器有足够的权限来读取和写入目录并且对它创建和拥有的文件有足够的权限,那么它为什么不删除该文件呢?我在脚本中没有收到任何错误说取消链接失败,但是在运行脚本后文件仍然存在。似乎没有必要,但 _www 是否出于某种原因也需要具有执行权限?我怀疑。

另外,这里是代码。对我来说这似乎很好,但我可能是疯了:

echo "<form action='' method='post'><input type='submit' name='delete' value='Delete File'></form></div>";
   if (isset($_POST['delete'])) {
        unlink("file.csv") or die("Could not delete file! O, noes!");
    }

【问题讨论】:

  • 你能把var_dump(getcwd());添加到你的php脚本中,并把它和在shell中输入pwd比较一下吗?

标签: php permissions unlink


【解决方案1】:

最后的加号告诉我有一些时髦的 Linux ACL 正在进行。

这可能会帮助你http://www.softpanorama.info/Commercial_linuxes/linux_acl.shtml

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    相关资源
    最近更新 更多