サーバーからデスクトップコンピューターにファイルをコピーしようとしています。 /var/www/html
(Webページがある場所)に配置し、ダウンロードしようとすると403 Forbidden
が表示されます。ファイルに対してchmod 777
を試しても、修正されません。
何が間違っているのですか、なぜこのエラーが発生するのですか?
Apacheユーザーが所有するようにファイルを変更する必要があります。デフォルトでは、Apacheはwww-data
ユーザー(www-data
グループにあります)として実行されます。 chown
を使用して、ファイルの所有者を変更できます(Sudo
とともに使用する必要がある場合があります)。
chown -R www-data:www-data /var/www/html
最後に、ファイルにleast Apacheユーザーの読み取りおよび実行権限があることを確認する必要があります。あなたが言ったように、あなたはすでにこれをしました、しかしすべての許可/ファイル所有者を修正した後、あなたはls -l /var/www/html
を実行することによってすべてが大丈夫であることを確認するべきです。セキュリティ対策として、他のユーザーのすべてのアクセス許可を削除することも賢明です。
chmod -R 0550 /var/www/html
PHPまたは書き込みアクセスが必要な別のスクリプト言語を使用する場合は、代わりに上記のアクセス許可マスクを0770
に変更する必要がある場合があります。予防措置として、そのマスクのみを使用してください。必要に応じてディレクトリ(たとえば、Webサイトのキャッシュデータの書き込みやファイルのアップロード)
CentOS 7 + Apacheを使用していますが、問題を解決した唯一のコマンドはそれです(以前にchown + chmodを試したため):
Sudo setenforce 0 #disable SELinux
そして、ファイル(私の場合はanyfile.Zip)をダウンロードできますが、攻撃者がコードを記述して実行する可能性があります。
おそらく SELinux が有効になっています。現在の目的でそれを回避する最も簡単な方法は、問題のファイルをApacheが実行されているユーザーIDにchownすることです。