Welche Dateiberechtigungen sollte ich für das Webroot festlegen?

53

Ich benutze Ubuntu Server 10.10 und habe den Nginx-Webserver mit installiert apt-get install nginx. Es wird eine Standardwebseite unter erstellt, /var/www/nginx-default/und dieses Verzeichnis verfügt über die Berechtigungen drwxr-xr-x 2 root root.

Wenn ich auf die Standardwebsite von zugreife http://localhost/, wird diese Nachricht auf der Seite angezeigt 403 Forbidden.

Wie soll ich die Dateiberechtigungen für das WWW-Stammverzeichnis festlegen, damit ich den Zugriff auf die Webseiten sichern kann? Oder muss ich noch etwas ändern?

Jonas
quelle
HINWEIS: Der vollständige Pfad zu Ihrem endgültigen Ordner muss zugänglich sein! Nicht einmal ein Ordner in der Mitte.
Lucio

Antworten:

33

Normalerweise halte ich mich an ein 755(oder rwxr-xr-x) in meinem Webstammverzeichnis, aber ich glaube nicht, dass dies das Problem ist, auf das Sie stoßen, da Ihr Verzeichnis bereits auf dieses festgelegt ist. nginxsollte Zugriff auf Ihr Verzeichnis haben. Die Frage wird dann zu den Berechtigungen (oder der Existenz) der Datei, auf die Sie zugreifen möchten. Die Dateien in Ihrem Verzeichnis müssen für den Benutzer lesbar sein, unter dem ausgeführt nginxwird. Normalerweise belasse ich diese Dateien auf a 755(das gleiche wie das Verzeichnis). Sie können das gesamte Verzeichnis auf diese Weise ändern sudo chmod -R 755 /var/www/nginx-default/.

Befindet sich jedoch keine Indexdatei im Verzeichnis, wird derselbe Fehler weiterhin angezeigt. Die Indexdatei wird verwendet, wenn Sie ein Verzeichnis anfordern, für das keine Verzeichnislisten aktiviert sind. Die am häufigsten verwendete Indexdatei ist index.html. Diese Standardeinstellung kann jedoch in Ihrer Konfiguration bearbeitet werden, indem Sie Folgendes eingeben:

location / {
    index index.php;
}

Wenn Sie nginxeine Liste der Dateien in diesem Verzeichnis für Sie erstellen möchten , aktivieren Sie einfach die Verzeichnisindizierung wie folgt:

location  /  {
  autoindex  on;
}
Jack M.
quelle
Nein, ich habe eine index.htmlin diesem Verzeichnis.
Jonas
Welche Berechtigungen index.htmlhaben Sie dann?
Jack M.
Danke, die Konfigurationsdatei, auf die tatsächlich verwiesen wurde, /var/www/und die generierte Datei index.htmlwurden abgelegt, /var/www/nginx-default/sodass ich diese Datei mit kopieren musste, cp /var/www/nginx-default/index.html /var/www/um die Site mit meinem Webbrowser aufzurufen.
Jonas
56

Ich würde vorschlagen, die Gruppe Ihrer Webroot zu ändern www-data, den von nginx und auch php5-fpm verwendeten Benutzer.

Zum Beispiel:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

Wobei my-user Ihr eigenes Konto ist (wodurch Sie die Dateien einfach und ohne sudo in Ihr Webroot stellen können).

Peter Smit
quelle
Danke, die Befehle wurden ohne Probleme ausgeführt, aber ich bekomme immer noch, 403 Forbiddenwenn ich mit einem Webbrowser darauf zugreife.
Jonas
@Jonas, ich würde vorschlagen, dein Nginx-Fehlerprotokoll zu überprüfen, um zu sehen, was das Problem war.
Peter Smit
Danke, ich habe den Fehler gefunden, er war im Fehlerprotokoll. Siehe meinen Kommentar zu Jacks Antwort.
Jonas
4
Was ist mit neuen Dateien?
mcont
@ MatteoContrini verwenden, chmod 2755 webdirectory/damit sie mit den gleichen Berechtigungen und Rechten gespeichert werden
rhand