Quelles autorisations de fichiers dois-je définir sur la racine Web?

53

J'utilise Ubuntu Server 10.10 et j'ai installé le serveur Web Nginx avec apt-get install nginx. Il crée une page Web par défaut à /var/www/nginx-default/et ce répertoire a les autorisations drwxr-xr-x 2 root root.

Lorsque j'accède au site par défaut, http://localhost/je reçois ce message sur la page 403 Forbidden.

Comment dois-je définir les autorisations de fichier sur la racine www afin que je puisse sécuriser l'accès aux pages Web? Ou y a-t-il autre chose que je dois changer?

Jonas
la source
NOTE: le chemin complet de votre dossier final doit être accessible! Pas même un dossier au milieu.
Lucio

Réponses:

33

Je m'en tiens habituellement à un 755(ou à rwxr-xr-x) sur ma racine Web, mais je ne pense pas que ce soit le problème que vous rencontrez car votre répertoire est déjà configuré pour cela. nginxdevrait avoir accès à votre répertoire. La question devient alors les autorisations (ou l'existence du) fichier auquel vous essayez d'accéder. Les fichiers de votre répertoire devront être lisibles par l'utilisateur sur nginxlequel il s'exécute. Je laisse généralement ces fichiers sur un 755(identique au répertoire). Vous pouvez changer le répertoire entier en faisant sudo chmod -R 755 /var/www/nginx-default/.

S'il n'y a pas de fichier d'index dans le répertoire, vous obtiendrez quand même la même erreur. Le fichier d'index est utilisé lorsque vous demandez un répertoire pour lequel aucune liste de répertoires n'est activée. Le fichier d'index le plus courant est index.html. Ce défaut peut être édité dans votre configuration, cependant, en utilisant quelque chose comme:

location / {
    index index.php;
}

Si vous souhaitez nginxgénérer une liste de fichiers dans ce répertoire pour vous, activez simplement l' indexation de répertoire , comme suit:

location  /  {
  autoindex  on;
}
Jack M.
la source
Non, j'ai un index.htmldans ce répertoire.
Jonas
Quelles autorisations avez- index.htmlvous, alors?
Jack M.
Merci, le fichier de configuration pointé en fait /var/www/et le fichier généré a index.htmlété placé dans le /var/www/nginx-default/fichier. J'ai donc dû copier ce fichier avec cp /var/www/nginx-default/index.html /var/www/lequel je pouvais ensuite visiter le site avec mon navigateur Web.
Jonas
56

Je suggère de changer le groupe de votre racine Web en www-data, l'utilisateur utilisé par nginx ainsi que php5-fpm.

Par exemple:

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

où my-user est votre propre compte (ce qui vous permet de mettre les fichiers facilement dans votre racine Web sans sudo).

Peter Smit
la source
Merci, les commandes ont été exécutées sans aucun problème, mais je l’obtiens toujours 403 Forbiddenlorsque je l’accède avec un navigateur Web.
Jonas
@ Jonas, je suggérerais de vérifier votre journal des erreurs nginx pour voir quel était le problème.
Peter Smit
Merci, j'ai trouvé l'erreur, c'était dans le journal des erreurs. Voir mon commentaire à la réponse de Jacks.
Jonas
4
Qu'en est-il des nouveaux fichiers?
mardi
@ MatteoContrini utiliser chmod 2755 webdirectory/afin qu'ils soient stockés avec les mêmes autorisations et droits
rhand