Vous pouvez donner la permission au dossier et à tout son contenu en utilisant l'option -R
c'est-à-dire les autorisations récursives.
Mais je suggère de ne pas donner l'autorisation 777 à tous les dossiers et à leur contenu. Vous devez donner une autorisation spécifique à chaque sous-dossier des dossiers du répertoire www.
Idéalement, donnez 755
pour des raisons de sécurité au dossier web.
sudo chmod -R 755 /www/store
Chaque chiffre a une signification dans la permission. Ne donnez pas la permission complète.
N Description ls binary
0 No permissions at all --- 000
1 Only execute --x 001
2 Only write -w- 010
3 Write and execute -wx 011
4 Only read r-- 100
5 Read and execute r-x 101
6 Read and write rw- 110
7 Read, write, and execute rwx 111
- Premier numéro 7 - Lecture, écriture et exécution pour l'utilisateur.
- Deuxième numéro 5 - Lire et exécuter pour le groupe.
- Troisième numéro 5 - Lire et exécuter pour les autres.
Si votre dossier Web de production compte plusieurs utilisateurs, vous pouvez définir les autorisations et les groupes d'utilisateurs en conséquence.
Plus d'informations :
- Comprendre les autorisations de fichiers : Que signifie "Chmod 777" ?
- Quelles sont les autorisations de fichiers à définir sur Web Root ?
- Pourquoi /var/www ne devrait pas avoir chmod 777
67 votes
Vous devez sérieusement penser à donner la valeur 777 à tous les fichiers et dossiers du répertoire /www, ce qui signifie que tous vos fichiers et répertoires seront lisibles, inscriptibles et exécutables par le monde entier.
71 votes
Pour contrer la désinformation alarmiste dans les commentaires : vos fichiers sont probablement ne le fera pas être accessible en écriture ou même probablement lisible "par le monde entier". Vous devriez configurer un serveur web qui autorise explicitement ces choses, ce qui est très rare. Ces fichiers seront lisibles, inscriptibles et exécutables par tout utilisateur capable de se connecter à votre système.
3 votes
JoshNoe Ce n'est pas alarmiste. Lisez le top 10 des vulnérabilités de sécurité des applications web de l'OWASP : A5 est une "mauvaise configuration de la sécurité" (par exemple 777 sur le répertoire de téléchargement) et A1 est une "injection". A1 + A5 = pwnd . google.com/search?q=nginx+config+php+code+injection+jpg+commentaire Sous Linux, le serveur web s'exécute sous un utilisateur (par exemple www-data), de sorte qu'à chaque fois que le serveur sert un fichier il est un utilisateur connecté au système.
0 votes
Accorder 777 à l'utilisateur sous lequel tourne votre serveur web n'ouvre généralement pas vos fichiers au "monde entier". Par défaut, la plupart des serveurs web n'ont pas servir aucun fichier par défaut, jusqu'à ce que vous les configuriez explicitement pour le faire.
1 votes
@JoshNoe Je suppose que vous parlez de la configuration des listes de répertoire, mais ce n'est pas ce dont il est question ici. Les commentaires concernent les principes de sécurité défensifs de base pour aider à prévenir des choses comme l'injection de code et les attaques de traversée de répertoire. Ce que vous dites est analogue à "Il est alarmiste de dire que les gens devraient verrouiller leurs portes si leurs rideaux sont déjà fermés".
0 votes
En plus de ce que d'autres ont dit, je recommanderais que les permissions les moins sécurisées sur un tel répertoire soient les suivantes
1777
(notez la partie adhésive - c'est important), et les fichiers devraient être au pire775
(avec le groupe et l'utilisateur appropriés). Il y a presque toujours une meilleure option que de définir un répertoire en tant que777
. Par exemple, sur une machine correctement configurée, même si tout le monde peut écrire dans le fichier/tmp
Ce n'est pas le cas.777
. C'est1777
ce qui signifie qu'une fois que quelqu'un a créé un fichier à cet endroit, les autorisations de ce fichier déterminent qui peut le supprimer/renommer, tandis que l'option777
Les répertoires par défaut permettent à quiconque de le faire.0 votes
Tout cela suppose bien sûr que vous avez configuré votre serveur web pour qu'il n'exécute pas de scripts dans ce répertoire ou processus.
.htaccess
des fichiers à partir de là, etc.0 votes
Normalement
755
oua+x
(lisible par Utilisateur, Groupe et Monde, inscriptible par Utilisateur, exécutable par Utilisateur, Groupe et Monde) est suffisant.