これは恥ずかしい問題ですが、私のサーバーに対する正しいファイル権限を把握できないようです。ユーザーがWebページをロードしたときに実行されるPHPスクリプトを介してファイルを簡単に生成できるように、誰でも読取り/書込みアクセスを含むpublic_htmlフォルダ内にディレクトリを作成したいと思います。
現在の権限の表示は次のとおりです。
drw-rw-rw- 2 root www-data 4096 Aug 27 19:38 TEMPFILES
www-dataグループに属さず、root以外の任意のユーザーでPHPスクリプトを実行すると、TEMPFILESにファイルを書き込もうとすると、「Permission Denied」エラーが発生します。なぜそんなことですか?
答え1
chmod a+x TEMPFILES
理由[1]のため、ディレクトリに実行ビットがある必要があるからです。 (たとえば、固定ビットをに設定する必要があります/tmp
。)
[1] 「ディレクトリに対する読み取り権限とディレクトリに対する実行権限は異なる意味であることに注意してください。読み取り権限を使用すると、ディレクトリを読み取り、ディレクトリ内のすべてのファイル名のリストを取得できます。ディレクトリを渡すことができます。 - Stevens、「APUE」(1版)、4章、5節。
答え2
ディレクトリの実行ビットを設定する必要があります。
chmod 0777一時ファイル
内容をご覧いただけます