私は可能な解決策をウェブで検索しましたが、それは私をますます行き詰まらせているようです。
PHPによってファイルが作成されると、そのファイルは削除できなくなり、同じディレクトリ内の他のファイルを削除できます。ディレクトリがPHPによって作成されている場合、ディレクトリ全体をFTPで使用することはできません。そのディレクトリ内のファイルは表示されますが、このディレクトリを削除、変更、またはアップロードすることはできません。
私はここでこれらの質問をたくさん見ますが、ほとんどの場合、パーミッションの問題が関係しています。この場合、すべてのパーミッション、umask、および属性は、FTPを介して削除できるファイルと同じです。
また、ファイルが使用されている可能性もあると思いましたが、そうではありません(lsofの結果が空になり、apacheとnginxが強制終了され、通常はファイルが解放されます)。
サーバーはPLESK11.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によるディレクトリテストでは何もできませんが、ディレクトリ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に変更しました。