【问题标题】:Files created by php cannot be deleted through FTPphp创建的文件不能通过FTP删除
【发布时间】:2013-03-12 10:08:03
【问题描述】:

我已经在网上搜索了可能的解决方案,但它似乎让我越来越陷入困境。

一旦PHP创建了一个文件,该文件就不能被删除,同一目录中的其他文件可以被删除。 如果一个目录是PHP创建的,整个目录不能被FTP使用,我可以看到那个目录下的文件,但是不能删除、修改或上传到这个目录。

我确实在这里看到了很多这样的问题,但大多数都涉及权限问题,在这种情况下,所有权限、umask 和属性都与可以通过 FTP 删除的文件相同。

我还认为可能是该文件正在使用中,但事实并非如此,(lsof 结果为空,杀死 apache 和 nginx,通常释放该文件也无济于事)。

服务器正在运行 PLESK 11.0.9 FTP 服务器是 ProFTPD。

这是由 PHP、PLESK 造成的限制还是 ProFTPD 本身造成的限制?

我希望你能帮助我,因为我很沮丧。 如果您有任何可能有助于回答此问题的问题,请随时提问:)。

[编辑] 更多详细信息,为什么我认为这不是权限问题。

[root@srv domains]# lsattr
-------------e- ./test
-------------e- ./test2

[root@srv domains]# ls -als 
total 32 
4 drwxrwxrwx.  7 user0041 psacln  4096 Mar 22 06:41 . 
4 drwxr-x---. 12 user0041 psaserv 4096 Mar 22 07:28 .. 
4 drwxrwxrwx.  2 user0041 psacln  4096 Mar 22 06:30 test
4 drwxrwxrwx.  2 user0041 psacln  4096 Mar 22 06:34 test2

[root@srv domains]# lsof test
[root@srv domains]#

我不能通过 ftp 对目录 test 做任何事情,但我可以对目录 test2 做任何事情

test 是使用 php 的 mkdir 命令创建的,而 test2 是通过 ssh 创建的,并且已经被正确的用户所创建。

我还从输出中删除了一些不相关的条目

有关登录时运行的用户proftpd 的更多信息:

[root@srv domains]# ps aux | grep ftp
10000     8508  0.5  0.0 152192  3684 ?        SNs  08:37   0:00 proftpd: user0041 - x: IDLE
[root@srv domains]# cat /etc/passwd | grep 10000
user0041:x:10000:505::/var/www/vhosts/domain.ltd:/bin/false

出于隐私问题,我已将域名更改为 domain.ltd。

【问题讨论】:

    标签: php file ftp file-permissions delete-file


    【解决方案1】:

    看起来您的 FTP 用户无权删除运行 PHP 的用户创建的任何内容。您需要就此联系您的托管公司。

    【讨论】:

    • 您好,我已添加信息,说明为什么我认为这不是权限问题。
    【解决方案2】:

    很可能是用户权限问题。但是,如果您发布了一些用例,其中包含更多详细信息来描述您到底在做什么(文件名,进程,...),这可能会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多