我最初发布了一个非常不同的问题,因为我不知道为什么我无法取消链接(删除)服务器已经创建的文件;我已经发现了更多的信息,因此觉得改回我的问题是合适的。
PHP脚本通过fopen创建一个文件,并为用户提供下载它的链接。下载后,该脚本将通过unlink删除该文件。我似乎无法让它发挥作用。我检查了权限,这就是文件和目录的样子:
drwxrwxr-x+ 55 root _www 1870 Jan 31 09:49 .
-rw-r--r-- 1 _www _www 1362 Jan 30 12:46 file.csv
这告诉我_www-group具有该目录的读取,写入和执行权限以及该文件的读写权限(更不用说_www用户拥有该文件了!)。当然,_www是服务器。因此,如果服务器具有足够的权限来读取和写入目录并且对其创建和拥有的文件具有足够的权限,那么为什么不删除该文件呢?我在脚本中没有收到任何错误说unlink失败,但是在运行脚本后文件仍然存在。它似乎没有必要,但_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!");
}
答案 0 :(得分:0)
最后的加号告诉我有一些时髦的Linux ACL正在进行中。
这可能会对您有所帮助http://www.softpanorama.info/Commercial_linuxes/linux_acl.shtml