403 Verboten für die Datei unter /var/www/html beim Downloadversuch?

403 Verboten für die Datei unter /var/www/html beim Downloadversuch?

Ich versuche, eine Datei von meinem Server auf meinen Desktop-Computer zu kopieren. Ich habe sie dort abgelegt /var/www/html(wo sich die Webseiten befinden) und wenn ich versuche, sie herunterzuladen, erhalte ich die Meldung 403 Forbidden. Ich habe es sogar chmod 777mit der Datei versucht, aber das Problem wird dadurch nicht behoben.

Was mache ich falsch und warum erhalte ich diesen Fehler?

Antwort1

Sie müssen die Datei so ändern, dass sie dem Apache-Benutzer gehört. Standardmäßig wird Apache als www-dataBenutzer ausgeführt (in der www-dataGruppe gefunden). Sie können chownden Eigentümer der Datei ändern (muss möglicherweise zusammen verwendet werden sudo):

chown -R www-data:www-data /var/www/html

Schließlich müssen Sie sicherstellen, dass die Dateienam wenigstenLese- und Ausführungsberechtigungen für den Apache-Benutzer. Wie Sie sagten, haben Sie dies bereits getan, aber nachdem Sie alle Berechtigungen/Dateibesitzer geändert haben, sollten Sie sicherstellen, dass alles in Ordnung ist, indem Sie ausführen ls -l /var/www/html. Aus Sicherheitsgründen ist es auch ratsam, alle Berechtigungen für andere Benutzer zu entfernen:

chmod -R 0550 /var/www/html

Beachten Sie, dass Sie die Berechtigungsmaske oben möglicherweise ändern müssen, wenn Sie PHP oder eine andere Skriptsprache verwenden, die Schreibzugriff erfordert 0770. Verwenden Sie diese Maske vorsichtshalber nur für Verzeichnisse, bei denen dies erforderlich ist (z. B. um Website-Cache-Daten zu schreiben oder Dateien hochzuladen).

Antwort2

Ich verwende CentOS 7 + Apache, der einzige Befehl, der mein Problem gelöst hat, ist dieser (weil ich vorher chown+chmod ausprobiert habe):

sudo setenforce 0 #SELinux deaktivieren

Und dann kann ich die Datei herunterladen (in meinem Fall anyfile.zip), aber das kann Angreifern Tür und Tor öffnen, um Code zu schreiben und auszuführen.

Antwort3

Sie haben wahrscheinlichSELinuxaktiviert. Der einfachste Weg, dies für den aktuellen Zweck zu umgehen, besteht darin, die betreffende Datei mit der Benutzer-ID zu versehen, unter der Apache ausgeführt wird.

verwandte Informationen