0

サーバーが既に作成したファイルのリンクを解除(削除)できない理由がわからなかったため、最初はまったく異なる質問を投稿しました。もう少し情報を発見したので、質問を言い換えるのが適切だと感じています。

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!");
    }
4

1 に答える 1

0

最後のプラスは、いくつかのファンキーな Linux ACL が進行中であることを示しています。

これはあなたに役立つかもしれません http://www.softpanorama.info/Commercial_linuxes/linux_acl.shtml

于 2013-01-31T21:27:00.827 に答える