2

私は可能な解決策をウェブで検索しましたが、それは私をますます行き詰まらせているようです。

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に変更しました。

4

2 に答える 2

1

あなたの FTP ユーザーには、PHP を実行しているユーザーが作成したものを削除する権限がないようです。これについては、ホスティング会社に連絡する必要があります。

于 2013-03-22T14:06:11.057 に答える
0

おそらくユーザー権限の問題です。しかし、正確に何をしているのかを説明する詳細(ファイル名、プロセスなど)を含むユースケースを投稿すると役立つ場合があります。

于 2013-03-22T14:11:58.703 に答える